summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Isorce <julien.isorce@collabora.co.uk>2014-01-27 17:03:50 (GMT)
committerMarco Barisione <marco.barisione@collabora.co.uk>2014-03-06 09:42:27 (GMT)
commitc8a6a89ba3b445b5a8bf40d94c2fb4ffe60711c7 (patch)
tree7ee62dca9e6fdf92b298e323a0f9c921219dcda4
parent60dc344de490ed73911bbd58d1b9c124b74591ef (diff)
downloadgst-omx-c8a6a89ba3b445b5a8bf40d94c2fb4ffe60711c7.tar.gz
gst-omx-c8a6a89ba3b445b5a8bf40d94c2fb4ffe60711c7.tar.xz
omxvideodec: populate the most downstream output port on reset
Make seeking work when using resize (or egl_render) component
-rw-r--r--omx/gstomxvideodec.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 10ab035..f0b27ce 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -1839,8 +1839,8 @@ do_resize_done:
#if defined (USE_OMX_TARGET_RPI)
bufsize =
- self->use_resizer ? self->res_out_port->port_def.
- nBufferSize : self->dec_out_port->port_def.nBufferSize;
+ self->use_resizer ? self->res_out_port->port_def.nBufferSize : self->
+ dec_out_port->port_def.nBufferSize;
#else
bufsize = self->dec_out_port->port_def.nBufferSize;
#endif
@@ -3530,20 +3530,23 @@ gst_omx_video_dec_reset (GstVideoDecoder * decoder, gboolean hard)
gst_omx_port_set_flushing (self->dec_in_port, 5 * GST_SECOND, FALSE);
gst_omx_port_set_flushing (self->dec_out_port, 5 * GST_SECOND, FALSE);
- gst_omx_port_populate (self->dec_out_port);
#if defined (USE_OMX_TARGET_RPI)
#if defined (HAVE_GST_EGL)
if (self->eglimage) {
gst_omx_port_set_flushing (self->egl_in_port, 5 * GST_SECOND, FALSE);
gst_omx_port_set_flushing (self->egl_out_port, 5 * GST_SECOND, FALSE);
+ gst_omx_port_populate (self->egl_out_port);
} else
#endif
if (self->use_resizer) {
- gst_omx_port_set_flushing (self->res_in_port, 5 * GST_SECOND, TRUE);
- gst_omx_port_set_flushing (self->res_out_port, 5 * GST_SECOND, TRUE);
- }
+ gst_omx_port_set_flushing (self->res_in_port, 5 * GST_SECOND, FALSE);
+ gst_omx_port_set_flushing (self->res_out_port, 5 * GST_SECOND, FALSE);
+ gst_omx_port_populate (self->res_out_port);
+ } else
#endif
+ /* else */
+ gst_omx_port_populate (self->dec_out_port);
/* Start the srcpad loop again */
self->last_upstream_ts = 0;