1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

93558 Commits

Author SHA1 Message Date
Matthew Fearnley
0321370601 libavcodec/zmbvenc: Add support for RGB formats
This consists mostly of the following changes:
- add newly supported pixel formats (RGB555LE, RGB565LE, BGR0)
- select the ZMBV format (c->fmt) and bytes per pixel (c->bypp) based on
  avctx->pix_fmt
- multiply widths/x-values by c->bypp, in places where bytes, not pixels, are
  expected
- disable palette-writing code for non-palette pix_fmts
- make a note about histogram[]'s datatype (it could need increasing if
  ZMBV_BLOCK is increased)
- adjust the c->score_tab length to take up to (and including) 4 times the
  number of pixels in a block
- initialise c->score_tab up to c->bypp * the number of pixels

Note: the ZmbvFormat enum allows for additional bit depths:
- 1,2,4-bit (palette)
- 24-bit (RGB)

At time of writing the specifics of these (e.g. channel order, bit alignment)
are not currently defined, and DOSBox only implements support for 8/15/16/32
bpp.
One might expect the 24-bit format - if implemented - to be BGR24, to have the
same channel order as BGR0.
However, the decoder in zmbv.c has been guessed to use RGB24, so I have chosen
to not contradict this, and omitted specific support for this format.
2019-03-14 11:04:47 +01:00
Jun Li
c2a221c5ae avformat/rtpdec.h remove unused variable
Looks like the variable 'cur_timestamp' is not used anywhere.
So remove this variable.

Signed-off-by: Jun Li <junli1026@gmail.com>
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-13 12:54:30 +01:00
Mark Reid
7ff89574c7 fate/mxf: add mxf user comments tests
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-13 12:39:51 +01:00
Mark Reid
283ce69a10 avformat/mxfenc: allow user comments for opatom muxer
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-13 12:39:51 +01:00
James Almer
f6803cfbd2 avcodec/libdav1d: unref the frame on failure
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-12 19:45:10 -03:00
Vittorio Giovara
38a4132132 libdav1d: Add support for reading hdr10 metadata
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-12 19:36:30 -03:00
James Almer
36bb2cc200 avcodec/libdav1d: consistently use AVERROR return values
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-12 19:18:14 -03:00
James Almer
28746a0e20 avcodec/libdav1d: use a custom picture allocator
Replaces the libdav1d internal allocator. It uses an AVBufferPool to reduce the
amount of allocated buffers.
About 5% speed up when decoding 720p or higher streams.

Reviewed-by: "Vittorio Giovara <vittorio.giovara@gmail.com>"
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-12 19:17:45 -03:00
James Almer
2a31bf2a35 avcodec/libdav1d: move the pix_fmt enum array up in the file
This is in preparation for the following commit.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-12 19:09:43 -03:00
James Almer
dcf64b599d avcodec/libdav1d: route dav1d internal logs through av_log()
Bump the minimum required version to the first one with the logger API callback.

Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-12 19:07:50 -03:00
Michael Niedermayer
d227ed5d59 avcodec/mpeg4videodec: Check idx in mpeg4_decode_studio_block()
Fixes: Out of array access
Fixes: 13500/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-5769760178962432

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-12 00:48:56 +01:00
Andreas Rheinhardt
3f086a2f66 avcodec/mpeg4videodec: Fix nonsense warning
Since db77230894 parsing of
mpeg4-extradata lead to a "Failed to parse extradata" warning, because
ff_mpeg4_decode_picture_header returns AVERROR_INVALIDDATA in case that
no VOP was found. This patch adds a parameter to signify whether a
header (where the absence of a VOP does not raise an error) or not is
parsed. The first mode is of course used for parsing headers.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-12 00:48:56 +01:00
James Almer
5ab44ff20c Merge commit '5846b496f0a1dd5be4ef714622940674305ec00f'
* commit '5846b496f0a1dd5be4ef714622940674305ec00f':
  tests: Use a predefined function for lavf-rm test

Merged-by: James Almer <jamrial@gmail.com>
2019-03-10 22:28:03 -03:00
James Almer
bad70b7af6 Merge commit 'dad5fd59f3d6a8311365314cfcde0ebcd15c2b01'
* commit 'dad5fd59f3d6a8311365314cfcde0ebcd15c2b01':
  tests: Enable CRC test for yuv4mpeg

Merged-by: James Almer <jamrial@gmail.com>
2019-03-10 22:22:50 -03:00
James Almer
44085b9951 Merge commit '8629149816930a43bf5a66b11c6224446cabd044'
* commit '8629149816930a43bf5a66b11c6224446cabd044':
  tests: Drop duplicate variable declaration

This commit is a noop, as it breaks tests like fate-filter-pixfmts

Merged-by: James Almer <jamrial@gmail.com>
2019-03-10 22:17:25 -03:00
James Almer
1c9ac700dd Merge commit 'e22ffb3805f6994bd1fd7ab73e6297f36a53f915'
* commit 'e22ffb3805f6994bd1fd7ab73e6297f36a53f915':
  tests: Unify output directory creation

Merged-by: James Almer <jamrial@gmail.com>
2019-03-10 21:15:38 -03:00
James Almer
06476249cd Merge commit '7e5bde93a1e7641e1622814dafac0be3f413d79b'
* commit '7e5bde93a1e7641e1622814dafac0be3f413d79b':
  build: Rename OBJDIRS variable to OUTDIRS

Merged-by: James Almer <jamrial@gmail.com>
2019-03-10 19:31:13 -03:00
Carl Eugen Hoyos
715186456c lavf/matroskaenc: Allow dvdsub remuxing from some containers.
Fixes ticket #7783.
2019-03-10 20:45:45 +01:00
Michael Niedermayer
0be0197f49 avcodec/imm4: Unreference previous frame on frame size change
Fixes: Out of array access
Fixes: 13552/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_IMM4_fuzzer-5767949648920576

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-10 20:42:59 +01:00
Timo Rothenpieler
1144d5c96d avcodec/nvenc: add minimum driver version for SDK 8.2 and 9.0
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-03-10 00:25:31 +01:00
Martin Vignali
26cf50404d avcodec/proresenc_aw : fix interlace encoding for unsafe height
fix the call of the unsafe version of slice encoding in interlace mode
fix padding line count in sub image with fill in interlace mode
2019-03-09 20:46:50 +01:00
Kieran Kunhya
2ff7af563a vf_showinfo: Fix timecode display 2019-03-09 18:42:34 +00:00
Michael Niedermayer
6e0b5d3a20 avcodec/dxv: Correct integer overflow in get_opcodes()
Fixes: 13099/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXV_fuzzer-5665598896340992
Fixes: signed integer overflow: 2147483647 + 7 cannot be represented in type 'int'

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-09 15:33:53 +01:00
Michael Niedermayer
f94b4f1611 avformat/mpegts: Simplify score compare
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-09 15:31:44 +01:00
Andriy Gelman
0a84ba2608 avformat/mpegts: reduce buffering during initialization
Reduces buffering latency with low bitrate streams, where
8192 bytes can mean several seconds.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-09 15:27:07 +01:00
Linjie Fu
147ef1d947 lavf/deinterlace_qsv: set specific field for repeat
Set specific field for repeat in PicStruct if the frame has repeat
flag.

Match the CheckInputPicStruct in MSDK.

Fix #7701.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-03-08 15:08:16 +08:00
Matthew McKenna
f95aee2b72 Add the Canon XF-HEVC UL to the picture essence container UL list 2019-03-08 14:14:15 +01:00
Jun Zhao
96451477b9 lavfi/tonemap: make use of AVFILTER_DEFINE_CLASS
use AVFILTER_DEFINE_CLASS for defining the filter classes

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-03-08 09:38:09 +08:00
Jun Zhao
26dbe88ea3 lavfi/zscale: make use of AVFILTER_DEFINE_CLASS
use AVFILTER_DEFINE_CLASS for defining the filter classes

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-03-08 09:38:09 +08:00
Paul B Mahol
0ce759defd avcodec/g723_1dec: actually decode second channel 2019-03-07 01:58:43 +01:00
Paul B Mahol
7b966af930 avcodec/imm4: fix artifacts on some files with special coding mode 2019-03-07 01:41:36 +01:00
Michael Niedermayer
53248acfb3 avcodec/scpr: Fix use of uninitialized variable
Fixes: Undefined shift
Fixes: 12911/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5677102915911680

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-06 23:40:47 +01:00
Paul B Mahol
93402561fd avcodec/imm4: add support for mid-stream size changes 2019-03-06 20:31:34 +01:00
joepadmiraal
056a2ac168 avformat/dashenc: Added #EXT-X-PROGRAM-DATE-TIME to HLS playlists 2019-03-06 10:58:57 +05:30
James Almer
db332832a1 configure: allow enabling libvpx vp9 modules when vp8 is disabled
libvpx can be compiled with the VP8 decoder and encoder disabled, and
there's no reason to force their presence if the user only wants VP9.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-04 11:51:13 -03:00
Guo, Yejun
d9b2668766 configure: use vpx_codec_vp8_dx/cx for libvpx-vp8 checking
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-04 11:33:41 -03:00
Guo, Yejun
402bf26237 configure: add missing pthreads extralibs dependency for libvpx-vp9
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-04 11:33:41 -03:00
Martin Vignali
88d0be1c0e avcodec/qtrle : improve 24bbp decoding speed
benchmark on x86_64 :
mainly raw data : 20 -> 39 fps
mainly rle data : 97 -> 119fps
2019-03-04 13:03:47 +01:00
Martin Vignali
3278ea67c8 avcodec/qtrle : 32bpp dec copy two raw argb value at the same time
benchmark on x86_64 :
38 fps -> 40 fps
2019-03-04 13:03:42 +01:00
Martin Vignali
5496a73488 avcodec/qtrle : avoid swap in 32bpp decoding on little endian
improve speed on little endian

benchmark on x86_64 :
mainly raw : 33fps -> 38fps
mainly rle : 128fps -> 153 fps
2019-03-04 13:03:39 +01:00
Martin Vignali
9cb576fc1e fate/qtrle : change 32b test to output bgra instead of rgb24 2019-03-04 13:03:34 +01:00
Jan Ekström
4635f64953 lavc/libx265: signal CPB properties through side data
This way values such as maxrate/bufsize can be utilized
further down the chain.
2019-03-03 23:42:27 +02:00
Paul B Mahol
17008a0107 avcodec/hcom: check that index into array is valid 2019-03-03 20:21:20 +01:00
Paul B Mahol
a367a932d3 avcodec/utils: remove commented out obsolete code 2019-03-03 18:43:22 +01:00
Michael Niedermayer
b819472995 avcodec/qpeg: Limit copy in qpeg_decode_intra() to the available bytes
Fixes: Timeout (27 sec -> 39 milli sec)
Fixes: 13151/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_QPEG_fuzzer-5717536023248896

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
951bb7632f avcodec/aic: Check remaining bits in aic_decode_coeffs()
Fixes: Timeout (78 seconds -> 2 seconds)
Fixes: 13186/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AIC_fuzzer-5639516533030912

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
5cf42f65b6 avcodec/gdv: Check for truncated tags in decompress_5()
Testcase: 13169/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5666354038833152

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
b8ecadec05 avcodec/bethsoftvideo: Check block_type
Fixes: Timeout (17 seconds -> 1 second)
Fixes: 13184/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BETHSOFTVID_fuzzer-5711446296494080

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
1eb35eb50e avcodec/diracdec: Correct max pixels check
Dirac internally allocates 5 images per plane and frame currently. One being the actual
image the other 4 being filtered for motion compensation.

Fixes: Out of memory
Fixes: 12870/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5684825871089664

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Gyan Doshi
73b62f3026 doc/protocols: move option follow entry to correct section
The entry for file protocol option 'follow' was inserted under ftp options
during merge of a Libav commit - 90eb249969. Corrected.
2019-03-03 10:59:00 +05:30