changeset 5041:01a165280429 libavcodec

allows to disable jpegls decoder
author aurel
date Sat, 19 May 2007 14:31:57 +0000
parents 5c6cd6601371
children 259b58518ecc
files Makefile allcodecs.c avcodec.h jpeglsdec.c mjpegdec.c
diffstat 5 files changed, 38 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Sat May 19 02:32:59 2007 +0000
+++ b/Makefile	Sat May 19 14:31:57 2007 +0000
@@ -97,15 +97,16 @@
 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_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
--- a/allcodecs.c	Sat May 19 02:32:59 2007 +0000
+++ b/allcodecs.c	Sat May 19 14:31:57 2007 +0000
@@ -91,7 +91,7 @@
     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);
--- a/avcodec.h	Sat May 19 02:32:59 2007 +0000
+++ b/avcodec.h	Sat May 19 14:31:57 2007 +0000
@@ -2282,6 +2282,7 @@
 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;
--- a/jpeglsdec.c	Sat May 19 02:32:59 2007 +0000
+++ b/jpeglsdec.c	Sat May 19 14:31:57 2007 +0000
@@ -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 @@
 
     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,
+};
--- a/mjpegdec.c	Sat May 19 02:32:59 2007 +0000
+++ b/mjpegdec.c	Sat May 19 14:31:57 2007 +0000
@@ -36,6 +36,7 @@
 #include "avcodec.h"
 #include "dsputil.h"
 #include "mjpeg.h"
+#include "mjpegdec.h"
 #include "jpeglsdec.h"
 
 
@@ -63,7 +64,7 @@
     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 @@
         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 @@
     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 @@
                         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 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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