1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00
Commit Graph

542 Commits

Author SHA1 Message Date
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
Michael Niedermayer
d79d8ef927 cmdutils: remove duplicate windows.h include
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-16 15:06:16 +01:00
Steven Liu
acd87dfc05 cmdutils: add show_demuxers and show_muxers
add -muxers and -demuxers parameters to list the dexmuers and muxers

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-08 01:56:31 +01:00
Moritz Barsnick
3e5d27d7a7 cmdutils: fix typos
Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-09 20:09:00 +02:00
Clément Bœsch
5ef1959080 ffmpeg: switch to the new BSF API
This commit is initially largely based on commit 4426540 from Anton
Khirnov <anton@khirnov.net> and two following fixes (80fb19b and
fe7b21c) which were previously skipped respectively in 98e3153, c9ee36e,
and 7fe7cdc.

mpeg4-bsf-unpack-bframes FATE reference is updated because the bsf
filter now actually fixes the extradata (mpeg4_unpack_bframes_init()
changing one byte is now honored on the output extradata).

The FATE references for remove_extra change because the packet flags
were wrong and the keyframes weren't marked, causing the bsf relying on
these proprieties to not actually work as intended.

The following was fixed by James Almer:

The filter option arguments are now also parsed correctly.

A hack to propagate extradata changed by bitstream filters after the
first av_bsf_receive_packet() call is added to maintain the current
behavior. This was previously done by av_bitstream_filter_filter() and
is needed for the aac_adtstoasc bsf.

The exit_on_error was not being checked anymore, and led to an exit
error in the last frame of h264_mp4toannexb test. Restoring this
behaviour prevents erroring out. The test is still changed as a result
due to the badly filtered frame now not being written after the failure.

Signed-off-by: Clément Bœsch <u@pkh.me>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-24 14:25:53 -03:00
Clément Bœsch
955b818cf9 ffmpeg: switch to codecpar
This commit is largely based on commit 15e84ed3 from Anton Khirnov
<anton@khirnov.net> which was previously skipped in bbf5ef9d.

There are still a bunch of things raising codecpar related warnings that
need fixing, such as:
- the use of codec->debug in the interactive debug mode
- read_ffserver_streams(): it's probably broken now but there is no test
- lowres stuff
- codec copy apparently required by bitstream filters

The matroska references are updated because they now properly forward
the field_order (previously unknown, now progressive).

Thanks to James Almer for fixing a bunch of FATE issues in this commit.

Signed-off-by: Clément Bœsch <clement@stupeflix.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-21 15:39:28 +02:00
Tobias Rapp
a648391896 cmdutils: fix implicit declaration of SetDllDirectory function
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-08-29 19:52:39 -03:00
Hendrik Leppkes
3bf142c773 cmdutils: remove the current working directory from the DLL search path on win32
Reviewed-by: Matt Oliver <protogonoi@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-08 18:36:55 +02:00
Paul B Mahol
956fed377b cmdutils: realign for some additional filters with very long name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-06 12:48:51 +01:00
Timothy Gu
006d3e97fc cosmetics: Fix weird indentations 2015-12-07 10:43:43 -08:00
Reynaldo H. Verdejo Pinochet
21fbc41214 cmdutils: use version accessor macros
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-06 20:27:40 -08:00
Ganesh Ajjanagadde
92e483f8ed all: use FFDIFFSIGN to resolve possible undefined behavior in comparators
FFDIFFSIGN was created explicitly for this purpose, since the common
return a - b idiom is unsafe regarding overflow on signed integers. It
optimizes to branchless code on common compilers.

FFDIFFSIGN also has the subjective benefit of being easier to read due
to lack of ternary operators.

Tested with FATE.

Things not covered by this are unsigned integers, for which overflows
are well defined, and also places where overflow is clearly impossible,
e.g an instance where the a - b was being done on 24 bit values.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-03 16:28:30 -05:00
Hendrik Leppkes
fe41f28c3a Merge commit 'fe66671bd5f446f8d0a9c70968ba8fe891efe028'
* commit 'fe66671bd5f446f8d0a9c70968ba8fe891efe028':
  cmdutils: Check for and report the correct codec capability

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:06:30 +01:00
Vittorio Giovara
fe66671bd5 cmdutils: Check for and report the correct codec capability 2015-10-25 22:47:13 +01:00
Hendrik Leppkes
93ac7a98e0 Merge commit '9ef748173a4e0e58d40afaf38397783cd2537eaa'
* commit '9ef748173a4e0e58d40afaf38397783cd2537eaa':
  cmdutils: Print general codec capabilities

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 22:57:21 +02:00
Hendrik Leppkes
0ad43d0f15 Merge commit 'e240a28b20680b326a39b0860fda37d7e459bfc0'
* commit 'e240a28b20680b326a39b0860fda37d7e459bfc0':
  cmdutils: Add auto to threading capabilities report

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-16 22:46:23 +02:00
Vittorio Giovara
9ef748173a cmdutils: Print general codec capabilities 2015-10-15 15:47:08 +02:00
Vittorio Giovara
e240a28b20 cmdutils: Add auto to threading capabilities report
And use 'none' when such capabilities are not set.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-10-15 15:43:21 +02:00
Ganesh Ajjanagadde
254c64c574 cmdutils: silence unused warnings under --disable-swscale, --disable-swresample
This patch silences such warnings by placing initializations under a header guard,
see e.g
http://fate.ffmpeg.org/log.cgi?time=20150919095430&log=compile&slot=x86_64-archlinux-gcc-disableswscale,
http://fate.ffmpeg.org/log.cgi?time=20150919095048&log=compile&slot=x86_64-archlinux-gcc-disableswresample
for examples of such warnings.
It also has the benefit of placing library specific #defines next to each other.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-03 19:26:09 +02:00
Michael Niedermayer
a0af9fd954 cmdutils: Filter dst/srcw/h
Dimensions / pixel formats for scaling must be set through the -s / pix_fmt options
or the scale / format filters. Otherwise there are mismatches between whet is
in/output to the scaler and for what the scaler is configured

Fixes Ticket4856

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 21:25:40 +02:00
Andreas Cadhalpun
9c29aa7143 ffmpeg: replace deprecated av_log_ask_for_sample with av_log
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-12 00:14:13 +02:00
Andreas Cadhalpun
9126ae4b6b use avfilter_pad_get_{type,name} accessor functions
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-08 21:59:02 +02:00
Michael Niedermayer
5edab1d207 cmdutils: remove sws_opts usage, simplify code
It has become unused as all code was switched to AVDictionary

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 16:51:25 +02:00
Michael Niedermayer
408c9cf0e2 cmdutils: Fix overriding flags on the command line.
Previously the code just appended the strings of flags which
worked with "+bitexact" but would not work with something like "0"

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 14:58:38 +02:00
Michael Niedermayer
165fb7eba8 cmdutils: Export all sws options using a AVDictionary like the other subsystems do
This makes extracting options other than sws_flags easier

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 13:24:52 +02:00
Michael Niedermayer
444e9874a7 Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
  lavc: AV-prefix all codec capabilities

Conflicts:
	cmdutils.c
	ffmpeg.c
	ffplay.c
	libavcodec/8svx.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/adpcm.c
	libavcodec/alac.c
	libavcodec/atrac3plusdec.c
	libavcodec/bink.c
	libavcodec/dnxhddec.c
	libavcodec/dvdec.c
	libavcodec/dvenc.c
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c
	libavcodec/fic.c
	libavcodec/flacdec.c
	libavcodec/flacenc.c
	libavcodec/flvdec.c
	libavcodec/fraps.c
	libavcodec/frwu.c
	libavcodec/gifdec.c
	libavcodec/h261dec.c
	libavcodec/hevc.c
	libavcodec/iff.c
	libavcodec/imc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libvo-aacenc.c
	libavcodec/libvorbisenc.c
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c
	libavcodec/mpegaudiodec_float.c
	libavcodec/msmpeg4dec.c
	libavcodec/mxpegdec.c
	libavcodec/nvenc_h264.c
	libavcodec/nvenc_hevc.c
	libavcodec/pngdec.c
	libavcodec/qpeg.c
	libavcodec/ra288.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/sp5xdec.c
	libavcodec/takdec.c
	libavcodec/tiff.c
	libavcodec/tta.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/vp6.c
	libavcodec/vp9.c
	libavcodec/wavpack.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Vittorio Giovara
def97856de lavc: AV-prefix all codec capabilities
Express bitfields more simply.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Michael Niedermayer
edd110ee45 Merge commit 'bd2ab27c488ae92c7820efe11d4f53d84e94d58e'
* commit 'bd2ab27c488ae92c7820efe11d4f53d84e94d58e':
  avconv: use read_file() for reading the 2pass stats

Conflicts:
	cmdutils.c
	cmdutils.h
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 13:33:44 +02:00
Anton Khirnov
bd2ab27c48 avconv: use read_file() for reading the 2pass stats
Also, drop the now unused cmdutils_read_file(). There is no reason to
have two functions doing essentially the same thing.
2015-07-19 09:37:11 +02:00
wm4
1316df7aa9 lavu: add an API function to return the Libav version string
This returns something like "v12_dev0-1332-g333a27c". This is much more
useful than the individual library versions, of which there are too
many, and which are very hard to map back to releases or git commits.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-07-02 23:22:53 +02:00
Michael Niedermayer
66f4b1e9c4 cmdutils: Fix sign error in display matrix auto-rotation code
This makes the sample from Ticket4560 behave consistently with either branch

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-18 02:07:34 +02:00
Michael Niedermayer
876c89a88f cmdline: Check options array for not working flag combinations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-09 13:07:21 +02:00
Michael Niedermayer
36993527dd cmdutils: Add libm.h for round()
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 11:51:00 +02:00
James Almer
858f81fde2 cmdutils: move get_rotation() up in the file
Fixes compilation of fftools without libavdevice

Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-05 02:47:21 -03:00
Michael Niedermayer
f320f2f4c6 cmdutils: Ask for a sample in case a odd rotation angle is encountered
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-04 17:39:23 +02:00
Michael Niedermayer
4351c288b9 ffplay&cmdutils:Factor get_rotation() code out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 23:49:16 +02:00
Michael Niedermayer
8e8219e0f0 Merge commit 'c253340ae6f74ffd8798bbd476e46d1b33a2d56e'
* commit 'c253340ae6f74ffd8798bbd476e46d1b33a2d56e':
  log: Introduce a more verbose debug level

Conflicts:
	doc/APIchanges
	doc/fftools-common-opts.texi
	libavutil/log.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 02:48:19 +02:00
Vittorio Giovara
c253340ae6 log: Introduce a more verbose debug level
And deprecate av_dlog macro.
2015-04-19 12:41:59 +01:00
Lou Logan
d1a8922098 cmdutils: indent protocols listing
For readability.

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-19 02:05:22 +02:00
Lou Logan
44cae91252 cmdutils: fix "Commmand" typo
Signed-off-by: Lou Logan <lou@lrcd.com>
2015-04-03 10:43:21 -08:00
Luca Barbato
342fc46c69 cmdutils: Add a stream specifier to map usable streams
It drops everything that cannot be used for re-encoding and/or
streamcopy.
2015-03-20 16:10:20 +01:00
Jean Delvare
194165aed8 cmdutils: fix success path
Since commit 934f2d2f5c,
cmdutils_read_file() prints a confusing message on success:

IO error: Success

This is because the error message is printed on the success path as
well. Add the missing condition so that it is only printed on error.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Cc: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-11 17:28:11 +01:00
Andreas Cadhalpun
103e4c5863 stop embedding the build date
Theis makes the build binary reproducible.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-02 05:04:14 +01:00
Lukasz Marek
f463df18bc cmdutils: use av_match_name to filter devices
Device name may be coma-separated list.
Use dedicated funtion to compare.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-01-11 18:58:33 +01:00
Lukasz Marek
44e6eeb30d cmdutils: use helper functions for listing sinks/sources
List device callback must be able to return valid list without opening device.
This callback should return input values for open function, not vice-versa.
Read header funtion is very likey to fail without proper configuration provided.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2015-01-11 18:58:33 +01:00
Michael Niedermayer
d2838f09d6 cmdutils.c: Use av_realloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-06 17:52:54 +01:00
Michael Niedermayer
369b4cd412 cmdutils: Use 64bit for file size/offset related variable in cmdutils_read_file()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-06 15:27:17 +01:00
Johan Andersson
3e16065221 cmdutils: update copyright year to 2015.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-04 13:22:25 +02:00
Michael Niedermayer
988d27b802 Merge commit 'b1306823d0b3ae998c8e10ad832004eb13bdd93e'
* commit 'b1306823d0b3ae998c8e10ad832004eb13bdd93e':
  check memory errors from av_strdup()

Conflicts:
	avprobe.c
	libavformat/matroskaenc.c
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-19 04:57:25 +01:00
Michael Niedermayer
934f2d2f5c Merge commit '38129c26c51b933d7db423f904ba0cd6a88ca1ed'
* commit '38129c26c51b933d7db423f904ba0cd6a88ca1ed':
  cmdutils: check file access functions return values

Conflicts:
	cmdutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-19 04:31:17 +01:00