Commit graph

44944 commits

Author SHA1 Message Date
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
Andreas Rheinhardt
d07534b5f5 avcodec/avcodec: Free frame_thread_encoder on avcodec_open2() error
The frame_thread_encoder has so far not been freed in case an error
happened in avcodec_open2() after ff_frame_thread_encoder_init().
This commit changes this.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-28 01:50:40 +02:00
Andreas Rheinhardt
83b6471dcb avcodec/avcodec: Remove unnecessary forward declaration
Forgotten in ba6cada92e.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-28 01:50:39 +02:00