ffmpeg-rockchip/doc
wm4 ddef3d902f avformat, ffmpeg: deprecate old rotation API
The old "API" that signaled rotation as a metadata value has been
replaced by DISPLAYMATRIX side data quite a while ago.

There is no reason to make muxers/demuxers/API users support both. In
addition, the metadata API is dangerous, as user tags could "leak" into
it, creating unintended features or bugs.

ffmpeg CLI has to be updated to use the new API. In particular, we must
not allow to leak the "rotate" tag into the muxer. Some muxers will
catch this properly (like mov), but others (like mkv) can add it as
generic tag. Note applications, which use libavformat and assume the
old rotate API, will interpret such "rotate" user tags as rotate
metadata (which it is not), and incorrectly rotate the video.

The ffmpeg/ffplay tools drop the use of the old API for muxing and
demuxing, as all muxers/demuxers support the new API. This will mean
that the tools will not mistakenly interpret per-track "rotate" user
tags as rotate metadata. It will _not_ be treated as regression.

Unfortunately, hacks have been added, that allow the user to override
rotation by setting metadata explicitly, e.g. via

  -metadata:s:v:0 rotate=0

See references to trac #4560. fate-filter-meta-4560-rotate0 tests this.
It's easier to adjust the hack for supporting it than arguing for its
removal, so ffmpeg CLI now explicitly catches this case, and essentially
replaces the "rotate" value with a display matrix side data. (It would
be easier for both user and implementation to create an explicit option
for rotation.)

When the code under FF_API_OLD_ROTATE_API is disabled, one FATE
reference file has to be updated (because "rotate" is not exported
anymore).

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2017-03-27 13:20:27 +02:00
..
doxy Merge commit '257f00ec1a' 2016-06-22 11:28:51 +02:00
examples Merge commit '9833a406d3' 2017-01-31 17:35:41 +01:00
.gitignore Merge commit '257f00ec1a' 2016-06-22 11:28:51 +02:00
APIchanges avformat, ffmpeg: deprecate old rotation API 2017-03-27 13:20:27 +02:00
authors.texi
bitstream_filters.texi doc/bitstream_filters: Fix project name after merge 2017-03-26 19:17:30 +02:00
bootstrap.min.css
build_system.txt Merge commit '48362ceade' 2016-04-17 19:36:59 +01:00
codecs.texi doc: document cutoff option to ac3 and adjust the option's global documentation 2016-12-31 17:20:06 +01:00
decoders.texi cosmetics: fix some misspelled words 2016-07-17 13:10:27 -03:00
default.css
demuxers.texi doc: Add muxers/demuxers list option 2017-02-11 02:59:32 +01:00
developer.texi doc/developer: Mention mime type and patchwork in "Submitting patches" 2016-10-11 23:20:56 +02:00
devices.texi
doxy-wrapper.sh doc: make apidoc output independent of SRC_PATH 2016-01-02 12:11:36 +01:00
Doxyfile doc: fix spelling errors 2016-10-21 23:58:47 +02:00
encoders.texi doc/encoders: mention valid values for compression_level when using FLAC encoder 2017-03-03 13:49:26 -03:00
errno.txt doc/errno: fix description typo for ENAMETOOLONG 2015-12-18 04:04:14 +01:00
faq.texi faq: use relative links to own documentation 2016-10-23 11:55:53 +02:00
fate.texi Merge commit '963b3ab11f' 2017-03-19 18:34:48 +01:00
fate_config.sh.template
ffmpeg-bitstream-filters.texi
ffmpeg-codecs.texi
ffmpeg-devices.texi
ffmpeg-filters.texi
ffmpeg-formats.texi
ffmpeg-protocols.texi
ffmpeg-resampler.texi
ffmpeg-scaler.texi
ffmpeg-utils.texi
ffmpeg.texi Merge commit '043b0b9fb1' 2017-03-24 11:40:35 +01:00
ffmpeg.txt
ffplay.texi ffplay: allow borderless playback windows 2017-02-01 22:03:26 +01:00
ffprobe.texi Avoid using the term "file" and prefer "url" in some docs and comments 2016-12-05 21:30:12 +01:00
ffprobe.xsd lavf: add AV_DISPOSITION_TIMED_THUMBNAILS 2016-10-24 05:47:05 -05:00
ffserver.conf lavc: remove libfaac wrapper 2016-10-01 19:58:04 +01:00
ffserver.texi
fftools-common-opts.texi doc: Add muxers/demuxers list option 2017-02-11 02:59:32 +01:00
filter_design.txt
filters.texi add signature filter for MPEG7 video signature 2017-03-21 00:11:08 +01:00
formats.texi avformat: Add max_streams option 2016-12-08 18:25:30 +01:00
general.texi avcodec: add XPM decoder and demuxer 2017-03-12 18:24:49 +01:00
git-howto.texi Merge commit '41ed7ab45f' 2016-06-21 21:55:34 +02:00
indevs.texi avdevice/decklink: new option 'format_code' to set video format by fourCC 2017-03-22 02:07:50 +01:00
issue_tracker.txt doc/issue_tracker.txt: various updates 2015-12-11 11:33:29 -09:00
lexicon doc: add a lexicon 2017-02-03 15:03:44 +01:00
libav-merge.txt Merge commit '6d5636ad9a' 2017-03-24 12:33:25 +01:00
libavcodec.texi
libavdevice.texi
libavfilter.texi
libavformat.texi
libavutil.texi
libswresample.texi
libswscale.texi
Makefile doc/examples: build http_multiclient example 2016-09-30 19:35:52 +02:00
metadata.texi
mips.txt
multithreading.txt
muxers.texi doc/muxers: cleanup mpegts section 2017-03-16 12:01:15 -08:00
nut.texi Merge commit '41ed7ab45f' 2016-06-21 21:55:34 +02:00
optimization.txt Merge commit '2ec9fa5ec6' 2017-03-21 14:29:52 -03:00
outdevs.texi avdevice/decklink_enc: add support to specify field order 2017-02-26 22:47:33 +01:00
patchwork doc/patchwork: Document the patchwork states 2016-10-26 19:46:00 +02:00
platform.texi doc: fix various typos and grammar errors 2016-10-11 16:57:46 +02:00
print_options.c
protocols.texi doc/protocols: add option usage description 2017-02-13 12:23:03 -09:00
rate_distortion.txt
resampler.texi swresample/options: enable linear_interp and exact_rational by default 2017-03-17 00:08:03 +07:00
scaler.texi doc/scaler: mention default scaling algorithm 2017-01-09 12:58:25 -09:00
snow.txt fix some a/an typos 2016-03-28 14:13:17 -08:00
style.min.css
swresample.txt
swscale.txt cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
t2h.init doc/t2h: use container 2016-10-03 00:16:27 +01:00
t2h.pm doc/t2h: use container 2016-10-03 00:16:27 +01:00
tablegen.txt
texi2pod.pl doc: escape left brace in texi2pod.pl regex 2016-07-10 13:34:57 +02:00
texidep.pl
utils.texi avutil/eval: add atan2 function 2017-01-30 11:04:31 +01:00
writing_filters.txt