mplayer-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Original]

Re: [MPlayer-users] Re: ATSC 720 <at> 24p streams


To: "MPlayer usage questions, feature requests, bug reports" <mplayer-users@xxxxxxxxxxxx>
Subject: Re: [MPlayer-users] Re: ATSC 720 <at> 24p streams
From: Nico Sabbi <nicola_sabbi@xxxxxxxxxxxxx>
Date: Sat, 11 Mar 2006 01:02:38 +0100
Delivered-to: itdp@localhost
Delivered-to: mplayer-users@mplayerhq.hu
In-reply-to: <loom.20060310T204427-851@post.gmane.org>
References: <loom.20060310T001103-38@post.gmane.org> <4410BC35.2030102@fastwebnet.it> <loom.20060310T052535-537@post.gmane.org> <4411487B.9030601@email.it> <loom.20060310T175117-673@post.gmane.org> <4411B0E7.7040004@email.it><loom.20060310T204427-851@post.gmane.org>
User-agent: Mozilla Thunderbird 1.0.7-4mdk (X11/20051221)

rob wrote:

Nico Sabbi <nsabbi <at> email.it> writes:




ftp://www.mplayerhq.hu/MPlayer/incoming




okay, it should be there now. thanks.


rob





this patch should work, although, being the reverse-telecine code in video.c terrible at best,
I'm not completely sure that my patch is always correct.
I plan to rewrite that code as soon as I can.
BTW, progressive sequence is always set.
BTW2, I don't see what visual improvement that crazy 24->60 telecine can give, but anyway...


Index: video.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/video.c,v
retrieving revision 1.59
diff -u -r1.59 video.c
--- video.c     8 Jan 2006 14:03:41 -0000       1.59
+++ video.c     10 Mar 2006 23:54:24 -0000
@@ -434,6 +434,7 @@
 #endif
   ){
         int in_frame=0;
+       float divisor=1.0;
         //float newfps;
         //videobuf_len=0;
         while(videobuf_len<VIDEOBUFFER_SIZE-MAX_VIDEO_PACKET_SIZE){
@@ -484,6 +485,7 @@
 
        *start=videobuffer; in_size=videobuf_len;
        
//blit_frame=decode_video(video_out,sh_video,videobuffer,videobuf_len,drop_frame);
+       divisor = picture.progressive_sequence ? 2.0 :4.0;
 
 #if 1
     // get mpeg fps:
@@ -501,7 +503,7 @@
     videobuf_len=0;
 
     telecine_cnt*=0.9; // drift out error
-    telecine_cnt+=frame_time-5.0/4.0;
+    telecine_cnt+=frame_time-5.0/divisor;
     mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"\r telecine = %3.1f  %5.3f     
\n",frame_time,telecine_cnt);
     
     if(telecine){
@@ -510,14 +512,16 @@
            mp_msg(MSGT_DECVIDEO,MSGL_INFO,MSGTR_LeaveTelecineMode);
            telecine=0;
        }
+       //fprintf(stderr, "\r\nRFPS CHANGED TO %.3f\r\n", sh_video->fps);
     } else
-       if(telecine_cnt>-0.5 && telecine_cnt<0.5 && !force_fps){
-           sh_video->fps=sh_video->fps*4/5;
-           sh_video->frametime=sh_video->frametime*5/4;
+       if(telecine_cnt>-0.5 && telecine_cnt<0.5 && !force_fps){    
+           sh_video->fps=sh_video->fps*divisor/5;
+           sh_video->frametime=sh_video->frametime*5/divisor;
+           //fprintf(stderr, "\r\nRFPS CHANGED TO %.3f\r\n", sh_video->fps);
            mp_msg(MSGT_DECVIDEO,MSGL_INFO,MSGTR_EnterTelecineMode);
            telecine=1;
        }
-
+     //fprintf(stderr, "\r\nRFPS SEEMS TO BE %.3f\r\n", sh_video->fps);
   } else if((demuxer->file_format==DEMUXER_TYPE_MPEG4_ES) || 
((demuxer->file_format==DEMUXER_TYPE_MPEG_TS) && 
(sh_video->format==0x10000004)) ||
             ((demuxer->file_format==DEMUXER_TYPE_MPEG_PS) && 
(sh_video->format==0x10000004))
   ){
_______________________________________________
MPlayer-users mailing list
MPlayer-users@xxxxxxxxxxxx
http://mplayerhq.hu/mailman/listinfo/mplayer-users

[Prev in Thread] Current Thread [Next in Thread]