lib/ffmpeg/DetectFilterFormat: return AudioFormat::Undefined() on EAGAIN
This commit is contained in:
@@ -62,8 +62,14 @@ DetectFilterOutputFormat(const AudioFormat &in_audio_format,
|
||||
frame.Unref();
|
||||
|
||||
err = av_buffersink_get_frame(&buffer_sink, frame.get());
|
||||
if (err < 0)
|
||||
if (err < 0) {
|
||||
if (err == AVERROR(EAGAIN))
|
||||
/* one sample was not enough input data for
|
||||
the given filter graph */
|
||||
return AudioFormat::Undefined();
|
||||
|
||||
throw MakeFfmpegError(err, "av_buffersink_get_frame() failed");
|
||||
}
|
||||
|
||||
const SampleFormat sample_format = FromFfmpegSampleFormat(AVSampleFormat(frame->format));
|
||||
if (sample_format == SampleFormat::UNDEFINED)
|
||||
|
@@ -35,6 +35,9 @@ namespace Ffmpeg {
|
||||
* between.
|
||||
*
|
||||
* This function can throw if the FFmpeg filter fails.
|
||||
*
|
||||
* @return the output format or AudioFormat::Undefined() if it was not
|
||||
* possible to determine the format
|
||||
*/
|
||||
AudioFormat
|
||||
DetectFilterOutputFormat(const AudioFormat &in_audio_format,
|
||||
|
Reference in New Issue
Block a user