[gst-devel] Problem creating second pad on ffmpeg 3GP muxer

Geraldine Rougier geraldine.rougier at purplelabs.com
Tue Aug 29 09:00:58 CEST 2006


I solve my problem by adding a get caps function in 3GP muxer plugin.

Thanks,
gg

Ronald S. Bultje wrote:

>Hey,
>
>queues help during dataflow and are indeed required. However, here, even
>linking doesn't work, so the queue cannot possibly be the problem yet.
>
>I don't know what is. I'd think that ffmux doesn't properly deal with
>multiple pads, so look there for bugs.
>
>Cheers,
>Ronald
>
>On Fri, 25 Aug 2006, Rosfran Lins Borges wrote:
>
>  
>
>>   Try to link your ffdemux to a queue, and so to the ffmux. Just add a
>>queue element between FFMPEG demux and mux, this will help you on
>>dealing with the huge amount of buffers that gstffmpeg generate.
>>
>>--
>>Rosfran Borges
>>
>>ext Geraldine Rougier wrote:
>>    
>>
>>>Hi,
>>>
>>>I am using 3GP muxer plugin from gstffmpeg and trying the following
>>>pipeline :
>>>
>>>filesrc ! 3GP demux ! 3GP mux ! filesink
>>>
>>>When the source file is audio or video only I have no problem, but with
>>>audio/video files I can not link the second pad created by the demuxer
>>>to the muxer.
>>>The "gst_pad_link" function returns the following error :
>>>GST_PAD_LINK_NOFORMAT.
>>>
>>>I tried two scenarii in order to link demuxer and muxer pads (the same
>>>is applied for audio pad):
>>>
>>>1- pl_sinkpad_mux = gst_element_get_request_pad (pl_ctx->p_mux, "video_0");
>>>    if (pl_sinkpad_mux==NULL)
>>>    {
>>>      g_print("Video sink pad is not available\n");
>>>      return;
>>>    }
>>>
>>>  vl_status = gst_pad_link (srcpad, pl_sinkpad_mux);
>>>  if(vl_status != GST_PAD_LINK_OK)
>>>  {
>>>    g_print ("Could not link src pad and muxer sink pad, vl_status =
>>>%d\n", vl_status);
>>>    return;
>>>  }
>>>  gst_object_unref( pl_sinkpad_mux );
>>>
>>>
>>>2- GstCaps *pl_caps = NULL;
>>>    pl_caps = gst_caps_new_simple ("video/x-h263",
>>>            NULL);
>>>    if (!pl_caps)
>>>    {
>>>      g_print("could not gst_caps_new_simple\n");
>>>      return;
>>>    }
>>>    //Request new video muxer sinkpad.
>>>    pl_sinkpad_mux = gst_element_get_compatible_pad(pl_ctx->p_mux,
>>>srcpad, pl_caps);
>>>    if (pl_sinkpad_mux==NULL)
>>>    {
>>>      g_print("Video sink pad is not available\n");
>>>      return;
>>>    }
>>>    if ((gst_pad_set_caps(pl_sinkpad_mux, pl_caps)) == FALSE)
>>>    {
>>>      fprintf(stderr, "could not gst_pad_set_caps\n");
>>>      return;
>>>    }
>>>    gst_caps_unref(pl_caps);
>>>
>>>  vl_status = gst_pad_link (srcpad, pl_sinkpad_mux);
>>>  if(vl_status != GST_PAD_LINK_OK)
>>>  {
>>>    g_print ("Could not link src pad and muxer sink pad, vl_status =
>>>%d\n", vl_status);
>>>    return;
>>>  }
>>>  gst_object_unref( pl_sinkpad_mux );
>>>
>>>
>>>The problem always appears when linking the second pad, no matter if it
>>>is the audio one or the video one.
>>>
>>>I don't know what I'm missing :(
>>>Any help is welcome :)
>>>
>>>Thanks,
>>>
>>>GG
>>>
>>>
>>>-------------------------------------------------------------------------
>>>Using Tomcat but need to do more? Need to support web services, security?
>>>Get stuff done quickly with pre-integrated technology to make your job easier
>>>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>_______________________________________________
>>>gstreamer-devel mailing list
>>>gstreamer-devel at lists.sourceforge.net
>>>https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>>      
>>>
>>    
>>





More information about the gstreamer-devel mailing list