]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/dvdsubdec.c
Avoid linking with h263.c functions when the relevant codecs
[ffmpeg] / libavcodec / dvdsubdec.c
index ea57a8ac2f348c0b39e676bdae5d407e4854b9e8..69c2a2a7047e86dfd5c95e3823f0cf1d55b80867 100644 (file)
@@ -27,11 +27,6 @@ static int dvdsub_init_decoder(AVCodecContext *avctx)
     return 0;
 }
 
-static uint16_t getbe16(const uint8_t *p)
-{
-    return (p[0] << 8) | p[1];
-}
-
 static int get_nibble(const uint8_t *buf, int nibble_offset)
 {
     return (buf[nibble_offset >> 1] >> ((1 - (nibble_offset & 1)) << 2)) & 0xf;
@@ -142,10 +137,10 @@ static int decode_dvd_subtitles(AVSubtitle *sub_header,
     sub_header->start_display_time = 0;
     sub_header->end_display_time = 0;
 
-    cmd_pos = getbe16(buf + 2);
+    cmd_pos = AV_RB16(buf + 2);
     while ((cmd_pos + 4) < buf_size) {
-        date = getbe16(buf + cmd_pos);
-        next_cmd_pos = getbe16(buf + cmd_pos + 2);
+        date = AV_RB16(buf + cmd_pos);
+        next_cmd_pos = AV_RB16(buf + cmd_pos + 2);
 #ifdef DEBUG
         av_log(NULL, AV_LOG_INFO, "cmd_pos=0x%04x next=0x%04x date=%d\n",
                cmd_pos, next_cmd_pos, date);
@@ -211,8 +206,8 @@ static int decode_dvd_subtitles(AVSubtitle *sub_header,
             case 0x06:
                 if ((buf_size - pos) < 4)
                     goto fail;
-                offset1 = getbe16(buf + pos);
-                offset2 = getbe16(buf + pos + 2);
+                offset1 = AV_RB16(buf + pos);
+                offset2 = AV_RB16(buf + pos + 2);
 #ifdef DEBUG
                 av_log(NULL, AV_LOG_INFO, "offset1=0x%04x offset2=0x%04x\n", offset1, offset2);
 #endif
@@ -415,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 = (buf[0] << 8) | buf[1];
-        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,
-};