Originally committed as revision 9070 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -97,15 +97,16 @@ OBJS-$(CONFIG_INDEO2_DECODER) += indeo2.o | |||||
| OBJS-$(CONFIG_INDEO3_DECODER) += indeo3.o | OBJS-$(CONFIG_INDEO3_DECODER) += indeo3.o | ||||
| OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o | OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o | ||||
| OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER) += dpcm.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_JPEGLS_ENCODER) += jpeglsenc.o jpegls.o | ||||
| OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o | OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o | ||||
| OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc.o mjpeg.o mpegvideo.o | OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc.o mjpeg.o mpegvideo.o | ||||
| OBJS-$(CONFIG_LOCO_DECODER) += loco.o | OBJS-$(CONFIG_LOCO_DECODER) += loco.o | ||||
| OBJS-$(CONFIG_MACE3_DECODER) += mace.o | OBJS-$(CONFIG_MACE3_DECODER) += mace.o | ||||
| OBJS-$(CONFIG_MACE6_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_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_MMVIDEO_DECODER) += mmvideo.o | ||||
| OBJS-$(CONFIG_MP2_ENCODER) += mpegaudio.o mpegaudiodata.o | OBJS-$(CONFIG_MP2_ENCODER) += mpegaudio.o mpegaudiodata.o | ||||
| OBJS-$(CONFIG_MPC7_DECODER) += mpc.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_DECODER) += sonic.o | ||||
| OBJS-$(CONFIG_SONIC_ENCODER) += sonic.o | OBJS-$(CONFIG_SONIC_ENCODER) += sonic.o | ||||
| OBJS-$(CONFIG_SONIC_LS_DECODER) += 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_DECODER) += svq1.o | ||||
| OBJS-$(CONFIG_SVQ1_ENCODER) += svq1.o | OBJS-$(CONFIG_SVQ1_ENCODER) += svq1.o | ||||
| OBJS-$(CONFIG_SVQ3_DECODER) += h264.o | OBJS-$(CONFIG_SVQ3_DECODER) += h264.o | ||||
| OBJS-$(CONFIG_TARGA_DECODER) += targa.o | OBJS-$(CONFIG_TARGA_DECODER) += targa.o | ||||
| OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o | OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o | ||||
| OBJS-$(CONFIG_THEORA_DECODER) += vp3.o xiph.o vp3dsp.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_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o | ||||
| OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o | OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o | ||||
| OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o | OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o | ||||
| @@ -91,7 +91,7 @@ void avcodec_register_all(void) | |||||
| REGISTER_DECODER(INDEO2, indeo2); | REGISTER_DECODER(INDEO2, indeo2); | ||||
| REGISTER_DECODER(INDEO3, indeo3); | REGISTER_DECODER(INDEO3, indeo3); | ||||
| REGISTER_DECODER(INTERPLAY_VIDEO, interplay_video); | REGISTER_DECODER(INTERPLAY_VIDEO, interplay_video); | ||||
| REGISTER_ENCODER(JPEGLS, jpegls); | |||||
| REGISTER_ENCDEC (JPEGLS, jpegls); | |||||
| REGISTER_DECODER(KMVC, kmvc); | REGISTER_DECODER(KMVC, kmvc); | ||||
| REGISTER_ENCODER(LJPEG, ljpeg); | REGISTER_ENCODER(LJPEG, ljpeg); | ||||
| REGISTER_DECODER(LOCO, loco); | REGISTER_DECODER(LOCO, loco); | ||||
| @@ -2282,6 +2282,7 @@ extern AVCodec indeo2_decoder; | |||||
| extern AVCodec indeo3_decoder; | extern AVCodec indeo3_decoder; | ||||
| extern AVCodec interplay_dpcm_decoder; | extern AVCodec interplay_dpcm_decoder; | ||||
| extern AVCodec interplay_video_decoder; | extern AVCodec interplay_video_decoder; | ||||
| extern AVCodec jpegls_decoder; | |||||
| extern AVCodec kmvc_decoder; | extern AVCodec kmvc_decoder; | ||||
| extern AVCodec loco_decoder; | extern AVCodec loco_decoder; | ||||
| extern AVCodec mace3_decoder; | extern AVCodec mace3_decoder; | ||||
| @@ -29,6 +29,7 @@ | |||||
| #include "bitstream.h" | #include "bitstream.h" | ||||
| #include "golomb.h" | #include "golomb.h" | ||||
| #include "mjpeg.h" | #include "mjpeg.h" | ||||
| #include "mjpegdec.h" | |||||
| #include "jpegls.h" | #include "jpegls.h" | ||||
| #include "jpeglsdec.h" | #include "jpeglsdec.h" | ||||
| @@ -359,3 +360,16 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, int point_transfor | |||||
| return 0; | 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, | |||||
| }; | |||||
| @@ -36,6 +36,7 @@ | |||||
| #include "avcodec.h" | #include "avcodec.h" | ||||
| #include "dsputil.h" | #include "dsputil.h" | ||||
| #include "mjpeg.h" | #include "mjpeg.h" | ||||
| #include "mjpegdec.h" | |||||
| #include "jpeglsdec.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); | 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; | MJpegDecodeContext *s = avctx->priv_data; | ||||
| @@ -802,7 +803,7 @@ static int mjpeg_decode_sos(MJpegDecodeContext *s) | |||||
| skip_bits(&s->gb, 8); | skip_bits(&s->gb, 8); | ||||
| if(s->lossless){ | if(s->lossless){ | ||||
| if(s->ls){ | |||||
| if(ENABLE_JPEGLS_DECODER && s->ls){ | |||||
| // for(){ | // for(){ | ||||
| // reset_ls_coding_parameters(s, 0); | // reset_ls_coding_parameters(s, 0); | ||||
| @@ -1075,7 +1076,7 @@ found: | |||||
| return val; | return val; | ||||
| } | } | ||||
| static int mjpeg_decode_frame(AVCodecContext *avctx, | |||||
| int ff_mjpeg_decode_frame(AVCodecContext *avctx, | |||||
| void *data, int *data_size, | void *data, int *data_size, | ||||
| uint8_t *buf, int buf_size) | uint8_t *buf, int buf_size) | ||||
| { | { | ||||
| @@ -1237,7 +1238,7 @@ static int mjpeg_decode_frame(AVCodecContext *avctx, | |||||
| return -1; | return -1; | ||||
| break; | break; | ||||
| case LSE: | case LSE: | ||||
| if (ff_jpegls_decode_lse(s) < 0) | |||||
| if (!ENABLE_JPEGLS_DECODER || ff_jpegls_decode_lse(s) < 0) | |||||
| return -1; | return -1; | ||||
| break; | break; | ||||
| case EOI: | case EOI: | ||||
| @@ -1473,7 +1474,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx, | |||||
| recoded[j++] = 0xFF; | recoded[j++] = 0xFF; | ||||
| recoded[j++] = 0xD9; | 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); | av_free(recoded); | ||||
| @@ -1572,7 +1573,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx, | |||||
| return i; | return i; | ||||
| } | } | ||||
| static int mjpeg_decode_end(AVCodecContext *avctx) | |||||
| int ff_mjpeg_decode_end(AVCodecContext *avctx) | |||||
| { | { | ||||
| MJpegDecodeContext *s = avctx->priv_data; | MJpegDecodeContext *s = avctx->priv_data; | ||||
| int i, j; | int i, j; | ||||
| @@ -1592,10 +1593,10 @@ AVCodec mjpeg_decoder = { | |||||
| CODEC_TYPE_VIDEO, | CODEC_TYPE_VIDEO, | ||||
| CODEC_ID_MJPEG, | CODEC_ID_MJPEG, | ||||
| sizeof(MJpegDecodeContext), | sizeof(MJpegDecodeContext), | ||||
| mjpeg_decode_init, | |||||
| ff_mjpeg_decode_init, | |||||
| NULL, | NULL, | ||||
| mjpeg_decode_end, | |||||
| mjpeg_decode_frame, | |||||
| ff_mjpeg_decode_end, | |||||
| ff_mjpeg_decode_frame, | |||||
| CODEC_CAP_DR1, | CODEC_CAP_DR1, | ||||
| NULL | NULL | ||||
| }; | }; | ||||
| @@ -1605,10 +1606,10 @@ AVCodec thp_decoder = { | |||||
| CODEC_TYPE_VIDEO, | CODEC_TYPE_VIDEO, | ||||
| CODEC_ID_THP, | CODEC_ID_THP, | ||||
| sizeof(MJpegDecodeContext), | sizeof(MJpegDecodeContext), | ||||
| mjpeg_decode_init, | |||||
| ff_mjpeg_decode_init, | |||||
| NULL, | NULL, | ||||
| mjpeg_decode_end, | |||||
| mjpeg_decode_frame, | |||||
| ff_mjpeg_decode_end, | |||||
| ff_mjpeg_decode_frame, | |||||
| CODEC_CAP_DR1, | CODEC_CAP_DR1, | ||||
| NULL | NULL | ||||
| }; | }; | ||||
| @@ -1618,9 +1619,9 @@ AVCodec mjpegb_decoder = { | |||||
| CODEC_TYPE_VIDEO, | CODEC_TYPE_VIDEO, | ||||
| CODEC_ID_MJPEGB, | CODEC_ID_MJPEGB, | ||||
| sizeof(MJpegDecodeContext), | sizeof(MJpegDecodeContext), | ||||
| mjpeg_decode_init, | |||||
| ff_mjpeg_decode_init, | |||||
| NULL, | NULL, | ||||
| mjpeg_decode_end, | |||||
| ff_mjpeg_decode_end, | |||||
| mjpegb_decode_frame, | mjpegb_decode_frame, | ||||
| CODEC_CAP_DR1, | CODEC_CAP_DR1, | ||||
| NULL | NULL | ||||
| @@ -1631,9 +1632,9 @@ AVCodec sp5x_decoder = { | |||||
| CODEC_TYPE_VIDEO, | CODEC_TYPE_VIDEO, | ||||
| CODEC_ID_SP5X, | CODEC_ID_SP5X, | ||||
| sizeof(MJpegDecodeContext), | sizeof(MJpegDecodeContext), | ||||
| mjpeg_decode_init, | |||||
| ff_mjpeg_decode_init, | |||||
| NULL, | NULL, | ||||
| mjpeg_decode_end, | |||||
| ff_mjpeg_decode_end, | |||||
| sp5x_decode_frame, | sp5x_decode_frame, | ||||
| CODEC_CAP_DR1, | CODEC_CAP_DR1, | ||||
| NULL | NULL | ||||