[Ffmpeg-cvslog] CVS: ffmpeg/libavcodec mpegvideo.c,1.488,1.489

Michael Niedermayer CVS michael
Sat Nov 5 01:16:05 CET 2005


Update of /cvsroot/ffmpeg/ffmpeg/libavcodec
In directory mail:/var2/tmp/cvs-serv4264

Modified Files:
	mpegvideo.c 
Log Message:
frame skip fixes
 fix 16pixel error in comparission
 fix vbv messup
 fix unlimited skip intervals, limited by GOP now


Index: mpegvideo.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/mpegvideo.c,v
retrieving revision 1.488
retrieving revision 1.489
diff -u -d -r1.488 -r1.489
--- mpegvideo.c	14 Aug 2005 15:42:40 -0000	1.488
+++ mpegvideo.c	5 Nov 2005 00:16:03 -0000	1.489
@@ -2117,7 +2117,8 @@
         const int bw= plane ? 1 : 2;
         for(y=0; y<s->mb_height*bw; y++){
             for(x=0; x<s->mb_width*bw; x++){
-                int v= s->dsp.frame_skip_cmp[1](s, p->data[plane] + 8*(x + y*stride), ref->data[plane] + 8*(x + y*stride), stride, 8);
+                int off= p->type == FF_BUFFER_TYPE_SHARED ? 0: 16;
+                int v= s->dsp.frame_skip_cmp[1](s, p->data[plane] + 8*(x + y*stride)+off, ref->data[plane] + 8*(x + y*stride), stride, 8);
                 
                 switch(s->avctx->frame_skip_exp){
                     case 0: score= FFMAX(score, v); break;
@@ -2156,7 +2157,8 @@
             int b_frames;
 
             if(s->avctx->frame_skip_threshold || s->avctx->frame_skip_factor){
-                if(skip_check(s, s->input_picture[0], s->next_picture_ptr)){
+                if(s->picture_in_gop_number < s->gop_size && skip_check(s, s->input_picture[0], s->next_picture_ptr)){
+                //FIXME check that te gop check above is +-1 correct
 //av_log(NULL, AV_LOG_DEBUG, "skip %p %Ld\n", s->input_picture[0]->data[0], s->input_picture[0]->pts);
                 
                     if(s->input_picture[0]->type == FF_BUFFER_TYPE_SHARED){
@@ -2169,6 +2171,9 @@
             
                         s->avctx->release_buffer(s->avctx, (AVFrame*)s->input_picture[0]);
                     }
+                    
+                    emms_c();
+                    ff_vbv_update(s, 0);
 
                     goto no_output_pic;
                 }





More information about the ffmpeg-cvslog mailing list