summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2015-11-13 00:07:04 +0000
committerandroid-build-merger <android-build-merger@google.com>2015-11-13 00:07:04 +0000
commit37b8c1f77cab3ee9809bcbad81d765ec5bddedce (patch)
tree2a3dbfae35781414ccb781a0b0992deefbeae01c /include
parenta78c2e65e13cace4fdbb0295beca5b11de9fde06 (diff)
parentf1de4547c14467c03b00187efde5381dd1fb265c (diff)
downloadframeworks_native-37b8c1f77cab3ee9809bcbad81d765ec5bddedce.zip
frameworks_native-37b8c1f77cab3ee9809bcbad81d765ec5bddedce.tar.gz
frameworks_native-37b8c1f77cab3ee9809bcbad81d765ec5bddedce.tar.bz2
Merge "OMX: clarify EOS signaling for tunneled decoders" into mnc-dev
am: f1de4547c1 * commit 'f1de4547c14467c03b00187efde5381dd1fb265c': OMX: clarify EOS signaling for tunneled decoders
Diffstat (limited to 'include')
-rw-r--r--include/media/openmax/OMX_Core.h6
-rw-r--r--include/media/openmax/OMX_VideoExt.h9
2 files changed, 13 insertions, 2 deletions
diff --git a/include/media/openmax/OMX_Core.h b/include/media/openmax/OMX_Core.h
index 521c223..f746a69 100644
--- a/include/media/openmax/OMX_Core.h
+++ b/include/media/openmax/OMX_Core.h
@@ -509,7 +509,7 @@ typedef enum OMX_EVENTTYPE
OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
OMX_EventVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
- /** Event when tunneled decoder has rendered an output
+ /** Event when tunneled decoder has rendered an output or reached EOS
* nData1 must contain the number of timestamps returned
* pEventData must point to an array of the OMX_VIDEO_RENDEREVENTTYPE structs containing the
* render-timestamps of each frame. Component may batch rendered timestamps using this event,
@@ -518,6 +518,10 @@ typedef enum OMX_EVENTTYPE
*
* If component is doing frame-rate conversion, it must signal the render time of each
* converted frame, and must interpolate media timestamps for in-between frames.
+ *
+ * When the component reached EOS, it must signal an EOS timestamp using the same mechanism.
+ * This is in addition to the timestamp of the last rendered frame, and should follow that
+ * frame.
*/
OMX_EventOutputRendered = 0x7F000001,
OMX_EventMax = 0x7FFFFFFF
diff --git a/include/media/openmax/OMX_VideoExt.h b/include/media/openmax/OMX_VideoExt.h
index 34c0405..3971bc5 100644
--- a/include/media/openmax/OMX_VideoExt.h
+++ b/include/media/openmax/OMX_VideoExt.h
@@ -203,10 +203,17 @@ typedef struct OMX_VIDEO_SLICESEGMENTSTYPE {
OMX_BOOL bEnableLoopFilterAcrossSlices;
} OMX_VIDEO_SLICESEGMENTSTYPE;
-/** Structure to return timestamps of rendered output frames for tunneled components */
+/** Structure to return timestamps of rendered output frames as well as EOS
+ * for tunneled components.
+ */
typedef struct OMX_VIDEO_RENDEREVENTTYPE {
OMX_S64 nMediaTimeUs; // timestamp of rendered video frame
OMX_S64 nSystemTimeNs; // system monotonic time at the time frame was rendered
+ // Use INT64_MAX for nMediaTimeUs to signal that the EOS
+ // has been reached. In this case, nSystemTimeNs MUST be
+ // the system time when the last frame was rendered.
+ // This MUST be done in addition to returning (and
+ // following) the render information for the last frame.
} OMX_VIDEO_RENDEREVENTTYPE;
#ifdef __cplusplus