From e4563ce6cf9da2884e709a2fd4598db243e9adea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 17 Sep 2014 14:54:39 +0300 Subject: [PATCH] vtdec: Properly scale timestamps for the API and set invalid values --- sys/applemedia/vtdec.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c index b91797643c..efe8e6ddb7 100644 --- a/sys/applemedia/vtdec.c +++ b/sys/applemedia/vtdec.c @@ -455,9 +455,23 @@ cm_sample_buffer_from_gst_buffer (GstVtdec * vtdec, GstBuffer * buf) goto block_error; /* create a sample buffer, the CoreMedia equivalent of GstBuffer */ - sample_timing.duration = CMTimeMake (GST_BUFFER_DURATION (buf), 1); - sample_timing.presentationTimeStamp = CMTimeMake (GST_BUFFER_PTS (buf), 1); - sample_timing.decodeTimeStamp = CMTimeMake (GST_BUFFER_DTS (buf), 1); + if (GST_BUFFER_DURATION_IS_VALID (buf)) + sample_timing.duration = CMTimeMake (GST_BUFFER_DURATION (buf), GST_SECOND); + else + sample_timing.duration = kCMTimeInvalid; + + if (GST_BUFFER_PTS_IS_VALID (buf)) + sample_timing.presentationTimeStamp = + CMTimeMake (GST_BUFFER_PTS (buf), GST_SECOND); + else + sample_timing.presentationTimeStamp = kCMTimeInvalid; + + if (GST_BUFFER_DTS_IS_VALID (buf)) + sample_timing.decodeTimeStamp = + CMTimeMake (GST_BUFFER_DTS (buf), GST_SECOND); + else + sample_timing.decodeTimeStamp = kCMTimeInvalid; + time_array[0] = sample_timing; status =