mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-23 23:40:15 +01:00
move ff_mpeg4_find_frame_end() from h263dec.c to mpeg4video_parser.c
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
This commit is contained in:
@@ -22,8 +22,46 @@
|
||||
|
||||
#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,
|
||||
|
||||
Reference in New Issue
Block a user