diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-09-17 14:54:39 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-09-17 14:54:39 +0300 |
commit | e4563ce6cf9da2884e709a2fd4598db243e9adea (patch) | |
tree | 60a20066ea1096ef12e3122ef517e43677a37afd /sys | |
parent | d7892460775e0a68bb44077f24de7ed3475bf9b2 (diff) |
vtdec: Properly scale timestamps for the API and set invalid values
Diffstat (limited to 'sys')
-rw-r--r-- | sys/applemedia/vtdec.c | 20 |
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 = |