I've setup a pipeline as follows:
appsrc->avimuxer->filesink I then set the caps of the appsrc with the following code: GstCaps * caps = gst_caps_new_simple("video/mpeg", "width", G_TYPE_INT, 1280, "height", G_TYPE_INT, 720, "framerate", GST_TYPE_FRACTION, 1, 24, "mpegversion", G_TYPE_INT, 4, "systemstream", G_TYPE_BOOLEAN, FALSE); gst_app_src_set_caps(GST_APP_SRC(source), caps); Here is the resulting debug message: 0:00:00.357576853 1728 0x8b2f008 DEBUG appsrc gstappsrc.c:1086:gst_app_src_set _caps:<app-source> setting caps to video/mpeg, width=(int)1280, height=(int)720, framerate=(fraction)1/24, mpegve rsion=(int)4, systemstream=(boolean)false But when I link the appsrc to the avimux I see the following message: ment_get_compatible_pad:<muxer> Could not find a compatible unlinked always pad to link to app-source:src, now ch ecking request pads 0:00:00.359284054 1728 0x8b2f008 DEBUG GST_CAPS gstpad.c:2210:gst_pad_get_ caps_reffed:<app-source:src> get pad caps 0:00:00.359353058 1728 0x8b2f008 DEBUG GST_CAPS gstpad.c:2120:gst_pad_get_ caps_unlocked:<app-source:src> get pad caps 0:00:00.359373731 1728 0x8b2f008 DEBUG GST_CAPS gstpad.c:2124:gst_pad_get_ caps_unlocked:<app-source:src> dispatching to pad getcaps function 0:00:00.359395800 1728 0x8b2f008 DEBUG GST_CAPS gstpad.c:2137:gst_pad_get_ caps_unlocked:<app-source:src> pad getcaps returned ANY 0:00:00.359417591 1728 0x8b2f008 DEBUG GST_PERFORMANCE gstcaps.c:363:gst_caps_ make_writable: copy caps 0:00:00.359482683 1728 0x8b2f008 DEBUG GST_ELEMENT_PADS gstutils.c:889:gst_elem ent_get_compatible_pad_template: Looking for a suitable pad template in muxer out of 3 templates... 0:00:00.359504753 1728 0x8b2f008 DEBUG GST_CAPS gstutils.c:905:gst_element _get_compatible_pad_template: compatible direction: found sink pad template "audio_%d" 0:00:00.359524588 1728 0x8b2f008 DEBUG GST_CAPS gstutils.c:908:gst_element _get_compatible_pad_template: intersecting ANY 0:00:00.359545261 1728 0x8b2f008 DEBUG GST_CAPS gstutils.c:910:gst_element _get_compatible_pad_template: ..and audio/x-raw-int, endianness=(int)1234, signed=(boolean){ true, false }, width =(int){ 8, 16 }, depth=(int){ 8, 16 }, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(in t)1, layer=(int)[ 1, 3 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)4, stream-f ormat=(string)raw, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-ac3, rate=(int)[ 1000, 96000 ], channel s=(int)[ 1, 2 ]; audio/x-alaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-mulaw, rate=(int)[ 1000, 48 000 ], channels=(int)[ 1, 2 ]; audio/x-wma, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], wmaversion=(int)[ 1, 2 ] 0:00:00.359593312 1728 0x8b2f008 DEBUG GST_CAPS gstutils.c:916:gst_element _get_compatible_pad_template: caps are compatible 0:00:00.359613426 1728 0x8b2f008 DEBUG GST_ELEMENT_PADS gstutils.c:928:gst_elem ent_get_compatible_pad_template: Returning new pad template 0x8bfc718 0:00:00.359635216 1728 0x8b2f008 DEBUG avimux gstavimux.c:965:gst_avi_mux_requ est_new_pad:<muxer> adding new pad: audio_00 0:00:00.359666785 1728 0x8b2f008 DEBUG GST_PADS gstpad.c:1625:gst_pad_s et_setcaps_function:<'':audio_00> setcapsfunc set to gst_avi_mux_audsink_set_caps 0:00:00.359731318 1728 0x8b2f008 DEBUG collectpads gstcollectpads.c:321:gst_collect _pads_add_pad_full: adding pad '':audio_00 0:00:00.359755902 1728 0x8b2f008 DEBUG GST_PADS gstpad.c:1263:gst_pad_s et_chain_function:<'':audio_00> chainfunc set to gst_collect_pads_chain 0:00:00.359777413 1728 0x8b2f008 DEBUG GST_PADS gstpad.c:1346:gst_pad_s et_event_function:<'':audio_00> eventfunc for set to gst_collect_pads_event 0:00:00.359798645 1728 0x8b2f008 DEBUG GST_PADS gstpad.c:1346:gst_pad_s et_event_function:<'':audio_00> eventfunc for set to gst_avi_mux_handle_event 0:00:00.359819597 1728 0x8b2f008 INFO GST_ELEMENT_PADS gstelement.c:727:gst _element_add_pad:<muxer> adding pad 'audio_00' 0:00:00.359840270 1728 0x8b2f008 DEBUG GST_REFCOUNTING gstobject.c:793:gst_obj ect_set_parent:<'':audio_00> set parent (ref and sink) 0:00:00.359866531 1728 0x8b2f008 DEBUG GST_ELEMENT_PADS gstutils.c:1203:gst_ele ment_get_compatible_pad: found existing request pad muxer:audio_00 0:00:00.359887483 1728 0x8b2f008 INFO GST_PADS gstutils.c:1493:prep are_link_maybe_ghosting: app-source and muxer in same bin, no need for ghost pads 0:00:00.359998950 1728 0x8b2f008 DEBUG GST_BUS gstbus.c:309:gst_bus_post:<bu s0> [msg 0x8b3a750] posting on bus, type structure-change, GstMessageStructureChange, type=(GstStructureChangeTyp e)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(GstAppSrc\)\ app-source", busy=(boolean)true; from source <muxer:audio_00> 0 So it looks like the avimux audio sink is being used to connect to my video source. Is there a way to work around this bug? -- Nicholas Butts SENIOR FIRMWARE ENGINEER Appareo Systems, LLC 1810 NDSU Research Circle N Fargo, ND 58102 P: (701) 356-2200 F: (701) 356-3157 http://www.appareo.com [hidden email] NOTICE: This message {including attachments} is covered by the Electronic Communication Privacy Act, 18 U.S.C. sections 2510-2521, is CONFIDENTIAL and may also be protected by ATTORNEY-CLIENT OR OTHER PRIVILEGE. If you believe that it has been sent to you in error, do not read it. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error and then delete it. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Thu, 2011-08-18 at 09:38 -0500, Nicholas Butts wrote:
> I've setup a pipeline as follows: > appsrc->avimuxer->filesink > > I then set the caps of the appsrc with the following code: > GstCaps * caps = gst_caps_new_simple("video/mpeg", "width", > G_TYPE_INT, 1280, "height", G_TYPE_INT, 720, "framerate", > GST_TYPE_FRACTION, 1, 24, "mpegversion", G_TYPE_INT, 4, > "systemstream", G_TYPE_BOOLEAN, FALSE); > gst_app_src_set_caps(GST_APP_SRC(source), caps); > > Here is the resulting debug message: > 0:00:00.357576853 1728 0x8b2f008 DEBUG appsrc > gstappsrc.c:1086:gst_app_src_set > _caps:<app-source> setting caps to video/mpeg, width=(int)1280, > height=(int)720, framerate=(fraction)1/24, mpegve > rsion=(int)4, systemstream=(boolean)false > > But when I link the appsrc to the avimux I see the following message: > ment_get_compatible_pad:<muxer> Could not find a compatible unlinked > always pad to link to app-source:src, now ch > gst_pad_get_caps_unlocked:<app-source:src> pad getcaps returned ANY That looks like it might be the problem.. > So it looks like the avimux audio sink is being used to connect to my > video source. Is there a way to work around this bug? You could create the request pad(s) you need yourself using gst_element_request_pad(). Cheers -Tim _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Thanks for pointing that out. I now have it working with either AVI or MOV files, but my problem is the AVI or MOV files don't seem to be valid or don't want to play back unless I call
gst_app_src_end_of_stream (GST_APP_SRC (source)); at the "end" of my data. The problem is the data will be continously written until power is lost (this is an embedded device). I've tried setting the faststart properity of the QTMux filter: g_object_set(G_OBJECT (muxer), "faststart", TRUE, NULL); But that doesn't work either. Is there anyway to get the system to write valid AVI or MOV files in a streaming fashion? On Thu, Aug 18, 2011 at 9:51 AM, Tim-Philipp Müller <[hidden email]> wrote:
-- Nicholas Butts SENIOR FIRMWARE ENGINEER Appareo Systems, LLC 1810 NDSU Research Circle N Fargo, ND 58102 P: (701) 356-2200 F: (701) 356-3157 http://www.appareo.com [hidden email] NOTICE: This message {including attachments} is covered by the Electronic Communication Privacy Act, 18 U.S.C. sections 2510-2521, is CONFIDENTIAL and may also be protected by ATTORNEY-CLIENT OR OTHER PRIVILEGE. If you believe that it has been sent to you in error, do not read it. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error and then delete it. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |