[FFmpeg-devel] [PATCH v3] lavc: convert frame threading to the receive_frame() pattern

Timo Rothenpieler timo at rothenpieler.org
Fri Dec 9 15:09:45 EET 2022


On 07/12/2022 23:22, Michael Niedermayer wrote:
> On Wed, Dec 07, 2022 at 02:20:23PM +0100, Timo Rothenpieler wrote:
>> From: Anton Khirnov <anton at khirnov.net>
>>
>> Reorganize the code such that the frame threading code does not call the
>> decoders directly, but instead calls back into the generic decoding
>> code. This avoids duplicating the logic that wraps the decoder
>> invocation and will be useful in the following commits.
>> ---
>>   libavcodec/decode.c        |  57 +++++----
>>   libavcodec/decode.h        |   7 +
>>   libavcodec/internal.h      |   7 +
>>   libavcodec/pthread_frame.c | 256 ++++++++++++++++++++++++-------------
>>   libavcodec/thread.h        |  18 +--
>>   5 files changed, 222 insertions(+), 123 deletions(-)
> 
> This breaks on arm (probably lack of pthread support) in this env
> 
> libavcodec/libavcodec.a(decode.o): In function `decode_receive_frame_internal':
> arm/src/libavcodec/decode.c:616: undefined reference to `ff_thread_receive_frame'
> arm/src/libavcodec/decode.c:616: undefined reference to `ff_thread_receive_frame'
> collect2: error: ld returned 1 exit status
> Makefile:131: recipe for target 'ffprobe_g' failed
> make: *** [ffprobe_g] Error 1

Probably just missing an #if somewhere.
Why does arm not support pthreads though?
Or is that just this specific configuration?


More information about the ffmpeg-devel mailing list