[FFmpeg-devel] [PATCH] avcodec/audiotoolboxenc: return EAGAIN if frame_queue.available is 0 and not at->eof

Steven Liu lq at chinaffmpeg.org
Tue Jun 28 18:55:58 EEST 2022



> 在 2022年6月28日,23:22,Jan Ekström <jeebjp at gmail.com> 写道:
> 
> On Tue, Jun 28, 2022 at 5:43 PM Steven Liu <lq at chinaffmpeg.org> wrote:
>> 
>> There will return success and failure after commit 7c05b7951cb47716230c95744240bc60ec5f9433.
>> But the AudioConverterFillComplexBuffer will return 1 and *got_packet_ptr is 0
>> when frame_queue.available == 0 and at->eof == 0. So should return EAGAIN here,
>> this because the encode function should return either 0 or negative error code.
>> 
> 
Hi jeeb,

> This mirrors what I noted to you on IRC.
> 
> Can you document what ret == 1 actually is?
> AudioConverterFillComplexBuffer documentation says it returns
> OSStatus, but with a quick look I can't see any AudioToolbox related
> errors in f.ex.
> https://www.osstatus.com/search/results?platform=all&framework=all&search=1
> .

The return value comes from the callback ffat_encode_callback,
> 
> If it is just equivalent of EAGAIN, then since there is no need to
> check for got_packet_ptr ?
> 
> In any case, with errors or special cases early exit should always be
> preferred. See an example @
> https://github.com/jeeb/ffmpeg/commits/audiotoolboxenc_return_codes .
> (this was originally quickly whipped up before I saw your patch, and
> thus does not take care of the EAGAIN case).
I think the solution from quink should be ok
"just return error code immediately when the failure of old way."
What about your opinion to the quinks suggestion?
> 
> Jan
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 

Thanks
Steven






More information about the ffmpeg-devel mailing list