vdpau: calculate timestamp of second field when doing deinterlacing
authorRainer Hochecker <fernetmenta@online.de>
Fri, 14 Jun 2013 07:23:22 +0000 (09:23 +0200)
committerRainer Hochecker <fernetmenta@online.de>
Thu, 12 Sep 2013 09:38:09 +0000 (11:38 +0200)
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp

index 9ac8186..369a19e 100644 (file)
@@ -2321,7 +2321,15 @@ void CMixer::ProcessPicture()
       futu_surfaces[0] = m_mixerInput[1].render->surface;
       futu_surfaces[1] = m_mixerInput[1].render->surface;
 
-      m_processPicture.DVDPic.pts = DVD_NOPTS_VALUE;
+      if (m_mixerInput[0].DVDPic.pts != DVD_NOPTS_VALUE &&
+          m_mixerInput[1].DVDPic.pts != DVD_NOPTS_VALUE)
+      {
+        m_processPicture.DVDPic.pts = m_mixerInput[1].DVDPic.pts +
+                                     (m_mixerInput[0].DVDPic.pts -
+                                      m_mixerInput[1].DVDPic.pts) / 2;
+      }
+      else
+        m_processPicture.DVDPic.pts = DVD_NOPTS_VALUE;
       m_processPicture.DVDPic.dts = DVD_NOPTS_VALUE;
     }
     m_processPicture.DVDPic.iRepeatPicture = 0.0;