OMX: clarify EOS signaling for tunneled decoders
Bug: 22859209 Change-Id: Ie28da1b80e4a8dd5ae2806e300ed37287c9c57a8
This commit is contained in:
parent
62ec2dd563
commit
bcaa8d5a6c
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user