[gstreamer-bugs] [Bug 601775] New: GstAudioChannelPosition is not registered when working with the registry
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri Nov 13 00:46:39 PST 2009
https://bugzilla.gnome.org/show_bug.cgi?id=601775
GStreamer | gstreamer (core) | unspecified
Summary: GstAudioChannelPosition is not registered when working
with the registry
Classification: Desktop
Product: GStreamer
Version: unspecified
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: ensonic at sonicpulse.de
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME target: ---
GNOME version: ---
When searching for an item from the registry, I iterate over factories and
probe what caps the can take:
for(node=audiosink_names;node;node=g_list_next(node)) {
GstElementFactory * const factory=gst_element_factory_find(node->data);
// can the sink accept raw audio?
if(gst_element_factory_can_sink_caps(factory,caps)) {
...
This is triggering a CRISTIAL warning:
GStreamer-CRITICAL **: Could not convert static caps "audio/x-raw-float,
endianness=(int)1234, width=(int)32, channels=(int)1,
channel-positions=(GstAudioChannelPosition)< {
GST_AUDIO_CHANNEL_POSITION_FRONT_MONO } >"
Below is a log of details. The problem is that the caps stored in the registry
cannot be deserialized as they contain GstAudioChannelPosition mappings (form
gst-plugins-base/gst-libs/gst/audio) and when working with the registry, its
enum types are not yet registered. See log below.
I wonder how we can fix this.
1) Forbid GstAudioChannelPosition in template caps?
2) add a gst_audio_init() and require apps to call it?
For now I added a GST_TYPE_AUDIO_CHANNEL_POSITION; infront of the loop above
and that works around the problem.
0:00:07.674125076 19931 0x80e4168 INFO bt-core
sink-bin.c:339:bt_sink_bin_determine_plugin_name: get audiosink from gst
registry by rank
0:00:07.674148333 19931 0x80e4168 INFO bt-core
sink-bin.c:344:bt_sink_bin_determine_plugin_name: probing audio sink:
"ladspa-mux-cr"
0:00:07.674169006 19931 0x80e4168 DEBUG default
gststructure.c:1940:gst_structure_parse_field: trying field name 'endianness'
0:00:07.674185279 19931 0x80e4168 DEBUG default
gststructure.c:1991:gst_structure_parse_value: trying type name 'int'
0:00:07.674202111 19931 0x80e4168 DEBUG default
gststructure.c:1940:gst_structure_parse_field: trying field name 'width'
0:00:07.674219362 19931 0x80e4168 DEBUG default
gststructure.c:1991:gst_structure_parse_value: trying type name 'int'
0:00:07.674235635 19931 0x80e4168 DEBUG default
gststructure.c:1940:gst_structure_parse_field: trying field name 'channels'
0:00:07.674250721 19931 0x80e4168 DEBUG default
gststructure.c:1991:gst_structure_parse_value: trying type name 'int'
0:00:07.674273419 19931 0x80e4168 DEBUG default
gststructure.c:1940:gst_structure_parse_field: trying field name
'channel-positions'
0:00:07.674291578 19931 0x80e4168 DEBUG default
gststructure.c:1991:gst_structure_parse_value: trying type name
'GstAudioChannelPosition'
0:00:07.674306524 19931 0x80e4168 WARN default
gststructure.c:1995:gst_structure_parse_value: invalid type
0:00:07.674320422 19931 0x80e4168 WARN default
gststructure.c:1945:gst_structure_parse_field: failed to parse value
channel-positions=(GstAudioChannelPosition)< {
GST_AUDIO_CHANNEL_POSITION_FRONT_MONO } >
0:00:07.674337813 19931 0x80e4168 WARN default
gststructure.c:2124:gst_structure_from_string: Failed to parse field,
r=channel-positions=(GstAudioChannelPosition)< {
GST_AUDIO_CHANNEL_POSITION_FRONT_MONO } >
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs
mailing list