avcodec: export motion vectors in frame side data on demand

Multimedia / FFmpeg - Clément Bœsch [stupeflix.com] - 18 August 2014 07:13 UTC

The reasoning behind this addition is that various third party applications are interested in getting some motion information out of a
video "for free" when it is available.

It was considered to export other information as well (such as the intra information about the block, or the quantization) but the structure might have ended up into a half full-generic, half full of codec specific cruft. If more information is necessary, it should either be added in the "flags" field of the AVMotionVector structure, or in another side-data.

This commit also includes an example exporting them in a CSV stream.

b0352b1 avcodec: export motion vectors in frame side data on demand
.gitignore | 1 +
configure | 2 +
doc/APIchanges | 3 +
doc/Makefile | 1 +
doc/codecs.texi | 3 +
doc/examples/Makefile | 1 +
doc/examples/extract_mvs.c | 185 ++++++++++++++++++++++++++++++++++++++++++++
libavcodec/avcodec.h | 1 +
libavcodec/mpegvideo.c | 103 +++++++++++++++++++++++-
libavcodec/options_table.h | 1 +
libavutil/Makefile | 1 +
libavutil/frame.c | 1 +
libavutil/frame.h | 7 ++
libavutil/motion_vector.h | 50 ++++++++++++
libavutil/version.h | 2 +-
15 files changed, 360 insertions(+), 2 deletions(-)

  • Share