summaryrefslogtreecommitdiff
path: root/libavcodec/mjpegdec.c
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2007-05-19 00:53:41 +0000
committerAurelien Jacobs <aurel@gnuage.org>2007-05-19 00:53:41 +0000
commitd2f43ca998bc0c92e798078d11e30ca34b5e8144 (patch)
tree0f6d0e87ab265e96ac18d73d025944c4761463bf /libavcodec/mjpegdec.c
parentab8072a6a2562d2566084ac39c1f8feec992fc4c (diff)
move mjpega_dump_header bitstream filter in its own file
Originally committed as revision 9068 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mjpegdec.c')
-rw-r--r--libavcodec/mjpegdec.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 274dae7946..dc0b4eba29 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -35,7 +35,6 @@
#include "avcodec.h"
#include "dsputil.h"
-#include "bytestream.h"
#include "mjpeg.h"
#include "jpeglsdec.h"
@@ -1588,61 +1587,6 @@ static int mjpeg_decode_end(AVCodecContext *avctx)
return 0;
}
-static int mjpega_dump_header(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const char *args,
- uint8_t **poutbuf, int *poutbuf_size,
- const uint8_t *buf, int buf_size, int keyframe)
-{
- uint8_t *poutbufp;
- int i;
-
- if (avctx->codec_id != CODEC_ID_MJPEG) {
- av_log(avctx, AV_LOG_ERROR, "mjpega bitstream filter only applies to mjpeg codec\n");
- return 0;
- }
-
- *poutbuf_size = 0;
- *poutbuf = av_malloc(buf_size + 44 + FF_INPUT_BUFFER_PADDING_SIZE);
- poutbufp = *poutbuf;
- bytestream_put_byte(&poutbufp, 0xff);
- bytestream_put_byte(&poutbufp, SOI);
- bytestream_put_byte(&poutbufp, 0xff);
- bytestream_put_byte(&poutbufp, APP1);
- bytestream_put_be16(&poutbufp, 42); /* size */
- bytestream_put_be32(&poutbufp, 0);
- bytestream_put_buffer(&poutbufp, "mjpg", 4);
- bytestream_put_be32(&poutbufp, buf_size + 44); /* field size */
- bytestream_put_be32(&poutbufp, buf_size + 44); /* pad field size */
- bytestream_put_be32(&poutbufp, 0); /* next ptr */
-
- for (i = 0; i < buf_size - 1; i++) {
- if (buf[i] == 0xff) {
- switch (buf[i + 1]) {
- case DQT: /* quant off */
- case DHT: /* huff off */
- case SOF0: /* image off */
- bytestream_put_be32(&poutbufp, i + 46);
- break;
- case SOS:
- bytestream_put_be32(&poutbufp, i + 46); /* scan off */
- bytestream_put_be32(&poutbufp, i + 46 + AV_RB16(buf + i + 2)); /* data off */
- bytestream_put_buffer(&poutbufp, buf + 2, buf_size - 2); /* skip already written SOI */
- *poutbuf_size = poutbufp - *poutbuf;
- return 1;
- case APP1:
- if (i + 8 < buf_size && AV_RL32(buf + i + 8) == ff_get_fourcc("mjpg")) {
- av_log(avctx, AV_LOG_ERROR, "bitstream already formatted\n");
- memcpy(*poutbuf, buf, buf_size);
- *poutbuf_size = buf_size;
- return 1;
- }
- }
- }
- }
- av_freep(poutbuf);
- av_log(avctx, AV_LOG_ERROR, "could not find SOS marker in bitstream\n");
- return 0;
-}
-
AVCodec mjpeg_decoder = {
"mjpeg",
CODEC_TYPE_VIDEO,
@@ -1694,11 +1638,3 @@ AVCodec sp5x_decoder = {
CODEC_CAP_DR1,
NULL
};
-
-#ifdef CONFIG_MJPEGA_DUMP_HEADER_BSF
-AVBitStreamFilter mjpega_dump_header_bsf = {
- "mjpegadump",
- 0,
- mjpega_dump_header,
-};
-#endif