Hi Michael, I hope you are doing well,

> On Apr 16, 2019, at 4:03 PM, Michael Niedermayer <mich...@niedermayer.cc> 
> wrote:
> 
> Signed PGP part
> On Wed, Apr 10, 2019 at 06:54:53PM -0300, James Almer wrote:
>> On 4/10/2019 6:26 PM, Baptiste Coudurier wrote:
>>>> On Apr 9, 2019, at 6:27 PM, James Almer <jamr...@gmail.com> wrote:
>>>> 
>>>> On 4/9/2019 9:40 PM, Baptiste Coudurier wrote:
>>>>> 
>>>>>> On Apr 9, 2019, at 5:24 PM, James Almer <jamr...@gmail.com> wrote:
>>>>>> 
>>>>>> On 4/9/2019 8:59 PM, Baptiste Coudurier wrote:
>>>>>>> 
>>>>>>>> On Apr 9, 2019, at 4:51 PM, James Almer <jamr...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>> On 4/9/2019 8:22 PM, Baptiste Coudurier wrote:
>>>>>>>>> Hi James,
>>>>>>>>> 
>>>>>>>>>> On Apr 9, 2019, at 4:09 PM, James Almer <jamr...@gmail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>>> […]
>>>>>>>>>> 
>>>>>>>>>> Ok so, the only fields you need from the sps are 
>>>>>>>>>> constraint_set_flags,
>>>>>>>>>> frame_mbs_only_flag, bit_depth_luma, profile_idc, level_idc and sar,
>>>>>>>>>> meaning you don't even need to parse the sps until the very end (sar 
>>>>>>>>>> is
>>>>>>>>>> the furthest value, and right at the beginning of vui_parameters).
>>>>>>>>>> I'd very much prefer if we can avoid making
>>>>>>>>>> ff_h264_decode_seq_parameter_set() avpriv and with it H264ParamSets 
>>>>>>>>>> part
>>>>>>>>>> of the ABI, so i think it's worth copying the required bitstream 
>>>>>>>>>> parsing
>>>>>>>>>> code at least until the beginning of vui_parameters. It was done for
>>>>>>>>>> hevc and av1, so it can be done for h264 as well.
>>>>>>>>> 
>>>>>>>>> Since vui parsing is needed, that would be the entire 
>>>>>>>>> "ff_h264_decode_seq_parameter_set()” function.
>>>>>>>> 
>>>>>>>> If you only need up to sar, then yo don't need to parse the entire VUI.
>>>>>>> 
>>>>>>> It still requires copying the entire 
>>>>>>> ff_h264_decode_seq_parameter_set(), even though the sub functions are 
>>>>>>> not needed.
>>>>>>> 
>>>>>>>>> 
>>>>>>>>> I disagree with the copying. I also disagree with the copying for 
>>>>>>>>> AVC1 and HEVC btw.
>>>>>>>> 
>>>>>>>> Using avpriv opens a whole can of worms that will be unpredictable in
>>>>>>>> the future. Just look at recent commits like
>>>>>>>> f4ea930a119298c6110ee4e3d24219a66e27e230 that started storing 
>>>>>>>> previously
>>>>>>>> skipped values. If hevc_pc was made avpriv for isombff/matroska muxing
>>>>>>>> purposes and its structs part of the ABI, this wouldn't have been
>>>>>>>> possible until a major bump.
>>>>>>> 
>>>>>>> When did the sharing policy between avformat and avcodec (in the sense 
>>>>>>> avformat using avcodec) change ?
>>>>>>> It seems perfectly natural to me to have libavformat require the 
>>>>>>> libavcodec version that it was compiled with,
>>>>>>> and check it at runtime.
>>>>>> 
>>>>>> More than one ffmpeg release will ship with libavcodec/libavformat
>>>>>> sharing the same soname. Backwards compatibility is expected, hence the
>>>>>> split between major, minor and micro, as you're meant to be able to drop
>>>>>> a newer libavcodec library, say for example ffmpeg 4.1's
>>>>>> libavcodec.58.so, and it should work with an existing libavformat.so.58
>>>>>> that was linked against ffmpeg 4.0's libavcodec.58.so.
>>>>> 
>>>>> Sorry to repeat the question but when did that change ?
>>>> 
>>>> I don't know if it ever changed to being with. It's been like this for
>>>> as long as i remember, and i don't recall inter-library version checks
>>>> that would take minor and micro into consideration (which would be
>>>> needed to truly tie a given libavformat library with the exact
>>>> libavcodec it was linked to) whereas ABI backwards compatibility
>>>> considerations for inter-library stuff can be seen all across the
>>>> codebase and git history.
>>> 
>>> It definitely changed, probably around the introduction of “avpriv” prefix.
>> 
>> I think that predates my arrival to the project. Someone else will have
>> to chime in...
> 
> it possibly changed from "we dont care / we didnt think about it" in the
> distant past, iam not sure its very long ago.
> But strange interdependancies on minor/micro versions that are outside
> the established rules (https://semver.org/ <https://semver.org/>)
> can cause surprises and problems to for example packagers for distros.
> So i suggest to stay close to what most users of the libs / packagers do
> expect and whould causes the least problems and surprise …

Actually I just saw this:
WARNING: library configuration mismatch
From fftools/cmdutils.c line 1117 from 2010 it seems

So we did care about warning about it since we added this code.

I still believe we should enforce libavcodec version inside libavformat,
but that will be another topic.

—
Baptiste




Attachment: signature.asc
Description: Message signed with OpenPGP

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to