Recherche avancée

Médias (1)

Mot : - Tags -/net art

Autres articles (66)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Possibilité de déploiement en ferme

    12 avril 2011, par

    MediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
    Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

Sur d’autres sites (9785)

  • FFMPEG : Can not free AVPacket when decode H264 stream ?

    13 janvier 2016, par TTGroup

    I’m using FFMPEG to decode H264 stream, my code is below

    AVFormatContext *pFormatCtx = NULL;
    AVCodecContext  *pCodecCtx = NULL;
    AVFrame         *pFrame = NULL;
    AVPacket        packet;
    packet.data = NULL;

    pFormatCtx = avformat_alloc_context();  
    avformat_open_input(&pFormatCtx, videoStreamPath, NULL, NULL);
    liveHeader.pCodecCtx = pFormatCtx->streams[videoStreamIndex]->codec;

    int  bytesDecoded = 0;
    int  frameFinished = 0;
    while (true)
    {
       while (packet.size > 0)
       {
           // Decode the next chunk of data
           bytesDecoded = avcodec_decode_video2(pCodecCtx, pFrame,
               &frameFinished, &packet);

           // Was there an error?
           if (bytesDecoded < 0)
           {
               printf(strErr, "Error while decoding frame\n");
               commonGlobal->WriteRuntimeRecLogs(strErr);
               return RS_NOT_OK;
           }

           packet.size -= bytesDecoded;
           packet.data += bytesDecoded;
           if (frameFinished)
           {              
               //av_free_packet(&packet); //(free 1)
               return RS_OK;
           }
           // Did we finish the current frame? Then we can return
       }
       do
       {
           try
           {
               int ret = av_read_frame(pFormatCtx, &packet);
               if (ret < 0)
               {
                   char strErr[STR_LENGTH_256];
                   if (ret == AVERROR_EOF || (pFormatCtx->pb && pFormatCtx->pb->eof_reached))
                   {
                       sprintf(strErr, "Error end of file line %d", __LINE__);
                   }
                   if (pFormatCtx->pb && pFormatCtx->pb->error)
                   {
                       sprintf(strErr, "Error end of file line %d", __LINE__);
                   }
                   packet.data = NULL;
                   return RS_NOT_OK;
               }
           }
           catch (...)
           {
               packet.data = NULL;
               return RS_NOT_OK;
           }
       } while (packet.stream_index != videoStreamIndex);
    }

    //av_free_packet(&packet); //(free 2)

    The problem is I don’t know how to free memory of packet correctly.

    I have tried to delete packet’s data by calling one of two places av_free_packet(&packet); (free 1) and av_free_packet(&packet); (free 2). And the result is the application was crashed with the message "Heap Corruption..."

    If I do not free the packet, the memory leak is occur.

    Note that the above code is successful when decode H264 stream, the main problem is memory leak and crashed when I try to free the packet

    Someone can show me the problems in my code.

    Many thanks,

    T&T

  • Javascript sync images

    26 septembre 2021, par Ruan Matt

    I'm studying about FPS, animations, image processing in order to get into the game development world.

    


    I took a video and extract each frame into a .jpg image, and I want to run these images, side by side, in the same sync as the original video

    


    You can test at this link => https://jsfiddle.net/ruanmatt144/267erymL/2/

    


    The problem : The video FPS is 30, but even if I put 1000/30, or any other value that refers to the original FPS, it doesn't work ! It doesn't stay in sync. setTimeout has a limit on decimal places that I don't know about ?

    


    Video timestamp for each frame => https://unity-animation.ztech.gq/timestamp.txt

    


    How can I sync those images following the original video timestamp ? Thank you.

    


    var arr = Array();
var v = 0;
var v2 = 0;
var k = 0;

(function getImages(i) {
  setTimeout(function() {
    v++;
    var r = Math.random();
        loadImage("https://unity-animation.ztech.gq/frames/out-" + v + ".jpg?v=" + r);
        arr.push("https://unity-animation.ztech.gq/frames/out-" + v + ".jpg?v=" + r);

        if (--i) getImages(i);
  }, 30)
})(20000);



const loadImage = src =>
    new Promise((resolve, reject) => {
        const img = new Image();
        img.onload = () => resolve(img);
        img.src = src;
    })  
;

var imgArray = new Array();
setTimeout(function() {
    (function runVideo(i) {
        setTimeout(function() {
            v2++;
            imgArray[v2] = new Image();
            document.getElementById('load').appendChild(imgArray[v2]);

            imgArray[v2].src = arr[v2];
            imgArray[v2].classList.add("overlayImage");
            imgArray.shift();
            var parent = document.querySelector("#load");
            [...parent.children].slice(0,-10).forEach(parent.removeChild.bind(parent));
            var last = document.querySelector('#load img:last-child').getAttribute("src");
            var _final = last.substring(
                last.indexOf("-") + 1, 
                last.lastIndexOf(".jpg")
            );
            arr.shift();
        if (--i) runVideo(i);
      }, 90) // <== the problem is here, which value I must use?
    })(38194);
    document.getElementById("video").play();
}, 20000);


    


  • aarch64 : Use ret x instead of br x where possible

    28 septembre 2020, par Jonathan Wright
    aarch64 : Use ret x<n> instead of br x<n> where possible
    

    Change AArch64 assembly code to use :
    ret x<n>
    instead of :
    br x<n>

    "ret x<n>" is already used in a lot of places so this patch makes it
    consistent across the code base. This does not change behavior or
    performance.

    In addition, this change reduces the number of landing pads needed in
    a subsequent patch to support the Armv8.5-A Branch Target
    Identification (BTI) security feature.

    Signed-off-by : Jonathan Wright <jonathan.wright@arm.com>
    Signed-off-by : Martin Storsjö <martin@martin.st>

    • [DH] libavcodec/aarch64/simple_idct_neon.S
    • [DH] libavcodec/aarch64/vp9itxfm_16bpp_neon.S
    • [DH] libavcodec/aarch64/vp9itxfm_neon.S
    • [DH] libavcodec/aarch64/vp9lpf_16bpp_neon.S
    • [DH] libavcodec/aarch64/vp9lpf_neon.S