avcodec_encode_audio2在C ++ FFMPEG中失败,错误代码为-22

时间:2014-06-16 13:41:40

标签: c++ ffmpeg

我有以下代码来编码音频流,一切似乎都正常工作,直到我到达avcodec_encode_audio2函数,我失败了-22错误代码,我不知道错误代码是什么意思。我确认已分配了pFrame和out_fmt_ctx。有没有人知道问题可能是什么?

提前致谢!

while( res = av_read_frame( pFormatCtx, &packet ) >=0 )
{
   if ( packet.stream_index == audioStream )
   {
  avcodec_get_frame_defaults(pFrame);
      ret = avcodec_decode_audio4(dec_ctx, pFrame, &got_frame, &packet);

      if (ret < 0) 
      {
     return ret;
  }

      /* Set frame pts */
      pFrame->pts = av_frame_get_best_effort_timestamp(pFrame);

      if (got_frame) 
      {

         AVPacket audioEncodedPacket;
         av_init_packet(&audioEncodedPacket);


         ret = avcodec_encode_audio2(out_fmt_ctx->streams[0]->codec, 
                                     &audioEncodedPacket, 
                                     pFrame, &got_packet);

         if ( ret < 0 )
         {
            //THIS IS WHERE I AM GOING WITH ERROR -22
         }
      }
 ...... // more code
 }

0 个答案:

没有答案