我有以下代码来编码音频流,一切似乎都正常工作,直到我到达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
}