私はAndroid用のffmpegに基づいたオーディオデコーダーを書いています。そこではaacオーディオをデコードする必要がありますが、何らかの理由で常にデコードされた0バイトを返します。
私はすべてを正しく通過するように見えます。私の場合、何がうまくいかなかったのか誰か教えてもらえますか?ffplay.cからコードをコピーしました。avcodec_decode_audio3関数が常にゼロを返す理由は何ですか?
これがffplay.cからのコードです:
AVPacket *pkt_temp = &is->audio_pkt_temp;
AVPacket *pkt = &is->audio_pkt;
AVCodecContext *dec= is->audio_st->codec;
int n, len1, data_size;
double pts;
data_size = sizeof(is->audio_buf1);
len1 = avcodec_decode_audio3(dec, (int16_t *)is->audio_buf1, &data_size, pkt_temp);
if (len1 < 0) {
pkt_temp->size = 0;
break;
}
if (data_size <= 0){
//This block always gets executed.
continue;
}