diff demux_avi.c @ 1368:faee296c7c9a

video pts calculation precision fixed
author arpi
date Sat, 21 Jul 2001 00:10:09 +0000
parents 3bcc435cd5a2
children 65058a94df3b
line wrap: on
line diff
--- a/demux_avi.c	Fri Jul 20 20:42:13 2001 +0000
+++ b/demux_avi.c	Sat Jul 21 00:10:09 2001 +0000
@@ -68,7 +68,7 @@
             pts=avi_audio_pts;
             avi_audio_pts=0;
   } else 
-  if(ds==demux->video){
+  if(ds && ds==demux->video){
      // video
      if(skip_video_frames>0){
        // drop frame (seeking)
@@ -82,8 +82,16 @@
      //avi_video_pts+=(float)avi_header.video.dwScale/(float)avi_header.video.dwRate;
      //avi_video_pts+=((sh_video_t*)ds->sh)->frametime;
 // FIXME!!!
+#if 1
+//       printf("ds=0x%X\n",ds);
+//       printf("packno=%d\n",ds->pack_no);
+       avi_video_pts = demux->video->pack_no *
+         (float)((sh_video_t*)demux->video->sh)->video.dwScale /
+	 (float)((sh_video_t*)demux->video->sh)->video.dwRate;
+#else
      avi_video_pts+=(float)((sh_video_t*)(demux->video->sh))->video.dwScale/(float)((sh_video_t*)(demux->video->sh))->video.dwRate;
 //     avi_video_pts+=avi_video_ftime;
+#endif
      avi_audio_pts=avi_video_pts;
   }