Merge "OMX: clarify EOS signaling for tunneled decoders" into mnc-dev am: f1de4547c1 am: 37b8c1f77c

am: 8abb053a2e

* commit '8abb053a2ea021c649e481813e45860add946e36':
  OMX: clarify EOS signaling for tunneled decoders
This commit is contained in:
Lajos Molnar 2015-11-13 00:16:41 +00:00 committed by android-build-merger
commit bc9bc0e0fc
2 changed files with 13 additions and 2 deletions

View File

@ -509,7 +509,7 @@ typedef enum OMX_EVENTTYPE
OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
OMX_EventVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor 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 * nData1 must contain the number of timestamps returned
* pEventData must point to an array of the OMX_VIDEO_RENDEREVENTTYPE structs containing the * 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, * 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 * 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. * 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_EventOutputRendered = 0x7F000001,
OMX_EventMax = 0x7FFFFFFF OMX_EventMax = 0x7FFFFFFF

View File

@ -203,10 +203,17 @@ typedef struct OMX_VIDEO_SLICESEGMENTSTYPE {
OMX_BOOL bEnableLoopFilterAcrossSlices; OMX_BOOL bEnableLoopFilterAcrossSlices;
} OMX_VIDEO_SLICESEGMENTSTYPE; } 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 { typedef struct OMX_VIDEO_RENDEREVENTTYPE {
OMX_S64 nMediaTimeUs; // timestamp of rendered video frame OMX_S64 nMediaTimeUs; // timestamp of rendered video frame
OMX_S64 nSystemTimeNs; // system monotonic time at the time frame was rendered 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; } OMX_VIDEO_RENDEREVENTTYPE;
#ifdef __cplusplus #ifdef __cplusplus