Originally committed as revision 9070 to svn://svn.ffmpeg.org/ffmpeg/trunk
| ... | ... |
@@ -97,15 +97,16 @@ OBJS-$(CONFIG_INDEO2_DECODER) += indeo2.o |
| 97 | 97 |
OBJS-$(CONFIG_INDEO3_DECODER) += indeo3.o |
| 98 | 98 |
OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o |
| 99 | 99 |
OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER) += dpcm.o |
| 100 |
+OBJS-$(CONFIG_JPEGLS_DECODER) += jpeglsdec.o jpegls.o mjpegdec.o mjpeg.o |
|
| 100 | 101 |
OBJS-$(CONFIG_JPEGLS_ENCODER) += jpeglsenc.o jpegls.o |
| 101 | 102 |
OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o |
| 102 | 103 |
OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc.o mjpeg.o mpegvideo.o |
| 103 | 104 |
OBJS-$(CONFIG_LOCO_DECODER) += loco.o |
| 104 | 105 |
OBJS-$(CONFIG_MACE3_DECODER) += mace.o |
| 105 | 106 |
OBJS-$(CONFIG_MACE6_DECODER) += mace.o |
| 106 |
-OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o |
|
| 107 |
+OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpeg.o |
|
| 107 | 108 |
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpeg.o mpegvideo.o |
| 108 |
-OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o |
|
| 109 |
+OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegdec.o mjpeg.o |
|
| 109 | 110 |
OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o |
| 110 | 111 |
OBJS-$(CONFIG_MP2_ENCODER) += mpegaudio.o mpegaudiodata.o |
| 111 | 112 |
OBJS-$(CONFIG_MPC7_DECODER) += mpc.o |
| ... | ... |
@@ -153,14 +154,14 @@ OBJS-$(CONFIG_SOL_DPCM_DECODER) += dpcm.o |
| 153 | 153 |
OBJS-$(CONFIG_SONIC_DECODER) += sonic.o |
| 154 | 154 |
OBJS-$(CONFIG_SONIC_ENCODER) += sonic.o |
| 155 | 155 |
OBJS-$(CONFIG_SONIC_LS_DECODER) += sonic.o |
| 156 |
-OBJS-$(CONFIG_SP5X_DECODER) += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o |
|
| 156 |
+OBJS-$(CONFIG_SP5X_DECODER) += mjpegdec.o mjpeg.o |
|
| 157 | 157 |
OBJS-$(CONFIG_SVQ1_DECODER) += svq1.o |
| 158 | 158 |
OBJS-$(CONFIG_SVQ1_ENCODER) += svq1.o |
| 159 | 159 |
OBJS-$(CONFIG_SVQ3_DECODER) += h264.o |
| 160 | 160 |
OBJS-$(CONFIG_TARGA_DECODER) += targa.o |
| 161 | 161 |
OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o |
| 162 | 162 |
OBJS-$(CONFIG_THEORA_DECODER) += vp3.o xiph.o vp3dsp.o |
| 163 |
-OBJS-$(CONFIG_THP_DECODER) += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o |
|
| 163 |
+OBJS-$(CONFIG_THP_DECODER) += mjpegdec.o mjpeg.o |
|
| 164 | 164 |
OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o |
| 165 | 165 |
OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o |
| 166 | 166 |
OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o |
| ... | ... |
@@ -91,7 +91,7 @@ void avcodec_register_all(void) |
| 91 | 91 |
REGISTER_DECODER(INDEO2, indeo2); |
| 92 | 92 |
REGISTER_DECODER(INDEO3, indeo3); |
| 93 | 93 |
REGISTER_DECODER(INTERPLAY_VIDEO, interplay_video); |
| 94 |
- REGISTER_ENCODER(JPEGLS, jpegls); |
|
| 94 |
+ REGISTER_ENCDEC (JPEGLS, jpegls); |
|
| 95 | 95 |
REGISTER_DECODER(KMVC, kmvc); |
| 96 | 96 |
REGISTER_ENCODER(LJPEG, ljpeg); |
| 97 | 97 |
REGISTER_DECODER(LOCO, loco); |
| ... | ... |
@@ -2282,6 +2282,7 @@ extern AVCodec indeo2_decoder; |
| 2282 | 2282 |
extern AVCodec indeo3_decoder; |
| 2283 | 2283 |
extern AVCodec interplay_dpcm_decoder; |
| 2284 | 2284 |
extern AVCodec interplay_video_decoder; |
| 2285 |
+extern AVCodec jpegls_decoder; |
|
| 2285 | 2286 |
extern AVCodec kmvc_decoder; |
| 2286 | 2287 |
extern AVCodec loco_decoder; |
| 2287 | 2288 |
extern AVCodec mace3_decoder; |
| ... | ... |
@@ -29,6 +29,7 @@ |
| 29 | 29 |
#include "bitstream.h" |
| 30 | 30 |
#include "golomb.h" |
| 31 | 31 |
#include "mjpeg.h" |
| 32 |
+#include "mjpegdec.h" |
|
| 32 | 33 |
#include "jpegls.h" |
| 33 | 34 |
#include "jpeglsdec.h" |
| 34 | 35 |
|
| ... | ... |
@@ -359,3 +360,16 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, int point_transfor |
| 359 | 359 |
|
| 360 | 360 |
return 0; |
| 361 | 361 |
} |
| 362 |
+ |
|
| 363 |
+ |
|
| 364 |
+AVCodec jpegls_decoder = {
|
|
| 365 |
+ "jpegls", |
|
| 366 |
+ CODEC_TYPE_VIDEO, |
|
| 367 |
+ CODEC_ID_JPEGLS, |
|
| 368 |
+ sizeof(MJpegDecodeContext), |
|
| 369 |
+ ff_mjpeg_decode_init, |
|
| 370 |
+ NULL, |
|
| 371 |
+ ff_mjpeg_decode_end, |
|
| 372 |
+ ff_mjpeg_decode_frame, |
|
| 373 |
+ CODEC_CAP_DR1, |
|
| 374 |
+}; |
| ... | ... |
@@ -36,6 +36,7 @@ |
| 36 | 36 |
#include "avcodec.h" |
| 37 | 37 |
#include "dsputil.h" |
| 38 | 38 |
#include "mjpeg.h" |
| 39 |
+#include "mjpegdec.h" |
|
| 39 | 40 |
#include "jpeglsdec.h" |
| 40 | 41 |
|
| 41 | 42 |
|
| ... | ... |
@@ -63,7 +64,7 @@ static int build_vlc(VLC *vlc, const uint8_t *bits_table, const uint8_t *val_tab |
| 63 | 63 |
return init_vlc(vlc, 9, nb_codes, huff_size, 1, 1, huff_code, 2, 2, use_static); |
| 64 | 64 |
} |
| 65 | 65 |
|
| 66 |
-static int mjpeg_decode_init(AVCodecContext *avctx) |
|
| 66 |
+int ff_mjpeg_decode_init(AVCodecContext *avctx) |
|
| 67 | 67 |
{
|
| 68 | 68 |
MJpegDecodeContext *s = avctx->priv_data; |
| 69 | 69 |
|
| ... | ... |
@@ -802,7 +803,7 @@ static int mjpeg_decode_sos(MJpegDecodeContext *s) |
| 802 | 802 |
skip_bits(&s->gb, 8); |
| 803 | 803 |
|
| 804 | 804 |
if(s->lossless){
|
| 805 |
- if(s->ls){
|
|
| 805 |
+ if(ENABLE_JPEGLS_DECODER && s->ls){
|
|
| 806 | 806 |
// for(){
|
| 807 | 807 |
// reset_ls_coding_parameters(s, 0); |
| 808 | 808 |
|
| ... | ... |
@@ -1075,7 +1076,7 @@ found: |
| 1075 | 1075 |
return val; |
| 1076 | 1076 |
} |
| 1077 | 1077 |
|
| 1078 |
-static int mjpeg_decode_frame(AVCodecContext *avctx, |
|
| 1078 |
+int ff_mjpeg_decode_frame(AVCodecContext *avctx, |
|
| 1079 | 1079 |
void *data, int *data_size, |
| 1080 | 1080 |
uint8_t *buf, int buf_size) |
| 1081 | 1081 |
{
|
| ... | ... |
@@ -1237,7 +1238,7 @@ static int mjpeg_decode_frame(AVCodecContext *avctx, |
| 1237 | 1237 |
return -1; |
| 1238 | 1238 |
break; |
| 1239 | 1239 |
case LSE: |
| 1240 |
- if (ff_jpegls_decode_lse(s) < 0) |
|
| 1240 |
+ if (!ENABLE_JPEGLS_DECODER || ff_jpegls_decode_lse(s) < 0) |
|
| 1241 | 1241 |
return -1; |
| 1242 | 1242 |
break; |
| 1243 | 1243 |
case EOI: |
| ... | ... |
@@ -1473,7 +1474,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx, |
| 1473 | 1473 |
recoded[j++] = 0xFF; |
| 1474 | 1474 |
recoded[j++] = 0xD9; |
| 1475 | 1475 |
|
| 1476 |
- i = mjpeg_decode_frame(avctx, data, data_size, recoded, j); |
|
| 1476 |
+ i = ff_mjpeg_decode_frame(avctx, data, data_size, recoded, j); |
|
| 1477 | 1477 |
|
| 1478 | 1478 |
av_free(recoded); |
| 1479 | 1479 |
|
| ... | ... |
@@ -1572,7 +1573,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx, |
| 1572 | 1572 |
return i; |
| 1573 | 1573 |
} |
| 1574 | 1574 |
|
| 1575 |
-static int mjpeg_decode_end(AVCodecContext *avctx) |
|
| 1575 |
+int ff_mjpeg_decode_end(AVCodecContext *avctx) |
|
| 1576 | 1576 |
{
|
| 1577 | 1577 |
MJpegDecodeContext *s = avctx->priv_data; |
| 1578 | 1578 |
int i, j; |
| ... | ... |
@@ -1592,10 +1593,10 @@ AVCodec mjpeg_decoder = {
|
| 1592 | 1592 |
CODEC_TYPE_VIDEO, |
| 1593 | 1593 |
CODEC_ID_MJPEG, |
| 1594 | 1594 |
sizeof(MJpegDecodeContext), |
| 1595 |
- mjpeg_decode_init, |
|
| 1595 |
+ ff_mjpeg_decode_init, |
|
| 1596 | 1596 |
NULL, |
| 1597 |
- mjpeg_decode_end, |
|
| 1598 |
- mjpeg_decode_frame, |
|
| 1597 |
+ ff_mjpeg_decode_end, |
|
| 1598 |
+ ff_mjpeg_decode_frame, |
|
| 1599 | 1599 |
CODEC_CAP_DR1, |
| 1600 | 1600 |
NULL |
| 1601 | 1601 |
}; |
| ... | ... |
@@ -1605,10 +1606,10 @@ AVCodec thp_decoder = {
|
| 1605 | 1605 |
CODEC_TYPE_VIDEO, |
| 1606 | 1606 |
CODEC_ID_THP, |
| 1607 | 1607 |
sizeof(MJpegDecodeContext), |
| 1608 |
- mjpeg_decode_init, |
|
| 1608 |
+ ff_mjpeg_decode_init, |
|
| 1609 | 1609 |
NULL, |
| 1610 |
- mjpeg_decode_end, |
|
| 1611 |
- mjpeg_decode_frame, |
|
| 1610 |
+ ff_mjpeg_decode_end, |
|
| 1611 |
+ ff_mjpeg_decode_frame, |
|
| 1612 | 1612 |
CODEC_CAP_DR1, |
| 1613 | 1613 |
NULL |
| 1614 | 1614 |
}; |
| ... | ... |
@@ -1618,9 +1619,9 @@ AVCodec mjpegb_decoder = {
|
| 1618 | 1618 |
CODEC_TYPE_VIDEO, |
| 1619 | 1619 |
CODEC_ID_MJPEGB, |
| 1620 | 1620 |
sizeof(MJpegDecodeContext), |
| 1621 |
- mjpeg_decode_init, |
|
| 1621 |
+ ff_mjpeg_decode_init, |
|
| 1622 | 1622 |
NULL, |
| 1623 |
- mjpeg_decode_end, |
|
| 1623 |
+ ff_mjpeg_decode_end, |
|
| 1624 | 1624 |
mjpegb_decode_frame, |
| 1625 | 1625 |
CODEC_CAP_DR1, |
| 1626 | 1626 |
NULL |
| ... | ... |
@@ -1631,9 +1632,9 @@ AVCodec sp5x_decoder = {
|
| 1631 | 1631 |
CODEC_TYPE_VIDEO, |
| 1632 | 1632 |
CODEC_ID_SP5X, |
| 1633 | 1633 |
sizeof(MJpegDecodeContext), |
| 1634 |
- mjpeg_decode_init, |
|
| 1634 |
+ ff_mjpeg_decode_init, |
|
| 1635 | 1635 |
NULL, |
| 1636 |
- mjpeg_decode_end, |
|
| 1636 |
+ ff_mjpeg_decode_end, |
|
| 1637 | 1637 |
sp5x_decode_frame, |
| 1638 | 1638 |
CODEC_CAP_DR1, |
| 1639 | 1639 |
NULL |