avformat/hlsenc: fix incomplete write of subtitle HLS playlist
This patch is a fix for the bug with ticket number 5812
(https://trac.ffmpeg.org/ticket/5812).
Basically, the bug is that the last segment and the "#EXT-X-ENDLIST"
tag are not being written to the subtitle playlist file when
converting a file with subtitles to the HLS format. The reason for
this seem to be that the filename for the subtitle file is being freed
too early. This solution is simply to free that memory after it's last
use in the "hls_window" function.
Signed-off-by: Franklin Phillips <franklinphillips9p8@inbox.lv> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
vf_colorspace: Allow overriding input color properties
The filter needs input frames with color properties filled out by
the decoder. Since this is not always possible, add input options to
the filter so that user may override color space, color primaries,
transfer characteristics, and color range, as well as a generic option
to set all properties at once.
For some reason, when compiling with gcc-asan and a recent enough gcc
version(seen on 5.3+ so far), linking dlopen works without -ldl, but
dlsym fails with:
undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
So this patchs checks for both dlopen and dlsym to work for determining
if -ldl is needed.
Michael Graczyk [Thu, 1 Sep 2016 18:17:30 +0000 (11:17 -0700)]
libavcodec/opus: Add channel mapping 2 to extradata parser
This allows libavcodec/opus to demux ambisonics in an ogg/opus container.
Channel mapping family 2 is being added in this standards track IETF draft:
tools.ietf.org/html/draft-ietf-codec-ambisonics-00
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Mark Thompson [Wed, 31 Aug 2016 19:48:45 +0000 (20:48 +0100)]
lavu/timestamp: Avoid C++-unfriendly code in user header
Including this header in a C++11 program (inside extern "C") will
throw an error because it looks like a user-defined literal. Add a
space between the two tokens to avoid the problem.
Erkki Seppälä [Wed, 31 Aug 2016 11:35:44 +0000 (14:35 +0300)]
avformat/movenc: added ability to use original stream ids as track ids instead of regenerating them
Sometimes it's useful to be able to define the exact track numbers in
the generated track, instead of always beginning at track id 1. Using
the option use_stream_ids_as_track_ids now copies the use stream ids
to track ids. Dynamically generated tracks (ie. tmcd) have their track
numbers defined as continuing from the highest numbered stream id.
Signed-off-by: Erkki Seppälä <erkki.seppala.ext@nokia.com> Signed-off-by: OZOPlayer <OZOPL@nokia.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Steven Liu [Tue, 30 Aug 2016 09:26:54 +0000 (17:26 +0800)]
avformat/hlsenc: add warning for append_list and hls_init_time option
When use append_list mode, the hls_init_time set nouse,
Because the append_list only support append at the old m3u8 end
cannot set init segments durations at the middle of the list.
That's invalid. and show a warning message for user.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Simon Hailes [Tue, 30 Aug 2016 08:40:14 +0000 (09:40 +0100)]
avformat/crypto: add seeking support on read
cyrpto allows reading of data which has been aes-128-cbc encrypted given a key and an iv. But it did not handle filetypes which require seeking... e.g. it failed on an encrypted .mp4 file.
prior to this modification, the transcode would fail.
Note also: crypto previously maked both reads and writes as streamed, which caused the whole file
to be read before the transcode started. Now, for read only, if the underlying layer is not marked as streamed,
then crypto is not. This should enable efficient reading of encrypted containers which require seeking.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
A number of new pix_fmts have been added to AviSynth+:
16-bit packed RGB and RGBA
10-, 12-, 14, and 16-bit YUV 4:2:0, 4:2:2, and 4:4:4
8-, 10-, 12-, 14-, and 16-bit Planar RGB
8-, 10-, 12-, 14-, and 16-bit Planar YUVA and Planar RGBA*
10-, 12-, 14-, and 16-bit GRAY variants*
32-bit floating point Planar YUV(A), Planar RGB(A), and GRAY*
*some of which are not currently available pix_fmts here and were
not added to the demuxer due to this
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Thomas Hebb [Sun, 28 Aug 2016 16:24:55 +0000 (12:24 -0400)]
avformat/mov: aax: pass proper AVClass to av_log()
av_log() expects its first parameter to be a pointer to a struct whose
first element is a pointer to an AVClass. In what I can only imagine is
a typo, one call to av_log() in the AAX decryption code instead passes
a pointer to an AVSHA struct, which doesn't even contain a pointer as
its first element, much less a pointer to an AVClass. Change the call to
pass the current MOVContext, as surrounding calls do.
The incorrect AVClass was causing mpv to emit the warning "av_log
callback called with bad parameters" when playing an .aax file.
Signed-off-by: Thomas Hebb <tommyhebb@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
As Nvidia has put the most recent Video Codec SDK behind a double
registration wall, of which one needs manual approval of a lenghty
application, bundling this header saves everyone trying to use NVENC
from that headache.
The header is still MIT licensed and thus fine to bundle with ffmpeg.
Not bundling this header would get ffmpeg stuck at SDK v6, which is
still freely available, holding back future development of the NVENC
encoder.
Vittorio Giovara [Thu, 25 Aug 2016 23:14:58 +0000 (19:14 -0400)]
vf_colorspace: Add support for full range yuv
Whenever a full range video is input, since the YUVJ* formats are not
listed as supported for this filter, a range reduction takes place
through the auto-inserted format filter, forcing the conversion to
operate on a limited range,
However the filter handles full range videos perfectly fine, so adding
support to YUVJ* formats will allow skipping a conversion step, while
providing completely identical results.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Burt P [Mon, 22 Aug 2016 22:34:35 +0000 (17:34 -0500)]
af_hdcd: for easier maintenance alongside libhdcd
Mostly just re-arranges some code to make it easier to update this
filter and libhdcd together. filter_frame() is much simpler as a
result.
* use the HDCD detection data structure and functions from libhdcd,
moved detection code out of filter_frame()
* moved analyze_mode preparation out of filter_frame() into
hdcd_analyze_prepare(), from libhdcd
* moved some macro definitions to the top so they are all together
Derek Buitenhuis [Thu, 25 Aug 2016 15:58:14 +0000 (16:58 +0100)]
mov: Remove ancient heuristic hack
This breaks files with legitimate single-entry edit lists,
and the hack, introduced in f03a081df09f9c4798a17d7e24446ed47924b11b,
has no link to any known sample in its commit message.
Steven Liu [Thu, 25 Aug 2016 12:40:17 +0000 (05:40 -0700)]
tests/audiomatch: Fix compile warning
Making sure bestpos is initialized to zero to prevent gcc from kvetching.
It's harmless (although it's not obvious that it's harmless)
from code inspection:
tests/audiomatch.c: In function ‘main’:
tests/audiomatch.c:40: warning: ‘bestpos’ may be used uninitialized in this function
Thanks to Moritz Barsnick for first bringing this to the attention.
Signed-off-by: LiuQi <liuqi@gosun.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>