lavu/frame: add QP side data
authorwm4 <nfxjfg@googlemail.com>
Thu, 1 Mar 2018 14:57:01 +0000 (15:57 +0100)
committerwm4 <nfxjfg@googlemail.com>
Sun, 18 Mar 2018 11:36:24 +0000 (12:36 +0100)
commit4b86ac27a017ccd1d166f0bdd38c08720c561f7d
tree3ea45580ee0063a44dc2c2e76413dd6bda564c95
parent36855abc0eb96d5caa992304f3417a0f8a62960c
lavu/frame: add QP side data

This adds a way for an API user to transfer QP data and metadata without
having to keep the reference to AVFrame, and without having to
explicitly care about QP APIs. It might also provide a way to finally
remove the deprecated QP related fields. In the end, the QP table should
be handled in a very similar way to e.g. AV_FRAME_DATA_MOTION_VECTORS.

There are two side data types, because I didn't care about having to
repack the QP data so the table and the metadata are in a single
AVBufferRef. Otherwise it would have either required a copy on decoding
(extra slowdown for something as obscure as the QP data), or would have
required making intrusive changes to the codecs which support export of
this data.

The new side data types are added under deprecation guards, because I
don't intend to change the status of the QP export as being deprecated
(as it was before this patch too).
doc/APIchanges
libavutil/frame.c
libavutil/frame.h
libavutil/version.h
tests/ref/fate/exif-image-embedded
tests/ref/fate/exif-image-jpg