]> git.sesse.net Git - ffmpeg/log
ffmpeg
6 years agolavf/dashdec: Do not use memcpy() to copy a struct.
Carl Eugen Hoyos [Wed, 18 Apr 2018 17:42:57 +0000 (19:42 +0200)]
lavf/dashdec: Do not use memcpy() to copy a struct.

Fixes a warning:
libavformat/dashdec.c:1900:65: warning: argument to 'sizeof' in 'memcpy' call is the same pointer type 'struct fragment *' as the destination; expected 'struct fragment' or an explicit length

6 years agolavf/qsv: clone the frame which may be managed by framework
Ruiling Song [Tue, 3 Apr 2018 01:50:20 +0000 (09:50 +0800)]
lavf/qsv: clone the frame which may be managed by framework

For filters based on framesync, the input frame was managed
by framesync, so we should not directly keep and destroy it,
instead we make a clone of it here, or else double-free will occur.
But for other filters not based on framesync, we still need to
free the input frame inside filter_frame.

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
6 years agolavf: make overlay_qsv work based on framesync
Ruiling Song [Tue, 3 Apr 2018 01:50:19 +0000 (09:50 +0800)]
lavf: make overlay_qsv work based on framesync

The existing version which was cherry-picked from Libav does not work
with FFmpeg framework, because ff_request_frame() was totally
different between Libav (recursive) and FFmpeg (non-recursive).
The existing overlay_qsv implementation depends on the recursive version
of ff_request_frame to trigger immediate call to request_frame() on input pad.
But this has been removed in FFmpeg since "lavfi: make request_frame() non-recursive."
Now that we have handy framesync support in FFmpeg, so I make it work
based on framesync. Some other fixing which is also needed to make
overlay_qsv work are put in a separate patch.

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
6 years agoavfilter: add deblock filter
Paul B Mahol [Tue, 17 Apr 2018 15:33:00 +0000 (17:33 +0200)]
avfilter: add deblock filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavformat/mov: Fix parsing of saio/siaz atoms in encrypted content.
Jacob Trimble [Thu, 7 Dec 2017 00:17:54 +0000 (16:17 -0800)]
avformat/mov: Fix parsing of saio/siaz atoms in encrypted content.

This doesn't support saio atoms with more than one offset.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/utils: refactor upstream_stream_timings
Aman Gupta [Thu, 19 Apr 2018 23:50:43 +0000 (16:50 -0700)]
avformat/utils: refactor upstream_stream_timings

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/utils: ignore outlier durations on subtitle/data streams as well
Aman Gupta [Thu, 19 Apr 2018 20:29:24 +0000 (13:29 -0700)]
avformat/utils: ignore outlier durations on subtitle/data streams as well

Similar to 4c9c4fe8b21, but for durations. This fixes #7151, where
the report duration and bitrate on a mpegts stream is wildly off
due to the dvb_teletext stream's timings.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/http: flushing tcp receive buffer when it is write only mode
Vishwanath Dixit [Wed, 4 Apr 2018 11:08:18 +0000 (16:38 +0530)]
avformat/http: flushing tcp receive buffer when it is write only mode

In write only mode, the TCP receive buffer's data keeps growing with
http response messages and the buffer eventually becomes full.
This results in zero tcp window size, which in turn causes unwanted
issues, like, terminated tcp connection. The issue is apparent when
http persistent connection is enabled in hls/dash live streaming use
cases. To overcome this issue, the logic here reads the buffer data
when a file transfer is completed, so that any accumulated data in
the recieve buffer gets flushed out.

6 years agoavformat/dashenc: change the hls version from 6 to 7
Steven Liu [Fri, 20 Apr 2018 03:29:35 +0000 (11:29 +0800)]
avformat/dashenc: change the hls version from 6 to 7

reference hls support fmp4 file from  draft-pantos-http-live-streaming-20
the spec describes version 7 of hls protocol

Suggested-by: Ronak <ronak2121@yahoo.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
6 years agolavf/http.c: Free allocated client URLContext in case of error.
Stephan Holljes [Fri, 12 Jan 2018 18:16:29 +0000 (19:16 +0100)]
lavf/http.c: Free allocated client URLContext in case of error.

Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavdevice/android_camera: Fix AVClass.version
Michael Niedermayer [Thu, 19 Apr 2018 21:44:33 +0000 (23:44 +0200)]
avdevice/android_camera: Fix AVClass.version

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec: Fix AVClass .version
Michael Niedermayer [Thu, 19 Apr 2018 21:44:13 +0000 (23:44 +0200)]
avcodec: Fix AVClass .version

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/sheervideodata: Fix libavutil include
Michael Niedermayer [Thu, 19 Apr 2018 21:34:11 +0000 (23:34 +0200)]
avcodec/sheervideodata: Fix libavutil include

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/sbc: Fix non static function prefix
Michael Niedermayer [Thu, 19 Apr 2018 21:32:07 +0000 (23:32 +0200)]
avcodec/sbc: Fix non static function prefix

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/opusenc_psy: Fix warning: ISO C90 forbids mixed declarations and code
Michael Niedermayer [Thu, 19 Apr 2018 21:28:26 +0000 (23:28 +0200)]
avcodec/opusenc_psy: Fix warning: ISO C90 forbids mixed declarations and code

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/dsicinvideo: Fail if there is only a small fraction of the data available...
Michael Niedermayer [Mon, 16 Apr 2018 20:29:09 +0000 (22:29 +0200)]
avcodec/dsicinvideo: Fail if there is only a small fraction of the data available that comprises a full frame

Fixes: Timeout
Fixes: 6306/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DSICINVIDEO_fuzzer-5079253549842432
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/dsicinvideo: Propagate errors from cin_decode_rle()
Michael Niedermayer [Mon, 16 Apr 2018 20:28:23 +0000 (22:28 +0200)]
avcodec/dsicinvideo: Propagate errors from cin_decode_rle()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/dfa: Check dimension against maximum
Michael Niedermayer [Mon, 16 Apr 2018 20:04:53 +0000 (22:04 +0200)]
avcodec/dfa: Check dimension against maximum

The headers from where the dimensions are read in actual files
are limited to 16bit per component.

Fixes: Timeout
Fixes: 6305/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DFA_fuzzer-4824270749302784
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/cinepak: Skip empty frames
Michael Niedermayer [Tue, 17 Apr 2018 00:13:43 +0000 (02:13 +0200)]
avcodec/cinepak: Skip empty frames

Speeds up decoding from 3 to 0.1 seconds for 6302/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CINEPAK_fuzzer-5626371985375232
Fixes: Timeout
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavcodec/cinepak: move some checks prior to frame allocation
Michael Niedermayer [Tue, 17 Apr 2018 00:13:42 +0000 (02:13 +0200)]
avcodec/cinepak: move some checks prior to frame allocation

Speeds up decoding from 8 to 3 seconds for 6302/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CINEPAK_fuzzer-5626371985375232
Fixes: Timeout
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agolibavformat/http: Refactor and fix additional leaks in get_cookies.
Richard Shaffer [Thu, 19 Apr 2018 19:55:00 +0000 (12:55 -0700)]
libavformat/http: Refactor and fix additional leaks in get_cookies.

This refactors get_cookies to simplify some code paths, specifically for
skipping logic in the while loop or exiting it. It also simplifies the logic
for appending additional values to *cookies by replacing strlen/malloc/snprintf
with one call av_asnprintf.

This refactor fixes a bug where the cookie_params AVDictionary would get leaked
if we failed to allocate a new buffer for writing to *cookies.

6 years agoswresample/arm: remove unintentional relocation.
Rahul Chaudhry [Wed, 18 Apr 2018 23:29:39 +0000 (16:29 -0700)]
swresample/arm: remove unintentional relocation.

Branch to global symbol results in reference to PLT, and when compiling
for THUMB-2 - in a R_ARM_THM_JUMP19 relocation. Some linkers don't
support this relocation (ld.gold), while others can end up truncating
the relocation to fit (ld.bfd).

Convert this branch through PLT into a direct branch that the assembler
can resolve locally.

See https://github.com/android-ndk/ndk/issues/337 for background.

The current workaround is to disable neon during gstreamer build,
which is not optimal and can be reverted after this patch:
https://github.com/freedesktop/gstreamer-cerbero/commit/41556c415739fbc3a72c7eaee7e70a565b719b2f

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mov: Remove old encryption info methods.
Jacob Trimble [Tue, 30 Jan 2018 19:14:35 +0000 (11:14 -0800)]
avformat/mov: Remove old encryption info methods.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/mov: Fix memory leak in encryption info.
Jacob Trimble [Thu, 19 Apr 2018 16:35:22 +0000 (09:35 -0700)]
avformat/mov: Fix memory leak in encryption info.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoaac: Rework extradata parsing code
Vittorio Giovara [Thu, 12 Apr 2018 21:39:50 +0000 (17:39 -0400)]
aac: Rework extradata parsing code

- enable the parsing code
- use the new buffer instead of replacing the context one
- do not push/pop configuration, just discard the exiting one
- propagate errors correctly

6 years agodoc/muxers: tee muxer - rearrange, add notes and general tidy-up
Gyan Doshi [Thu, 19 Apr 2018 12:07:20 +0000 (17:37 +0530)]
doc/muxers: tee muxer - rearrange, add notes and general tidy-up

6 years agoavcodec/mediacodecdec_common: make stride and slice-height non-mandatory fields
Matthieu Bouron [Wed, 11 Apr 2018 08:28:56 +0000 (10:28 +0200)]
avcodec/mediacodecdec_common: make stride and slice-height non-mandatory fields

Fixes decoding on the Samsung Chromebook Pro which do not set the codec
output format stride and slice-height fields.

6 years agoavformat/tls_schannel: fix handling of EOF after avio changes
Hendrik Leppkes [Wed, 18 Apr 2018 12:09:19 +0000 (14:09 +0200)]
avformat/tls_schannel: fix handling of EOF after avio changes

6 years agoconfigure: fix clang-cl check in the MSVC section
Hendrik Leppkes [Wed, 18 Apr 2018 14:33:13 +0000 (16:33 +0200)]
configure: fix clang-cl check in the MSVC section

Without properly grouping the checks, the second test would execute for
MSVC cl.exe, which results in configure getting stuck since cl.exe -? is
an interactive paginated help screen, waiting for input.

6 years agoavdevice/iec61883: free the private context at the end
James Almer [Wed, 18 Apr 2018 18:32:10 +0000 (15:32 -0300)]
avdevice/iec61883: free the private context at the end

Fixes part of ticket #7146.

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoavdevice/iec61883: return reference counted packets
James Almer [Wed, 18 Apr 2018 18:19:40 +0000 (15:19 -0300)]
avdevice/iec61883: return reference counted packets

Fixes part of ticket #7146, dealing with leaks of packet data since
commit 87c88122703f2befcf96383d05bdf14373c22df9.

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoavformat/mov: Increase support for common encryption.
Jacob Trimble [Thu, 7 Dec 2017 00:17:54 +0000 (16:17 -0800)]
avformat/mov: Increase support for common encryption.

- Parse schm atom to get different encryption schemes.
- Allow senc atom to appear in track fragments.
- Allow 16-byte IVs.
- Allow constant IVs (specified in tenc).
- Allow only tenc to specify encryption (i.e. no senc/saiz/saio).
- Use sample descriptor to detect clear fragments.

This doesn't support:
- Different sample descriptor holding different encryption info.
  - Only first sample descriptor can be encrypted.
- Encrypted sample groups (i.e. seig).
- Non-'cenc' encryption scheme when using -decryption_key.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agolavf/tcp.c: Free allocated client URLContext in case of error.
Stephan Holljes [Fri, 12 Jan 2018 18:16:30 +0000 (19:16 +0100)]
lavf/tcp.c: Free allocated client URLContext in case of error.

Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavdevice/decklink_commmon: enhance error messages when iterator creation fails
Marton Balint [Sat, 14 Apr 2018 22:06:59 +0000 (00:06 +0200)]
avdevice/decklink_commmon: enhance error messages when iterator creation fails

Show a more useful error message which specifies the required driver version
for the build, and use the correct context in the error message for WIN32.

Signed-off-by: Marton Balint <cus@passwd.hu>
6 years agolavc/dxva2_internal: Cast the dxva2 and d3d11 decoders and cfgs to (void *).
Carl Eugen Hoyos [Sun, 15 Apr 2018 21:57:24 +0000 (23:57 +0200)]
lavc/dxva2_internal: Cast the dxva2 and d3d11 decoders and cfgs to (void *).

Silences several warnings:
libavcodec/dxva2_internal.h:107:98: warning: pointer type mismatch in conditional expression
libavcodec/dxva2_internal.h:109:94: warning: pointer type mismatch in conditional expression

Reported-by: Reino Wijnsma
6 years agolavd/vfwcap: Pass pointers to int instead of long to av_parse_video_size().
Carl Eugen Hoyos [Sun, 15 Apr 2018 21:40:19 +0000 (23:40 +0200)]
lavd/vfwcap: Pass pointers to int instead of long to av_parse_video_size().

Fixes the following warnings:
libavdevice/vfwcap.c:331:35: warning: passing argument 1 of 'av_parse_video_size' from incompatible pointer type
libavdevice/vfwcap.c:331:59: warning: passing argument 2 of 'av_parse_video_size' from incompatible pointer type

Reported-by: Reino Wijnsma
6 years agoavfilter/avf_avectorscope: disable mirroring
Paul B Mahol [Wed, 18 Apr 2018 16:14:35 +0000 (18:14 +0200)]
avfilter/avf_avectorscope: disable mirroring

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoffplay: Fix realloc_texture when input texture is NULL.
Matt Oliver [Tue, 10 Apr 2018 13:01:18 +0000 (23:01 +1000)]
ffplay: Fix realloc_texture when input texture is NULL.

SDL_QueryTexture and SDL_DestroyTexture require that the input texture
pointer be non-null. Debug builds of SDL will correctly check for this
and break program execution. This patch fixes this by checking the
status of the texture pointer.

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
6 years agoavformat/hls: remove redundant code
Steven Liu [Wed, 18 Apr 2018 03:22:23 +0000 (11:22 +0800)]
avformat/hls: remove redundant code

Suggested-by: Richard Shaffer <rshaffer@tunein.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
6 years agoavcodec/proresdec_lgpl: pass return values instead of discarding them
Paul B Mahol [Tue, 17 Apr 2018 22:05:33 +0000 (00:05 +0200)]
avcodec/proresdec_lgpl: pass return values instead of discarding them

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agolibavformat/http: Fix memory leak in get_cookies.
Richard Shaffer [Fri, 13 Apr 2018 23:42:32 +0000 (16:42 -0700)]
libavformat/http: Fix memory leak in get_cookies.

6 years agoavformat/movenc: support writing iTunes cover image
Timo Teräs [Sat, 14 Apr 2018 18:32:11 +0000 (21:32 +0300)]
avformat/movenc: support writing iTunes cover image

Fixes https://trac.ffmpeg.org/ticket/2798

This makes movenc handle AV_DISPOSITION_ATTACHED_PIC and write
the associated pictures in iTunes cover atom. This corresponds
to how 'mov' demuxer parses and exposes the cover images when
reading.

Most of the existing track handling loops properly ignore
these 'virtual streams' as MOVTrack->entry is never incremented
for them. However, additional tests are added as needed to ignore
them.

Tested to produce valid output with:
  ffmpeg -i movie.mp4 -i thumb.jpg -disposition:v:1 attached_pic \
         -map 0 -map 1 -c copy movie-with-cover.mp4

The cover image is also copied correctly with:
  ffmpeg -i movie-with-cover.mp4 -map 0 -c copy out.mp4

AtomicParseley says that the attached_pic stream is properly
not visible in the main tracks of the file.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
6 years agoffprobe: report unavailable SAR correctly in stream info
Timo Teräs [Thu, 12 Apr 2018 08:07:36 +0000 (11:07 +0300)]
ffprobe: report unavailable SAR correctly in stream info

av_guess_sample_aspect_ratio() will return undefined or missing
value as {0,1}. This fixes show_stream() to check numerator to
display 'N/A' when appropriate. show_frame() does this already
correctly.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
6 years agoavfilter: add lowshelf and highshelf filters
Paul B Mahol [Tue, 17 Apr 2018 09:31:34 +0000 (11:31 +0200)]
avfilter: add lowshelf and highshelf filters

These are old bass and treble filters.
Make bass and treble filters better at boosting.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavformat/dashenc: addition of segment index correction logic
Vishwanath Dixit [Wed, 11 Apr 2018 07:02:25 +0000 (12:32 +0530)]
avformat/dashenc: addition of segment index correction logic

The logic is applicable only when use_template is enabled and use_timeline
is disabled. The logic monitors the flow of segment indexes. If a streams's
segment index value is not at the expected real time position, then
the logic corrects that index value.

Typically this logic is needed in live streaming use cases. The network
bandwidth fluctuations are common during long run streaming. Each
fluctuation can cause the segment indexes fall behind the expected real
time position. Without this logic, players will not be able to consume
the content, even after encoder's network condition comes back to
normal state.

6 years agoavformat/dashenc: addition of muxer overhead for @bandwidth param in MPD
Vishwanath Dixit [Wed, 11 Apr 2018 07:02:19 +0000 (12:32 +0530)]
avformat/dashenc: addition of muxer overhead for @bandwidth param in MPD

6 years agoavformat/dashenc: constructing MPD's bandwidth string locally
Vishwanath Dixit [Wed, 11 Apr 2018 07:02:11 +0000 (12:32 +0530)]
avformat/dashenc: constructing MPD's bandwidth string locally

6 years agoavformat/dashenc: addition of muxer overhead in master playlist's bandwidth
Vishwanath Dixit [Wed, 11 Apr 2018 07:02:03 +0000 (12:32 +0530)]
avformat/dashenc: addition of muxer overhead in master playlist's bandwidth

6 years agoavformat/dashenc: logic to compute muxer overhead
Vishwanath Dixit [Wed, 11 Apr 2018 07:01:55 +0000 (12:31 +0530)]
avformat/dashenc: logic to compute muxer overhead

6 years agoavformat/dashenc: addition of @availabilityTimeOffset in MPD
Vishwanath Dixit [Wed, 11 Apr 2018 07:01:47 +0000 (12:31 +0530)]
avformat/dashenc: addition of @availabilityTimeOffset in MPD

availability time of Nth segment = availabilityStartTime + (N*segment duration) - availabilityTimeOffset.
This field helps to reduce the latency by about a segment duration in streaming mode.

6 years agoavformat/dashenc: setting @availabilityStartTime when the first frame is ready
Vishwanath Dixit [Wed, 11 Apr 2018 07:01:36 +0000 (12:31 +0530)]
avformat/dashenc: setting @availabilityStartTime when the first frame is ready

@availabilityStartTime specifies the anchor for the computation of the earliest
availability time (in UTC) for any Segment in the Media Presentation.

As per this requirement, the @AvailabilityStartTime should be set to the
wallclock time at which the first frame of the first segment begins encoding.
But, it was getting set only when the first segment was completely ready. Making
the required correction in this patch. This correction is mainly needed to reduce
the latency in live streaming use cases.

6 years agoavformat/dashenc: removed 'write_manifest' call from 'write_header'
Vishwanath Dixit [Wed, 11 Apr 2018 07:01:26 +0000 (12:31 +0530)]
avformat/dashenc: removed 'write_manifest' call from 'write_header'

Calling 'write_manifest' from 'write_header' was causing creation of
first MPD with invalid values. Ex: zero @duration param value. Also,
the manifest files (MPD or M3U8s) should be created when at-least
one media frame is ready for consumption.

6 years agoavformat/dashenc: writing average segment duration for @duration in template mode
Vishwanath Dixit [Wed, 11 Apr 2018 07:00:29 +0000 (12:30 +0530)]
avformat/dashenc: writing average segment duration for @duration in template mode

6 years agoavformat/dashenc: segmentation at the configured segment duration rate
Vishwanath Dixit [Wed, 11 Apr 2018 07:00:18 +0000 (12:30 +0530)]
avformat/dashenc: segmentation at the configured segment duration rate

When use_template is enabled and use_timeline is disabled, typically
it is required to generate the segments at the configured segment duration
rate on an average. This commit is particularly needed to handle the
segmentation when video frame rates are fractional like 29.97 or 59.94 fps.

6 years agoavformat/dashenc: replacing 'min_seg_duration' with 'seg_duration'
Vishwanath Dixit [Mon, 16 Apr 2018 05:25:45 +0000 (10:55 +0530)]
avformat/dashenc: replacing 'min_seg_duration' with 'seg_duration'

There are use cases where average segment duration needs to be configured
and muxer is expected to maintain the average segment duration. So, using
the name 'min_seg_duration' will be misleading. So, changing the parameter
name to 'seg_duration', where it can be minimum segment duration or average
segment duration based on the use-case. The additional updates needed for
this functinality are made the sub-sequent patches of this patch series.

6 years agoavformat/hls: clean up duplicate option fields
Richard Shaffer [Tue, 17 Apr 2018 06:40:06 +0000 (14:40 +0800)]
avformat/hls: clean up duplicate option fields

The HLSContext struct contains fields which duplicate the data stored in the
avio_opts field. This change removes those fields in favor of avio_opts, and
updates the code accordingly.
The original patch caused the buffer pointed to by new_cookies in open_url to be
leaked. The only thing that buffer is used for is to store the value until it
can be passed to av_dict_set. To fix the leak, v2 of the patch simply calls
av_dict_set with the AV_DICT_DONT_STRDUP_VAL flag, so that the dictionary takes
ownership of the memory instead of copying it again.

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Richard Shaffer <rshaffer@tunein.com>
6 years agoavformat/hls: copy rw_timeout from parent to child AVIOContexts.
Richard Shaffer [Tue, 17 Apr 2018 06:39:26 +0000 (14:39 +0800)]
avformat/hls: copy rw_timeout from parent to child AVIOContexts.

The rw_timeout option is currently not applied when opening media playlist,
segment, or encryption key URLs. This can cause the HLS demuxer to block
indefinitely, even when the rw_timeout option has been specified. This change
simply enables carrying over the rw_timeout option when the demuxer opens these
URLs.

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Richard Shaffer <rshaffer@tunein.com>
6 years agolibavformat/dashdec: Avoid multiple HTTP requests for initialization segment that...
sanilraut [Tue, 17 Apr 2018 06:36:45 +0000 (14:36 +0800)]
libavformat/dashdec: Avoid multiple HTTP requests for initialization segment that is common among all representations

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: sanilraut <raut.sanil@gmail.com>
6 years agoRevert "avformat/hls: copy rw_timeout from parent to child AVIOContexts."
Steven Liu [Tue, 17 Apr 2018 06:33:36 +0000 (14:33 +0800)]
Revert "avformat/hls: copy rw_timeout from parent to child AVIOContexts."

This reverts commit 36deec010cc87c8990477e1703dbf785212992b5.

6 years agoRevert "avformat/dashdec: Avoid multiple HTTP requests for initialization segment...
Steven Liu [Tue, 17 Apr 2018 06:32:27 +0000 (14:32 +0800)]
Revert "avformat/dashdec: Avoid multiple HTTP requests for initialization segment that is common among all representations"

This reverts commit 4effd1c4a2c52a68c25ed0bc5474f6b4c64fd644.

6 years agoavformat/hls: copy rw_timeout from parent to child AVIOContexts.
Steven Liu [Tue, 17 Apr 2018 06:25:07 +0000 (14:25 +0800)]
avformat/hls: copy rw_timeout from parent to child AVIOContexts.

The rw_timeout option is currently not applied when opening media playlist,
segment, or encryption key URLs. This can cause the HLS demuxer to block
indefinitely, even when the rw_timeout option has been specified. This change
simply enables carrying over the rw_timeout option when the demuxer opens these
URLs.

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Richard Shaffer <rshaffer@tunein.com>
6 years agoavformat/dashdec: Avoid multiple HTTP requests for initialization segment that is...
Steven Liu [Tue, 17 Apr 2018 06:19:00 +0000 (14:19 +0800)]
avformat/dashdec: Avoid multiple HTTP requests for initialization segment that is common among all representations

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: sanilraut <raut.sanil@gmail.com>
6 years agoavformat/hls: remove redundant code
Steven Liu [Tue, 17 Apr 2018 05:16:33 +0000 (13:16 +0800)]
avformat/hls: remove redundant code

Reviewed-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
6 years agoconfigure: add nvcc to CMDLINE_SET
Timo Rothenpieler [Mon, 16 Apr 2018 20:35:23 +0000 (22:35 +0200)]
configure: add nvcc to CMDLINE_SET

This was somehow forgotten and nobody noticed until now.

6 years agodoc/APIchanges: Fix typos in hashes
Michael Niedermayer [Mon, 16 Apr 2018 16:23:12 +0000 (18:23 +0200)]
doc/APIchanges: Fix typos in hashes

Thanks-to: Moritz Barsnick <barsnick@gmx.net> for finding the correct ones
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavfilter/af_afir: make max IR length configurable
Paul B Mahol [Mon, 16 Apr 2018 17:06:09 +0000 (19:06 +0200)]
avfilter/af_afir: make max IR length configurable

Also increase max allowed dry/wet value.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavformat/flacenc: add flac_init()
James Almer [Mon, 16 Apr 2018 15:44:35 +0000 (12:44 -0300)]
avformat/flacenc: add flac_init()

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoavformat/flacenc: support writing attached pictures
Rodger Combs [Wed, 4 Apr 2018 04:17:24 +0000 (01:17 -0300)]
avformat/flacenc: support writing attached pictures

Usage of packet queueing API and some cleaning done by the committer.

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoavfilter/af_headphone: switch to activate
Paul B Mahol [Mon, 16 Apr 2018 14:08:55 +0000 (16:08 +0200)]
avfilter/af_headphone: switch to activate

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavformat/movenc: forbid muxing AV1 streams until the spec is finished
James Almer [Mon, 16 Apr 2018 00:33:44 +0000 (21:33 -0300)]
avformat/movenc: forbid muxing AV1 streams until the spec is finished

This prevents creating potentially broken files, as both the AV1 and
the AV1 in ISOMBFF specs are unfinished.

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoconfigure: extend the check for bcrypt
James Almer [Sun, 15 Apr 2018 23:33:37 +0000 (20:33 -0300)]
configure: extend the check for bcrypt

Some old mingw-w64 builds seem to provide an incomplete implementation
of the API. Add an extra check to make sure it's disabled for those.

Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoBump minor versions after release/4.0 branching
Michael Niedermayer [Mon, 16 Apr 2018 09:57:36 +0000 (11:57 +0200)]
Bump minor versions after release/4.0 branching

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoBump minor versions for branching release/4.0
Michael Niedermayer [Mon, 16 Apr 2018 09:47:03 +0000 (11:47 +0200)]
Bump minor versions for branching release/4.0

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agodoc/APIchanges: Add 4.0 cut point
Michael Niedermayer [Mon, 16 Apr 2018 10:21:39 +0000 (12:21 +0200)]
doc/APIchanges: Add 4.0 cut point

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agodoc/APIchanges: Fill in missing stuff
Michael Niedermayer [Mon, 16 Apr 2018 10:06:47 +0000 (12:06 +0200)]
doc/APIchanges: Fill in missing stuff

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavfilter/showvolume : cosmetic move bracket after func declaration to a new line
Martin Vignali [Mon, 16 Apr 2018 09:33:14 +0000 (11:33 +0200)]
avfilter/showvolume : cosmetic move bracket after func declaration to a new line

6 years agoavfilter/showvolume : add persistent max display
Martin Vignali [Mon, 16 Apr 2018 09:32:48 +0000 (11:32 +0200)]
avfilter/showvolume : add persistent max display

draw a color line for the max level in the given duration

6 years agoavfilter/showvolume : add display scale option
Martin Vignali [Mon, 16 Apr 2018 09:31:43 +0000 (11:31 +0200)]
avfilter/showvolume : add display scale option

linear (current behaviour) or log display (more close to classic audio meter)

6 years agoavfilter/af_headphone: fix type=time with hrir=multich
Paul B Mahol [Mon, 16 Apr 2018 07:31:11 +0000 (09:31 +0200)]
avfilter/af_headphone: fix type=time with hrir=multich

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavformat/hlsenc: avformat/hlsenc: add error message for encrypt fmp4 mode
Steven Liu [Mon, 16 Apr 2018 06:35:14 +0000 (14:35 +0800)]
avformat/hlsenc: avformat/hlsenc: add error message for encrypt fmp4 mode

and refine the warning message when use both hls_key_info_file and hls_enc

Reviewed-by: Gyan Doshi <ffmpeg@gyani.pro>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
6 years agoamfenc: Remove spurious initialisations
Mark Thompson [Sat, 14 Apr 2018 14:46:15 +0000 (15:46 +0100)]
amfenc: Remove spurious initialisations

Also minor cosmetics.

6 years agoamfenc: Add DXVA2 hardware frame input support
Alexander Kravchenko [Sat, 14 Apr 2018 14:46:10 +0000 (15:46 +0100)]
amfenc: Add DXVA2 hardware frame input support

Adds support for AMF initialisation from a DXVA2 (Direct3D9) device, and
then allows passing DXVA2 surfaces into an AMF encoder.

Signed-off-by: Mark Thompson <sw@jkqxz.net>
6 years agoamfenc: Ensure that the software format of hardware frames is valid
Alexander Kravchenko [Sat, 14 Apr 2018 14:46:05 +0000 (15:46 +0100)]
amfenc: Ensure that the software format of hardware frames is valid

Signed-off-by: Mark Thompson <sw@jkqxz.net>
6 years agoamfenc: Do not automatically download/upload unknown hardware input frames
Mark Thompson [Sat, 14 Apr 2018 14:46:00 +0000 (15:46 +0100)]
amfenc: Do not automatically download/upload unknown hardware input frames

Supplying a hardware input frame which is not in the input hardware frames
context is not allowed by the API, so additional code to handle it is not
necessary.  Further, handling it automatically results in very low
performance - it is more appropriate to fail immediately so that the user
can fix their incorrect setup.

6 years agoamfenc: Fail to open if the user-supplied device is not usable
Mark Thompson [Sat, 14 Apr 2018 14:45:55 +0000 (15:45 +0100)]
amfenc: Fail to open if the user-supplied device is not usable

If the user supplies a device or frames context then it is an error
not to use it; this is consistent with other hardware components.

Also factorise out the D3D11 initialisation and improve error
messages.

6 years agoconfigure: fix clang-cl detection
Alexander Bilyak [Thu, 1 Feb 2018 10:52:24 +0000 (11:52 +0100)]
configure: fix clang-cl detection

When using clang-cl it expects parameters passed in MSVC-style, so appropriate toolchain should be selected.
As soon as both clang and clang-cl report themselfs as "clang" with -v option the only chance to detect
clang-cl is passing -? option to both which is valid for clang-cl.exe and not for clang.exe.

Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavfilter/af_headphone: add single hrir multichannel stream mode
Paul B Mahol [Sun, 15 Apr 2018 10:48:12 +0000 (12:48 +0200)]
avfilter/af_headphone: add single hrir multichannel stream mode

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavcodec/nvdec: correctly set intra_pic_flag for h264/hevc
Timo Rothenpieler [Fri, 13 Apr 2018 17:39:24 +0000 (19:39 +0200)]
avcodec/nvdec: correctly set intra_pic_flag for h264/hevc

6 years agoavcodec/aac_ac3_parser: account for data already in the parsing buffer
Hendrik Leppkes [Thu, 5 Apr 2018 15:09:35 +0000 (17:09 +0200)]
avcodec/aac_ac3_parser: account for data already in the parsing buffer

If a frame starts very close to a packet boundary, the start code may
already have been added to the parsing buffer, indicated by a small
negative value of "i", while the header is still being tracked in the
"state" variable.

Reduce the remaining size accordingly, otherwise trying to find the next
frame could skip over the frame header and lump two frames together as
one.

6 years agoavcodec/dxv: add support for "high" quality mode
Paul B Mahol [Thu, 5 Apr 2018 14:44:28 +0000 (16:44 +0200)]
avcodec/dxv: add support for "high" quality mode

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavutil/random_seed: use bcrypt instead of the old wincrypt API
Steve Lhomme [Tue, 3 Apr 2018 09:44:25 +0000 (11:44 +0200)]
avutil/random_seed: use bcrypt instead of the old wincrypt API

Remove the wincrypt API calls since we don't support XP anymore and bcrypt is
available since Vista, even on Windows Store builds.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoavfilter/af_headphone: fix memory leak and overread
Paul B Mahol [Sat, 14 Apr 2018 17:42:16 +0000 (19:42 +0200)]
avfilter/af_headphone: fix memory leak and overread

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter/af_headphone: do not output invalid samples when flushing
Paul B Mahol [Sat, 14 Apr 2018 16:38:54 +0000 (18:38 +0200)]
avfilter/af_headphone: do not output invalid samples when flushing

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter/af_headphone: fix flushing
Paul B Mahol [Sat, 14 Apr 2018 15:49:54 +0000 (17:49 +0200)]
avfilter/af_headphone: fix flushing

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agoavfilter/af_headphone: improve performance and reduce latency
Paul B Mahol [Sat, 14 Apr 2018 15:25:06 +0000 (17:25 +0200)]
avfilter/af_headphone: improve performance and reduce latency

Remove not needed code.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
6 years agotests/checkasm/checkasm: Provide verbose failure information on float_near_abs_eps...
Michael Niedermayer [Fri, 13 Apr 2018 00:34:01 +0000 (02:34 +0200)]
tests/checkasm/checkasm: Provide verbose failure information on float_near_abs_eps() failures

This will make understanding failures and adjusting EPS easier

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
6 years agoavformat/utils: use the existing packet reference when parsing complete frames
James Almer [Thu, 12 Apr 2018 03:06:30 +0000 (00:06 -0300)]
avformat/utils: use the existing packet reference when parsing complete frames

If the parser returns full frames, then the output pointer retured by
av_parser_parse2() is guaranteed to point to data contained in the
input packet's buffer.

Create a new reference to said buffer in that case, to avoid
unnecessary data copy when queueing the packet later in the function.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
6 years agoMerge commit '8f144d9e3d5cb2ca92e5bdf7cc9f72effa1bd2ce'
James Almer [Fri, 13 Apr 2018 23:59:12 +0000 (20:59 -0300)]
Merge commit '8f144d9e3d5cb2ca92e5bdf7cc9f72effa1bd2ce'

* commit '8f144d9e3d5cb2ca92e5bdf7cc9f72effa1bd2ce':
  Drop Windows XP support remnants

Merged-by: James Almer <jamrial@gmail.com>
6 years agoMerge commit 'c7ab6aff66cba2f265f656ce8d56aa428d4ada76'
James Almer [Fri, 13 Apr 2018 23:53:31 +0000 (20:53 -0300)]
Merge commit 'c7ab6aff66cba2f265f656ce8d56aa428d4ada76'

* commit 'c7ab6aff66cba2f265f656ce8d56aa428d4ada76':
  w32pthreads: always use Vista+ API, drop XP support

This commit is a noop, see 9b121dfc32810250938021952aab4172a988cb56

Merged-by: James Almer <jamrial@gmail.com>
6 years agoMerge commit 'c31f6b1d61759436ef50c094e7f4c8005e97614a'
James Almer [Fri, 13 Apr 2018 23:44:56 +0000 (20:44 -0300)]
Merge commit 'c31f6b1d61759436ef50c094e7f4c8005e97614a'

* commit 'c31f6b1d61759436ef50c094e7f4c8005e97614a':
  avprobe: Print a user-friendly version of the display matrix
  avprobe: Support printing strings with empty keys

This commit is a noop. ffprobe is considerably different than avprobe
and is already printing display matrix values in a user readable way.

Merged-by: James Almer <jamrial@gmail.com>