diff --git a/ChangeLog b/ChangeLog index 99c03f6602..04b761bdf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-06-02 Michael Smith + + * ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet): + Reinstate limit on channel count. Vorbis does not define the meaning + of > 6 channels, so they're just independent channels. Gstreamer + currently has no mechanism to represent N independent channels. + 2006-06-02 Michael Smith * ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet): diff --git a/ext/vorbis/vorbisdec.c b/ext/vorbis/vorbisdec.c index 5dc479d891..c8305d8e26 100644 --- a/ext/vorbis/vorbisdec.c +++ b/ext/vorbis/vorbisdec.c @@ -607,6 +607,8 @@ vorbis_handle_identification_packet (GstVorbisDec * vd) pos = pos6; break; } + default: + goto channel_count_error; } caps = gst_caps_new_simple ("audio/x-raw-float", @@ -621,6 +623,14 @@ vorbis_handle_identification_packet (GstVorbisDec * vd) gst_caps_unref (caps); return GST_FLOW_OK; + + /* ERROR */ +channel_count_error: + { + GST_ELEMENT_ERROR (vd, STREAM, NOT_IMPLEMENTED, (NULL), + ("Unsupported channel count %d", vd->vi.channels)); + return GST_FLOW_ERROR; + } } static GstFlowReturn