[FFmpeg-devel] [PATCH 1/2] avcodec/h264_parse: change prefix to avpriv for usage in avformat mxf muxer

Baptiste Coudurier baptiste.coudurier at gmail.com
Wed Apr 10 01:22:21 EEST 2019


Hi James, I hope you are doing well


> On Apr 3, 2019, at 6:59 AM, James Almer <jamrial at gmail.com> wrote:
> 
> On 4/3/2019 9:25 AM, Baptiste Coudurier wrote:
>> Hey Hendrik
>> 
>>> On Apr 3, 2019, at 11:37 AM, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
>>> 
>>> On Wed, Apr 3, 2019 at 11:22 AM Baptiste Coudurier
>>> <baptiste.coudurier at gmail.com> wrote:
>>>> 
>>>> ---
>>>> libavcodec/cbs_h2645.c             | 28 ++++++++++++++--------------
>>>> libavcodec/extract_extradata_bsf.c |  4 ++--
>>>> libavcodec/h2645_parse.c           |  6 +++---
>>>> libavcodec/h2645_parse.h           |  6 +++---
>>>> libavcodec/h264_parse.c            |  4 ++--
>>>> libavcodec/h264_parser.c           |  4 ++--
>>>> libavcodec/h264_ps.c               |  4 ++--
>>>> libavcodec/h264_ps.h               |  4 ++--
>>>> libavcodec/h264_slice.c            |  2 +-
>>>> libavcodec/h264data.c              |  2 +-
>>>> libavcodec/h264data.h              |  3 ++-
>>>> libavcodec/h264dec.c               | 10 +++++-----
>>>> libavcodec/hevc_parse.c            |  2 +-
>>>> libavcodec/hevc_parser.c           |  4 ++--
>>>> libavcodec/hevcdec.c               |  4 ++--
>>>> libavcodec/svq3.c                  |  2 +-
>>>> 16 files changed, 45 insertions(+), 44 deletions(-)
>>>> 
>>> 
>>> We prefer not to expose huge modules like this as avpriv, as it makes
>>> it part of the ABI and as such impossible to change without
>>> deprecation cycles.
>>> Preferably, avpriv should be avoided entirely where possible, as it
>>> has many of the same limitations as actual public API, and just adds
>>> confusion.
>> 
>> Understood. What’s the alternative ?
> 
> One usual solution is adding an avpriv_ wrapper for the internal
> function, like avpriv_ac3_parse_header() is done for
> ff_ac3_parse_header(), which prevents internal structs from being part
> of the ABI. But ff_h2645_packet_split() and
> ff_h264_decode_seq_parameter_set() don't allow for that, seeing
> H264ParamSets, H2645Packet, H2645RBSP and H2645NAL are complex and tend
> to get changes every now and then. The last time was only a few months ago.
> 
> Other than what you're doing in your patch, the only solution i can
> think of is duplicating the functionality. It wouldn't be the first, as
> you can see in avc.c, hevc.c, av1.c, where bitstream parsing was
> implemented in a reduced form exclusively for muxing purposes.

All right, I changed the code to avoid using ff_h2645_packet_split() and I found “nal_unit_extract_rbsp” in libavformat :)
I don’t think duplicating ff_h264_decode_seq_parameter would be good though so I still changed the prefix to avpriv.

Let me know if that works.

Thanks!

—
Baptiste
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 484 bytes
Desc: Message signed with OpenPGP
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190409/7a578415/attachment.sig>


More information about the ffmpeg-devel mailing list