From f4319174188718dc3d5adb1b084ee2be33471e85 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 22 May 2010 08:45:35 +0200 Subject: [PATCH] [MOVED FROM BAD 040/134] vp8dec: Set decoder deadline from the QoS information --- ext/vp8/gstvp8dec.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ext/vp8/gstvp8dec.c b/ext/vp8/gstvp8dec.c index 87e2b18..4a570f0 100644 --- a/ext/vp8/gstvp8dec.c +++ b/ext/vp8/gstvp8dec.c @@ -424,6 +424,7 @@ gst_vp8_dec_handle_frame (GstBaseVideoDecoder * decoder, GstVideoFrame * frame, vpx_codec_err_t status; vpx_codec_iter_t iter = NULL; vpx_image_t *img; + long decoder_deadline = 0; GST_DEBUG_OBJECT (decoder, "handle_frame"); @@ -508,9 +509,17 @@ gst_vp8_dec_handle_frame (GstBaseVideoDecoder * decoder, GstVideoFrame * frame, } #endif + if (deadline < 0) { + decoder_deadline = 1; + } else if (deadline == G_MAXINT64) { + decoder_deadline = 0; + } else { + decoder_deadline = MAX (1, deadline / GST_MSECOND); + } + status = vpx_codec_decode (&dec->decoder, GST_BUFFER_DATA (frame->sink_buffer), - GST_BUFFER_SIZE (frame->sink_buffer), NULL, 0); + GST_BUFFER_SIZE (frame->sink_buffer), NULL, decoder_deadline); if (status) { GST_ELEMENT_ERROR (decoder, LIBRARY, ENCODE, ("Failed to decode frame"), ("%s", gst_vpx_error_name (status))); -- 2.7.4