[FFmpeg-cvslog] r17560 - in trunk/libavcodec: h263.c mpegvideo.h
michael
subversion
Tue Feb 24 17:12:48 CET 2009
Author: michael
Date: Tue Feb 24 17:12:47 2009
New Revision: 17560
Log:
Add ff_h263_find_resync_marker() to find the bit position of the next resync_marker, if any.
patch by Gwenole Beauchesne gbeauchesne splitted-desktopcom
based on suggested implementation by me
Modified:
trunk/libavcodec/h263.c
trunk/libavcodec/mpegvideo.h
Modified: trunk/libavcodec/h263.c
==============================================================================
--- trunk/libavcodec/h263.c Tue Feb 24 16:56:53 2009 (r17559)
+++ trunk/libavcodec/h263.c Tue Feb 24 17:12:47 2009 (r17560)
@@ -3293,6 +3293,27 @@ void ff_mpeg4_clean_buffers(MpegEncConte
}
/**
+ * finds the next resync_marker
+ * @param p pointer to buffer to scan
+ * @param end pointer to the end of the buffer
+ * @return pointer to the next resync_marker, or \p end if none was found
+ */
+const uint8_t *ff_h263_find_resync_marker(const uint8_t *restrict p, const uint8_t * restrict end)
+{
+ assert(p < end);
+
+ end-=2;
+ p++;
+ for(;p<end; p+=2){
+ if(!*p){
+ if (!p[-1] && p[1]) return p - 1;
+ else if(!p[ 1] && p[2]) return p;
+ }
+ }
+ return end+2;
+}
+
+/**
* decodes the group of blocks / video packet header.
* @return bit position of the resync_marker, or <0 if none was found
*/
Modified: trunk/libavcodec/mpegvideo.h
==============================================================================
--- trunk/libavcodec/mpegvideo.h Tue Feb 24 16:56:53 2009 (r17559)
+++ trunk/libavcodec/mpegvideo.h Tue Feb 24 17:12:47 2009 (r17560)
@@ -836,6 +836,7 @@ void ff_clean_h263_qscales(MpegEncContex
int ff_mpeg4_decode_partitions(MpegEncContext *s);
int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s);
int ff_h263_resync(MpegEncContext *s);
+const uint8_t *ff_h263_find_resync_marker(const uint8_t *p, const uint8_t *end);
int ff_h263_get_gob_height(MpegEncContext *s);
void ff_mpeg4_init_direct_mv(MpegEncContext *s);
int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my);
More information about the ffmpeg-cvslog
mailing list