libfaac: ввод в очередь задним числом

Я использую libav вместе с libfaac для кодирования аудио в aac. следующая логика:

frames[n]
i = 0 ;
while (there are frames)
{ 
  cur_frame =  frames[i];
  av_encode_audio(frame, ...., &frame_finished);
  if( frame_finished )
  {
     i++;
  }
}

но я получаю это досадное предупреждение за несколько кадров "ввод в очередь задним числом!"

1 ответ

Решение

Ответ очень прост: вы не должны снова передавать тот же кадр в libfaac, поэтому даже если frame_finished не равен 1, вы все равно должны перейти к следующему кадру.

это должно быть следующим:

frames[n]
i = 0 ;
while (there are frames)
{ 
  cur_frame =  frames[i];
  av_encode_audio(frame, ...., &frame_finished);
  i++;
}
Другие вопросы по тегам