Andreas Rheinhardt
98060a198e
avcodec/vc1dec: Fix memleak upon allocation error
...
ff_vc1_decode_init_alloc_tables() had one error path that forgot to free
already allocated buffers; these would then be overwritten on the next
allocation attempt (or they would just not be freed in case this
happened during init, as the decoders for which it is used do not have
the FF_CODEC_CAP_INIT_CLEANUP set).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2021-04-08 10:51:59 +02:00
Andreas Rheinhardt
ea70c39dee
avcodec/vc1dec: Postpone allocating sprite frame to avoid segfault
...
Up until now, the VC-1 decoders allocated an AVFrame for usage with
sprites during vc1_decode_init(); yet said AVFrame can be freed if
(re)initializing the context (which happens ordinarily during decoding)
fails. The AVFrame does not get allocated again lateron in this case,
leading to segfaults.
Fix this by moving the allocation of said frame immediately before it is
used (this also means that said frame won't be allocated at all any more
in case of a regular (i.e. non-image) stream).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2021-03-25 00:02:17 +01:00
Andreas Rheinhardt
2c6f532e0a
Mark some pointers as const
...
Reviewed-by: Lynne <dev@lynne.ee >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2021-01-01 15:25:48 +01:00
Mark Thompson
2594f6a362
lavc: Rename hwaccel.h to hwconfig.h
...
This already applied to decoders as well as hwaccels, and adding encoder
support was going to make the name even more inaccurate.
2020-04-26 18:38:25 +01:00
Michael Niedermayer
6a69f04927
avcodec/vc1dec: Allocate only as much space as is unescaped
...
Fixes: OOM
Fixes: 18137/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-5723834900021248
Fixes: 20037/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-5683758976204800
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-01-18 18:35:57 +01:00
Michael Niedermayer
fea90e9438
libavcodec/vc1: Remove bits variable
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-01-11 23:31:18 +01:00
Michael Niedermayer
32fb919836
avcodec/vc1dec: Check field_mode for sprites
...
Fixes: Out of array read
Fixes: 19263/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-5389219325542400
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-01-11 23:31:18 +01:00
Michael Niedermayer
c56a52a82c
avcodec/vc1dec: Limit bits by the actual bitstream size
...
Fixes: Timeout (350 ->19sec)
Fixes: 19249/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-6566896438870016
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-01-11 23:31:18 +01:00
Michael Niedermayer
26f040bcb4
avcodec/vc1dec: Fix "return -1" cases
...
Reviewed-by: "mypopy@gmail.com " <mypopy@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-12-28 11:20:48 +01:00
Michael Niedermayer
3ee9240be3
avcodec/vc1dec: Free sprite_output_frame on error
...
Fixes: memleaks
Fixes: 19471/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-5688035714269184
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-12-28 11:20:48 +01:00
Limin Wang
ef91e3955a
avcodec/vc1dec: remove the unneeded ()
...
Signed-off-by: Limin Wang <lance.lmwang@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-12-26 22:22:33 +01:00
Michael Niedermayer
9c6b400492
avcodec/vc1dec: Require res_sprite for wmv3images
...
non res_sprite leads to decoder delay which leads to assertion failure
Fixes: Assertion failure
Fixes: 16402/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV3IMAGE_fuzzer-5704510034411520
Fixes: left shift of 1073741824 by 1 places cannot be represented in type 'int'
Fixes: 16425/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV3IMAGE_fuzzer-5692858838810624
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-08-31 18:34:05 +02:00
Jerome Borsboom
efde2a70ff
avcodec/vc1: fix check for missing CBPTAB
...
CBPTAB must be present in (non skipped) P and B pictures.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl >
2018-06-29 01:19:10 +02:00
Jerome Borsboom
89651c82b8
avcodec/vc1: support multi-slice field interlaced pictures with hwaccel
...
When using hardware accelerated decoding for multi-slice field interlaced pictures,
only the first slice was decoded. This patch adds the neccesary looping over the
remaining slices that may exist in field interlaced pictures. Additionally, we align
the calculation of mby_start for the second field with the method given in VC-1 spec.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl >
2018-06-17 16:35:36 +01:00
Jerome Borsboom
2b86472a65
avcodec/vc1: fix calculation of the last line of a slice
...
Only for the last slice of the first field is the last line of the slice
equal to the height of the field.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-05-20 13:17:36 +02:00
Jerome Borsboom
c5f74b1e23
avcodec/vc1: store additional bitstream elements during MB decoding
...
The new loop filter needs additional MB properties to make its filtering
decisions.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl >
2018-04-25 22:07:20 +02:00
James Almer
1eee394c7c
avcodec/vc1dec: fix preprocessor checks and hw_configs lists for the hwaccels
...
Signed-off-by: James Almer <jamrial@gmail.com >
2017-11-26 22:22:17 -03:00
Mark Thompson
758fbc54fe
lavc: Add hardware config metadata for decoders supporting hardware output
...
This includes a pointer to the associated hwaccel for decoders using
hwaccels - these will be used later to implement the hwaccel setup
without needing a global list.
Also added is a new file listing all hwaccels as external declarations -
this will be used later to generate the hwaccel list at configure time.
2017-11-26 21:35:53 +00:00
Philip Langdale
912ceba61b
avcodec: Implement vc1 nvdec hwaccel
...
This hwaccel is interesting because it also works for wmv3/9 content,
which is not supported by the nvidia parser used by cuviddec.
2017-11-14 19:40:01 -08:00
James Almer
b773a8d8c1
Merge commit 'dd343fd986459f467a2d1d70c26101dff1d47d68'
...
* commit 'dd343fd986459f467a2d1d70c26101dff1d47d68':
lavu: Drop deprecated VDPAU pixel formats
Merged-by: James Almer <jamrial@gmail.com >
2017-10-23 18:15:49 -03:00
James Almer
c68a3ab96e
Merge commit '7b917041184874e7d7cba4450813de7e0bb28a33'
...
* commit '7b917041184874e7d7cba4450813de7e0bb28a33':
lavc: Drop deprecated VDPAU codec capability
Merged-by: James Almer <jamrial@gmail.com >
2017-10-21 23:40:03 -03:00
wm4
70143a3954
dxva: add support for new dxva2 and d3d11 hwaccel APIs
...
This also adds support to avconv (which is trivial due to the new
hwaccel API being generic enough).
The new decoder setup code in dxva2.c is significantly based on work by
Steve Lhomme <robux4@gmail.com >, but with heavy changes/rewrites.
Merges Libav commit f9e7a2f95a .
Also adds untested VP9 support.
The check for DXVA2 COBJs is removed. Just update your MinGW to
something newer than a 5 year old release.
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2017-06-27 18:05:02 +02:00
Diego Biurrun
dcc39ee10e
lavc: Remove deprecated XvMC support hacks
...
Deprecated in 11/2013.
2017-03-23 10:09:14 +01:00
Hendrik Leppkes
36e27c87e7
vc1dec: support multiple slices in frame coded images with hwaccel
...
Based on a patch by Jun Zhao <mypopydev@gmail.com >
2016-11-26 13:11:32 +01:00
Anton Khirnov
33f10546ec
vc1: check that slices have a positive height
...
Fixes possible invalid reads.
CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2016-08-18 17:06:46 +02:00
Clément Bœsch
8ef57a0d61
Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
...
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
cosmetics: Fix spelling mistakes
Merged-by: Clément Bœsch <u@pkh.me >
2016-06-21 21:55:34 +02:00
Derek Buitenhuis
e811ebcd9c
Merge commit 'ca8c7591735c0f80cc29e31e2e92cb10228e14c7'
...
* commit 'ca8c7591735c0f80cc29e31e2e92cb10228e14c7':
intrax8: Remove mpegvideo dependency
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-05-07 21:41:27 +01:00
Derek Buitenhuis
f110c624b1
Merge commit '9fa888c02801fff2e8817c24068f5296bbe60000'
...
* commit '9fa888c02801fff2e8817c24068f5296bbe60000':
intrax8: Keep a reference to the decoder blocks
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-05-07 21:39:44 +01:00
Derek Buitenhuis
578fb5a27d
Merge commit 'd0540fd02171a6233d2016b199d013299debf7e3'
...
* commit 'd0540fd02171a6233d2016b199d013299debf7e3':
intrax8: Pass macroblock size to ff_intrax8_common_init
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-05-07 21:35:20 +01:00
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2016-05-04 18:16:21 +02:00
Derek Buitenhuis
52692eed61
Merge commit '1eaae7abb8f208fefb4e8b9e983e61b2499206a3'
...
* commit '1eaae7abb8f208fefb4e8b9e983e61b2499206a3':
intrax8: Reference the current AVCodecContext
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-04-24 12:34:58 +01:00
Derek Buitenhuis
83e0b1b1d7
Merge commit '68127e1bf8037a6e0acd6401cc8c5da950e3fa0a'
...
* commit '68127e1bf8037a6e0acd6401cc8c5da950e3fa0a':
intrax8: Keep a reference to the context idctdsp
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-04-24 12:19:53 +01:00
Derek Buitenhuis
61400a1dc7
Merge commit 'd909f43b5c773a73c8d526638744547ba4aa8c59'
...
* commit 'd909f43b5c773a73c8d526638744547ba4aa8c59':
vc1dec: wmv2dec: Validate ff_intrax8_common_init return value
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-04-17 19:32:26 +01:00
Derek Buitenhuis
3dec7ed3cf
Merge commit 'e66fa35392cd45d0a80774cd057fb765d60def43'
...
* commit 'e66fa35392cd45d0a80774cd057fb765d60def43':
vc1dec: Check group allocations separatedly
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-04-11 15:06:18 +01:00
Derek Buitenhuis
015ca20030
Merge commit 'f91d94bdfc3f5f83ff0be4d19d10d0a35697386f'
...
* commit 'f91d94bdfc3f5f83ff0be4d19d10d0a35697386f':
vc1dec: Properly call deinit function on error
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-04-11 15:01:43 +01:00
Derek Buitenhuis
e06f5c6f94
Merge commit '35b1cd343cd703c1b0fc926dc43a92141a357380'
...
* commit '35b1cd343cd703c1b0fc926dc43a92141a357380':
vc1dec: Drop commented out cruft
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-04-11 15:00:53 +01:00
Vittorio Giovara
ca8c759173
intrax8: Remove mpegvideo dependency
2016-03-29 13:41:09 +02:00
Vittorio Giovara
9fa888c028
intrax8: Keep a reference to the decoder blocks
2016-03-29 13:41:09 +02:00
Vittorio Giovara
d0540fd021
intrax8: Pass macroblock size to ff_intrax8_common_init
...
Helps in decoupling this code from mpegvideo.
2016-03-29 13:41:09 +02:00
Vittorio Giovara
1eaae7abb8
intrax8: Reference the current AVCodecContext
...
It will be needed to initialize BlockDSP in the next commit.
2016-03-25 15:55:02 -04:00
Vittorio Giovara
68127e1bf8
intrax8: Keep a reference to the context idctdsp
...
Use it instead of the embedded mpegvideo one. Update init function
signature to load it directly from the callers.
2016-03-25 15:52:24 -04:00
Vittorio Giovara
d909f43b5c
vc1dec: wmv2dec: Validate ff_intrax8_common_init return value
2016-03-22 17:33:32 -04:00
Mark Thompson
d264c720f7
lavu: deprecate AV_PIX_FMT_VAAPI_*, replace with AV_PIX_FMT_VAAPI
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-03-19 15:40:22 +01:00
Vittorio Giovara
e66fa35392
vc1dec: Check group allocations separatedly
...
This avoids accessing NULL pointers in case of error.
2016-02-25 15:21:42 -05:00
Vittorio Giovara
01f0e6a0c9
vc1dec: Fix leak on error for array allocations
...
The deinit function in the 'error' section will correctly free
everything.
2016-02-25 15:20:53 -05:00
Vittorio Giovara
f91d94bdfc
vc1dec: Properly call deinit function on error
2016-02-25 15:20:24 -05:00
Vittorio Giovara
35b1cd343c
vc1dec: Drop commented out cruft
2016-02-25 15:19:36 -05:00
Hendrik Leppkes
42ff56e362
lavc: fix profile declarations for vdpau decoders
2016-01-01 16:48:47 +01:00
Hendrik Leppkes
5e8b053452
Merge commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6'
...
* commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6':
lavc: add profiles to AVCodecDescriptor
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com >
2016-01-01 16:20:39 +01:00
Anton Khirnov
2c6811397b
lavc: add profiles to AVCodecDescriptor
...
The profiles are a property of the codec, so it makes sense to export
them through AVCodecDescriptors, not just the codec implementations.
2015-12-12 21:22:49 +01:00