allows to disable jpegls decoder
authorAurelien Jacobs <aurel@gnuage.org>
Sat, 19 May 2007 14:31:57 +0000 (14:31 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Sat, 19 May 2007 14:31:57 +0000 (14:31 +0000)
Originally committed as revision 9070 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/jpeglsdec.c
libavcodec/mjpegdec.c

index f20302c..4f81eca 100644 (file)
@@ -97,15 +97,16 @@ OBJS-$(CONFIG_INDEO2_DECODER)          += indeo2.o
 OBJS-$(CONFIG_INDEO3_DECODER)          += indeo3.o
 OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
 OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER)  += dpcm.o
+OBJS-$(CONFIG_JPEGLS_DECODER)          += jpeglsdec.o jpegls.o mjpegdec.o mjpeg.o
 OBJS-$(CONFIG_JPEGLS_ENCODER)          += jpeglsenc.o jpegls.o
 OBJS-$(CONFIG_KMVC_DECODER)            += kmvc.o
 OBJS-$(CONFIG_LJPEG_ENCODER)           += ljpegenc.o mjpegenc.o mjpeg.o mpegvideo.o
 OBJS-$(CONFIG_LOCO_DECODER)            += loco.o
 OBJS-$(CONFIG_MACE3_DECODER)           += mace.o
 OBJS-$(CONFIG_MACE6_DECODER)           += mace.o
-OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
+OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o mjpeg.o
 OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpeg.o mpegvideo.o
-OBJS-$(CONFIG_MJPEGB_DECODER)          += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
+OBJS-$(CONFIG_MJPEGB_DECODER)          += mjpegdec.o mjpeg.o
 OBJS-$(CONFIG_MMVIDEO_DECODER)         += mmvideo.o
 OBJS-$(CONFIG_MP2_ENCODER)             += mpegaudio.o mpegaudiodata.o
 OBJS-$(CONFIG_MPC7_DECODER)            += mpc.o
@@ -153,14 +154,14 @@ OBJS-$(CONFIG_SOL_DPCM_DECODER)        += dpcm.o
 OBJS-$(CONFIG_SONIC_DECODER)           += sonic.o
 OBJS-$(CONFIG_SONIC_ENCODER)           += sonic.o
 OBJS-$(CONFIG_SONIC_LS_DECODER)        += sonic.o
-OBJS-$(CONFIG_SP5X_DECODER)            += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
+OBJS-$(CONFIG_SP5X_DECODER)            += mjpegdec.o mjpeg.o
 OBJS-$(CONFIG_SVQ1_DECODER)            += svq1.o
 OBJS-$(CONFIG_SVQ1_ENCODER)            += svq1.o
 OBJS-$(CONFIG_SVQ3_DECODER)            += h264.o
 OBJS-$(CONFIG_TARGA_DECODER)           += targa.o
 OBJS-$(CONFIG_TARGA_ENCODER)           += targaenc.o rle.o
 OBJS-$(CONFIG_THEORA_DECODER)          += vp3.o xiph.o vp3dsp.o
-OBJS-$(CONFIG_THP_DECODER)             += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
+OBJS-$(CONFIG_THP_DECODER)             += mjpegdec.o mjpeg.o
 OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
 OBJS-$(CONFIG_TIFF_DECODER)            += tiff.o lzw.o
 OBJS-$(CONFIG_TIFF_ENCODER)            += tiffenc.o rle.o lzwenc.o
index be42396..84bb8ed 100644 (file)
@@ -91,7 +91,7 @@ void avcodec_register_all(void)
     REGISTER_DECODER(INDEO2, indeo2);
     REGISTER_DECODER(INDEO3, indeo3);
     REGISTER_DECODER(INTERPLAY_VIDEO, interplay_video);
-    REGISTER_ENCODER(JPEGLS, jpegls);
+    REGISTER_ENCDEC (JPEGLS, jpegls);
     REGISTER_DECODER(KMVC, kmvc);
     REGISTER_ENCODER(LJPEG, ljpeg);
     REGISTER_DECODER(LOCO, loco);
index a86011d..df926fc 100644 (file)
@@ -2282,6 +2282,7 @@ extern AVCodec indeo2_decoder;
 extern AVCodec indeo3_decoder;
 extern AVCodec interplay_dpcm_decoder;
 extern AVCodec interplay_video_decoder;
+extern AVCodec jpegls_decoder;
 extern AVCodec kmvc_decoder;
 extern AVCodec loco_decoder;
 extern AVCodec mace3_decoder;
index 0d2b358..ac40903 100644 (file)
@@ -29,6 +29,7 @@
 #include "bitstream.h"
 #include "golomb.h"
 #include "mjpeg.h"
+#include "mjpegdec.h"
 #include "jpegls.h"
 #include "jpeglsdec.h"
 
@@ -359,3 +360,16 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, int point_transfor
 
     return 0;
 }
+
+
+AVCodec jpegls_decoder = {
+    "jpegls",
+    CODEC_TYPE_VIDEO,
+    CODEC_ID_JPEGLS,
+    sizeof(MJpegDecodeContext),
+    ff_mjpeg_decode_init,
+    NULL,
+    ff_mjpeg_decode_end,
+    ff_mjpeg_decode_frame,
+    CODEC_CAP_DR1,
+};
index dc0b4eb..91549dc 100644 (file)
@@ -36,6 +36,7 @@
 #include "avcodec.h"
 #include "dsputil.h"
 #include "mjpeg.h"
+#include "mjpegdec.h"
 #include "jpeglsdec.h"
 
 
@@ -63,7 +64,7 @@ static int build_vlc(VLC *vlc, const uint8_t *bits_table, const uint8_t *val_tab
     return init_vlc(vlc, 9, nb_codes, huff_size, 1, 1, huff_code, 2, 2, use_static);
 }
 
-static int mjpeg_decode_init(AVCodecContext *avctx)
+int ff_mjpeg_decode_init(AVCodecContext *avctx)
 {
     MJpegDecodeContext *s = avctx->priv_data;
 
@@ -802,7 +803,7 @@ static int mjpeg_decode_sos(MJpegDecodeContext *s)
         skip_bits(&s->gb, 8);
 
     if(s->lossless){
-        if(s->ls){
+        if(ENABLE_JPEGLS_DECODER && s->ls){
 //            for(){
 //            reset_ls_coding_parameters(s, 0);
 
@@ -1075,7 +1076,7 @@ found:
     return val;
 }
 
-static int mjpeg_decode_frame(AVCodecContext *avctx,
+int ff_mjpeg_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
                               uint8_t *buf, int buf_size)
 {
@@ -1237,7 +1238,7 @@ static int mjpeg_decode_frame(AVCodecContext *avctx,
                         return -1;
                     break;
                 case LSE:
-                    if (ff_jpegls_decode_lse(s) < 0)
+                    if (!ENABLE_JPEGLS_DECODER || ff_jpegls_decode_lse(s) < 0)
                         return -1;
                     break;
                 case EOI:
@@ -1473,7 +1474,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx,
     recoded[j++] = 0xFF;
     recoded[j++] = 0xD9;
 
-    i = mjpeg_decode_frame(avctx, data, data_size, recoded, j);
+    i = ff_mjpeg_decode_frame(avctx, data, data_size, recoded, j);
 
     av_free(recoded);
 
@@ -1572,7 +1573,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx,
     return i;
 }
 
-static int mjpeg_decode_end(AVCodecContext *avctx)
+int ff_mjpeg_decode_end(AVCodecContext *avctx)
 {
     MJpegDecodeContext *s = avctx->priv_data;
     int i, j;
@@ -1592,10 +1593,10 @@ AVCodec mjpeg_decoder = {
     CODEC_TYPE_VIDEO,
     CODEC_ID_MJPEG,
     sizeof(MJpegDecodeContext),
-    mjpeg_decode_init,
+    ff_mjpeg_decode_init,
     NULL,
-    mjpeg_decode_end,
-    mjpeg_decode_frame,
+    ff_mjpeg_decode_end,
+    ff_mjpeg_decode_frame,
     CODEC_CAP_DR1,
     NULL
 };
@@ -1605,10 +1606,10 @@ AVCodec thp_decoder = {
     CODEC_TYPE_VIDEO,
     CODEC_ID_THP,
     sizeof(MJpegDecodeContext),
-    mjpeg_decode_init,
+    ff_mjpeg_decode_init,
     NULL,
-    mjpeg_decode_end,
-    mjpeg_decode_frame,
+    ff_mjpeg_decode_end,
+    ff_mjpeg_decode_frame,
     CODEC_CAP_DR1,
     NULL
 };
@@ -1618,9 +1619,9 @@ AVCodec mjpegb_decoder = {
     CODEC_TYPE_VIDEO,
     CODEC_ID_MJPEGB,
     sizeof(MJpegDecodeContext),
-    mjpeg_decode_init,
+    ff_mjpeg_decode_init,
     NULL,
-    mjpeg_decode_end,
+    ff_mjpeg_decode_end,
     mjpegb_decode_frame,
     CODEC_CAP_DR1,
     NULL
@@ -1631,9 +1632,9 @@ AVCodec sp5x_decoder = {
     CODEC_TYPE_VIDEO,
     CODEC_ID_SP5X,
     sizeof(MJpegDecodeContext),
-    mjpeg_decode_init,
+    ff_mjpeg_decode_init,
     NULL,
-    mjpeg_decode_end,
+    ff_mjpeg_decode_end,
     sp5x_decode_frame,
     CODEC_CAP_DR1,
     NULL