This fixes a long-standing issue where running FATE in parallel could result
in the terminal being left misconfigured, particularly if a test failed or
was canceled wtih ^C.
Rodger Combs [Wed, 5 Oct 2016 11:38:24 +0000 (06:38 -0500)]
lavf/utils: avoid using programs for duration when there's only one
This allows us to be more selective about the streams we derive durations from
(specifically, ignoring text streams with outlier end times) in the common case
Burt P [Wed, 5 Oct 2016 17:52:56 +0000 (12:52 -0500)]
af_hdcd: disable auto-convert by default
As all known valid HDCD sample formats and sample rates are now handled
by the filter, remove the scan that "invades the privacy" of the filter graph
and turn off autoconvert by default as requested by Nicolas George.
Burt P [Sun, 2 Oct 2016 07:25:13 +0000 (02:25 -0500)]
af_hdcd: add experimental 20 and 24-bit decoding support
I don't have any legitimate 20 or 24-bit HDCD to test. It is known
that the PM Model Two would insert packets into 20 and 24-bit output,
but I have no idea what differences in behavior existed when decoding
20 or 24-bit. For now, as with 16-bit, PE (if enabled) will expand the
top 3dB into 9dB and LLE (gain adjust) will be applied if signaled.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Josh de Kock <josh@itanimul.li> Signed-off-by: James Almer <jamrial@gmail.com>
configure: add linker export script support on Darwin
This isn't a "version script" in the usual sense, since it doesn't set symbol
versions directly. Instead, the version for the whole .dylib is set in the
linker flags, and we generate a list of symbol patterns to export. This allows
us to keep our local symbols (e.g. ff_*) local on the platform.
The Darwin linker's exported_symbols_list format is a bit different than the
one used by the GNU linker. It doesn't handle local symbols at all, since when
a list is provided, all unlisted symbols are local by default; thus, we remove
local sections. It doesn't handle per-version sections, so we remove the
headers and brackets. It expects symbols to be prefixed with an underscore.
It errors if a listed symbol with no wildcards is not present in the output,
so we append an asterisk to any symbol that doesn't already end in one.
Josh de Kock [Sat, 1 Oct 2016 01:27:37 +0000 (02:27 +0100)]
doc/t2h: use container
Full width text is really difficult to read, this makes it more
more legible on larger (widescreen) screens. It also means we aren't
inventing our own container instead of using the bootstrap one.
There is really no need for two aac wrappers, we already have
libfdk-aac which is better. Not to mention that faac doesn't
even support HEv1, or HEv2. It's also under a license which is
unusable for distribution, so it would only be useful to people
who will compile their own ffmpeg, only use it themselves (which
at that point should just use fdk-aac).
wm4 [Sat, 1 Oct 2016 15:22:15 +0000 (17:22 +0200)]
ffmpeg: use new decode API
This is a bit messy, mainly due to timestamp handling.
decode_video() relied on the fact that it could set dts on a flush/drain
packet. This is not possible with the old API, and won't be. (I think
doing this was very questionable with the old API. Flush packets should
not contain any information; they just cause a FIFO to be emptied.) This
is replaced with checking the best_effort_timestamp for AV_NOPTS_VALUE,
and using the suggested DTS in the drain case.
The modified tests (fate-cavs and others) still fails due to dropping
the last frame. This happens because the timestamp of the last frame
goes backwards (ffprobe -show_frames shows the same thing). I suspect
that this "worked" due to the best effort timestamp logic picking the
DTS over the decreasing PTS. Since this logic is in libavcodec (where
it probably shouldn't be), this can't be easily fixed. The timestamps
of the cavs samples are weird anyway, so I chose not to fix it.
Another strange thing is the timestamp handling in the video path of
process_input_packet (after the decode_video() call). It looks like
the code to increase next_dts and next_pts should be run every time
a frame is decoded - but it's needed even if output is skipped.
wm4 [Sat, 1 Oct 2016 15:22:02 +0000 (17:22 +0200)]
ffmpeg: move subframe warning to libavcodec
With the new decode API, doing this in ffmpeg.c is impractical. There
was resistance against removing the warning, so put it into libavcodec.
Not bothering with reducing the warning to verbose log level for
subsequent wanrings. The warning should be rare, and only happen when
developing new codecs for the old API.
Includes a change suggested by Michael Niedermayer.
Steven Liu [Wed, 28 Sep 2016 08:09:05 +0000 (16:09 +0800)]
avformat/hlsenc: support mkdir_p for use_localtime_mkdir
when use use_localtime_mkdir to create multi level dir,
ffmpeg give error message:
ffmpeg -re -i ~/Movies/objectC/facebook.mp4 -c copy -use_localtime 1
-use_localtime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d/%s.ts'
out.m3u8
error message:
Could not create directory 20160926/file-20160926 with use_localtime_mkdir
add mkdir_p for support the multi level dir
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Tested-by: Zuo Genyu <1515161258@qq.com> (Windows) Signed-off-by: Steven Liu <lingjiujianke@gmail.com>
Moritz Barsnick [Tue, 27 Sep 2016 12:21:49 +0000 (14:21 +0200)]
ffmpeg_vaapi: fix choice of decoder_format
The check could previously never evaluate to true, probably due to
a typo.
Reported-By: Mihai Chindea <mihai.chindea@uti.eu.com> Signed-off-by: Moritz Barsnick <barsnick@gmx.net> Tested-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Steven Liu [Wed, 28 Sep 2016 10:12:38 +0000 (18:12 +0800)]
doc/muxers: fix hlsenc options examples error
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Moritz Barsnick <barsnick@gmx.net> Signed-off-by: Steven Liu <lingjiujianke@gmail.com> Signed-off-by: Lou Logan <lou@lrcd.com>
James Almer [Wed, 28 Sep 2016 20:14:33 +0000 (17:14 -0300)]
doc/codecs.texi: fix and expand color related options
Found-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
Jan Ekström [Tue, 27 Sep 2016 23:14:23 +0000 (02:14 +0300)]
movenc: use similar logic to DASH when writing bit rate to ISML
This way, in case of bit rate not being set, max_bitrate will be
used instead. This enables, for example, re-using max_bitrate
information from the input or doing transcoding with a rate
control mode that is not bit rate based.
Signed-off-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>