Recherche avancée

Médias (1)

Mot : - Tags -/censure

Autres articles (52)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

Sur d’autres sites (3715)

  • avfilter/af_stereowiden : fix read/write past the end of buffer

    12 juillet 2016, par Alexey Tourbin
    avfilter/af_stereowiden : fix read/write past the end of buffer
    

    The stereowiden filter uses a buffer, s->buffer[], and a pointer
    within the buffer, s->write, to implement inter-channel delays.
    The loop which applies the delayed samples turns out to be faulty.

    109 for (n = 0 ; n < in->nb_samples ; n++, src += 2, dst += 2)
    110 const float left = src[0], right = src[1] ;
    111 float *read = s->write + 2 ;
    112
    113 if (read > s->buffer + s->length)
    114 read = s->buffer ;
    115
    116 dst[0] = drymix * left - crossfeed * right - feedback * read[1] ;
    117 dst[1] = drymix * right - crossfeed * left - feedback * read[0] ;
    118
    119 s->write[0] = left ;
    120 s->write[1] = right ;
    121
    122 if (s->write == s->buffer + s->length)
    123 s->write = s->buffer ;
    124 else
    125 s->write += 2 ;
    126

    For one, the buffer gets written past its end in lines 119-120, before
    the bound check is done in lines 122-123. This can be easily confirmed
    by valgrind.

    ==3544== Invalid read of size 4
    ==3544== at 0x593B41 : filter_frame (af_stereowiden.c:116)
    ==3544== Address 0xb1b03c4 is 4 bytes after a block of size 7,680 alloc’d
    ==3544==
    ==3544== Invalid read of size 4
    ==3544== at 0x593B66 : filter_frame (af_stereowiden.c:117)
    ==3544== Address 0xb1b03c0 is 0 bytes after a block of size 7,680 alloc’d
    ==3544==
    ==3544== Invalid write of size 4
    ==3544== at 0x593B79 : filter_frame (af_stereowiden.c:119)
    ==3544== Address 0xb1b03c0 is 0 bytes after a block of size 7,680 alloc’d
    ==3544==
    ==3544== Invalid write of size 4
    ==3544== at 0x593B7D : filter_frame (af_stereowiden.c:120)
    ==3544== Address 0xb1b03c4 is 4 bytes after a block of size 7,680 alloc’d

    Also, using two separate pointers, s->write and read = s->write + 2,
    does not seem to be well thought out. To apply the delay of s->buffer[],
    it is enough to read the delayed samples at the current position within
    the buffer, and then to store new samples at the same current position.
    Thus the application of delayed samples can probably be best described
    with a single pointer s->cur.

    I also introduce a minor change to ensure that the size of s->buffer[]
    is always a multiple of 2. Since the delay parameter is a float, it is
    otherwise possible to trick the code into allocating off-by-one buffer.

    • [DH] libavfilter/af_stereowiden.c
  • avfilter/formats : Remove pointless checks

    11 septembre 2020, par Andreas Rheinhardt
    avfilter/formats : Remove pointless checks
    

    ff_formats_ref() takes a pointer to an AVFilterFormats and a pointer to
    a pointer to an AVFilterFormats as arguments and adds the latter as an
    owner to the list pointed to by the former ; the latter is hereby always
    the address of a list contained in an AVFilterFormatsConfig and can
    therefore not be NULL. So remove the check for whether it is NULL ; also
    do the same for ff_channel_layouts_ref().

    Also do the same for the unref functions where argument is never NULL
    because it is always the address of an existing lvalue.

    Reviewed-by : Nicolas George <george@nsup.org>
    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@gmail.com>

    • [DH] libavfilter/formats.c
  • "Error opening filters !" when using fluent-ffmpeg with Node

    3 février 2015, par doremi

    I’m trying to get a basic example of html5 video streaming working in an express node app, but I keep running into ffmpeg errors that I’m unsure of how to resolve.

    The input file/stream is the sample.mp4 located here.

    Complete example :

    var ffmpeg = require('fluent-ffmpeg');
    var express    = require('express');
    var fs         = require('fs');
    var sampleApp  = express();
    var videoApp   = express();

    var SAMPLE_SERVER_PORT = 3000;
    var VIDEO_SERVER_PORT  = 5000;

    sampleApp.get('/:video', function (req, res) {
     var videoURL = 'http://localhost:' + VIDEO_SERVER_PORT + '/' + req.params.video;
     return res.end('<video controls="controls" src=" + videoURL +"></video>');
    });

    videoApp.get('/:video', function(req, res) {

     res.statusCode = 200;
     res.setHeader('content-type','video/mp4');

     var stream = fs.createReadStream('./samples/' + req.params.video);

     var proc = ffmpeg(stream)

       .format('mp4')
       .size('320x?')
       .videoBitrate('512k')
       .videoCodec('libx264')
       .fps(24)
       .audioBitrate('96k')
       .audioCodec('aac')
       .audioFrequency(22050)
       .audioChannels(2)

       .on('error', function(err) {
         console.log('an error happened: ' + err.message);
       })

       .pipe(res, { end:true });
    });

    var server = sampleApp.listen(SAMPLE_SERVER_PORT, function () {
     console.log('Example app listening at http://%s:%s', server.address().address, SAMPLE_SERVER_PORT);
    });


    var videoServer = videoApp.listen(VIDEO_SERVER_PORT, function () {
     console.log('Video Server listening at http://%s:%s', server.address().address, VIDEO_SERVER_PORT);
    });

    The error (via console) :

    an error happened: ffmpeg exited with code 1: Error opening filters!

    ffmpeg configuration :

    ./configure  --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass \                                                                        
    --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus \
    --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-libfaac --enable-libfdk-aac

    Any input would be greatly appreciated.