Andreas Rheinhardt
f7bc0386d9
avcodec/ffv1enc: Fix out-of-bounds-array access
...
libavcodec/ffv1enc.c accessed an array of uint8_t [32] via array[0][j]
in order to loop over all the uint8_t in this array of arrays. Of course
this implied an out-of-bounds access for array[0] and UBSan complained
about this. So replace this with nested loops; furthermore, factor this
out into a function of its own to easily break out of the nested loops.
This affected the FATE-tests vsynth1-ffv1, vsynth1-ffv1-v3-yuv420p,
vsynth1-ffv1-v3-yuv422p10, vsynth1-ffv1-v3-yuv444p16,
vsynth1-ffv1-v3-bgr0, vsynth1-ffv1-ffv1-v3-rgb48 as well as the
corresponding vsynth2-*, vsynth3-* and the vsynth_lena-* tests.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-28 17:24:32 +02:00
Michael Niedermayer
1be9a28f8e
avcodec/rangecoder: factorize termination version code
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-12-31 17:44:18 +01:00
Michael Niedermayer
a734ff4b0e
libavcodec/ffv1enc: minor cosmetic fix
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-06-23 01:06:29 +02:00
Marton Balint
7033654f7f
Use AV_PIX_FMT_FLAG_ALPHA for detecting transparency where nb_components was used
...
Temporarily keep the old method for ffmpeg_filters.c choose_pix_fmt and
avfiltergraph.c pick_format() until a paletted pixel format without alpha is
introduced.
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-04-30 21:51:31 +02:00
Michael Niedermayer
d9706f79c1
avcodec/ffv1enc: Check that the crc + version combination is supported
...
The crc flag is only stored since version 3 thus before this crcs do not
work. We increase the version as needed same as we do with pix_fmts
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-24 01:29:17 +02:00
Jérôme Martinez
b6fc09cdb4
avcodec/ffv1: support of more pix_fmt
...
Without direct support of such pix_fmt, content is padded to 16-bit
and it is not possible to know that the source file was with a smaller bit depth
so framemd5 is different
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-10 17:55:50 +01:00
Jérôme Martinez
00035a6b4a
avcodec/ffv1enc: remove warning about transparency
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-03-09 02:39:21 +01:00
Jérôme Martinez
fb580731c1
avcodec/ffv1: Support for GBRAP10 and GBRAP12
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-15 04:35:23 +01:00
Jérôme Martinez
698d5eb5bf
avcodec/ffv1: Support for RGBA64 and GBRAP16
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-06 23:07:10 +01:00
Jérôme Martinez
e3d946b3f4
avcodec/ffv1enc: mark RGB48 support as non-experimental
...
Remove the 2nd mark, 1st mark was removed in 58e16a4
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-03 00:22:47 +01:00
Jérôme Martinez
58e16a4f4b
avcodec/ffv1enc: mark RGB48 support as non-experimental
...
Resulting bitstream was tested with a conformance checker
using the last draft of FFV1 specifications.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Also the files are already in the wild, and decoder support is
thus needed. And with decoders widely supporting it, there is no
advantage in not allowing it in the encoder.
The exact bitstream format may change in future versions of the
spec, if improvments are found.
2018-01-12 12:31:55 +01:00
Martin Vignali
4ada428aae
avcodec: remove remaining uses of avcodec_get_chroma_sub_sample
...
Replace them with av_pix_fmt_get_chroma_sub_sample.
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-06 19:13:03 -03:00
Michael Niedermayer
0f8d3d8a46
avcodec/ffv1enc: compute the max number of slices and limit by that
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-27 13:09:58 +02:00
Michael Niedermayer
430d4f2bb5
avcodec/ffv1enc: Allow less than 2 rows of slices for low vertical resolution
...
Fixes: Ticket5548
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-27 12:54:06 +02:00
Michael Niedermayer
4147bb9053
avcodec/ffv1enc: Try to choose slice count so that slice packet sizes are within the supported size
...
Fixes assertion failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-26 16:06:25 +02:00
Clément Bœsch
2f42aef3e4
Merge commit '17cb56b35672a2cd6ad7abe926e6cc772b8f4710'
...
* commit '17cb56b35672a2cd6ad7abe926e6cc772b8f4710':
ffv1: Remove broken disabled cruft
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-19 15:58:43 +01:00
Michael Niedermayer
38a7834bbb
avcodec/ffv1enc: Allocate smaller packet if the worst case size cannot be allocated
...
We are checking during encoding if there is enough space as version 4 needs that
check.
Fixes Ticket6005
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-09 01:59:40 +01:00
Michael Niedermayer
cff1c0edaa
avcodec/ffv1enc: Fix size of first slice
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-09 01:59:30 +01:00
Carl Eugen Hoyos
322568c079
lavc/ffv1: Support YUV4xxP12 and GRAY12.
2016-11-20 22:23:01 +01:00
Carl Eugen Hoyos
f8247c0cce
lavc/ffv1enc: Support pix_fmt GRAY10.
2016-11-17 12:47:39 +01:00
Michael Niedermayer
c1173437fc
avcodec/ffv1enc: Fix storing RGB48 without explicitly set level
...
the bps value is only stored with level >= 1, using rgb48 with level 0 requires the
user app to keep track of the bps by external means, which does not always happen
also we force level >= 1 for other 16bps formats, so this is consistent.
Found-by: Jerome Martinez <jerome@mediaarea.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-25 02:51:34 +02:00
Diego Biurrun
17cb56b356
ffv1: Remove broken disabled cruft
2016-08-17 12:16:42 +02:00
Michael Niedermayer
62f5e601aa
avcodec/ffv1enc: Add RGB48 support
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-16 23:06:02 +02:00
Michael Niedermayer
a95fdac4c6
avcodec/ffv1enc: do not offset null pointers
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-16 23:05:27 +02:00
Michael Niedermayer
87da118898
avcodec/ffv1enc: Factor rice high depth check out
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-16 23:03:10 +02:00
Michael Niedermayer
ce2217b25e
avcodec/ffv1: add AV_PIX_FMT_GBRP16 support
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-08 00:32:09 +02:00
Michael Niedermayer
74314f1f5f
avcodec/ffv1: template functions to allow data types different from int16_t
...
This is required for >= 16bit RGB support
I tried it without templates but its too much duplicated code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-08 00:27:43 +02:00
Michael Niedermayer
c1bfeda5a3
avcodec/ffv1enc: Fix assertion failure with non zero bits per sample
...
Fixes Ticket5736
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-06 02:22:15 +02:00
Luca Barbato
fe6e5cbea7
ffv1: Remove version 2 and mark version 3 as non-experimental
...
The encoder produces bitstream compatible with the current specification
and version 2 is set as reserved (non-standardizable).
2016-06-29 07:21:07 +02:00
Clément Bœsch
9204a84998
Merge commit '5c31eaa9998b2185e0aa04d11adff128498dc14a'
...
* commit '5c31eaa9998b2185e0aa04d11adff128498dc14a':
Remove unnecessary get_bits.h #includes and add missing headers where needed.
Merged-by: Clément Bœsch <clement@stupeflix.com>
2016-06-21 15:42:49 +02:00
James Almer
403a53c60e
avcodec/ffv1enc: silence warning about deprecated coded_frame
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-06-17 16:53:13 -03:00
Alexandra Hájková
5c31eaa999
Remove unnecessary get_bits.h #includes and add missing headers where needed.
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 15:14:14 +02:00
Derek Buitenhuis
5b0d4c247a
Merge commit '96c373c7704aeb1cc1d2c275fbb5d71777665589'
...
* commit '96c373c7704aeb1cc1d2c275fbb5d71777665589':
lavc: Move context_model to codec private options
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-28 16:57:04 +00:00
Derek Buitenhuis
21f9468402
avutil: Rename FF_CEIL_COMPAT to AV_CEIL_COMPAT
...
Libav, for some reason, merged this as a public API function. This will
aid in future merges.
A define is left for backwards compat, just in case some person
used it, since it is in a public header.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 16:36:46 +00:00
Vittorio Giovara
96c373c770
lavc: Move context_model to codec private options
...
This option is only used by ffv1 and ffvhuff.
It is a very codec-specific option, so deprecate the global variant.
Improve documentation a little.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-21 15:33:19 -05:00
Clément Bœsch
e8bc642202
lavu: add AV_CEIL_RSHIFT and use it in various places
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-11 15:32:56 -05:00
Michael Niedermayer
3843e52cb4
avcodec/ffv1enc: Support AV_PIX_FMT_YA8
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-01 01:32:07 +01:00
Michael Niedermayer
2d2b41d169
avcodec/ffv1enc: Fix 2 pass mode with the default rc table
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-19 20:42:54 +01:00
Michael Niedermayer
1c878474fb
avcodec/ffv1enc: unbreak -coder option
...
This fixes a segfault caused by moving the coder option and changing its semantics
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-18 18:08:00 +01:00
Hendrik Leppkes
2630f7f709
Merge commit 'be00ec832c519427cd92218abac77dafdc1d5487'
...
* commit 'be00ec832c519427cd92218abac77dafdc1d5487':
lavc: Deprecate coder_type and its symbols
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-18 14:27:41 +01:00
Vittorio Giovara
be00ec832c
lavc: Deprecate coder_type and its symbols
...
Most option values are simply unused or ignored and in practice the
majory of codecs only need to check whether to enable rle or not.
Add appropriate codec private options which better expose the allowed
features.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:01:22 -05:00
Clément Bœsch
fb99ef0bd3
avcodec: use AV_OPT_TYPE_BOOL in a bunch of places
2015-12-04 15:37:05 +01:00
Derek Buitenhuis
bba2488f07
Merge commit '4bb1070c154e49d35805fbcdac9c9e92f702ef96'
...
* commit '4bb1070c154e49d35805fbcdac9c9e92f702ef96':
ffv1: Explicitly name the coder type
Conflicts:
libavcodec/ffv1.h
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22 16:57:43 +00:00
Vittorio Giovara
4bb1070c15
ffv1: Explicitly name the coder type
...
FFv1 uses two types of coders, golomb and range with two different
tables. This is exposed this in a rather convoluted way, for example
mentioning to set coder type 1 while initializing the variable 'ac' to 2,
because encoder does not use range coder with default table.
Appropriate internal coder type values have been added and used in any
check rather than using raw numbers.
Initialization of avctx.coder_type in ffv1dec is removed because this
field is encoder only. An unneeded validation check in the encoder
is dropped too.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-11-16 12:56:31 +01:00
Michael Niedermayer
aa6c43f3fd
avcodec/ffv1: seperate slice_count from max_slice_count
...
Fix segfault with too large slice_count
Fixes Ticket4879
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-24 23:53:02 +02:00
Michael Niedermayer
72db5e96fc
avcodec/ffv1enc: Fix error message when the requested version does not support the requested features
...
Found-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-15 20:46:04 +02:00
Hendrik Leppkes
5d8e836d0e
Replace all remaining occurances of step/depth_minus1 and offset_plus1
2015-09-08 17:10:48 +02:00
Timothy Gu
f0af25ae11
ffv1: Add missing ff_ prefixes
2015-08-22 08:36:20 -07:00
Michael Niedermayer
29d147c94d
Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
...
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
lavc: Consistently prefix input buffer defines
Conflicts:
doc/examples/decoding_encoding.c
libavcodec/4xm.c
libavcodec/aac_adtstoasc_bsf.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.h
libavcodec/asvenc.c
libavcodec/avcodec.h
libavcodec/avpacket.c
libavcodec/dvdec.c
libavcodec/ffv1enc.c
libavcodec/g2meet.c
libavcodec/gif.c
libavcodec/h264.c
libavcodec/h264_mp4toannexb_bsf.c
libavcodec/huffyuvdec.c
libavcodec/huffyuvenc.c
libavcodec/jpeglsenc.c
libavcodec/libxvid.c
libavcodec/mdec.c
libavcodec/motionpixels.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo.c
libavcodec/noise_bsf.c
libavcodec/nuv.c
libavcodec/nvenc.c
libavcodec/options.c
libavcodec/parser.c
libavcodec/pngenc.c
libavcodec/proresenc_kostya.c
libavcodec/qsvdec.c
libavcodec/svq1enc.c
libavcodec/tiffenc.c
libavcodec/truemotion2.c
libavcodec/utils.c
libavcodec/utvideoenc.c
libavcodec/vc1dec.c
libavcodec/wmalosslessdec.c
libavformat/adxdec.c
libavformat/aiffdec.c
libavformat/apc.c
libavformat/apetag.c
libavformat/avidec.c
libavformat/bink.c
libavformat/cafdec.c
libavformat/flvdec.c
libavformat/id3v2.c
libavformat/isom.c
libavformat/matroskadec.c
libavformat/mov.c
libavformat/mpc.c
libavformat/mpc8.c
libavformat/mpegts.c
libavformat/mvi.c
libavformat/mxfdec.c
libavformat/mxg.c
libavformat/nutdec.c
libavformat/oggdec.c
libavformat/oggparsecelt.c
libavformat/oggparseflac.c
libavformat/oggparseopus.c
libavformat/oggparsespeex.c
libavformat/omadec.c
libavformat/rawdec.c
libavformat/riffdec.c
libavformat/rl2.c
libavformat/rmdec.c
libavformat/rtpdec_latm.c
libavformat/rtpdec_mpeg4.c
libavformat/rtpdec_qdm2.c
libavformat/rtpdec_svq3.c
libavformat/sierravmd.c
libavformat/smacker.c
libavformat/smush.c
libavformat/spdifenc.c
libavformat/takdec.c
libavformat/tta.c
libavformat/utils.c
libavformat/vqf.c
libavformat/westwood_vqa.c
libavformat/xmv.c
libavformat/xwma.c
libavformat/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Michael Niedermayer
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00