Recherche avancée

Médias (1)

Mot : - Tags -/pirate bay

Autres articles (102)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • 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.

Sur d’autres sites (12097)

  • Audio encoding using avcodec_fill_audio_frame() and memory leaks

    7 mai 2014, par praks411

    As a part of encoding decoded audio packets, I’m using avcodec_fill_audio_frame(). I’m passing allocated AVFrame pointer to along with buffer containing the decoded samples and other parameters number of channels, sample format, buffer size. Though the encoding is working fine I’m not able to completely eliminate the memory leaks. I’ve taken care of most of things but still I’m not able detect the leakage.
    Below is the function which I’m using for encoding. Please suggest something.
    AudioSample contains decoded data and it is completely managed in different class(free in class destructor). I’m freeing the AVFrame in FFmpegEncoder destructor and AVPacket is freed every time using av_free_packet() with av_packet_destruct enabled. What more do I need to free ?

    void FfmpegEncoder::WriteAudioSample(AudioSample *audS)
    {


       int num_audio_frame = 0;
       AVCodecContext *c = NULL;
      // AVFrame *frame;
       AVPacket pkt;

       av_init_packet(&pkt);
       pkt.destruct = av_destruct_packet;
       pkt.data = NULL;
       pkt.size = 0;
       int ret = 0, got_packet = 0;
       c = m_out_aud_strm->codec;
        static int64_t aud_pts_in = -1;

       if((audS != NULL) && (audS->GetSampleLength() > 0) )
       {
           int byte_per_sample = av_get_bytes_per_sample(c->sample_fmt);

           PRINT_VAL("Byte Per Sample ", byte_per_sample)
           m_frame->nb_samples = (audS->GetSampleLength())/(c->channels*av_get_bytes_per_sample(c->sample_fmt));
           if(m_frame->nb_samples == c->frame_size)
           {  

    #if 1
           if(m_need_resample && (c->channels >= 2))
              {
                  uint8_t * t_buff1 = new uint8_t[audS->GetSampleLength()];
                  if(t_buff1 != NULL)
                   {
                        for(int64_t i = 0; i< m_frame->nb_samples; i++)
                       {
                           memcpy(t_buff1 + i*byte_per_sample, (uint8_t*)((uint8_t*)audS->GetAudioSampleData() + i*byte_per_sample*c->channels), byte_per_sample);
                           memcpy(t_buff1 + (audS->GetSampleLength())/2 + i*byte_per_sample, (uint8_t*)((uint8_t*)audS->GetAudioSampleData() + i*byte_per_sample*c->channels+ byte_per_sample), byte_per_sample);
                       }
                       audS->FillAudioSample(t_buff1, audS->GetSampleLength());
                       delete[] t_buff1;
                   }
               }
    #endif
               ret = avcodec_fill_audio_frame(m_frame, c->channels, c->sample_fmt, (uint8_t*)audS->GetAudioSampleData(),m_frame->nb_samples*byte_per_sample*c->channels, 0);
               //ret = avcodec_fill_audio_frame(&frame, c->channels, c->sample_fmt, t_buff,frame.nb_samples*byte_per_sample*c->channels, 0);
               if(ret != 0)
               {
                   PRINT_MSG("Avcodec Fill Audio Failed ")
               }
               else
               {
                   got_packet = 0;
                   ret = avcodec_encode_audio2(c, &pkt, m_frame, &got_packet);
                   if(ret < 0 || got_packet == 0)
                   {
                       PRINT_MSG("failed to encode audio ")    
                   }
                   else
                   {
                       PRINT_MSG("Audio Packet Encoded ");
                       aud_pts_in++;
                       pkt.pts = aud_pts_in;
                       pkt.dts = pkt.pts;
                       pkt.stream_index = m_out_aud_strm->index;

                       ret = av_interleaved_write_frame(oc, &pkt);
                       if(ret != 0)
                       {
                           PRINT_MSG("Error Write Audio PKT ")    
                       }
                       else
                       {
                           PRINT_MSG("Audio PKT Writen ")    
                       }
                   }
                }
           }
           avcodec_flush_buffers(c);
        //   avcodec_free_frame(&frame);
        }

        av_free_packet(&pkt);
    }

    Thanks,
    Pradeep

  • avfilter/vf_corr : for all zero returns zero score instead of 1

    3 décembre 2023, par Paul B Mahol
    avfilter/vf_corr : for all zero returns zero score instead of 1
    
    • [DH] libavfilter/vf_corr.c
  • libavcodec avcodec_open2 returns -22

    28 juillet 2012, par buchtak

    I am trying to learn how to encode video using libavcodec library. I use the following initialization :

    avcodec_register_all();

    // This works fine.
    AVCodec *avcodec = avcodec_find_encoder( CODEC_ID_H264 );

    AVCodecContext *avctx = avcodec_alloc_context3( avcodec );
    avctx->bit_rate      = 400000;
    avctx->width         = 640;
    avctx->height        = 480;
    avctx->time_base.den = 15;
    avctx->time_base.num = 1;
    avctx->gop_size      = 10;
    avctx->max_b_frames  = 1;
    avctx->pix_fmt       = PIX_FMT_YUV420P;
    av_opt_set( avctx->priv_data, "preset", "slow", 0 );

    // ret should be zero, but it's negative
    int ret = avcodec_open2( avctx, avcodec, NULL );

    However, avcodec_open2(...) always returns a negative value. The avcodec_find_encoder(...) works fine and the returned pointer is not NULL. I use Win7 x64, 64-bit Zeranoe FFmpeg build from

    http://ffmpeg.zeranoe.com/builds/

    According to the readme the FFmpeg version is 2012-06-22 git-c17808c built with --enable-libx264. I also tried CODEC_ID_MPEG1VIDEO and changing some of the initialization parameters, but no matter what I do, the avcodec_open2(...) always returns value -22. The decoding/encoding example provided with the Zeranoe build (it's the same one as http://ffmpeg.org/doxygen/trunk/api-example_8c-source.html) does not work either...