summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-09-17 14:54:39 +0300
committerSebastian Dröge <sebastian@centricular.com>2014-09-17 14:54:39 +0300
commite4563ce6cf9da2884e709a2fd4598db243e9adea (patch)
tree60a20066ea1096ef12e3122ef517e43677a37afd /sys
parentd7892460775e0a68bb44077f24de7ed3475bf9b2 (diff)
vtdec: Properly scale timestamps for the API and set invalid values
Diffstat (limited to 'sys')
-rw-r--r--sys/applemedia/vtdec.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c
index b91797643..efe8e6ddb 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 =