]> git.sesse.net Git - ffmpeg/commitdiff
move ff_mpeg4_find_frame_end() from h263dec.c to mpeg4video_parser.c
authorAurelien Jacobs <aurel@gnuage.org>
Wed, 9 May 2007 23:13:43 +0000 (23:13 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Wed, 9 May 2007 23:13:43 +0000 (23:13 +0000)
now h263dec depends on mpeg4video_parser
this fixes compilation when h263 decoder is disabled

Originally committed as revision 8962 to svn://svn.ffmpeg.org/ffmpeg/trunk

configure
libavcodec/h263dec.c
libavcodec/mpeg4video_parser.c
libavcodec/mpeg4video_parser.h [new file with mode: 0644]
libavcodec/parser.h

index cd5221bfe623cfaf1d5dbb42fae13c9ce010e14e..68f2715af6a155b524f32e7b98def34d9c067c20 100755 (executable)
--- a/configure
+++ b/configure
@@ -677,7 +677,7 @@ dxa_decoder_deps="zlib"
 flashsv_decoder_deps="zlib"
 flashsv_encoder_deps="zlib"
 flv_decoder_deps="h263_decoder"
-h263_decoder_deps="h263_parser"
+h263_decoder_deps="h263_parser mpeg4video_parser"
 h263i_decoder_deps="h263_decoder"
 mpeg_xvmc_decoder_deps="xvmc"
 mpeg4_decoder_deps="h263_decoder"
index cbbb9c5065c373851c4fab799bcb6890a3c9235c..819866e62d43fd6fb460696136085df9585383b3 100644 (file)
@@ -29,6 +29,7 @@
 #include "dsputil.h"
 #include "mpegvideo.h"
 #include "h263_parser.h"
+#include "mpeg4video_parser.h"
 
 //#define DEBUG
 //#define PRINT_FRAME_TIME
@@ -318,47 +319,6 @@ static int decode_slice(MpegEncContext *s){
     return -1;
 }
 
-/**
- * finds the end of the current frame in the bitstream.
- * @return the position of the first byte of the next frame, or -1
- */
-int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size){
-    int vop_found, i;
-    uint32_t state;
-
-    vop_found= pc->frame_start_found;
-    state= pc->state;
-
-    i=0;
-    if(!vop_found){
-        for(i=0; i<buf_size; i++){
-            state= (state<<8) | buf[i];
-            if(state == 0x1B6){
-                i++;
-                vop_found=1;
-                break;
-            }
-        }
-    }
-
-    if(vop_found){
-        /* EOF considered as end of frame */
-        if (buf_size == 0)
-            return 0;
-        for(; i<buf_size; i++){
-            state= (state<<8) | buf[i];
-            if((state&0xFFFFFF00) == 0x100){
-                pc->frame_start_found=0;
-                pc->state=-1;
-                return i-3;
-            }
-        }
-    }
-    pc->frame_start_found= vop_found;
-    pc->state= state;
-    return END_NOT_FOUND;
-}
-
 int ff_h263_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
                              uint8_t *buf, int buf_size)
index 4771ca0b443fef1897c63db50e80affc4513b730..9accc91265e7613a2d4a2c933b292ee941789669 100644 (file)
 
 #include "parser.h"
 #include "mpegvideo.h"
+#include "mpeg4video_parser.h"
 
 
+int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size){
+    int vop_found, i;
+    uint32_t state;
+
+    vop_found= pc->frame_start_found;
+    state= pc->state;
+
+    i=0;
+    if(!vop_found){
+        for(i=0; i<buf_size; i++){
+            state= (state<<8) | buf[i];
+            if(state == 0x1B6){
+                i++;
+                vop_found=1;
+                break;
+            }
+        }
+    }
+
+    if(vop_found){
+        /* EOF considered as end of frame */
+        if (buf_size == 0)
+            return 0;
+        for(; i<buf_size; i++){
+            state= (state<<8) | buf[i];
+            if((state&0xFFFFFF00) == 0x100){
+                pc->frame_start_found=0;
+                pc->state=-1;
+                return i-3;
+            }
+        }
+    }
+    pc->frame_start_found= vop_found;
+    pc->state= state;
+    return END_NOT_FOUND;
+}
+
 /* XXX: make it use less memory */
 static int av_mpeg4_decode_header(AVCodecParserContext *s1,
                                   AVCodecContext *avctx,
diff --git a/libavcodec/mpeg4video_parser.h b/libavcodec/mpeg4video_parser.h
new file mode 100644 (file)
index 0000000..0da1da0
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * MPEG4 video parser prototypes
+ * Copyright (c) 2003 Fabrice Bellard.
+ * Copyright (c) 2003 Michael Niedermayer.
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef MPEG4VIDEO_PARSER_H
+#define MPEG4VIDEO_PARSER_H
+
+#include "parser.h"
+
+/**
+ * finds the end of the current frame in the bitstream.
+ * @return the position of the first byte of the next frame, or -1
+ */
+int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);
+
+#endif /* MPEG4VIDEO_PARSER_H */
index 5cf1fee28e8ab464885657b5084daf15de6835c6..8492a0c9b0d24e9398d6a49c5ac1d554620bae92 100644 (file)
@@ -59,7 +59,4 @@ int ff_mpeg4video_split(AVCodecContext *avctx, const uint8_t *buf,
 void ff_parse_close(AVCodecParserContext *s);
 void ff_parse1_close(AVCodecParserContext *s);
 
-/* h263dec.c */
-int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);
-
 #endif /* !FFMPEG_PARSER_H */