Recherche avancée

Médias (3)

Mot : - Tags -/collection

Autres articles (47)

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (4457)

  • 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

  • How to open a .sw file using libav library in c language ?

    29 août 2018, par volatile

    I created a .sw(16 bit pcm) file by passing an audio file. Now I am trying to get back the original audio(.mp3) by passing the .sw file as an input to the following file.

    How can I read the .sw file content so that I can get back the mp3 file. Below is the code,

    #include
    #include
    #include

    #include <libavcodec></libavcodec>avcodec.h>
    #include <libavformat></libavformat>avformat.h>

    #include <libavutil></libavutil>channel_layout.h>
    #include <libavutil></libavutil>common.h>
    #include <libavutil></libavutil>frame.h>
    #include <libavutil></libavutil>samplefmt.h>

    /* check that a given sample format is supported by the encoder */
    static int check_sample_fmt(const AVCodec *codec, enum AVSampleFormat sample_fmt)
    {
       const enum AVSampleFormat *p = codec->sample_fmts;

       while (*p != AV_SAMPLE_FMT_NONE) {
           if (*p == sample_fmt)
               return 1;
           p++;
       }
       return 0;
    }

    /* just pick the highest supported samplerate */
    static int select_sample_rate(const AVCodec *codec)
    {
       const int *p;
       int best_samplerate = 0;

       if (!codec->supported_samplerates)
           return 44100;

       p = codec->supported_samplerates;
       while (*p) {
           if (!best_samplerate || abs(44100 - *p) &lt; abs(44100 - best_samplerate))
               best_samplerate = *p;
           p++;
       }
       return best_samplerate;
    }

    /* select layout with the highest channel count */
    static int select_channel_layout(const AVCodec *codec)
    {
       const uint64_t *p;
       uint64_t best_ch_layout = 0;
       int best_nb_channels   = 0;

       if (!codec->channel_layouts)
           return AV_CH_LAYOUT_STEREO;

       p = codec->channel_layouts;
       while (*p) {
           int nb_channels = av_get_channel_layout_nb_channels(*p);

           if (nb_channels > best_nb_channels) {
               best_ch_layout    = *p;
               best_nb_channels = nb_channels;
           }
           p++;
       }
       return best_ch_layout;
    }

    static void encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt,
                      FILE *output)
    {
       int ret;

      /* send the frame for encoding */
      ret = avcodec_send_frame(ctx, frame);
      if (ret &lt; 0) {
          fprintf(stderr, "Error sending the frame to the encoder\n");
          exit(1);
      }

      /* read all the available output packets (in general there may be any
       * number of them */
      while (ret >= 0) {
          ret = avcodec_receive_packet(ctx, pkt);
          if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
              return;
          else if (ret &lt; 0) {
              fprintf(stderr, "Error encoding audio frame\n");
              exit(1);
          }

          fwrite(pkt->data, 1, pkt->size, output);
          av_packet_unref(pkt);
      }
    }

    int main(int argc, char **argv)
    {
      const char *filename;
      const AVCodec *codec;
      AVCodecContext *c= NULL;
      AVFrame *frame;
      AVPacket *pkt;
      int i, j, k, ret;
      FILE *f;
      uint16_t *samples;
      float t, tincr;

      av_register_all();
      avcodec_register_all();

      if (argc &lt;= 1) {
          fprintf(stderr, "Usage: %s <output file="file">\n", argv[0]);
          return 0;
      }
      filename = argv[1];

      /* find the MP2 encoder */
      codec = avcodec_find_encoder(AV_CODEC_ID_MP3);
      if (!codec) {
          fprintf(stderr, "Codec not found\n");
          exit(1);
      }

      c = avcodec_alloc_context3(codec);
      if (!c) {
          fprintf(stderr, "Could not allocate audio codec context\n");
          exit(1);
      }

      /* put sample parameters */
      c->bit_rate = 64000;

      /* check that the encoder supports s16 pcm input */
      c->sample_fmt = AV_SAMPLE_FMT_S16P;
      if (!check_sample_fmt(codec, c->sample_fmt)) {
          fprintf(stderr, "Encoder does not support sample format %s",
                  av_get_sample_fmt_name(c->sample_fmt));
          exit(1);
      }

      /* select other audio parameters supported by the encoder */
      c->sample_rate    = select_sample_rate(codec);
      c->channel_layout = select_channel_layout(codec);
      c->channels       = av_get_channel_layout_nb_channels(c->channel_layout);

      /* open it */
      if (avcodec_open2(c, codec, NULL) &lt; 0) {
          fprintf(stderr, "Could not open codec\n");
          exit(1);
      }

      f = fopen(filename, "wb");
      if (!f) {
          fprintf(stderr, "Could not open %s\n", filename);
          exit(1);
      }

      /* packet for holding encoded output */
      pkt = av_packet_alloc();
      if (!pkt) {
          fprintf(stderr, "could not allocate the packet\n");
          exit(1);
      }

      /* frame containing input raw audio */
      frame = av_frame_alloc();
      if (!frame) {
          fprintf(stderr, "Could not allocate audio frame\n");
          exit(1);
      }

      frame->nb_samples     = c->frame_size;
      frame->format         = c->sample_fmt;
      frame->channel_layout = c->channel_layout;

      /* allocate the data buffers */
      ret = av_frame_get_buffer(frame, 0);
      if (ret &lt; 0) {
          fprintf(stderr, "Could not allocate audio data buffers\n");
          exit(1);
      }

      /* encode a single tone sound */
      t = 0;
      tincr = 2 * M_PI * 440.0 / c->sample_rate;
      for (i = 0; i &lt; 200; i++) {
          /* make sure the frame is writable -- makes a copy if the encoder
           * kept a reference internally */
          ret = av_frame_make_writable(frame);
          if (ret &lt; 0)
              exit(1);
          samples = (uint16_t*)frame->data[0];

          for (j = 0; j &lt; c->frame_size; j++) {
              samples[2*j] = (int)(sin(t) * 10000);

              for (k = 1; k &lt; c->channels; k++)
                  samples[2*j + k] = samples[2*j];
              t += tincr;
          }
          encode(c, frame, pkt, f);
      }

      /* flush the encoder */
      encode(c, NULL, pkt, f);

      fclose(f);

      av_frame_free(&amp;frame);
      av_packet_free(&amp;pkt);
      avcodec_free_context(&amp;c);

      return 0;
    }
    </output>

    I just want to know, where and how the .sw file is reading in the above audio encoding code ?

  • avformat/movenc : use unspecified language by default

    19 mai 2019, par Marton Balint
    avformat/movenc : use unspecified language by default
    

    English was used before.

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

    • [DH] Changelog
    • [DH] libavformat/movenc.c
    • [DH] libavformat/version.h
    • [DH] tests/ref/acodec/alac
    • [DH] tests/ref/acodec/pcm-s16be
    • [DH] tests/ref/acodec/pcm-s24be
    • [DH] tests/ref/acodec/pcm-s32be
    • [DH] tests/ref/acodec/pcm-s8
    • [DH] tests/ref/fate/adtstoasc_ticket3715
    • [DH] tests/ref/lavf/mov
    • [DH] tests/ref/lavf/mov_rtphint
    • [DH] tests/ref/vsynth/vsynth1-avui
    • [DH] tests/ref/vsynth/vsynth1-dnxhd-1080i
    • [DH] tests/ref/vsynth/vsynth1-dnxhd-1080i-10bit
    • [DH] tests/ref/vsynth/vsynth1-dnxhd-1080i-colr
    • [DH] tests/ref/vsynth/vsynth1-dnxhd-hr-hq-mov
    • [DH] tests/ref/vsynth/vsynth1-dnxhd-hr-lb-mov
    • [DH] tests/ref/vsynth/vsynth1-dnxhd-hr-sq-mov
    • [DH] tests/ref/vsynth/vsynth1-mov-bgr24
    • [DH] tests/ref/vsynth/vsynth1-mov-bpp15
    • [DH] tests/ref/vsynth/vsynth1-mov-bpp16
    • [DH] tests/ref/vsynth/vsynth1-prores
    • [DH] tests/ref/vsynth/vsynth1-prores_444
    • [DH] tests/ref/vsynth/vsynth1-prores_444_int
    • [DH] tests/ref/vsynth/vsynth1-prores_int
    • [DH] tests/ref/vsynth/vsynth1-prores_ks
    • [DH] tests/ref/vsynth/vsynth1-qtrle
    • [DH] tests/ref/vsynth/vsynth1-qtrlegray
    • [DH] tests/ref/vsynth/vsynth1-svq1
    • [DH] tests/ref/vsynth/vsynth1-vc2-420p
    • [DH] tests/ref/vsynth/vsynth1-vc2-420p10
    • [DH] tests/ref/vsynth/vsynth1-vc2-420p12
    • [DH] tests/ref/vsynth/vsynth1-vc2-422p
    • [DH] tests/ref/vsynth/vsynth1-vc2-422p10
    • [DH] tests/ref/vsynth/vsynth1-vc2-422p12
    • [DH] tests/ref/vsynth/vsynth1-vc2-444p
    • [DH] tests/ref/vsynth/vsynth1-vc2-444p10
    • [DH] tests/ref/vsynth/vsynth1-vc2-444p12
    • [DH] tests/ref/vsynth/vsynth1-vc2-t5_3
    • [DH] tests/ref/vsynth/vsynth1-vc2-thaar
    • [DH] tests/ref/vsynth/vsynth2-avui
    • [DH] tests/ref/vsynth/vsynth2-dnxhd-1080i
    • [DH] tests/ref/vsynth/vsynth2-dnxhd-1080i-10bit
    • [DH] tests/ref/vsynth/vsynth2-dnxhd-1080i-colr
    • [DH] tests/ref/vsynth/vsynth2-dnxhd-hr-hq-mov
    • [DH] tests/ref/vsynth/vsynth2-dnxhd-hr-lb-mov
    • [DH] tests/ref/vsynth/vsynth2-dnxhd-hr-sq-mov
    • [DH] tests/ref/vsynth/vsynth2-mov-bgr24
    • [DH] tests/ref/vsynth/vsynth2-mov-bpp15
    • [DH] tests/ref/vsynth/vsynth2-mov-bpp16
    • [DH] tests/ref/vsynth/vsynth2-prores
    • [DH] tests/ref/vsynth/vsynth2-prores_444
    • [DH] tests/ref/vsynth/vsynth2-prores_444_int
    • [DH] tests/ref/vsynth/vsynth2-prores_int
    • [DH] tests/ref/vsynth/vsynth2-prores_ks
    • [DH] tests/ref/vsynth/vsynth2-qtrle
    • [DH] tests/ref/vsynth/vsynth2-qtrlegray
    • [DH] tests/ref/vsynth/vsynth2-svq1
    • [DH] tests/ref/vsynth/vsynth2-vc2-420p
    • [DH] tests/ref/vsynth/vsynth2-vc2-420p10
    • [DH] tests/ref/vsynth/vsynth2-vc2-420p12
    • [DH] tests/ref/vsynth/vsynth2-vc2-422p
    • [DH] tests/ref/vsynth/vsynth2-vc2-422p10
    • [DH] tests/ref/vsynth/vsynth2-vc2-422p12
    • [DH] tests/ref/vsynth/vsynth2-vc2-444p
    • [DH] tests/ref/vsynth/vsynth2-vc2-444p10
    • [DH] tests/ref/vsynth/vsynth2-vc2-444p12
    • [DH] tests/ref/vsynth/vsynth2-vc2-t5_3
    • [DH] tests/ref/vsynth/vsynth2-vc2-thaar
    • [DH] tests/ref/vsynth/vsynth3-dnxhd-1080i-10bit
    • [DH] tests/ref/vsynth/vsynth3-dnxhd-1080i-colr
    • [DH] tests/ref/vsynth/vsynth3-dnxhd-hr-hq-mov
    • [DH] tests/ref/vsynth/vsynth3-dnxhd-hr-lb-mov
    • [DH] tests/ref/vsynth/vsynth3-dnxhd-hr-sq-mov
    • [DH] tests/ref/vsynth/vsynth3-mov-bgr24
    • [DH] tests/ref/vsynth/vsynth3-mov-bpp15
    • [DH] tests/ref/vsynth/vsynth3-mov-bpp16
    • [DH] tests/ref/vsynth/vsynth3-prores
    • [DH] tests/ref/vsynth/vsynth3-prores_444
    • [DH] tests/ref/vsynth/vsynth3-prores_444_int
    • [DH] tests/ref/vsynth/vsynth3-prores_int
    • [DH] tests/ref/vsynth/vsynth3-prores_ks
    • [DH] tests/ref/vsynth/vsynth3-qtrle
    • [DH] tests/ref/vsynth/vsynth3-svq1
    • [DH] tests/ref/vsynth/vsynth_lena-avui
    • [DH] tests/ref/vsynth/vsynth_lena-dnxhd-1080i
    • [DH] tests/ref/vsynth/vsynth_lena-dnxhd-1080i-10bit
    • [DH] tests/ref/vsynth/vsynth_lena-dnxhd-1080i-colr
    • [DH] tests/ref/vsynth/vsynth_lena-dnxhd-hr-hq-mov
    • [DH] tests/ref/vsynth/vsynth_lena-dnxhd-hr-lb-mov
    • [DH] tests/ref/vsynth/vsynth_lena-dnxhd-hr-sq-mov
    • [DH] tests/ref/vsynth/vsynth_lena-mov-bgr24
    • [DH] tests/ref/vsynth/vsynth_lena-mov-bpp15
    • [DH] tests/ref/vsynth/vsynth_lena-mov-bpp16
    • [DH] tests/ref/vsynth/vsynth_lena-prores
    • [DH] tests/ref/vsynth/vsynth_lena-prores_444
    • [DH] tests/ref/vsynth/vsynth_lena-prores_444_int
    • [DH] tests/ref/vsynth/vsynth_lena-prores_int
    • [DH] tests/ref/vsynth/vsynth_lena-prores_ks
    • [DH] tests/ref/vsynth/vsynth_lena-qtrle
    • [DH] tests/ref/vsynth/vsynth_lena-qtrlegray
    • [DH] tests/ref/vsynth/vsynth_lena-svq1
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-420p
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-420p10
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-420p12
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-422p
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-422p10
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-422p12
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-444p
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-444p10
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-444p12
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-t5_3
    • [DH] tests/ref/vsynth/vsynth_lena-vc2-thaar