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++;
  }
}

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


person Harit Vishwakarma    schedule 28.02.2014    source источник


Ответы (1)


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

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

frames[n]
i = 0 ;
while (there are frames)
{ 
  cur_frame =  frames[i];
  av_encode_audio(frame, ...., &frame_finished);
  i++;
}
person Harit Vishwakarma    schedule 28.02.2014