[gst-devel] Seeking failed with decoder plugin
Wei-Di Hung
wdhung at vaplab.ee.ncu.edu.tw
Fri Nov 28 04:00:00 CET 2008
This is what I'm using:
Gstmp4dec * filter = GST_MP4DEC(GST_PAD_PARENT(pad));
So it doen't have to unref the filter
while creating the filter instance this way?
Actually I'm not clear with gobject references
and I'll try to find it out.
On Thu, 27 Nov 2008 16:24:06 +0530, sudarshan bisht wrote
> Hi ,
> Can u tell me how you are creating filter instance in src_event function .
>
> On Thu, Nov 27, 2008 at 3:29 PM, Wei-Di Hung <wdhung at vaplab.ee.ncu.edu.tw>
wrote:
>
> Yes, I use ffdemux_avi here.
>
> > Hi ,,
> > Are you using demuxer also in pipeline ?
> >
> > On Thu, Nov 27, 2008 at 3:01 PM, Wei-Di Hung
<wdhung at vaplab.ee.ncu.edu.tw> wrote:
> > Hi,
> > I'm writing a plugin for HW video decoder,
> > functions of playing, pause and stop have been verified.
> >
> > While seeking, the pipeline ran until the frame of seeking time
> > was decoded, i.e, it did jump to the target frame, but the test
> > program crashed then.
> >
> > Here are messages shown after the sink pad received
GST_EVENT_NEW_SEGMENT:
> > (player:886): GStreamer-CRITICAL **:
> > Trying to dispose element decoder, but it is not in the NULL state.
> > You need to explicitly set elements to the NULL state before
> > dropping the final reference, to allow them to clean up.
> >
> > (player:886): GLib-GObject-CRITICAL **: g_object_ref: assertion
`G_IS_OBJECT
> > (object)' failed
> >
> > After these message, it seemed the HW keep decoding from the paused frame
to
> > the target frame. but the intermediate frames were not displayed.
> >
> > Before decoding of each frame, came up the folloing message:
> > (player:886): GLib-GObject-WARNING **: invalid unclassed pointer in cast
to
> > `Gstvideodec'
> >
> > These are part of codes in sink event handler,
> > the format is GST_FORMAT_TIME in this case,
> >
> > case GST_EVENT_NEWSEGMENT:
> > {
> > GstFormat format;
> > gint64 start, stop, position;
> > gdouble rate;
> >
> > gst_event_parse_new_segment(event, NULL, &rate, &format,
> > &start, &stop, &position);
> >
> > if (GST_FORMAT_TIME == format) {
> > result = gst_pad_push_event(filter->srcpad, event);
> > } else {
> > ... ...
> > }
> > break;
> > }
> >
> > Below are part of codes in source event handler:
> >
> > switch (GST_EVENT_TYPE(event)) {
> > case GST_EVENT_SEEK:
> > res = gst_pad_push_event(filter->sinkpad, event);
> > break;
> > case GST_EVENT_NAVIGATION:
> > default:
> > res = gst_pad_push_event(filter->sinkpad, event);
> > break;
> > }
> >
> > gst_object_unref(filter);
> > return res;
> >
> > Could someone help me finding possible root cause?
> > Thanks in advance.
> >
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> >
> >
> > --
> > Regards,
> >
> > Sudarshan Bisht
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
> Build the coolest Linux based applications with Moblin SDK & win great
prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
> --
> Regards,
>
> Sudarshan Bisht
More information about the gstreamer-devel
mailing list