Top | ![]() |
![]() |
![]() |
![]() |
GstCaps *
gst_vaapi_decoder_get_caps (GstVaapiDecoder *decoder
);
Retrieves the decoder
caps. The decoder owns the returned caps, so
use gst_caps_ref()
whenever necessary.
GstVaapiCodec
gst_vaapi_decoder_get_codec (GstVaapiDecoder *decoder
);
Retrieves the decoder
codec type.
GstVideoCodecState *
gst_vaapi_decoder_get_codec_state (GstVaapiDecoder *decoder
);
Retrieves the decoder
codec state. The decoder owns the returned
GstVideoCodecState structure, so use gst_video_codec_state_ref()
whenever necessary.
gboolean gst_vaapi_decoder_put_buffer (GstVaapiDecoder *decoder
,GstBuffer *buf
);
Queues a GstBuffer to the HW decoder. The decoder holds a
reference to buf
.
Caller can notify an End-Of-Stream with buf
set to NULL
. However,
if an empty buffer is passed, i.e. a buffer with NULL
data pointer
or size equals to zero, then the function ignores this buffer and
returns TRUE
.
GstVaapiDecoderStatus gst_vaapi_decoder_get_surface (GstVaapiDecoder *decoder
,GstVaapiSurfaceProxy **out_proxy_ptr
);
Flushes encoded buffers to the decoder and returns a decoded surface, if any.
On successful return, *out_proxy_ptr
contains the decoded surface
as a GstVaapiSurfaceProxy. The caller owns this object, so
gst_vaapi_surface_proxy_unref()
shall be called after usage.
GstVaapiDecoderStatus gst_vaapi_decoder_get_frame (GstVaapiDecoder *decoder
,GstVideoCodecFrame **out_frame_ptr
);
On successful return, *out_frame_ptr
contains the next decoded
frame available as a GstVideoCodecFrame. The caller owns this
object, so gst_video_codec_frame_unref()
shall be called after
usage. Otherwise, GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
is
returned if no decoded frame is available.
The actual surface is available as a GstVaapiSurfaceProxy attached to the user-data anchor of the output frame. Ownership of the proxy is transferred to the frame.
This is equivalent to gst_vaapi_decoder_get_frame_with_timeout()
with a timeout value of zero.
GstVaapiDecoderStatus gst_vaapi_decoder_get_frame_with_timeout (GstVaapiDecoder *decoder
,GstVideoCodecFrame **out_frame_ptr
,guint64 timeout
);
On successful return, *out_frame_ptr
contains the next decoded
frame available as a GstVideoCodecFrame. The caller owns this
object, so gst_video_codec_frame_unref()
shall be called after
usage. Otherwise, GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
is
returned if no decoded frame is available.
The actual surface is available as a GstVaapiSurfaceProxy attached to the user-data anchor of the output frame. Ownership of the proxy is transferred to the frame.
decoder |
||
out_frame_ptr |
the next decoded frame as a GstVideoCodecFrame |
|
timeout |
the number of microseconds to wait for the frame, at most |
GstVaapiDecoderStatus gst_vaapi_decoder_parse (GstVaapiDecoder *decoder
,GstVideoCodecFrame *frame
,GstAdapter *adapter
,gboolean at_eos
,guint *got_unit_size_ptr
,gboolean *got_frame_ptr
);
GstVaapiDecoderStatus gst_vaapi_decoder_decode (GstVaapiDecoder *decoder
,GstVideoCodecFrame *frame
);
Decoder status for gst_vaapi_decoder_get_surface()
.
Success. |
||
End-Of-Stream. |
||
No memory left. |
||
Decoder initialization failure. |
||
Unsupported codec. |
||
Not enough input data to decode. |
||
No surface left to hold the decoded picture. |
||
Invalid surface. |
||
Invalid or unsupported bitstream data. |
||
Unsupported codec profile. |
||
Unsupported chroma format. |
||
Unsupported parameter. |
||
Unknown error. |