[FFmpeg-devel] [PATCH v3] Add avpriv_slicethread_create2() and avpriv_slicethread_execute2(), make execute() and execute2() return FFMIN() of thread return codes

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Sep 26 17:28:14 EEST 2022


Tomas Härdin:
> mån 2022-09-26 klockan 15:58 +0200 skrev Andreas Rheinhardt:
>> Tomas Härdin:
>>> diff --git a/libswscale/swscale_internal.h
>>> b/libswscale/swscale_internal.h
>>> index abeebbb002..50e73c86fa 100644
>>> --- a/libswscale/swscale_internal.h
>>> +++ b/libswscale/swscale_internal.h
>>> @@ -306,7 +306,7 @@ typedef struct SwsContext {
>>>  
>>>      AVSliceThread      *slicethread;
>>>      struct SwsContext **slice_ctx;
>>> -    int                *slice_err;
>>> +    attribute_deprecated int *slice_err; ///< @deprecated Not used
>>> any more. Removing it would require a bunch of asm to be rewritten.
>>>      int              nb_slice_ctx;
>>>  
>>>      // values passed to current sws_receive_slice() call
>>
>> What asm would need to be rewritten?
> 
> swscale.c:
>         /* yuv2gbrp uses the SwsContext for yuv coefficients
>            if struct offsets change the asm needs to be updated too */
>         av_assert0(offsetof(SwsContext, yuv2rgb_y_offset) == 40292);
> 
> 
>> Anyway, we don't deprecate internal fields; if we have to keep them
>> around for ABI compatibility, we wrap them in #if
>> LIBFOO_VERSION_MAJOR <
>> BAR.
> 
> It's not actually an API/ABI issue but an asm issue
> 

It seems to me that this is the only such issue that affects this patch.
If you modified line 583 of libswscale/x86/output.asm as well as the
assert, you could remove slice_err. (But let James confirm this.)

- Andreas



More information about the ffmpeg-devel mailing list