[FFmpeg-devel] [PATCH] avfilter: initial macroblock types export and visualization

Michael Niedermayer michael at niedermayer.cc
Wed Nov 8 13:06:52 EET 2017


On Thu, Nov 02, 2017 at 12:04:17PM -0400, Ronald S. Bultje wrote:
> Hi,
> 
> On Thu, Nov 2, 2017 at 7:52 AM, Paul B Mahol <onemda at gmail.com> wrote:
> 
> > On 11/2/17, Michael Niedermayer <michael at niedermayer.cc> wrote:
> > > Hi
> > >
> > > On Sat, Oct 28, 2017 at 07:43:05AM -0400, Ronald S. Bultje wrote:
> > >> Hi,
> > >>
> > >> On Fri, Oct 27, 2017 at 10:14 PM, Michael Niedermayer <
> > >> michael at niedermayer.cc> wrote:
> > >>
> > >> > On Fri, Oct 27, 2017 at 10:03:54PM +0200, Paul B Mahol wrote:
> > >> > > Signed-off-by: Paul B Mahol <onemda at gmail.com>
> > >> > > ---
> > >> > >  libavcodec/mpegvideo.c     |  10 +++++
> > >> > >  libavfilter/vf_codecview.c | 105 ++++++++++++++++++++++++++++++
> > >> > +++++++++++++++
> > >> > >  libavutil/frame.h          |   4 ++
> > >> > >  3 files changed, 119 insertions(+)
> > >> >
> > >> > First, thanks for working on this.
> > >> >
> > >> >
> > >> > [...]
> > >> >
> > >> > > diff --git a/libavutil/frame.h b/libavutil/frame.h
> > >> > > index fef558ea2f..8481dc080b 100644
> > >> > > --- a/libavutil/frame.h
> > >> > > +++ b/libavutil/frame.h
> > >> > > @@ -141,6 +141,10 @@ enum AVFrameSideDataType {
> > >> > >       * metadata key entry "name".
> > >> > >       */
> > >> > >      AV_FRAME_DATA_ICC_PROFILE,
> > >> > > +    /**
> > >> > > +     * Macroblock types exported by some codecs.
> > >> > > +     */
> > >> > > +    AV_FRAME_DATA_MACROBLOCK_TYPES,
> > >> > >  };
> > >> > >
> > >> >
> > >> > This makes the internal data of the decoder part of the ABI and API of
> > >> > libavcodec and libavfilter
> > >> > and its undocumented
> > >> >
> > >> > do people prefer to make the internal data part of the ABI, document
> > >> > it and ensure it does not change till the next bump
> > >> >
> > >> [..]
> > >>
> > >> > or is there some other option iam missing ?
> > >> >
> > >>
> > >> I noted this on IRC also. A third option is to not document it and
> > >> consider
> > >> it codec-specific.
> > >>
> > >> (Codec-specific implies "ABI/API unstable" and subject to change -
> > "don't
> > >> mix versions".)
> > >
> > > If you say the interface is "ABI/API unstable" then we cannot use it
> > > from another lib like libavfilter. So this would not work.
> >
> > I disagree.
> 
> 
> I'd like to speak in solutions, not problems. We can simply prepend a
> version number to the flags and ensure versions match. That makes it easy
> to break "ABI" (and if versions don't match, simply display an error
> message and tell the user to not mix versions since this is considered an
> unstable feature).
> 
> By no means can we set the current ABI of this feature in stone, we're
> trying to fix it, not keep it. I appreciate Paul's effort to moving this
> forward and think his work pushes it in the right direction.

How does this "versioned", "codec specific" API/ABI fit together with the
carefully designed strict API used by the same filter to access motion
vectors (libavutil/motion_vector.h)
?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171108/d7445972/attachment.sig>


More information about the ffmpeg-devel mailing list