ffmpeg.git
4 months agoavcodec/h264_parse: Clear ref_list[1] if only [0] is used
Michael Niedermayer [Fri, 8 Feb 2019 10:04:54 +0000 (11:04 +0100)]
avcodec/h264_parse: Clear ref_list[1] if only [0] is used

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/h264_parse: no need check ref list1 for P slices.
Decai Lin [Thu, 31 Jan 2019 07:36:56 +0000 (15:36 +0800)]
avcodec/h264_parse: no need check ref list1 for P slices.

This is robust for some corner case there is incorrect list1 count
in pps header, but it's a P slice and can be decoded well.

Signed-off-by: Decai Lin <decai.lin@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavformat/mov: validate chunk_count vs stsc_data
chcunningham [Thu, 7 Feb 2019 22:58:17 +0000 (14:58 -0800)]
avformat/mov: validate chunk_count vs stsc_data

Bad content may contain stsc boxes with a first_chunk index that
exceeds stco.entries (chunk_count). This ammends the existing check to
include cases where chunk_count == 0. It also patches up the case
when stsc refers to unknown chunks, but stts has no samples (so we
can simply ignore stsc).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavformat/mov.c: require tfhd to begin parsing trun
chcunningham [Thu, 7 Feb 2019 00:12:51 +0000 (16:12 -0800)]
avformat/mov.c: require tfhd to begin parsing trun

Detecting missing tfhd avoids re-using tfhd track info from the previous
moof. For files with multiple tracks, this may make a mess of the
avindex and fragindex, which can later trigger av_assert0 in
mov_read_trun().

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoffplay: add support for setting the number of filter threads
Marton Balint [Sat, 2 Feb 2019 19:30:16 +0000 (20:30 +0100)]
ffplay: add support for setting the number of filter threads

Signed-off-by: Marton Balint <cus@passwd.hu>
4 months agoffplay: add missing avfilter_graph_alloc result check
Marton Balint [Sat, 2 Feb 2019 18:33:34 +0000 (19:33 +0100)]
ffplay: add missing avfilter_graph_alloc result check

Also do not allocate a graph at start, we will reallocate it anyway.

Signed-off-by: Marton Balint <cus@passwd.hu>
4 months agoffplay: use different decoder names for each media type
Marton Balint [Sat, 2 Feb 2019 10:32:50 +0000 (11:32 +0100)]
ffplay: use different decoder names for each media type

Signed-off-by: Marton Balint <cus@passwd.hu>
4 months agoavformat/movenc: Add more error checking when writing sample entries.
Nikolas Bowe [Tue, 5 Feb 2019 01:02:19 +0000 (17:02 -0800)]
avformat/movenc: Add more error checking when writing sample entries.

Fixes a problem where a sample entry which cannot be written correctly appears to succeed, but produces an invalid file.
For example, this command:
ffmpeg -f lavfi -i sine=frequency=1000:duration=5 -codec:a ac3 -movflags +empty_moov -frag_duration 5000000 /tmp/foo.mp4
produced a file with the ac-3 sample entry, but no AC3SpecificBox (dac3) child, which is invalid according to ETSI TS 102 366.

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/mpegvideo_enc: Use av_assert1() instead of assert() in merge_context_after_en...
Michael Niedermayer [Fri, 1 Feb 2019 16:08:35 +0000 (17:08 +0100)]
avcodec/mpegvideo_enc: Use av_assert1() instead of assert() in merge_context_after_encode()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/ac3: Explicitly return to discard large amounts of nonsense bytes
Michael Niedermayer [Wed, 30 Jan 2019 23:45:51 +0000 (00:45 +0100)]
avcodec/ac3: Explicitly return to discard large amounts of nonsense bytes

Changes 19sec to 10ms (12559) runtime, 17sec to 177ms (12570)
Fixes: Timeout
Fixes: 12559/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AC3_fuzzer-5666516266123264
Fixes: 12561/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AC3_FIXED_fuzzer-5682923041193984
Fixes: 12570/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EAC3_fuzzer-5194734308425728

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agolibavformat/dashdec: disable seeking only for live streams.
Paweł Wegner [Mon, 4 Feb 2019 20:27:29 +0000 (21:27 +0100)]
libavformat/dashdec: disable seeking only for live streams.

Signed-off-by: Paweł Wegner <pawel.wegner95@gmail.com>
4 months agolibswscale/ppc: VSX-optimize 9-16 bit yuv2planeX
Lauri Kasanen [Sun, 13 Jan 2019 08:26:20 +0000 (10:26 +0200)]
libswscale/ppc: VSX-optimize 9-16 bit yuv2planeX

./ffmpeg_g -f rawvideo -pix_fmt rgb24 -s hd1080 -i /dev/zero -pix_fmt yuv420p16be \
-s 1920x1728 -f null -vframes 100 -v error -nostats -

9-14 bit funcs get about 6x speedup, 16-bit gets about 15x.
Fate passes, each format tested with an image to video conversion.

Only POWER8 includes 32-bit vector multiplies, so POWER7 is locked out
of the 16-bit function. This includes the vec_mulo/mule functions too,
not just vmuluwm.

With TIMER_REPORT skips disabled:
yuv420p9le
  12412 UNITS in planarX,  131072 runs,      0 skips
  73136 UNITS in planarX,  131072 runs,      0 skips
yuv420p9be
  12481 UNITS in planarX,  131072 runs,      0 skips
  73410 UNITS in planarX,  131072 runs,      0 skips
yuv420p10le
  12322 UNITS in planarX,  131072 runs,      0 skips
  72546 UNITS in planarX,  131072 runs,      0 skips
yuv420p10be
  12291 UNITS in planarX,  131072 runs,      0 skips
  72935 UNITS in planarX,  131072 runs,      0 skips
yuv420p12le
  12316 UNITS in planarX,  131072 runs,      0 skips
  72708 UNITS in planarX,  131072 runs,      0 skips
yuv420p12be
  12319 UNITS in planarX,  131072 runs,      0 skips
  72577 UNITS in planarX,  131072 runs,      0 skips
yuv420p14le
  12259 UNITS in planarX,  131072 runs,      0 skips
  72516 UNITS in planarX,  131072 runs,      0 skips
yuv420p14be
  12440 UNITS in planarX,  131072 runs,      0 skips
  72962 UNITS in planarX,  131072 runs,      0 skips
yuv420p16le
  10548 UNITS in planarX,  131072 runs,      0 skips
  73429 UNITS in planarX,  131072 runs,      0 skips
yuv420p16be
  10634 UNITS in planarX,  131072 runs,      0 skips
 150959 UNITS in planarX,  131072 runs,      0 skips

Signed-off-by: Lauri Kasanen <cand@gmx.com>
4 months agoavutil/ppc/cpu: Fix power8 linux detection
Lauri Kasanen [Tue, 8 Jan 2019 08:59:22 +0000 (10:59 +0200)]
avutil/ppc/cpu: Fix power8 linux detection

The existing code was in no released kernel that I can see. The corrected code
was added in 3.9.

4 months agoavformat/async: fix assertion condition when draining buffer
Marton Balint [Sun, 27 Jan 2019 18:48:12 +0000 (19:48 +0100)]
avformat/async: fix assertion condition when draining buffer

Fixes some random assertion failures with

ffprobe -show_packets async:samples/ffmpeg-bugs/trac/ticket6132/Samsung_HDR_-_Chasing_the_Light.ts > /dev/null

Signed-off-by: Marton Balint <cus@passwd.hu>
4 months agoavformat/mpegts: cache PID discard values
Marton Balint [Wed, 23 Jan 2019 00:28:26 +0000 (01:28 +0100)]
avformat/mpegts: cache PID discard values

discard_pid can be quite expensive, so let's cache it and recalculate it on
every packet start.

ffmpeg -y -i samples/MPEG-VOB/sdtv/RAI.ts -c copy -map 0:v:0 -map 0:a:0 -f mpegts /dev/null

Before:
   1685 decicycles in handle_packet,  523483 runs,    805 skips

After:
    883 decicycles in handle_packet,  523505 runs,    783 skips

Signed-off-by: Marton Balint <cus@passwd.hu>
4 months agoavcodec/mpeg4_unpack_bframes_bsf: Use avpriv_find_start_code
Andreas Rheinhardt [Sat, 2 Feb 2019 19:34:11 +0000 (20:34 +0100)]
avcodec/mpeg4_unpack_bframes_bsf: Use avpriv_find_start_code

instead of an ad-hoc function to search for start codes in order to
remove code duplication and to improve performance.

Improved performance of finding startcodes from 52606 decicycles to
9543 decicycles based upon 262144 runs for a 1 Mb/s MPEG4 video.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoMAINTAINERS: add myself to the PPC section
Lauri Kasanen [Sun, 27 Jan 2019 18:51:19 +0000 (20:51 +0200)]
MAINTAINERS: add myself to the PPC section

Signed-off-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agodoc/filters: correct headphone examples
Gyan Doshi [Mon, 4 Feb 2019 05:07:11 +0000 (10:37 +0530)]
doc/filters: correct headphone examples

lavfi-complex is not a valid option. [a:0] is not correct pad form for input.

4 months agoavcodec/pgssubdec: Check for duplicate display segments
Michael Niedermayer [Tue, 29 Jan 2019 00:06:01 +0000 (01:06 +0100)]
avcodec/pgssubdec: Check for duplicate display segments

In such a duplication the previous gets overwritten and leaks

Fixes: memleak
Fixes: 12510/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGSSUB_fuzzer-5694439226343424

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/mips: [loongson] optimize put_hevc_qpel_h_8 with mmi.
Shiyou Yin [Fri, 1 Feb 2019 06:05:02 +0000 (14:05 +0800)]
avcodec/mips: [loongson] optimize put_hevc_qpel_h_8 with mmi.

Optimize put_hevc_qpel_h_8 with mmi in the case width=4/8/12/16/24/32/48/64.
This optimization improved HEVC decoding performance 2%(2.39x to 2.44x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/mips: [loongson] optimize put_hevc_qpel_bi_h_8 with mmi.
Shiyou Yin [Fri, 1 Feb 2019 06:05:01 +0000 (14:05 +0800)]
avcodec/mips: [loongson] optimize put_hevc_qpel_bi_h_8 with mmi.

Optimize put_hevc_qpel_bi_h_8 with mmi in the case width=4/8/12/16/24/32/48/64.
This optimization improved HEVC decoding performance 2.1%(2.34x to 2.39x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/mips: [loongson] optimize put_hevc_epel_bi_hv_8 with mmi.
Shiyou Yin [Fri, 1 Feb 2019 06:05:00 +0000 (14:05 +0800)]
avcodec/mips: [loongson] optimize put_hevc_epel_bi_hv_8 with mmi.

Optimize put_hevc_epel_bi_hv_8 with mmi in the case width=4/8/12/16/24/32.
This optimization improved HEVC decoding performance 1.7%(2.30x to 2.34x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/mips: [loongson] optimize put_hevc_qpel_uni_hv_8 with mmi.
Shiyou Yin [Fri, 1 Feb 2019 06:04:59 +0000 (14:04 +0800)]
avcodec/mips: [loongson] optimize put_hevc_qpel_uni_hv_8 with mmi.

Optimize put_hevc_qpel_uni_hv_8 with mmi in the case width=4/8/12/16/24/32/48/64.
This optimization improved HEVC decoding performance 2.7%(2.24x to 2.30x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavfilter/vf_mix: always output frame if array is filled
Paul B Mahol [Sat, 2 Feb 2019 17:54:54 +0000 (18:54 +0100)]
avfilter/vf_mix: always output frame if array is filled

4 months agoavfilter/vf_mix: add timeline support to tmix filter
Paul B Mahol [Sat, 2 Feb 2019 17:52:03 +0000 (18:52 +0100)]
avfilter/vf_mix: add timeline support to tmix filter

4 months agodoc/filters: document ranges and defaults for nlmeans options
Jun Zhao [Fri, 1 Feb 2019 06:00:04 +0000 (14:00 +0800)]
doc/filters: document ranges and defaults for nlmeans options

document ranges and defaults for nlmeans options

Reviewed-by: Gyan Doshi <ffmpeg@gyani.pro>
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
4 months agolavu/imgutils: Use FFABS() instead of abs() for ptrdiff_t.
Carl Eugen Hoyos [Fri, 1 Feb 2019 22:18:05 +0000 (23:18 +0100)]
lavu/imgutils: Use FFABS() instead of abs() for ptrdiff_t.

Fixes a warning with clang:
libavutil/imgutils.c:314:16: warning: absolute value function 'abs'
given an argument of type 'ptrdiff_t' (aka 'long') but has
parameter of type 'int' which may cause truncation of value

4 months agolavfi/nlmeans: use a dynamic size for the weight LUT
Clément Bœsch [Fri, 1 Feb 2019 19:50:34 +0000 (20:50 +0100)]
lavfi/nlmeans: use a dynamic size for the weight LUT

4 months agolavfi/nlmeans: simplify log() call
Clément Bœsch [Fri, 1 Feb 2019 19:45:52 +0000 (20:45 +0100)]
lavfi/nlmeans: simplify log() call

4 months agolavfi/nlmeans: improve the performance
Jun Zhao [Fri, 1 Feb 2019 02:45:24 +0000 (10:45 +0800)]
lavfi/nlmeans: improve the performance

Remove the pdiff_lut_scale in nlmeans and increase weight_lut table size
from 2^9 to 500000, this change will avoid using pdiff_lut_scale in
nlmeans_slice() for weight_lut table search, improving the performance
by about 12%. (in 1080P size picture case).

Use the profiling command like:

perf stat -a -d -r 5 ./ffmpeg -i input -an -vf nlmeans=s=30 -vframes 10 \
-f null /dev/null

without this change:
when s=1.0(default value) 63s
     s=30.0               72s

after this change:
     s=1.0(default value) 56s
     s=30.0               63s

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Clément Bœsch <u@pkh.me>
4 months agolavc/aarch64/vp8dsp: Fix the include guard.
Carl Eugen Hoyos [Thu, 31 Jan 2019 21:35:44 +0000 (22:35 +0100)]
lavc/aarch64/vp8dsp: Fix the include guard.

Fixes fate-source.

4 months agoINSTALL.md: Fix Markdown formatting
Justin Bull [Thu, 31 Jan 2019 16:46:49 +0000 (11:46 -0500)]
INSTALL.md: Fix Markdown formatting

Signed-off-by: Lou Logan <lou@lrcd.com>
4 months agolibavcodec: vp8 neon optimizations for aarch64
Magnus Röös [Thu, 31 Jan 2019 16:04:27 +0000 (17:04 +0100)]
libavcodec: vp8 neon optimizations for aarch64

Partial port of the ARM Neon for aarch64.

Benchmarks from fate:

benchmarking with Linux Perf Monitoring API
nop: 58.6
checkasm: using random seed 1760970128
NEON:
 - vp8dsp.idct       [OK]
 - vp8dsp.mc         [OK]
 - vp8dsp.loopfilter [OK]
checkasm: all 21 tests passed
vp8_idct_add_c: 201.6
vp8_idct_add_neon: 83.1
vp8_idct_dc_add_c: 107.6
vp8_idct_dc_add_neon: 33.8
vp8_idct_dc_add4y_c: 426.4
vp8_idct_dc_add4y_neon: 59.4
vp8_loop_filter8uv_h_c: 688.1
vp8_loop_filter8uv_h_neon: 216.3
vp8_loop_filter8uv_inner_h_c: 649.3
vp8_loop_filter8uv_inner_h_neon: 195.3
vp8_loop_filter8uv_inner_v_c: 544.8
vp8_loop_filter8uv_inner_v_neon: 131.3
vp8_loop_filter8uv_v_c: 706.1
vp8_loop_filter8uv_v_neon: 141.1
vp8_loop_filter16y_h_c: 668.8
vp8_loop_filter16y_h_neon: 242.8
vp8_loop_filter16y_inner_h_c: 647.3
vp8_loop_filter16y_inner_h_neon: 224.6
vp8_loop_filter16y_inner_v_c: 647.8
vp8_loop_filter16y_inner_v_neon: 128.8
vp8_loop_filter16y_v_c: 721.8
vp8_loop_filter16y_v_neon: 154.3
vp8_loop_filter_simple_h_c: 387.8
vp8_loop_filter_simple_h_neon: 187.6
vp8_loop_filter_simple_v_c: 384.1
vp8_loop_filter_simple_v_neon: 78.6
vp8_put_epel8_h4v4_c: 3971.1
vp8_put_epel8_h4v4_neon: 855.1
vp8_put_epel8_h4v6_c: 5060.1
vp8_put_epel8_h4v6_neon: 989.6
vp8_put_epel8_h6v4_c: 4320.8
vp8_put_epel8_h6v4_neon: 1007.3
vp8_put_epel8_h6v6_c: 5449.3
vp8_put_epel8_h6v6_neon: 1158.1
vp8_put_epel16_h6_c: 6683.8
vp8_put_epel16_h6_neon: 831.8
vp8_put_epel16_h6v6_c: 11110.8
vp8_put_epel16_h6v6_neon: 2214.8
vp8_put_epel16_v6_c: 7024.8
vp8_put_epel16_v6_neon: 799.6
vp8_put_pixels8_c: 112.8
vp8_put_pixels8_neon: 78.1
vp8_put_pixels16_c: 131.3
vp8_put_pixels16_neon: 129.8

Signed-off-by: Magnus Röös <mla2.roos@gmail.com>
4 months agotests/checkasm/checkasm: Do not define an unused function.
Carl Eugen Hoyos [Thu, 31 Jan 2019 19:16:17 +0000 (20:16 +0100)]
tests/checkasm/checkasm: Do not define an unused function.

Fixes the following warning:
tests/checkasm/checkasm.c:615:12: warning: 'bench_init_ffmpeg' defined but not used

4 months agoavformat/rtsp: Check number of streams in sdp_parse_line()
Michael Niedermayer [Fri, 25 Jan 2019 20:30:04 +0000 (21:30 +0100)]
avformat/rtsp: Check number of streams in sdp_parse_line()

Fixes: OOM

Found-by: Michael Hanselmann <public@hansmi.ch>
Reviewed-by: Michael Hanselmann <public@hansmi.ch>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/ffv1: Simplify update_vlc_state()
Michael Niedermayer [Sat, 26 Jan 2019 23:56:59 +0000 (00:56 +0100)]
avcodec/ffv1: Simplify update_vlc_state()

About 0.5% faster

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/ffv1: Simplify fold()
Michael Niedermayer [Sat, 26 Jan 2019 23:49:14 +0000 (00:49 +0100)]
avcodec/ffv1: Simplify fold()

No speed difference, or slightly faster (the difference is too small so it may be noise
that this appears faster)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agolibavcodec/rscc.c: add missing semicolon
Mateusz [Thu, 31 Jan 2019 15:36:59 +0000 (16:36 +0100)]
libavcodec/rscc.c: add missing semicolon

Signed-off-by: Mateusz Brzostek <mateuszb@poczta.onet.pl>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavformat/hlsenc: add var_stream_map LANGUAGE field string parameter
Steven Liu [Wed, 23 Jan 2019 11:19:49 +0000 (19:19 +0800)]
avformat/hlsenc: add var_stream_map LANGUAGE field string parameter

use a:0,agroup:aud_low,default:Yes,language:CHN a:1,agroup:aud_low,language:ENG
        a:2,agroup:aud_high,default:YesYes,language:CHN a:3,agroup:aud_high,language:ENG
        v:0,agroup:aud_low v:1,agroup:aud_high
        create master m3u8 list.

result:
EXTM3U
EXT-X-VERSION:3
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_low",NAME="audio_0",DEFAULT=YES,LANGUAGE="CHN",URI="out_0.m3u8"
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_low",NAME="audio_1",DEFAULT=NO,LANGUAGE="ENG",URI="out_1.m3u8"
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_high",NAME="audio_2",DEFAULT=YES,LANGUAGE="CHN",URI="out_2.m3u8"
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_high",NAME="audio_3",DEFAULT=NO,LANGUAGE="ENG",URI="out_3.m3u8"
EXT-X-STREAM-INF:BANDWIDTH=1170400,RESOLUTION=640x480,CODECS="avc1.64001e,mp4a.40.2",AUDIO="group_aud_low"
out_4.m3u8
EXT-X-STREAM-INF:BANDWIDTH=3440800,RESOLUTION=640x480,CODECS="avc1.64001e,mp4a.40.2",AUDIO="group_aud_high"
out_5.m3u8

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
4 months agoavformat/hlsenc: add var_stream_map DEFAULT field status parameter
Steven Liu [Wed, 23 Jan 2019 10:52:02 +0000 (18:52 +0800)]
avformat/hlsenc: add var_stream_map DEFAULT field status parameter

use a:0,agroup:aud_low,default:Yes a:1,agroup:aud_low,
    a:2,agroup:aud_high,default:Yes a:3, agroup:aud_high,
    v:0,agroup:aud_low v:1,agroup:aud_high
    create master m3u8 list.

result:
EXTM3U
EXT-X-VERSION:3
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_low",NAME="audio_0",DEFAULT=YES,URI="out_0.m3u8"
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_low",NAME="audio_1",DEFAULT=NO,URI="out_1.m3u8"
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_high",NAME="audio_2",DEFAULT=YES,URI="out_2.m3u8"
EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_high",NAME="audio_3",DEFAULT=NO,URI="out_3.m3u8"
EXT-X-STREAM-INF:BANDWIDTH=1170400,RESOLUTION=640x480,CODECS="avc1.64001e,mp4a.40.2",AUDIO="group_aud_low"
out_4.m3u8
EXT-X-STREAM-INF:BANDWIDTH=3440800,RESOLUTION=640x480,CODECS="avc1.64001e,mp4a.40.2",AUDIO="group_aud_high"
out_5.m3u8

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
4 months agoavformat/hlsenc: make the EXT-X-MEDIA NAME field by stream id.
Steven Liu [Mon, 21 Jan 2019 08:32:57 +0000 (16:32 +0800)]
avformat/hlsenc: make the EXT-X-MEDIA NAME field by stream id.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
4 months agoavformat/rtsp: Clear reply in every iteration in ff_rtsp_connect()
Michael Niedermayer [Sun, 27 Jan 2019 23:53:22 +0000 (00:53 +0100)]
avformat/rtsp: Clear reply in every iteration in ff_rtsp_connect()

Fixes: Infinite loop

Found-by: Michael Hanselmann <public@hansmi.ch>
Reviewed-by: Michael Hanselmann <public@hansmi.ch>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/rasc: Move ff_get_buffer() after frame checks
Michael Niedermayer [Tue, 22 Jan 2019 23:19:14 +0000 (00:19 +0100)]
avcodec/rasc: Move ff_get_buffer() after frame checks

If the frame1/2 checks fail this avoids doing the allocation of a new frame

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/rasc: Check uncompressed dlta size
Michael Niedermayer [Tue, 22 Jan 2019 23:16:02 +0000 (00:16 +0100)]
avcodec/rasc: Check uncompressed dlta size

We assume that if the compressed size is bigger than if each byte is encoded in a single raw packet
that the data is invalid.

Fixes: Out of memory
Fixes: 12208/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RASC_fuzzer-5648916473708544

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/fic: Check that there is input left in fic_decode_block()
Michael Niedermayer [Tue, 22 Jan 2019 23:30:53 +0000 (00:30 +0100)]
avcodec/fic: Check that there is input left in fic_decode_block()

Fixes: Timeout
Fixes: 12450/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FIC_fuzzer-5661984622641152

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavformat/flvdec: Try to support some concatenated flv files
Michael Niedermayer [Thu, 3 Jan 2019 00:08:31 +0000 (01:08 +0100)]
avformat/flvdec: Try to support some concatenated flv files

Fixes: discont.flv

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agolavf/asf: Remove an unneeded forward declaration.
Carl Eugen Hoyos [Wed, 30 Jan 2019 22:15:28 +0000 (23:15 +0100)]
lavf/asf: Remove an unneeded forward declaration.

4 months agolibavdevice/gdigrab: fix HIDPI support for mouse positioning
Dilshod Mukhtarov [Sun, 27 Jan 2019 19:10:37 +0000 (23:10 +0400)]
libavdevice/gdigrab: fix HIDPI support for mouse positioning

Mouse position was not calculated properly in area or window mode

Signed-off-by: Dilshod Mukhtarov <dilshodm@gmail.com>
4 months agolibavdevice/gdigrab: fix HIDPI support for window capture
Dilshod Mukhtarov [Sun, 27 Jan 2019 19:09:53 +0000 (23:09 +0400)]
libavdevice/gdigrab: fix HIDPI support for window capture

In Windows if using scaling other than 100% then the grabbed window was not captured fully (cropped)

Signed-off-by: Dilshod Mukhtarov <dilshodm@gmail.com>
4 months agoavformat/tee : Pass standards compliance value to slave muxers as well
Karthick J [Wed, 30 Jan 2019 13:30:59 +0000 (19:00 +0530)]
avformat/tee : Pass standards compliance value to slave muxers as well

4 months agoavformat/http: clarify that ffmpeg will attempt to add missing CRLF
Gyan Doshi [Mon, 28 Jan 2019 06:50:02 +0000 (12:20 +0530)]
avformat/http: clarify that ffmpeg will attempt to add missing CRLF

4 months agoavcodec/arbc: clear decoder state when seeking
James Almer [Mon, 28 Jan 2019 16:16:32 +0000 (13:16 -0300)]
avcodec/arbc: clear decoder state when seeking

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
4 months agoavcodec/motion_est: remove duplicate function
Marton Balint [Sun, 6 Jan 2019 13:26:11 +0000 (14:26 +0100)]
avcodec/motion_est: remove duplicate function

Signed-off-by: Marton Balint <cus@passwd.hu>
4 months agoavformat/dashenc: Skip writing trailer for MP4 output when in streaming mode
Karthick J [Tue, 22 Jan 2019 05:55:21 +0000 (11:25 +0530)]
avformat/dashenc: Skip writing trailer for MP4 output when in streaming mode

In streaming mode mp4 trailer is not required for playout.

4 months agoavcodec/rscc: Avoid returning frames that have nearly no undamaged pixels in them
Michael Niedermayer [Fri, 18 Jan 2019 23:00:49 +0000 (00:00 +0100)]
avcodec/rscc: Avoid returning frames that have nearly no undamaged pixels in them

Fixes: Timeout
Fixes: 12192/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RSCC_fuzzer-6279038004363264

Before: clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RSCC_fuzzer-6279038004363264 in 15423 ms
After:  clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RSCC_fuzzer-6279038004363264 in 190 ms

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec: Add discard_sample_percentage
Michael Niedermayer [Fri, 18 Jan 2019 23:00:48 +0000 (00:00 +0100)]
avcodec: Add discard_sample_percentage

Suggested-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agotools/target_dec_fate.list: add entries upto 1214
Michael Niedermayer [Sat, 19 Jan 2019 00:21:28 +0000 (01:21 +0100)]
tools/target_dec_fate.list: add entries upto 1214

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/huffyuvdec: Check slice_offset/size
Michael Niedermayer [Sun, 20 Jan 2019 23:39:43 +0000 (00:39 +0100)]
avcodec/huffyuvdec: Check slice_offset/size

Fixes: out of array access
Fixes: 12447/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HYMT_fuzzer-5201623956062208
Fixes: 12458/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HYMT_fuzzer-5705567736168448

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/ilbcdec: Fix undefined integer overflow lsf2poly()
Michael Niedermayer [Mon, 14 Jan 2019 23:09:30 +0000 (00:09 +0100)]
avcodec/ilbcdec: Fix undefined integer overflow lsf2poly()

The addition is moved up into the context where the variable is unsigned avoiding
the undefined behavior

Fixes: runtime error: signed integer overflow: 2147481972 + 4096 cannot be represented in type 'int'
Fixes: 12444/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ILBC_fuzzer-5755706244857856

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoavcodec/ilbcdec: Fix integer overflow in construct_vector()
Michael Niedermayer [Mon, 14 Jan 2019 23:02:25 +0000 (00:02 +0100)]
avcodec/ilbcdec: Fix integer overflow in construct_vector()

webrtc contains explicit code to ignore the undefined behavior (RTC_NO_SANITIZE / OverflowingAddS32S32ToS32())

Probably fixes: Integer overflow (unreproducable here)
Probably fixes: 12215/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ILBC_fuzzer-5767142427852800

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agoMAINTAINERS: add AVS2 section
hwren [Sat, 28 Jul 2018 03:20:48 +0000 (11:20 +0800)]
MAINTAINERS: add AVS2 section

Signed-off-by: hwren <hwrenx@126.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 months agovaapi_encode_h265: Ensure that ref pics are always in the RPS
Mark Thompson [Fri, 25 Jan 2019 19:54:27 +0000 (19:54 +0000)]
vaapi_encode_h265: Ensure that ref pics are always in the RPS

When making a new P-frame when B-frames are present the previous P-frame
is normally in the DPB because it will be referred to by subsequent
B-frames.  However, this is not true if there are no B-frames, or in edge
cases where a GOP ends with two P-frames.  Fix this by adding the direct
ref pics to the RPS explicitly.

Fixes #7699.

Tested-by: Ullysses A Eoff <ullysses.a.eoff@intel.com>
4 months agolavf/subviewerdec: Skip leading BOM.
Carl Eugen Hoyos [Wed, 23 Jan 2019 23:22:47 +0000 (00:22 +0100)]
lavf/subviewerdec: Skip leading BOM.

Fixes ticket #7661.

4 months agoavfilter/buffersrc: print relevant info when skipping filter reinit
Gyan Doshi [Fri, 25 Jan 2019 12:26:11 +0000 (17:56 +0530)]
avfilter/buffersrc: print relevant info when skipping filter reinit

The timestamp of the changed input frame as well as its relevant
properties can be examined by the user. Only applicable when
reinit_filter is disabled on the input stream.

4 months agolavf/cafdec: Do not fail for unknown atoms with negative size.
Carl Eugen Hoyos [Mon, 14 Jan 2019 23:22:50 +0000 (00:22 +0100)]
lavf/cafdec: Do not fail for unknown atoms with negative size.

The specification requires the demuxer to only read the data
atom up to its given size, this is necessary as atoms are
allowed at the end of the file.
This patch duplicates the behaviour of the QuickTime player.

4 months agoavcodec: add ARBC decoder
Paul B Mahol [Sun, 20 Jan 2019 10:18:38 +0000 (11:18 +0100)]
avcodec: add ARBC decoder

Thanks Kostya for great help in reversing binary.

4 months agoavcodec/vp6: select idct based (loosely) on number of coefficients decoded
Peter Ross [Sun, 13 Jan 2019 04:45:07 +0000 (15:45 +1100)]
avcodec/vp6: select idct based (loosely) on number of coefficients decoded

The VP3/4/5/6 reference decoders all use three IDCT versions: one for the
DC-only case, another for blocks with more than 10 coefficients, and an
optimised one for blocks with up to 10 AC coefficents. VP6 relies on the
sparse 10 coefficient version, and without it, IDCT drift occurs.

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

Signed-off-by: Peter Ross <pross@xvid.org>
4 months agoavcodec/vp6: use ff_vp3dsp_[hv]_loop_filter_12
Peter Ross [Sun, 13 Jan 2019 04:15:29 +0000 (15:15 +1100)]
avcodec/vp6: use ff_vp3dsp_[hv]_loop_filter_12

Partially fixes: https://trac.ffmpeg.org/ticket/1282

Signed-off-by: Peter Ross <pross@xvid.org>
4 months agoavcodec/vp6: use rounded shift for chroma motion vector calculation
Peter Ross [Thu, 10 Jan 2019 09:55:06 +0000 (20:55 +1100)]
avcodec/vp6: use rounded shift for chroma motion vector calculation

Partially fixes: https://trac.ffmpeg.org/ticket/1282

Signed-off-by: Peter Ross <pross@xvid.org>
4 months agoavcodec/vp3dsp: add 10 coefficient version of the VP3 IDCT
Peter Ross [Sun, 13 Jan 2019 07:37:28 +0000 (18:37 +1100)]
avcodec/vp3dsp: add 10 coefficient version of the VP3 IDCT

This version of the IDCT is used by the VP6 decoder.

Signed-off-by: Peter Ross <pross@xvid.org>
4 months agoavcodec/vp3dsp: add 12 pixel loop filter functions
Peter Ross [Sun, 6 Jan 2019 01:45:40 +0000 (12:45 +1100)]
avcodec/vp3dsp: add 12 pixel loop filter functions

Signed-off-by: Peter Ross <pross@xvid.org>
4 months agoavcodec/vp3dsp: move vp3 init loop filter function to vp3dsp
Peter Ross [Sun, 13 Jan 2019 03:55:53 +0000 (14:55 +1100)]
avcodec/vp3dsp: move vp3 init loop filter function to vp3dsp

This is also used by the VP6 decoder.

Signed-off-by: Peter Ross <pross@xvid.org>
5 months agolavf/vaapi_deinterlace: return error if mode unsupported
Zhong Li [Mon, 14 Jan 2019 07:29:54 +0000 (15:29 +0800)]
lavf/vaapi_deinterlace: return error if mode unsupported

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Fuwei Tang <fuweix.tang@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
5 months agolavc/qsvenc: enable QVBR mode
Zhong Li [Wed, 23 Jan 2019 11:16:17 +0000 (19:16 +0800)]
lavc/qsvenc: enable QVBR mode

QVBR mode is to use the variable bitrate control algorithm
with constant quality.
mfxExtCodingOption3 should be supported to enable QVBR mode.

It is neccesary to specify a max_rate for QVBR, else it may be ICQ mode.
Example usage: ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v
h264_qsv -global_quality 25 -maxrate 2M test_qvbr.mp4 -v verbose

Clip QVBR quality range to be [0, 51] as Mark's commments.
It is similar to qp range of CQP but possibly should be updated when VP8/VP9
encoding can be supported.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Zhong Li <zhong.li@intel.com>
5 months agoavfilter/afade+acrossfade: allow skipping fade on inputs
Gyan Doshi [Wed, 23 Jan 2019 08:05:23 +0000 (13:35 +0530)]
avfilter/afade+acrossfade: allow skipping fade on inputs

New fade curve value 'nofade' passes audio samples as-is.
Primarily useful in carrying out acrossfade without fades.

5 months agoavcodec/libx265: add support for ROI-based encoding
Guo, Yejun [Wed, 23 Jan 2019 16:11:05 +0000 (00:11 +0800)]
avcodec/libx265: add support for ROI-based encoding

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
5 months agolavf/supenc: Remove some unneeded casts.
Carl Eugen Hoyos [Thu, 24 Jan 2019 12:08:27 +0000 (13:08 +0100)]
lavf/supenc: Remove some unneeded casts.

5 months agolavf/movenc: Mention video_track_timescale as option to fix the timescale.
Carl Eugen Hoyos [Thu, 24 Jan 2019 11:52:50 +0000 (12:52 +0100)]
lavf/movenc: Mention video_track_timescale as option to fix the timescale.

Smarter improvements for this error message were suggested in the past
but this is certainly an improvement.

5 months agolibavfilter: add transpose_vaapi filter
Zachary Zhou [Thu, 17 Jan 2019 03:33:05 +0000 (11:33 +0800)]
libavfilter: add transpose_vaapi filter

Swap width and height when do clock/cclock rotation
Add reversal/hflip/vflip options

ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128
-hwaccel_output_format vaapi -i input.264 -vf "transpose_vaapi=clock_flip"
-c:v h264_vaapi output.h264

Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
5 months agovaapi_encode_vp9: Support more complex reference structures
Mark Thompson [Thu, 20 Dec 2018 20:40:00 +0000 (20:40 +0000)]
vaapi_encode_vp9: Support more complex reference structures

5 months agovaapi_encode_h265: Support more complex reference structures
Mark Thompson [Thu, 20 Dec 2018 20:39:59 +0000 (20:39 +0000)]
vaapi_encode_h265: Support more complex reference structures

The reference picture sets are now constructed directly from the DPB
information.

5 months agovaapi_encode_h264: Support more complex reference structures
Mark Thompson [Thu, 20 Dec 2018 20:39:58 +0000 (20:39 +0000)]
vaapi_encode_h264: Support more complex reference structures

5 months agovaapi_encode: Let the reconstructed frame pool be sized dynamically
Mark Thompson [Thu, 20 Dec 2018 20:39:57 +0000 (20:39 +0000)]
vaapi_encode: Let the reconstructed frame pool be sized dynamically

No supported encode driver requires the pool to be fixed-size, so just
remove this constraint.

5 months agovaapi_encode: Convert to send/receive API
Mark Thompson [Thu, 20 Dec 2018 20:39:56 +0000 (20:39 +0000)]
vaapi_encode: Convert to send/receive API

This attaches the logic of picking the mode of for the next picture to
the output, which simplifies some choices by removing the concept of
the picture for which input is not yet available.  At the same time,
we allow more complex reference structures and track more reference
metadata (particularly the contents of the DPB) for use in the
codec-specific code.

It also adds flags to explicitly track the available features of the
different codecs.  The new structure also allows open-GOP support, so
that is now available for codecs which can do it.

5 months agovaapi_encode: Allocate picture-private data in generic code
Mark Thompson [Thu, 20 Dec 2018 20:39:55 +0000 (20:39 +0000)]
vaapi_encode: Allocate picture-private data in generic code

5 months agocbs_h2645: Avoid memcpy when splitting fragment #2
Andreas Rheinhardt [Wed, 28 Nov 2018 00:24:10 +0000 (01:24 +0100)]
cbs_h2645: Avoid memcpy when splitting fragment #2

Now memcpy can be avoided for NAL units containing escapes, too.

Particularly improves performance for files with hardcoded black bars.
For such a file, time spent in cbs_h2645_split_fragment went down from
369410 decicycles to 327677 decicycles. (It were 379114 decicycles when
every NAL unit was copied.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
5 months agoh2645_parse: Make ff_h2645_packet_split reference-compatible
Andreas Rheinhardt [Wed, 28 Nov 2018 00:24:09 +0000 (01:24 +0100)]
h2645_parse: Make ff_h2645_packet_split reference-compatible

This is in preparation for a patch for cbs_h2645. Now the packet's
rbsp_buffer can be owned by an AVBuffer.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
5 months agolavc/g723_1enc: Set the default bitrate to 6300.
Carl Eugen Hoyos [Tue, 22 Jan 2019 11:22:23 +0000 (12:22 +0100)]
lavc/g723_1enc: Set the default bitrate to 6300.

5 months agolavf/hlsproto: Replace a wrong eol comma with a semicolon.
caohui [Wed, 23 Jan 2019 03:13:27 +0000 (11:13 +0800)]
lavf/hlsproto: Replace a wrong eol comma with a semicolon.

5 months agoavformat/img2enc: mention -frames:v in error message
Lou Logan [Tue, 15 Jan 2019 00:14:48 +0000 (15:14 -0900)]
avformat/img2enc: mention -frames:v in error message

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Kieran O Leary <kieran.o.leary@gmail.com>
5 months agoavformat/concatdec: always re-calculate start time and duration
Marton Balint [Wed, 21 Nov 2018 23:59:45 +0000 (00:59 +0100)]
avformat/concatdec: always re-calculate start time and duration

This allows the underlying files to change their duration on subsequent
avformat context opens.

An example use case where this matters:

ffconcat version 1.0
file dummy.mxf
file dummy.mxf

ffmpeg -re -stream_loop -1 -i dummy.ffconcat -f sdl2 none

The user can seamlessly change the input by atomically replacing dummy.mxf.

v2: Set ConcatFile duration in read_header for all segments with known
durations because from now on we always recalculate the start time in
open_file, and an instant seek could have caused unset ConcatFile durations.

Signed-off-by: Marton Balint <cus@passwd.hu>
5 months agoavformat/concatdec: fix cur_dts based duration calculation with nonzero stream start_time
Marton Balint [Wed, 21 Nov 2018 23:59:04 +0000 (00:59 +0100)]
avformat/concatdec: fix cur_dts based duration calculation with nonzero stream start_time

Signed-off-by: Marton Balint <cus@passwd.hu>
5 months agoavformat/concatdec: factorize the duration calculating function
Marton Balint [Wed, 21 Nov 2018 23:57:01 +0000 (00:57 +0100)]
avformat/concatdec: factorize the duration calculating function

Signed-off-by: Marton Balint <cus@passwd.hu>
5 months agolavc/qsvenc: set BRCParamMultiplier to aviod BRC overflow
Zhong Li [Mon, 14 Jan 2019 07:12:15 +0000 (15:12 +0800)]
lavc/qsvenc: set BRCParamMultiplier to aviod BRC overflow

Fix ticket #7663

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
5 months agoavcodec/mips: [loongson] optimize put_hevc_qpel_bi_hv_8 with mmi.
Shiyou Yin [Mon, 21 Jan 2019 10:10:25 +0000 (18:10 +0800)]
avcodec/mips: [loongson] optimize put_hevc_qpel_bi_hv_8 with mmi.

Optimize put_hevc_qpel_bi_hv_8 with mmi in the case width=4/8/12/16/24/32/48/64.
This optimization improved HEVC decoding performance 11.4%(2.01x to 2.24x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 months agoavcodec/mips: [loongson] optimize put_hevc_qpel_hv_8 with mmi.
Shiyou Yin [Mon, 21 Jan 2019 10:10:24 +0000 (18:10 +0800)]
avcodec/mips: [loongson] optimize put_hevc_qpel_hv_8 with mmi.

Optimize put_hevc_qpel_hv_8 with mmi in the case width=4/8/12/16/24/32/48/64.
This optimization improved HEVC decoding performance 11%(1.81x to 2.01x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 months agoavcodec/tests: Add codec_desc to .gitignore
FeRD (Frank Dana) [Mon, 21 Jan 2019 18:21:51 +0000 (13:21 -0500)]
avcodec/tests: Add codec_desc to .gitignore

The compiled libavcodec/tests/codec_desc was left out of that dir's
.gitignore when the test was added, so it shows up in 'git status'
as an untracked file if it's been built.

Signed-off-by: FeRD (Frank Dana) <ferdnyc@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 months agoavformat/dashenc: Added documentation for $ext$ identifier in filenames
Karthick J [Thu, 17 Jan 2019 09:36:56 +0000 (15:06 +0530)]
avformat/dashenc: Added documentation for $ext$ identifier in filenames

5 months agoavformat/dashenc: Format xs:datetime in millisecond precision
Karthick J [Thu, 17 Jan 2019 08:58:20 +0000 (14:28 +0530)]
avformat/dashenc: Format xs:datetime in millisecond precision

For low latency streaming even milliseconds matter!

5 months agoavcodec/prosumer: Error out if decompress() stops reading data
Michael Niedermayer [Sat, 12 Jan 2019 21:36:00 +0000 (22:36 +0100)]
avcodec/prosumer: Error out if decompress() stops reading data

if 0 is encountered in the LUT then decompress() will continue to output 0 bytes but never read more data.
Without a specification it is impossible to say if this is invalid or a feature.
None of the valid prosumer files tested cause a 0 to be read, so it is likely
not a intended feature.

Fixes: Timeout
Fixes: 11266/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5681827423977472

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>