Andreas Rheinhardt
406d005601
avcodec/huffyuvdec: Mark decoders as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 03:02:56 +02:00
Andreas Rheinhardt
908187bbf6
avcodec/huffyuvdec: Cleanup generically on init failure
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:58:47 +02:00
Andreas Rheinhardt
b3df59a5ea
avcodec/hnm4video: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:57:55 +02:00
Andreas Rheinhardt
c437afa3d3
avcodec/hcom: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:56:55 +02:00
Andreas Rheinhardt
19b8a405d6
avcodec/interplayvideo: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:56:03 +02:00
Andreas Rheinhardt
e6142f2695
avcodec/interplayacm: Make decoder init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:54:51 +02:00
Andreas Rheinhardt
8d87e1ef6c
avcodec/indeo3: Make decoder init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:53:38 +02:00
Andreas Rheinhardt
8b8358f580
avcodec/ilbcdec: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:53:27 +02:00
Andreas Rheinhardt
abe61c349d
avcodec/iff: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:51:52 +02:00
Andreas Rheinhardt
9ae6f5ae92
avcodec/iff: Reorder checks to avoid unnecessary alloc+free
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:50:34 +02:00
Andreas Rheinhardt
3d0559ee7d
avcodec/jvdec: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:50:18 +02:00
Andreas Rheinhardt
67b6f5fbb5
avcodec/lagarith: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:49:31 +02:00
Andreas Rheinhardt
93aa9056e8
avcodec/mvcdec: Mark decoders as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:48:42 +02:00
Andreas Rheinhardt
a3ccfed618
avcodec/msvideo1enc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:47:10 +02:00
Andreas Rheinhardt
ecaf3c2400
avcodec/msvideo1: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:46:50 +02:00
Andreas Rheinhardt
bf40d3b94d
avcodec/mss3: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:46:10 +02:00
Andreas Rheinhardt
8b395a5123
avcodec/mss1: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:44:46 +02:00
Andreas Rheinhardt
e48c11523f
avcodec/msrle: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:44:20 +02:00
Andreas Rheinhardt
a257069370
avcodec/gsmdec: Mark decoders as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:43:48 +02:00
Andreas Rheinhardt
b8c0fb34ec
avcodec/mmvideo: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:42:44 +02:00
Andreas Rheinhardt
cf728ce041
avcodec/midivid: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:42:26 +02:00
Andreas Rheinhardt
21b0e06981
avcodec/magicyuvenc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:41:25 +02:00
Andreas Rheinhardt
f6cc7199a5
avcodec/mace: Mark decoders as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:41:12 +02:00
Andreas Rheinhardt
8a67b20232
avcodec/m101: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:41:01 +02:00
Andreas Rheinhardt
83e96418f7
avcodec/notchlc: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:40:14 +02:00
Andreas Rheinhardt
275d7a81e0
avcodec/on2avc: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:38:45 +02:00
Andreas Rheinhardt
cc07608240
avcodec/proresenc_kostya: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:37:43 +02:00
Andreas Rheinhardt
0ca016ea93
avcodec/proresenc_anatoliy: Mark encoders as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:36:22 +02:00
Andreas Rheinhardt
659c2aa35c
avcodec/proresdec2: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:35:37 +02:00
Andreas Rheinhardt
6834c79636
avcodec/pgssubdec: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:34:46 +02:00
Andreas Rheinhardt
f8667163dd
avcodec/pcxenc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:34:27 +02:00
Andreas Rheinhardt
dbabb5cec8
avcodec/pamenc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:33:45 +02:00
Andreas Rheinhardt
3e732426d1
avcodec/rpza: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:33:28 +02:00
Andreas Rheinhardt
837ee53724
avcodec/roqvideoenc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:32:47 +02:00
Andreas Rheinhardt
1a83c3a710
avcodec/roqvideodec: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:32:10 +02:00
Andreas Rheinhardt
db09d3ed17
avcodec/roqaudioenc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:30:49 +02:00
Andreas Rheinhardt
d0639af58e
avcodec/rl2: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:29:47 +02:00
Andreas Rheinhardt
543a2c3784
avcodec/ralf: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:27:40 +02:00
Andreas Rheinhardt
51e38d8e15
avcodec/ra144enc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:26:21 +02:00
Andreas Rheinhardt
b7a0850101
avcodec/ra144dec: Mark decoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:23:48 +02:00
Andreas Rheinhardt
71ace22d93
avcodec/r210enc: Mark encoders as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:21:37 +02:00
Andreas Rheinhardt
6c18957445
avcodec/sunrastenc: Mark encoder as init-threadsafe
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-05-02 02:19:54 +02:00
James Almer
fb5e2d7112
avcodec/mjpegdec: fix SOF check in EOI
...
For frames decoded with skip_frame == AVDISCARD_ALL, a picture is not allocated
and got_picture is never set to 1 even if a SOF and SOS were parsed.
The existing check in EOI only cares if a SOF was parsed, not if a picture
allocated, so change it and add a new check to explicitly ensure a picture was
allocated when skip_frame != AVDISCARD_ALL.
Fixes probing and decoding when skip_frame is AVDISCARD_ALL.
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-30 10:09:30 -03:00
Andreas Rheinhardt
4e8d22478b
avcodec/zmbvenc: Simplify setting keyframe flag
...
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-29 02:44:14 +02:00
Andreas Rheinhardt
2606c48391
avcodec/flacenc: Remove always-true check
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-28 17:42:37 +02:00
Andreas Rheinhardt
1c7f252783
avcodec: Remove redundant freeing of extradata of encoders
...
AVCodecContext.extradata is freed generically by libavcodec for
encoders, so it is unnecessary for an encoder to do it on its own.
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-28 16:56:40 +02:00
Zane van Iperen
1ab74bc193
avcodec/adpcm_ima_apm: cosmetics
...
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2021-04-28 11:13:50 +10:00
Zane van Iperen
a859e57424
avcodec/adpcm_ima_apm: remove old extradata format
...
Was added in error very early on, passing in only the required fields.
Later, the muxer and demuxer were changed to pass the entire APMState
struct as extradata.
Technically a breaking change, but this was only around for a *very* short
time before it was updated,
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2021-04-28 11:13:43 +10:00
Andreas Rheinhardt
9e13df3776
avcodec/avcodec: Use avcodec_close() on avcodec_open2() failure
...
Compared to the earlier behaviour the following changes:
a) AVCodecInternal.byte_buffer is freed.
b) The last_pkt_props FIFO is emptied before freeing it.
c) If set AVCodecContext.hwaccel is uninitialized and its private data
is freed; hw_frames_ctx and hw_device_ctx are also unreferenced.
d) coded_side_data is freed.
e) active_thread_type is reset.
a), b), d) should be no-ops as the buffer/fifo should be empty and
no coded_side_data should exist at any point of avcodec_open2().
e) is obviously not bad.
c) is in accordance with the documentation of hw_(frames|device)_ctx
which states that libacodec takes over ownership of these references.
At least in the case of VC-1 it is possible for the hw acceleration to
be set during init and in this case freeing it actually fixes a memleak.
avcodec_close() needed only minor adjustments to make it work with
a potentially not fully initialized codec.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-28 02:19:22 +02:00
Andreas Rheinhardt
29f5c1e51b
avcodec/avcodec: Store whether AVCodec->close needs to be called
...
Right now all AVCodecContexts except those using frame-threaded decoding
call the codec's init function and expect its close function to be
called. In order to make sure that the close function is not called for
frame-threaded decoding ff_frame_thread_free() resets
AVCodecContext.codec (and because of this it has to free the private
AVOptions of the main AVCodecContext itself). This is not obvious and
potentially fragile. Instead add a field to AVCodecInternal that
indicates whether close should be called for this AVCodecContext.
It is always zero when using frame-threaded decoding, so that resetting
the codec is no longer necessary and has been removed.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-28 02:03:15 +02:00