AVI-muxer bug?
Nicholas Butts
nbutts at appareo.com
Thu Aug 18 07:38:43 PDT 2011
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
nbutts at appareo.com
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110818/0e9bb96a/attachment-0001.htm>
More information about the gstreamer-devel
mailing list