[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