From 5a0e953c2465be9d449d5f523c3d3e2b886910b2 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Wed, 11 Mar 2015 20:43:59 +0000 Subject: [PATCH] mjpeg: Mark decoder family as thread safe No global variables are used and the VLC tables are allocated without static elements. This will allow using a JPEG decoding context within other decoders. --- libavcodec/jpeglsdec.c | 2 ++ libavcodec/mjpegbdec.c | 2 ++ libavcodec/mjpegdec.c | 2 ++ libavcodec/mxpegdec.c | 1 + libavcodec/sp5xdec.c | 3 +++ 5 files changed, 10 insertions(+) diff --git a/libavcodec/jpeglsdec.c b/libavcodec/jpeglsdec.c index df72ca338f..9f7735ecec 100644 --- a/libavcodec/jpeglsdec.c +++ b/libavcodec/jpeglsdec.c @@ -28,6 +28,7 @@ #include "avcodec.h" #include "get_bits.h" #include "golomb.h" +#include "internal.h" #include "mathops.h" #include "mjpeg.h" #include "mjpegdec.h" @@ -396,4 +397,5 @@ AVCodec ff_jpegls_decoder = { .close = ff_mjpeg_decode_end, .decode = ff_mjpeg_decode_frame, .capabilities = CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; diff --git a/libavcodec/mjpegbdec.c b/libavcodec/mjpegbdec.c index 66cf2d43ce..ef1df9c08d 100644 --- a/libavcodec/mjpegbdec.c +++ b/libavcodec/mjpegbdec.c @@ -27,6 +27,7 @@ #include #include "avcodec.h" +#include "internal.h" #include "mjpeg.h" #include "mjpegdec.h" @@ -161,4 +162,5 @@ AVCodec ff_mjpegb_decoder = { .close = ff_mjpeg_decode_end, .decode = mjpegb_decode_frame, .capabilities = CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 3ef9e82aea..82cee48354 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -1723,6 +1723,7 @@ AVCodec ff_mjpeg_decoder = { .decode = ff_mjpeg_decode_frame, .capabilities = CODEC_CAP_DR1, .priv_class = &mjpegdec_class, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; AVCodec ff_thp_decoder = { @@ -1735,4 +1736,5 @@ AVCodec ff_thp_decoder = { .close = ff_mjpeg_decode_end, .decode = ff_mjpeg_decode_frame, .capabilities = CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; diff --git a/libavcodec/mxpegdec.c b/libavcodec/mxpegdec.c index bfaae34b76..46536981e4 100644 --- a/libavcodec/mxpegdec.c +++ b/libavcodec/mxpegdec.c @@ -346,4 +346,5 @@ AVCodec ff_mxpeg_decoder = { .close = mxpeg_decode_end, .decode = mxpeg_decode_frame, .capabilities = CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; diff --git a/libavcodec/sp5xdec.c b/libavcodec/sp5xdec.c index ca6b9fd6f0..08bdbc097c 100644 --- a/libavcodec/sp5xdec.c +++ b/libavcodec/sp5xdec.c @@ -25,6 +25,7 @@ */ #include "avcodec.h" +#include "internal.h" #include "mjpeg.h" #include "mjpegdec.h" #include "sp5x.h" @@ -103,6 +104,7 @@ AVCodec ff_sp5x_decoder = { .close = ff_mjpeg_decode_end, .decode = sp5x_decode_frame, .capabilities = CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, }; AVCodec ff_amv_decoder = { @@ -114,4 +116,5 @@ AVCodec ff_amv_decoder = { .init = ff_mjpeg_decode_init, .close = ff_mjpeg_decode_end, .decode = sp5x_decode_frame, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, };