[Bug 726325] RFC: Add tunneling support.
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Mar 19 03:48:43 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=726325
GStreamer | gst-omx | git
--- Comment #25 from deathsimple at vodafone.de <deathsimple at vodafone.de> 2014-03-19 11:13:15 UTC ---
(In reply to comment #16)
> Review of attachment 271868 [details]:
>
> ::: omx/gstomxvideodec.c
> @@ +51,3 @@
> #include "gstomxvideo.h"
> #include "gstomxvideodec.h"
> +#include "gstomxvideoenc.h"
>
> I guess this is a residual of your initial try and then you forgot to remove it
> ? Otherwise I do not see why it's useful
Yeah, just a leftover. Fixed by now.
>
> @@ +1146,3 @@
> gst_video_codec_state_unref (state);
>
> + pool = gst_video_decoder_get_buffer_pool (GST_VIDEO_DECODER (self));
>
> I think you never unref the pool
> (http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-buffer-pool)
Thx, fixed this as well.
> @@ +1154,3 @@
> + if (gst_omx_setup_tunnel (self->dec_out_port, op->port) != OMX_ErrorNone)
> + GST_WARNING_OBJECT (self, "Failed to setup tunnel");
> + }
>
> will it fallback to non-tunneling mode if it fails to setup a tunnel ?
Yes, that's the plan.
>
> @@ +2230,3 @@
> + if (self->dec_out_port->tunneled) {
> + frame->output_buffer = gst_buffer_new ();
> + gst_video_decoder_finish_frame (GST_VIDEO_DECODER (self), frame);
>
> Try to just use gst_video_decoder_release_frame
> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-release-frame
>
> Because gst_video_decoder_finish_frame actually push the data.
>
> Note that on the gstomxencoder side you do need to have
> gst_omx_video_enc_handle_frame being called. In your other patch you just unref
> the frame. Better to no have the chain to be called at all in case of
> GST_PAD_PROBE_TYPE_BUFFER + tunnel
So far that didn't worked for various reasons, but I'm already working on
cleaning this up as well.
> @@ +2367,3 @@
> GST_ERROR_OBJECT (self, "Failed to drain component: %s (0x%08x)",
> gst_omx_error_to_string (err), err);
> + g_mutex_unlock (&self->drain_lock);
>
> please put this in another patch
Done.
> @@ +2381,3 @@
> + g_cond_wait_until (&self->drain_cond, &self->drain_lock, wait_until);
> +
> + if (!result)
>
> please put this in another patch
That's actually an unnecessary change, going to remove it from the patch.
> @@ +2395,3 @@
> GST_VIDEO_DECODER_STREAM_LOCK (self);
>
> self->started = FALSE;
>
> Is it possible to avoid starting the GstTask when tunneling
> http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomxvideodec.c#n1937 ?
> I mean is gst_omx_video_dec_loop necessary
> http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomxvideodec.c#n1161 ?
So far my current thinking is to still start the task so that it can react to
errors send by the component.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list