[FFmpeg-devel] [PATCH 1/2] avformat/avformat: Move new field to the end of AVFrame

Hendrik Leppkes h.leppkes at gmail.com
Thu Jun 30 14:07:53 CEST 2016


On Thu, Jun 30, 2016 at 2:02 PM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> This fixes part of Ticket5676
> This fixes kodi, mpv, chromium and ffplay build against 3.0 and linked to 3.1
>
> This is a similar ABI fix to 1eb43af1a0e542ad83dcbf327197785d815fc42d
>
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>  libavformat/avformat.h |   22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
> index 876f1e3..818184e 100644
> --- a/libavformat/avformat.h
> +++ b/libavformat/avformat.h
> @@ -985,17 +985,6 @@ typedef struct AVStream {
>      int event_flags;
>  #define AVSTREAM_EVENT_FLAG_METADATA_UPDATED 0x0001 ///< The call resulted in updated metadata.
>
> -    /*
> -     * Codec parameters associated with this stream. Allocated and freed by
> -     * libavformat in avformat_new_stream() and avformat_free_context()
> -     * respectively.
> -     *
> -     * - demuxing: filled by libavformat on stream creation or in
> -     *             avformat_find_stream_info()
> -     * - muxing: filled by the caller before avformat_write_header()
> -     */
> -    AVCodecParameters *codecpar;
> -
>      /*****************************************************************
>       * All fields below this line are not part of the public API. They
>       * may not be used outside of libavformat and can be changed and
> @@ -1217,6 +1206,17 @@ typedef struct AVStream {
>       * Must not be accessed in any way by callers.
>       */
>      AVStreamInternal *internal;
> +
> +    /*
> +     * Codec parameters associated with this stream. Allocated and freed by
> +     * libavformat in avformat_new_stream() and avformat_free_context()
> +     * respectively.
> +     *
> +     * - demuxing: filled by libavformat on stream creation or in
> +     *             avformat_find_stream_info()
> +     * - muxing: filled by the caller before avformat_write_header()
> +     */
> +    AVCodecParameters *codecpar;
>  } AVStream;
>

I'm against this, this is a public field and should not be moved below
the private marker. It'll make people get confused about adoption of
the new API.
All fields below the private marker seem generally not very useful for
external code, which fields are being accessed by mpv, kodi, etc?

Is this patch actually required for them to work, or just the AVFrame one?

- Hendrik


More information about the ffmpeg-devel mailing list