Recherche avancée

Médias (1)

Mot : - Tags -/illustrator

Autres articles (76)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Les notifications de la ferme

    1er décembre 2010, par

    Afin d’assurer une gestion correcte de la ferme, il est nécessaire de notifier plusieurs choses lors d’actions spécifiques à la fois à l’utilisateur mais également à l’ensemble des administrateurs de la ferme.
    Les notifications de changement de statut
    Lors d’un changement de statut d’une instance, l’ensemble des administrateurs de la ferme doivent être notifiés de cette modification ainsi que l’utilisateur administrateur de l’instance.
    À la demande d’un canal
    Passage au statut "publie"
    Passage au (...)

Sur d’autres sites (6224)

  • avformat/hlsenc : use AV_OPT_TYPE_DICT for hls_ts_options

    22 décembre 2019, par Marton Balint
    avformat/hlsenc : use AV_OPT_TYPE_DICT for hls_ts_options
    

    Simplifies code and avoids memory leaks.

    Signed-off-by : Marton Balint <cus@passwd.hu>

    • [DH] libavformat/hlsenc.c
  • FFmpeg, access violation on av_frame_free when running though Unity

    1er février 2021, par Mockarutan

    I'm working on a video recording plugin for Unity using ffmpeg. I'm new to the video encoding domain and just got my code to work today. But I think a might have a few memory leaks and trying to fix them crashes Unity.

    &#xA;&#xA;

    The plugin is written i c++ (as external "C" code) and imported in a c# script in unity with a simple DllImport. Again, this is not my comfort area either, but it works.

    &#xA;&#xA;

    When a screen buffer is rendered, I put in a RGB24 buffer and send it to my c++ function, this one :

    &#xA;&#xA;

    int encode_frame(uint8_t* rgb24Data)&#xA;{&#xA;    AVFrame *frame = av_frame_alloc();&#xA;    if (!frame)&#xA;        return COULD_NOT_ALLOCATE_FRAME;&#xA;&#xA;    frame->format = codec_context->pix_fmt;&#xA;    frame->width = codec_context->width;&#xA;    frame->height = codec_context->height;&#xA;&#xA;    int ret = av_image_alloc(frame->data, frame->linesize, codec_context->width, codec_context->height, codec_context->pix_fmt, 32);&#xA;    if (ret &lt; 0)&#xA;        return COULD_NOT_ALLOCATE_PIC_BUF;&#xA;&#xA;    SwsContext * ctx = sws_getContext(codec_context->width, codec_context->height,&#xA;        AV_PIX_FMT_RGB24, codec_context->width, codec_context->height,&#xA;        AV_PIX_FMT_YUV420P, 0, 0, 0, 0);&#xA;&#xA;&#xA;    uint8_t * inData[1] = { rgb24Data };&#xA;    int inLinesize[1] = { 3 * codec_context->width };&#xA;&#xA;    sws_scale(ctx, inData, inLinesize, 0, codec_context->height, frame->data, frame->linesize); // From RGB to YUV&#xA;&#xA;    frame->pts = frame_counter&#x2B;&#x2B;;&#xA;&#xA;    ret = avcodec_send_frame(codec_context, frame);&#xA;    if (ret &lt; 0)&#xA;        return ERROR_ENCODING_FRAME_SEND;&#xA;&#xA;    AVPacket pkt;&#xA;    av_init_packet(&amp;pkt);&#xA;    pkt.data = NULL;&#xA;    pkt.size = 0;&#xA;&#xA;    while (true)&#xA;    {&#xA;        ret = avcodec_receive_packet(codec_context, &amp;pkt);&#xA;        if (!ret)&#xA;        {&#xA;            if (pkt.pts != AV_NOPTS_VALUE)&#xA;                pkt.pts = av_rescale_q(pkt.pts, codec_context->time_base, video_st->time_base);&#xA;            if (pkt.dts != AV_NOPTS_VALUE)&#xA;                pkt.dts = av_rescale_q(pkt.dts, codec_context->time_base, video_st->time_base);&#xA;&#xA;            av_write_frame(outctx, &amp;pkt);&#xA;            av_packet_unref(&amp;pkt);&#xA;        }&#xA;        else if (ret == AVERROR(EAGAIN))&#xA;        {&#xA;            frame->pts = frame_counter&#x2B;&#x2B;;&#xA;            ret = avcodec_send_frame(codec_context, frame);&#xA;            if (ret &lt; 0)&#xA;                return ERROR_ENCODING_FRAME_SEND;&#xA;        }&#xA;        else if (ret &lt; 0)&#xA;            return ERROR_ENCODING_FRAME_RECEIVE;&#xA;        else&#xA;            break;&#xA;    }&#xA;&#xA;    // This one&#xA;    av_frame_free(&amp;frame);&#xA;}&#xA;

    &#xA;&#xA;

    Now, this code might have a lot of issues that I'm not aware of, and you are free to point them out if you like. But the line that gives me error is av_frame_free(&amp;frame);.

    &#xA;&#xA;

    If I run this in a synthetic test app in c++ that I made, it works. I can even run it in a c# synthetic test app (exactly like the c++ one), and it works. But if I run it though Unity, it crashes on the first frame. The log says "Read from location fe7f8097 caused an access violation.".

    &#xA;&#xA;

    I have tried with av_freep() and av_free(). Not sure exactly what makes them different (different example codes use different ones), but none work.

    &#xA;&#xA;

    So, what I'm I missing ? The frame is leaking if I don't free it right ? But why does it crash in Unity ?

    &#xA;&#xA;

    The whole thing works great in Unity if I don't have the av_frame_free(&amp;frame);. Resulting video looks great !

    &#xA;&#xA;

    PS. I'm aware (as far as I know) that the frame also leaks if something fails and returns an error code. But one thing at a time.

    &#xA;

  • FFmpeg, access violation on av_frame_free when running though Unity

    27 octobre 2016, par Mockarutan

    I’m working on a video recording plugin for Unity using ffmpeg. I’m new to the video encoding domain and just got my code to work today. But I think a might have a few memory leaks and trying to fix them crashes Unity.

    The plugin is written i c++ (as external "C" code) and imported in a c# script in unity with a simple DllImport. Again, this is not my comfort area either, but it works.

    When a screen buffer is rendered, I put in a RGB24 buffer and send it to my c++ function, this one :

    int encode_frame(uint8_t* rgb24Data)
    {
       AVFrame *frame = av_frame_alloc();
       if (!frame)
           return COULD_NOT_ALLOCATE_FRAME;

       frame->format = codec_context->pix_fmt;
       frame->width = codec_context->width;
       frame->height = codec_context->height;

       int ret = av_image_alloc(frame->data, frame->linesize, codec_context->width, codec_context->height, codec_context->pix_fmt, 32);
       if (ret &lt; 0)
           return COULD_NOT_ALLOCATE_PIC_BUF;

       SwsContext * ctx = sws_getContext(codec_context->width, codec_context->height,
           AV_PIX_FMT_RGB24, codec_context->width, codec_context->height,
           AV_PIX_FMT_YUV420P, 0, 0, 0, 0);


       uint8_t * inData[1] = { rgb24Data };
       int inLinesize[1] = { 3 * codec_context->width };

       sws_scale(ctx, inData, inLinesize, 0, codec_context->height, frame->data, frame->linesize); // From RGB to YUV

       frame->pts = frame_counter++;

       ret = avcodec_send_frame(codec_context, frame);
       if (ret &lt; 0)
           return ERROR_ENCODING_FRAME_SEND;

       AVPacket pkt;
       av_init_packet(&amp;pkt);
       pkt.data = NULL;
       pkt.size = 0;

       while (true)
       {
           ret = avcodec_receive_packet(codec_context, &amp;pkt);
           if (!ret)
           {
               if (pkt.pts != AV_NOPTS_VALUE)
                   pkt.pts = av_rescale_q(pkt.pts, codec_context->time_base, video_st->time_base);
               if (pkt.dts != AV_NOPTS_VALUE)
                   pkt.dts = av_rescale_q(pkt.dts, codec_context->time_base, video_st->time_base);

               av_write_frame(outctx, &amp;pkt);
               av_packet_unref(&amp;pkt);
           }
           else if (ret == AVERROR(EAGAIN))
           {
               frame->pts = frame_counter++;
               ret = avcodec_send_frame(codec_context, frame);
               if (ret &lt; 0)
                   return ERROR_ENCODING_FRAME_SEND;
           }
           else if (ret &lt; 0)
               return ERROR_ENCODING_FRAME_RECEIVE;
           else
               break;
       }

       // This one
       av_frame_free(&amp;frame);
    }

    Now, this code might have a lot of issues that I’m not aware of, and you are free to point them out if you like. But the line that gives me error is av_frame_free(&amp;frame);.

    If I run this in a synthetic test app in c++ that I made, it works. I can even run it in a c# synthetic test app (exactly like the c++ one), and it works. But if I run it though Unity, it crashes on the first frame. The log says "Read from location fe7f8097 caused an access violation.".

    I have tried with av_freep() and av_free(). Not sure exactly what makes them different (different example codes use different ones), but none work.

    So, what I’m I missing ? The frame is leaking if I don’t free it right ? But why does it crash in Unity ?

    The whole thing works great in Unity if I don’t have the av_frame_free(&amp;frame);. Resulting video looks great !

    PS. I’m aware (as far as I know) that the frame also leaks if something fails and returns an error code. But one thing at a time.