[Mplayer-cvslog] CVS: main/libmpeg2 decode.c,1.13,1.14
Arpi of Ize
arpi at mplayer.dev.hu
Sat Sep 29 23:40:26 CEST 2001
Update of /cvsroot/mplayer/main/libmpeg2
In directory mplayer:/var/tmp.root/cvs-serv19857
Modified Files:
decode.c
Log Message:
mpeg2-interlaced patch by Ivan Kalvatchev <iive at yahoo.com>
Index: decode.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpeg2/decode.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- decode.c 23 Aug 2001 12:46:04 -0000 1.13
+++ decode.c 29 Sep 2001 21:40:24 -0000 1.14
@@ -182,12 +182,10 @@
// if(picture->picture_structure != FRAME_PICTURE) printf("Field! %d \n",picture->second_field);
- if(!framedrop)
- if (((picture->picture_structure == FRAME_PICTURE) ||
- (picture->second_field))
- ) {
+ if(picture->picture_structure == FRAME_PICTURE)
+ {
#ifdef MPEG12_POSTPROC
- if(picture->pp_options){
+ if( (picture->pp_options) && (!framedrop) ){
// apply OpenDivX postprocess filter
int stride[3];
stride[0]=picture->coded_picture_width;
@@ -201,20 +199,23 @@
output->draw_slice (frames[3].base, stride,
picture->display_picture_width,
picture->display_picture_height, 0, 0);
- }// else
-#endif
-#if 0
- if (picture->picture_coding_type != B_TYPE) {
+ }
+#endif
+ }else{
+ if( (picture->second_field) && (!framedrop) )
+ {
int stride[3];
stride[0]=picture->coded_picture_width;
stride[1]=stride[2]=stride[0]/2;
- output->draw_slice (picture->forward_reference_frame->base,
+ output->draw_slice ((picture->picture_coding_type == B_TYPE) ?
+ picture->current_frame->base :
+ picture->forward_reference_frame->base,
stride,
picture->display_picture_width,
picture->display_picture_height, 0, 0);
- }
-#endif
- }
+ }else
+ is_frame_done=0;// we don't draw top fields
+ }
#ifdef ARCH_X86
if (config.flags & MM_ACCEL_X86_MMX) emms();
#endif
@@ -273,14 +274,16 @@
}
}
-#if 1
#ifdef MPEG12_POSTPROC
- if(picture->pp_options)
- picture->current_frame->copy=NULL; else
-#endif
- picture->current_frame->copy=copy_slice;
+ if(picture->pp_options)
+ picture->current_frame->copy=NULL;
+ else
#endif
- if(framedrop) picture->current_frame->copy=NULL;
+ picture->current_frame->copy=copy_slice;
+
+
+ if ((framedrop) || (picture->picture_structure != FRAME_PICTURE) )
+ picture->current_frame->copy=NULL;
picture->current_frame->vo=output;
picture->slice=0;
More information about the MPlayer-cvslog
mailing list