diff options
author | Diego Biurrun <diego@biurrun.de> | 2007-05-06 09:12:10 +0000 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2007-05-06 09:12:10 +0000 |
commit | 44c560003ad3eb6346485b6db0288c17e0402b91 (patch) | |
tree | 1e4effecda4d9a52dc65428bfa004c5e8a77a55b /libavcodec/dvdsubdec.c | |
parent | 027f43f095c923843270da022f020737ab49511b (diff) | |
download | ffmpeg-44c560003ad3eb6346485b6db0288c17e0402b91.tar.gz |
Move dvdsub parser to its own file.
Originally committed as revision 8910 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/dvdsubdec.c')
-rw-r--r-- | libavcodec/dvdsubdec.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c index 3a93a6076b..69c2a2a704 100644 --- a/libavcodec/dvdsubdec.c +++ b/libavcodec/dvdsubdec.c @@ -410,63 +410,3 @@ AVCodec dvdsub_decoder = { dvdsub_close_decoder, dvdsub_decode, }; - -/* parser definition */ -typedef struct DVDSubParseContext { - uint8_t *packet; - int packet_len; - int packet_index; -} DVDSubParseContext; - -static int dvdsub_parse_init(AVCodecParserContext *s) -{ - return 0; -} - -static int dvdsub_parse(AVCodecParserContext *s, - AVCodecContext *avctx, - uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size) -{ - DVDSubParseContext *pc = s->priv_data; - - if (pc->packet_index == 0) { - if (buf_size < 2) - return 0; - pc->packet_len = AV_RB16(buf); - av_freep(&pc->packet); - pc->packet = av_malloc(pc->packet_len); - } - if (pc->packet) { - if (pc->packet_index + buf_size <= pc->packet_len) { - memcpy(pc->packet + pc->packet_index, buf, buf_size); - pc->packet_index += buf_size; - if (pc->packet_index >= pc->packet_len) { - *poutbuf = pc->packet; - *poutbuf_size = pc->packet_len; - pc->packet_index = 0; - return buf_size; - } - } else { - /* erroneous size */ - pc->packet_index = 0; - } - } - *poutbuf = NULL; - *poutbuf_size = 0; - return buf_size; -} - -static void dvdsub_parse_close(AVCodecParserContext *s) -{ - DVDSubParseContext *pc = s->priv_data; - av_freep(&pc->packet); -} - -AVCodecParser dvdsub_parser = { - { CODEC_ID_DVD_SUBTITLE }, - sizeof(DVDSubParseContext), - dvdsub_parse_init, - dvdsub_parse, - dvdsub_parse_close, -}; |