[rbp/omxplayer] Avoid setting TIME_UNKNOWN on packet with STARTTIME set
authorpopcornmix <popcornmix@gmail.com>
Mon, 25 Nov 2013 16:15:44 +0000 (16:15 +0000)
committerpopcornmix <popcornmix@gmail.com>
Thu, 28 Nov 2013 20:36:44 +0000 (20:36 +0000)
It stops streams with no timestamps (e.g. raw h.264) from playing

xbmc/cores/omxplayer/OMXAudio.cpp
xbmc/cores/omxplayer/OMXVideo.cpp

index 1834ac6..5b159ae 100644 (file)
@@ -1018,9 +1018,6 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt
     if(m_setStartTime)
     {
       omx_buffer->nFlags = OMX_BUFFERFLAG_STARTTIME;
-      if(pts == DVD_NOPTS_VALUE)
-        omx_buffer->nFlags |= OMX_BUFFERFLAG_TIME_UNKNOWN;
-
       m_last_pts = pts;
 
       CLog::Log(LOGDEBUG, "COMXAudio::Decode ADec : setStartTime %f\n", (float)val / DVD_TIME_BASE);
index 4879074..03ffb94 100644 (file)
@@ -756,7 +756,7 @@ int COMXVideo::Decode(uint8_t *pData, int iSize, double pts)
         CLog::Log(LOGDEBUG, "OMXVideo::Decode VDec : setStartTime %f\n", (pts == DVD_NOPTS_VALUE ? 0.0 : pts) / DVD_TIME_BASE);
         m_setStartTime = false;
       }
-      if(pts == DVD_NOPTS_VALUE)
+      else if(pts == DVD_NOPTS_VALUE)
         omx_buffer->nFlags |= OMX_BUFFERFLAG_TIME_UNKNOWN;
 
       omx_buffer->nTimeStamp = ToOMXTime((uint64_t)(pts == DVD_NOPTS_VALUE) ? 0 : pts);