videodecoder: Add API to get the currently pending frame size for parsing

https://bugzilla.gnome.org/show_bug.cgi?id=719890
This commit is contained in:
Sebastian Dröge 2014-01-18 13:54:22 +01:00
parent c2746d753e
commit 87829debe4
4 changed files with 30 additions and 0 deletions

View file

@ -2541,6 +2541,7 @@ gst_video_decoder_get_max_decode_time
gst_video_decoder_get_max_errors
gst_video_decoder_get_oldest_frame
gst_video_decoder_get_packetized
gst_video_decoder_get_pending_frame_size
gst_video_decoder_get_qos_proportion
gst_video_decoder_have_frame
gst_video_decoder_get_latency

View file

@ -2766,6 +2766,33 @@ gst_video_decoder_add_to_frame (GstVideoDecoder * decoder, int n_bytes)
GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
}
/**
* gst_video_decoder_get_pending_frame_size:
* @decoder: a #GstVideoDecoder
*
* Returns the number of bytes previously added to the current frame
* by calling gst_video_decoder_add_to_frame().
*
* Returns: The number of bytes pending for the current frame
*
* Since: 1.4
*/
gsize
gst_video_decoder_get_pending_frame_size (GstVideoDecoder * decoder)
{
GstVideoDecoderPrivate *priv = decoder->priv;
gsize ret;
GST_VIDEO_DECODER_STREAM_LOCK (decoder);
ret = gst_adapter_available (priv->output_adapter);
GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
GST_LOG_OBJECT (decoder, "Current pending frame has %" G_GSIZE_FORMAT "bytes",
ret);
return ret;
}
static guint64
gst_video_decoder_get_frame_duration (GstVideoDecoder * decoder,
GstVideoCodecFrame * frame)

View file

@ -363,6 +363,7 @@ GList * gst_video_decoder_get_frames (GstVideoDecoder *decoder
void gst_video_decoder_add_to_frame (GstVideoDecoder *decoder,
int n_bytes);
GstFlowReturn gst_video_decoder_have_frame (GstVideoDecoder *decoder);
gsize gst_video_decoder_get_pending_frame_size (GstVideoDecoder *decoder);
GstBuffer *gst_video_decoder_allocate_output_buffer (GstVideoDecoder * decoder);

View file

@ -99,6 +99,7 @@ EXPORTS
gst_video_decoder_get_oldest_frame
gst_video_decoder_get_output_state
gst_video_decoder_get_packetized
gst_video_decoder_get_pending_frame_size
gst_video_decoder_get_qos_proportion
gst_video_decoder_get_type
gst_video_decoder_have_frame