ffmpeg.git
3 years agoescape124: reject codebook size 0
Andreas Cadhalpun [Tue, 8 Nov 2016 23:38:50 +0000 (00:38 +0100)]
escape124: reject codebook size 0

It causes a cb_depth of 32, leading to assertion failures in get_bits.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoicodec: add ico_read_close to fix leaking ico->images
Andreas Cadhalpun [Tue, 8 Nov 2016 22:54:41 +0000 (23:54 +0100)]
icodec: add ico_read_close to fix leaking ico->images

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoicodec: fix leaking pkt on error
Andreas Cadhalpun [Tue, 8 Nov 2016 22:53:52 +0000 (23:53 +0100)]
icodec: fix leaking pkt on error

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoMAINTAINERS: Add myself to flvenc
Steven Liu [Wed, 9 Nov 2016 00:36:02 +0000 (08:36 +0800)]
MAINTAINERS: Add myself to flvenc

Signed-off-by: Steven Liu <liuqi@gosun.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agompegts: prevent division by zero
Andreas Cadhalpun [Mon, 7 Nov 2016 22:37:59 +0000 (23:37 +0100)]
mpegts: prevent division by zero

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agomatroskadec: fix NULL pointer dereference in webm_dash_manifest_read_header
Andreas Cadhalpun [Mon, 7 Nov 2016 23:42:23 +0000 (00:42 +0100)]
matroskadec: fix NULL pointer dereference in webm_dash_manifest_read_header

The code assumes that s->streams[0] is valid.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoavcodec/hap: pass texture-compression destination as argument, not in context
Tom Butterworth [Mon, 7 Nov 2016 16:25:33 +0000 (16:25 +0000)]
avcodec/hap: pass texture-compression destination as argument, not in context

This allows a subsequent change to compress directly into the output packet when possible.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tom Butterworth <bangnoise@gmail.com>
3 years agoavformat/matroskadec: fix DiscardPadding element parsing
James Almer [Sat, 5 Nov 2016 20:46:52 +0000 (17:46 -0300)]
avformat/matroskadec: fix DiscardPadding element parsing

If the value is negative then it means padding at the start of the packet
instead of at the end.

Based on a patch by Hendrik Leppkes.

Reviewed-by: James Zern <jzern-at-google.com@ffmpeg.org>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoopus: move the entropy decoding functions to opus_rc.c
Rostislav Pehlivanov [Mon, 7 Nov 2016 22:33:11 +0000 (22:33 +0000)]
opus: move the entropy decoding functions to opus_rc.c

The intention is to have both encoding and decoding functions
in opus_rc.c.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
3 years agoopus: move all tables to a separate file
Rostislav Pehlivanov [Mon, 7 Nov 2016 21:48:16 +0000 (21:48 +0000)]
opus: move all tables to a separate file

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
3 years agoavformat/mov: Read multiple stsd from DV
Vittorio Giovara [Tue, 8 Nov 2016 03:32:05 +0000 (22:32 -0500)]
avformat/mov: Read multiple stsd from DV

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: use AVStream.codecpar in open_input_stream()
Reynaldo H. Verdejo Pinochet [Tue, 8 Nov 2016 09:34:58 +0000 (01:34 -0800)]
ffserver: use AVStream.codecpar in open_input_stream()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: user AVStream.codecpar in compute_status()
Reynaldo H. Verdejo Pinochet [Tue, 8 Nov 2016 09:07:14 +0000 (01:07 -0800)]
ffserver: user AVStream.codecpar in compute_status()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: use AVStream.codecpar in find_stream_in_feed()
Reynaldo H. Verdejo Pinochet [Tue, 8 Nov 2016 08:58:25 +0000 (00:58 -0800)]
ffserver: use AVStream.codecpar in find_stream_in_feed()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: get time_base from AVStream in print_stream_params()
Reynaldo H. Verdejo Pinochet [Tue, 8 Nov 2016 08:51:28 +0000 (00:51 -0800)]
ffserver: get time_base from AVStream in print_stream_params()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: use .codecpar instead of .codec in print_stream_params()
Reynaldo H. Verdejo Pinochet [Tue, 8 Nov 2016 08:49:43 +0000 (00:49 -0800)]
ffserver: use .codecpar instead of .codec in print_stream_params()

AVStream.codec is deprecated

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: check for codec match using AVStream.codecpar
Reynaldo H. Verdejo Pinochet [Tue, 8 Nov 2016 00:24:32 +0000 (16:24 -0800)]
ffserver: check for codec match using AVStream.codecpar

Compare using AVCodecParameters instead of the deprecated
AVStream.codec field

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agocmdutils: add show_demuxers and show_muxers
Steven Liu [Fri, 4 Nov 2016 12:20:25 +0000 (20:20 +0800)]
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>
3 years agoaacenc: quit when the audio queue reaches 0 rather than keeping track of empty frames
Rostislav Pehlivanov [Mon, 7 Nov 2016 02:11:50 +0000 (02:11 +0000)]
aacenc: quit when the audio queue reaches 0 rather than keeping track of empty frames

The libopus encoder does the same thing and its better than
keeping track of when the empty flush frames appear.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
3 years agoffserver: Fix one AVFormatContext misuse
Michael Niedermayer [Mon, 7 Nov 2016 17:42:50 +0000 (18:42 +0100)]
ffserver: Fix one AVFormatContext misuse

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agohls: fix leaking avio_opts on hls_read_header error
Andreas Cadhalpun [Mon, 7 Nov 2016 18:43:16 +0000 (19:43 +0100)]
hls: fix leaking avio_opts on hls_read_header error

Use the hls_close function to reduce code duplication.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agohls: move hls_close above hls_read_header
Andreas Cadhalpun [Sun, 6 Nov 2016 23:09:54 +0000 (00:09 +0100)]
hls: move hls_close above hls_read_header

This is needed for the following commit.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agompegaudio_parser: don't return AVERROR_PATCHWELCOME
Andreas Cadhalpun [Mon, 7 Nov 2016 00:16:14 +0000 (01:16 +0100)]
mpegaudio_parser: don't return AVERROR_PATCHWELCOME

The API does not allow returning AVERROR codes.

It triggers an assert in av_parser_parse2.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoffserver: steal SPACE_CHARS, remove one reason for internal.h that way
Michael Niedermayer [Fri, 28 Oct 2016 17:28:39 +0000 (19:28 +0200)]
ffserver: steal SPACE_CHARS, remove one reason for internal.h that way

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: eliminate hardcoded literal and duplicated array size
Michael Niedermayer [Fri, 28 Oct 2016 17:21:21 +0000 (19:21 +0200)]
ffserver: eliminate hardcoded literal and duplicated array size

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: use av_freep() for a case that is not clearly at the end of a function
Michael Niedermayer [Fri, 28 Oct 2016 17:16:48 +0000 (19:16 +0200)]
ffserver: use av_freep() for a case that is not clearly at the end of a function

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: Throw ffm.h out its not used except for a constant that is part of the...
Michael Niedermayer [Fri, 28 Oct 2016 16:36:53 +0000 (18:36 +0200)]
ffserver: Throw ffm.h out its not used except for a constant that is part of the format

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffserver: drop a bunch of apparently unneeded internal headers
Michael Niedermayer [Fri, 28 Oct 2016 16:32:36 +0000 (18:32 +0200)]
ffserver: drop a bunch of apparently unneeded internal headers

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/hls: Add missing error check for avcodec_parameters_copy()
Anssi Hannula [Sun, 6 Nov 2016 21:23:20 +0000 (23:23 +0200)]
avformat/hls: Add missing error check for avcodec_parameters_copy()

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
3 years agoavformat/hls: Fix probing mpegts audio streams that use probing
Anssi Hannula [Sat, 5 Nov 2016 16:05:31 +0000 (18:05 +0200)]
avformat/hls: Fix probing mpegts audio streams that use probing

Commit 04964ac311abe670f ("avformat/hls: Fix missing streams in some
cases with MPEG TS") caused a regression where subdemuxer streams that
use probing (e.g. dts/eac3/mp2 in mpegts) no longer get probed properly.

This is because the codec parameters from the subdemuxer stream, once
probed, are not passed on to the main stream.

Fix that by updating the codec parameters if the codec id changes.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
3 years agoavformat/hls: Factor copying stream info to a separate function
Anssi Hannula [Sat, 5 Nov 2016 16:04:00 +0000 (18:04 +0200)]
avformat/hls: Factor copying stream info to a separate function

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
3 years agoxmv: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 15:25:15 +0000 (17:25 +0200)]
xmv: validate sample_rate

AVCodecParameters.sample_rate is a signed integer, so
XMVAudioPacket.sample_rate should be, too.

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agovoc_packet: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 15:19:20 +0000 (17:19 +0200)]
voc_packet: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agooggparsespeex: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 15:12:49 +0000 (17:12 +0200)]
oggparsespeex: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agonuv: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 15:08:51 +0000 (17:08 +0200)]
nuv: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agomvdec: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 15:06:45 +0000 (17:06 +0200)]
mvdec: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agompeg4audio: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 15:03:04 +0000 (17:03 +0200)]
mpeg4audio: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Also check for errors from avpriv_mpeg4audio_get_config in
ff_mp4_read_dec_config_descr.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agomov: validate sidx timescale
Andreas Cadhalpun [Sun, 23 Oct 2016 14:48:01 +0000 (16:48 +0200)]
mov: validate sidx timescale

A negative timescale doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agomov: validate time_scale
Andreas Cadhalpun [Sun, 23 Oct 2016 14:38:52 +0000 (16:38 +0200)]
mov: validate time_scale

A negative timescale doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agomov: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 14:23:55 +0000 (16:23 +0200)]
mov: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

fate-aac-al07_96 fails if sample_rate == 0 is rejected in
ff_mov_read_stsd_entries.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoffmdec: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 14:05:01 +0000 (16:05 +0200)]
ffmdec: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agobfi: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 13:54:01 +0000 (15:54 +0200)]
bfi: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoadxdec: validate sample_rate
Andreas Cadhalpun [Sun, 23 Oct 2016 13:47:40 +0000 (15:47 +0200)]
adxdec: validate sample_rate

A negative sample rate doesn't make sense and triggers assertions in
av_rescale_rnd.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoavfilter/vf_drawtext: fixed default/flt formatting ignoring offset parameter
Alex Agranovsky [Mon, 26 Sep 2016 20:23:45 +0000 (16:23 -0400)]
avfilter/vf_drawtext: fixed default/flt formatting ignoring offset parameter

Signed-off-by: Alex Agranovsky <alex@sighthound.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/flvenc: support mp3 audio with 48khz
fuqiuping [Wed, 28 Sep 2016 14:47:47 +0000 (07:47 -0700)]
avformat/flvenc: support mp3 audio with 48khz

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/tcp: Put struct sockaddr_in6 under #if
Michael Niedermayer [Sun, 6 Nov 2016 20:10:24 +0000 (21:10 +0100)]
avformat/tcp: Put struct sockaddr_in6 under #if

Fixes: error: dereferencing pointer to incomplete type

Tested-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavfilter/af_volumedetect: Remove dependency on channel layout
Michael Niedermayer [Mon, 5 Sep 2016 19:42:31 +0000 (21:42 +0200)]
avfilter/af_volumedetect: Remove dependency on channel layout

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffmpeg: parameters for filter thread counts
DeHackEd [Sun, 30 Oct 2016 13:25:39 +0000 (09:25 -0400)]
ffmpeg: parameters for filter thread counts

Enables specifying how many threads are available to each filtergraph.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agodoc/libx26[45]: Add documentation for forced-idr
Derek Buitenhuis [Sun, 6 Nov 2016 13:46:30 +0000 (13:46 +0000)]
doc/libx26[45]: Add documentation for forced-idr

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolavf/mpegtsenc: write metadata descriptor for timed ID3 packets
Stefano Sabatini [Tue, 12 Apr 2016 16:16:21 +0000 (18:16 +0200)]
lavf/mpegtsenc: write metadata descriptor for timed ID3 packets

This is required since some programs are not able to correctly recognize
the metadata. See H.222, 2.6.58 Metadata pointer descriptor.

putstr8() is modified in order to allow to skip writing the string
length.

3 years agolavf/mpegtsenc: move putstr8 definition up
Stefano Sabatini [Tue, 12 Apr 2016 16:14:45 +0000 (18:14 +0200)]
lavf/mpegtsenc: move putstr8 definition up

This allows to use the function in a future commit.

3 years agoavformat/mux: remove unnecessary autobsf hack
James Almer [Fri, 23 Sep 2016 05:02:43 +0000 (02:02 -0300)]
avformat/mux: remove unnecessary autobsf hack

autobsf has been ported to the new bsf API.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavformat/framehash: also print channel layout as a string
James Almer [Wed, 28 Sep 2016 23:55:18 +0000 (20:55 -0300)]
avformat/framehash: also print channel layout as a string

This should be more useful for users since numerical values for channel
layout can be confusing and unintuitive.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoMAINTAINERS: Replace QSV maintainer
Michael Niedermayer [Sat, 5 Nov 2016 18:38:15 +0000 (19:38 +0100)]
MAINTAINERS: Replace QSV maintainer

Ivan has a shortage of time to take care of QSV, Mark agreed to take over.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavutil/softfloat_ieee754: make all functions inline
James Almer [Fri, 16 Sep 2016 02:05:29 +0000 (23:05 -0300)]
avutil/softfloat_ieee754: make all functions inline

Removes "defined but not used" warnings

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agomxfdec: fix NULL pointer dereference
Andreas Cadhalpun [Fri, 4 Nov 2016 23:17:53 +0000 (00:17 +0100)]
mxfdec: fix NULL pointer dereference

Metadata streams have priv_data set to NULL.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agolzf: update pointer p after realloc
Andreas Cadhalpun [Fri, 4 Nov 2016 21:58:49 +0000 (22:58 +0100)]
lzf: update pointer p after realloc

This fixes heap-use-after-free detected by AddressSanitizer.

Reviewed-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoavformat/tcp: workaround for IOS9 getaddrinfo in IPv6 only network use hardcode IPv4...
liu jc [Wed, 24 Aug 2016 10:46:41 +0000 (10:46 +0000)]
avformat/tcp: workaround for IOS9 getaddrinfo in IPv6 only network use hardcode IPv4 address can not resolve port number.

Signed-off-by: liujingchao <jcliu@outlook.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/rtpdec: Add support for 24 bit RTSP audio playback
Timur Aydin [Fri, 4 Nov 2016 22:15:44 +0000 (01:15 +0300)]
avformat/rtpdec: Add support for 24 bit RTSP audio playback

When ffplay is used to play from the RTSP URL that serves 24 bit audio
content, ffplay fails to recognize the audio codec format. The attached
patch adds support for playing 24 bit audio content over RTSP by
defining a dynamic payload handler for "L24".

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agofate: Remove show_formats for fate-mov-zombie test
Michael Niedermayer [Sat, 5 Nov 2016 14:25:44 +0000 (15:25 +0100)]
fate: Remove show_formats for fate-mov-zombie test

This includes the absolute path

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agofate: add zombie test
Michael Niedermayer [Sat, 5 Nov 2016 00:36:53 +0000 (01:36 +0100)]
fate: add zombie test

This test tests some odd sample with odd aspect ratio

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/nvenc.c: Use new safe dlopen code.
Matt Oliver [Sat, 29 Oct 2016 07:25:36 +0000 (18:25 +1100)]
avcodec/nvenc.c: Use new safe dlopen code.

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
3 years agoavformat/avisynth.c: Use new safe dlopen code.
Matt Oliver [Mon, 31 Oct 2016 03:30:43 +0000 (14:30 +1100)]
avformat/avisynth.c: Use new safe dlopen code.

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
3 years agoavutil/hwcontext_dxva.c: Use new safe dlopen code.
Matt Oliver [Sat, 29 Oct 2016 07:25:05 +0000 (18:25 +1100)]
avutil/hwcontext_dxva.c: Use new safe dlopen code.

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
3 years agocompat/w32dlfcn.h: Add safe win32 dlopen/dlclose/dlsym functions.
Matt Oliver [Sat, 29 Oct 2016 13:08:41 +0000 (00:08 +1100)]
compat/w32dlfcn.h: Add safe win32 dlopen/dlclose/dlsym functions.

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
3 years agoffmpeg: don't overwrite av_bsf_receive_packet return value before checking it
James Almer [Sat, 5 Nov 2016 03:04:27 +0000 (00:04 -0300)]
ffmpeg: don't overwrite av_bsf_receive_packet return value before checking it

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec/rawdec: check for side data before checking its size
James Almer [Fri, 4 Nov 2016 01:34:58 +0000 (22:34 -0300)]
avcodec/rawdec: check for side data before checking its size

Fixes valgrind warnings about usage of uninitialized values.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agofate: add bsf tests for ticket 5927
James Almer [Fri, 4 Nov 2016 20:38:53 +0000 (17:38 -0300)]
fate: add bsf tests for ticket 5927

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavformat/mux: split side data before internal auto BSF
Michael Niedermayer [Fri, 4 Nov 2016 12:43:45 +0000 (13:43 +0100)]
avformat/mux: split side data before internal auto BSF

The bitstream filters do not work with merged in side data

This leaves the input packet split if it is being split.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoRevert "avformat/mux: split side data earlier in av_write_frame and av_interleaved_wr...
James Almer [Sat, 5 Nov 2016 00:58:49 +0000 (21:58 -0300)]
Revert "avformat/mux: split side data earlier in av_write_frame and av_interleaved_write_frame"

This reverts commit fba2a8a254997e0db39a30438e96e5f3e44c669a.

The changes were right for av_write_frame() but not for av_interleaved_write_frame().
The following commit will fix this in a simpler way.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agolavf/movenc: Do not print an error when muxing gray8 rawvideo.
Carl Eugen Hoyos [Fri, 4 Nov 2016 23:41:16 +0000 (00:41 +0100)]
lavf/movenc: Do not print an error when muxing gray8 rawvideo.

This was fixed in 9a2778082121ea44d06a2f00f822ea99109c7fd8

3 years agodoc/examples: add fuzz target for individual ffmpeg APIs for in-process fuzzing with...
Thomas Garnier [Fri, 28 Oct 2016 21:02:21 +0000 (23:02 +0200)]
doc/examples: add fuzz target for individual ffmpeg APIs for in-process fuzzing with libFuzzer, AFL, and similar fuzzing engines.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/mux: split side data earlier in av_write_frame and av_interleaved_write_frame
James Almer [Fri, 4 Nov 2016 15:48:20 +0000 (12:48 -0300)]
avformat/mux: split side data earlier in av_write_frame and av_interleaved_write_frame

Similarly, merge it back before returning.

Fixes ticket #5927.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years agodiracdec: check return code of get_buffer_with_edge
Andreas Cadhalpun [Fri, 4 Nov 2016 18:00:17 +0000 (19:00 +0100)]
diracdec: check return code of get_buffer_with_edge

If it fails, buffers aren't allocated, causing NULL pointer dereferencing.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agodiracdec: clear slice_params_num_buf on allocation failure
Andreas Cadhalpun [Fri, 4 Nov 2016 18:00:01 +0000 (19:00 +0100)]
diracdec: clear slice_params_num_buf on allocation failure

Otherwise it can be non-zero next time decode_lowdelay is called, causing
slice_params_buf not to be allocated, leading to a NULL pointer dereference.

The problem was introduced in commit
dcad4677d637cd2f701917e38361fa96b8c9a418.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agodiracdec: use correct buffer for slice_params_buf realloc
Andreas Cadhalpun [Fri, 4 Nov 2016 17:59:31 +0000 (18:59 +0100)]
diracdec: use correct buffer for slice_params_buf realloc

This fixes a double-free detected by AddressSanitizer.

The problem was introduced in commit
dcad4677d637cd2f701917e38361fa96b8c9a418.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoavcodec/hap: consistent name for codec
Tom Butterworth [Fri, 4 Nov 2016 13:57:18 +0000 (13:57 +0000)]
avcodec/hap: consistent name for codec

"Vidvox Hap", not "Vidvox Hap encoder" or "Vidvox Hap decoder". Fixes
bad name in "ffmpeg -codecs", matches other codec naming.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
3 years agoqsvenc: do not re-execute encoding on all positive status codes
Anton Khirnov [Thu, 14 Jul 2016 10:52:20 +0000 (12:52 +0200)]
qsvenc: do not re-execute encoding on all positive status codes

It should only be done for DEVICE_BUSY/IN_EXECUTION

(cherry picked from commit 0956fd460681e8ccbdae19f135f0d3970bf95c2f)
Fixes ticket #5924.

3 years agolavf/mux: Add missing CR/LF to error messages.
Carl Eugen Hoyos [Fri, 4 Nov 2016 11:23:47 +0000 (12:23 +0100)]
lavf/mux: Add missing CR/LF to error messages.

3 years agoffmpeg: Warn if thousands of frames are duplicated.
Carl Eugen Hoyos [Thu, 3 Nov 2016 23:16:51 +0000 (00:16 +0100)]
ffmpeg: Warn if thousands of frames are duplicated.

Fixes ticket #5193.

3 years agoavfilter/af_firequalizer: add fft2 option
Muhammad Faiz [Thu, 3 Nov 2016 01:11:27 +0000 (08:11 +0700)]
avfilter/af_firequalizer: add fft2 option

2-channels convolution using complex fft
improves speed significantly

not sure if it should be enabled by default
so disable it by default

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
3 years agolibx265: Add option to force IDR frames
Derek Buitenhuis [Wed, 2 Nov 2016 14:37:25 +0000 (14:37 +0000)]
libx265: Add option to force IDR frames

This is in the same the same vein as c981b1145a857c8f962c93b8eecb1c613b20ffe9.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffmpeg: Fix bsf corrupting merged side data
Michael Niedermayer [Thu, 3 Nov 2016 13:55:56 +0000 (14:55 +0100)]
ffmpeg: Fix bsf corrupting merged side data

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/ac3dec: Check expacc
Michael Niedermayer [Thu, 3 Nov 2016 10:30:50 +0000 (11:30 +0100)]
avcodec/ac3dec: Check expacc

this is somewhat a magic number, which can be understood from reading section
"7.1.2 Exponent Strategy" of the ac3 specification, in short:
Three exponents each represented as number 0-4 are grouped together and
base-5 encoded, so the maximal correct value is 25*4 + 5*4 + 4 = 124.

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agolavd/xcbgrab: do not try to create refcounted packets.
Nicolas George [Sun, 23 Oct 2016 11:57:41 +0000 (13:57 +0200)]
lavd/xcbgrab: do not try to create refcounted packets.

The framework will allocate a buffer and copy the data to it,
that takes time. But it avoids constently creating and
destroyng the shared memory segment, and that saves more time.

On my setup,
from ~200 to ~300 FPS at full screen (1920×1200),
from ~1400 to ~3300 at smaller size (640×480),
similar to legacy x11grab and confirmed by others.

Plus, shared memory segments are a scarce resource,
allocating potentially many is a bad idea.

Note: if the application were to drop all references to the
buffer before the next call to av_read_frame(), then passing
the shared memory segment as a refcounted buffer would be
even more efficient, but it is hard to guarantee, and it does
not happen with the ffmpeg command-line tool. Using a small
number of preallocated buffers and resorting to a copy when
the pool is exhausted would be a solution to get the better
of both worlds.

3 years agolavf/mov.c: Use the first sidx for tracks without sidx.
Sasi Inguva [Wed, 26 Oct 2016 18:31:03 +0000 (11:31 -0700)]
lavf/mov.c: Use the first sidx for tracks without sidx.

According to spec ISO_IEC_15444_12 "For any media stream for which no segment index is present, referred to as non‐indexed stream, the media stream associated with the first Segment Index box in the segment serves as a reference stream in a sense that it also describes the subsegments for any non‐indexed media stream."

Signed-off-by: Sasi Inguva <isasi@google.com>
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agohevc: Move hevc_decode_extradata before frame decoding
Vittorio Giovara [Wed, 2 Nov 2016 15:48:57 +0000 (11:48 -0400)]
hevc: Move hevc_decode_extradata before frame decoding

Avoids a forward-declaration in the following commit.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoffmpeg: fix width/height overrides for sub2video processing
Hendrik Leppkes [Thu, 3 Nov 2016 15:20:59 +0000 (16:20 +0100)]
ffmpeg: fix width/height overrides for sub2video processing

3 years agoMerge commit '722ec3eb35bc152ce91d0a4502eca0df1c0086d0'
Hendrik Leppkes [Thu, 3 Nov 2016 13:53:58 +0000 (14:53 +0100)]
Merge commit '722ec3eb35bc152ce91d0a4502eca0df1c0086d0'

* commit '722ec3eb35bc152ce91d0a4502eca0df1c0086d0':
  avconv: decouple configuring filtergraphs and setting input parameters

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
3 years agoppc: pixblockdsp: do unaligned block accesses correctly again
Andreas Cadhalpun [Wed, 2 Nov 2016 20:28:49 +0000 (21:28 +0100)]
ppc: pixblockdsp: do unaligned block accesses correctly again

This was broken by the following Libav commit:
4c387c7 ppc: dsputil: do unaligned block accesses correctly

The following tests fail due to this:
fate-checkasm
fate-vsynth1-dnxhd-2k-hr-hq fate-vsynth1-dnxhd-edge1-hr
fate-vsynth1-dnxhd-edge2-hr fate-vsynth1-dnxhd-edge3-hr
fate-vsynth1-dnxhd-hr-sq-mov fate-vsynth1-dnxhd-hr-hq-mov
fate-vsynth2-dnxhd-2k-hr-hq fate-vsynth2-dnxhd-edge1-hr
fate-vsynth2-dnxhd-edge2-hr fate-vsynth2-dnxhd-edge3-hr
fate-vsynth2-dnxhd-hr-sq-mov fate-vsynth2-dnxhd-hr-hq-mov
fate-vsynth3-dnxhd-2k-hr-hq fate-vsynth3-dnxhd-edge1-hr
fate-vsynth3-dnxhd-edge2-hr fate-vsynth3-dnxhd-edge3-hr
fate-vsynth3-dnxhd-hr-sq-mov fate-vsynth3-dnxhd-hr-hq-mov

Fixes trac ticket #5508.

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agoavformat: close parser if codec changed
Andreas Cadhalpun [Mon, 17 Oct 2016 18:26:51 +0000 (20:26 +0200)]
avformat: close parser if codec changed

The parser depends on the codec and thus must not be used with a different one.
If it is, the 'avctx->codec_id == s->parser->codec_ids[0] ...' assert in
av_parser_parse2 gets triggered.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3 years agocrystalhd: Update high level description
Philip Langdale [Sun, 16 Oct 2016 21:14:52 +0000 (14:14 -0700)]
crystalhd: Update high level description

We don't need to document the horrible hacks that we removed.

3 years agocrystalhd: Simplify output frame handling
Philip Langdale [Sun, 16 Oct 2016 21:06:13 +0000 (14:06 -0700)]
crystalhd: Simplify output frame handling

The old code had to retain a partial frame across two calls in
the case of separate interlaced fields. Now, we know that we'll
get both fields within the same receive_frame call, and so we
don't need to manage the frame as private state any more.

3 years agocrystalhd: Loop for a frame internally where possible.
Philip Langdale [Wed, 12 Oct 2016 03:17:06 +0000 (20:17 -0700)]
crystalhd: Loop for a frame internally where possible.

It's not possible to return EAGAIN when we've passed input EOF and are
in draining mode. If do return EAGAIN, we're saying there's no way to
get any more output - which isn't true in many cases.

So let's handled these cases in an internal loop as best we can.

3 years agocrystalhd: Keep NOPTS_VALUE so we know it's not there.
Philip Langdale [Sat, 15 Oct 2016 19:44:32 +0000 (12:44 -0700)]
crystalhd: Keep NOPTS_VALUE so we know it's not there.

3 years agocrystalhd: Remove h.264 parser
Philip Langdale [Wed, 12 Oct 2016 04:00:17 +0000 (21:00 -0700)]
crystalhd: Remove h.264 parser

Now that we don't need to do ridiculous things to work out if a
frame is interlaced or not, we don't need an extra h.264 parser.

3 years agocrystalhd: We don't need the track the last picture number anymore
Philip Langdale [Sun, 16 Oct 2016 18:01:40 +0000 (11:01 -0700)]
crystalhd: We don't need the track the last picture number anymore

This was needed to detect an interlaced failure case that doesn't
happen with the new decode api.

3 years agocrystalhd: Remove trust_interlaced heuristic
Philip Langdale [Mon, 10 Oct 2016 03:54:27 +0000 (20:54 -0700)]
crystalhd: Remove trust_interlaced heuristic

It seems that without all the other 1:1 heuristics, we don't have
a fundamental problem trusting the interlaced flag on output
pictures. That's a relief.

3 years agocrystalhd: Revert back to letting hardware handle packed b-frames
Philip Langdale [Sat, 15 Oct 2016 22:50:29 +0000 (15:50 -0700)]
crystalhd: Revert back to letting hardware handle packed b-frames

I'm not sure why, but the mpeg4_unpack_bframes bsf is not
interacting well with seeking. Looking at the code, it should be
ok, with possibly one warning shown, but I see it getting stuck
for an extended period of time after a seek where a packed frame
is cached to be shown later.

So, I gave up on that and went back to making the old hardware
based path work. Turns out that it wasn't broken except that some
samples have a 6 byte drop packet which I wasn't accounting for.

Now it works again and seeks are good.

3 years agocrystalhd: Switch to new decode API and remove the insanity
Philip Langdale [Mon, 10 Oct 2016 03:46:38 +0000 (20:46 -0700)]
crystalhd: Switch to new decode API and remove the insanity

The new decode API allows for m:n decode patterns, which is what
you need to use this hardware in a sane way. There are so many
situations where 1:1 doesn't happen naturally that it's a miracle
I got it working as well as I did.

With this change, we can throw all of the crazy heuristics and
sleeps(!) out, and things work correctly.