diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-09-02 21:51:35 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-04-19 13:18:04 +0200 |
commit | ac8288e2882a2cb5395dcee7ee19e56ad1a678e4 (patch) | |
tree | c944357a2d137035d1a08cf74b9dc6257f3da5df /libavcodec/ffv1.h | |
parent | 2f29147b7f4564eb519551e064baee1a49ea05c2 (diff) | |
download | ffmpeg-ac8288e2882a2cb5395dcee7ee19e56ad1a678e4.tar.gz |
avcodec/ffv1dec: Switch to ProgressFrames
Avoids implicit av_frame_ref() and therefore allocations
and error checks. It also avoids explicitly allocating
the AVFrames (done implicitly when getting the buffer).
It also fixes a data race: The AVFrame's sample_aspect_ratio
is currently updated after ff_thread_finish_setup()
and this write is unsynchronized with the read in av_frame_ref().
Removing the implicit av_frame_ref() fixed this.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/ffv1.h')
-rw-r--r-- | libavcodec/ffv1.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/libavcodec/ffv1.h b/libavcodec/ffv1.h index 04869da5c9..acec22e83e 100644 --- a/libavcodec/ffv1.h +++ b/libavcodec/ffv1.h @@ -28,13 +28,12 @@ * FF Video Codec 1 (a lossless codec) */ -#include "libavutil/imgutils.h" #include "avcodec.h" #include "get_bits.h" #include "mathops.h" +#include "progressframe.h" #include "put_bits.h" #include "rangecoder.h" -#include "threadframe.h" #ifdef __INTEL_COMPILER #undef av_flatten @@ -87,7 +86,7 @@ typedef struct FFV1Context { int flags; int64_t picture_number; int key_frame; - ThreadFrame picture, last_picture; + ProgressFrame picture, last_picture; struct FFV1Context *fsrc; AVFrame *cur; |