[x265] [ANN] New Release v4.0

Andrey Semashev andrey.semashev at gmail.com
Sun Sep 15 21:34:27 UTC 2024


On 9/16/24 00:04, Andrey Semashev wrote:
> On 9/15/24 23:37, Brad Smith wrote:
>> On 2024-09-15 1:31 p.m., Andrey Semashev wrote:
>>> This release crashes in libheif tests:
>>>
>>> https://bitbucket.org/multicoreware/x265_git/issues/952/crash-in-libheif-tests
>>
>> It's not even viewable.
> 
> It is on my end. Is there some sort of approval needed to make the issue
> publicly visible?

Just to make this issue visible if the issue is not viewable for some
reason, here's a short summary.

libx265 has changed the signature of the x265_encoder_encode function
and the x265_api::encoder_encode member. The last argument used to be a
pointer to x265_picture and became x265_picture** (a pointer to the
array of pointers). It was acceptable to pass NULL for that argument in
past releases (which is what libheif is doing), but now this argument is
required to be non-NULL - it must point to an array of pointers, where
the elements may be NULL.

The problem is that this change does not cause compile or linking
errors, as you can pass literal NULL in both interfaces - it'll compile
but will crash with libx265 4.0. Furthermore, since
x265_api::encoder_encode member changed signature, this means that the
x265_api mechanism for maintaining ABI compatibility is broken. Code
that was compiled with pre-4.0 headers and relying on x265_api to
maintain ABI compatibility will crash with 4.0.



More information about the x265-devel mailing list