Commit 6a016876 authored by Sebastian Dröge's avatar Sebastian Dröge Committed by Wim Taymans
Browse files

gst/audiofx/audiopanorama.*: Fix audiopanorame with float samples. Fixes #383726.

Original commit message from CVS:
Patch by: Sebastian Dröge  <mail at slomosnail de >
* gst/audiofx/audiopanorama.c: (gst_audio_panorama_init),
(gst_audio_panorama_set_caps), (gst_audio_panorama_transform):
* gst/audiofx/audiopanorama.h:
Fix audiopanorame with float samples. Fixes #383726.
parent a3b5d523
2006-12-08 Wim Taymans <wim@fluendo.com>
Patch by: Sebastian Dröge <mail at slomosnail de >
* gst/audiofx/audiopanorama.c: (gst_audio_panorama_init),
(gst_audio_panorama_set_caps), (gst_audio_panorama_transform):
* gst/audiofx/audiopanorama.h:
Fix audiopanorame with float samples. Fixes #383726.
2006-12-08 Jan Schmidt <thaytan@mad.scientist.com>
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_reset):
......
......@@ -168,6 +168,7 @@ gst_audio_panorama_init (GstAudioPanorama * filter,
GstAudioPanoramaClass * klass)
{
filter->panorama = 0;
filter->width = 0;
}
static void
......@@ -253,7 +254,7 @@ gst_audio_panorama_set_caps (GstBaseTransform * base, GstCaps * incaps,
GstAudioPanorama *filter = GST_AUDIO_PANORAMA (base);
const GstStructure *structure;
gboolean ret;
gint channels;
gint channels, width;
const gchar *fmt;
/*GST_INFO ("incaps are %" GST_PTR_FORMAT, incaps); */
......@@ -263,6 +264,12 @@ gst_audio_panorama_set_caps (GstBaseTransform * base, GstCaps * incaps,
if (!ret)
goto no_channels;
ret = gst_structure_get_int (structure, "width", &width);
if (!ret)
goto no_width;
filter->width = width / 8;
fmt = gst_structure_get_name (structure);
GST_DEBUG ("try to process %s input with %d channels", fmt, channels);
......@@ -297,6 +304,9 @@ gst_audio_panorama_set_caps (GstBaseTransform * base, GstCaps * incaps,
no_channels:
GST_DEBUG ("no channels in caps");
return ret;
no_width:
GST_DEBUG ("no width in caps");
return ret;
}
static void
......@@ -434,7 +444,7 @@ gst_audio_panorama_transform (GstBaseTransform * base, GstBuffer * inbuf,
GstBuffer * outbuf)
{
GstAudioPanorama *filter = GST_AUDIO_PANORAMA (base);
guint num_samples = GST_BUFFER_SIZE (outbuf) / (2 * sizeof (gint16));
guint num_samples = GST_BUFFER_SIZE (outbuf) / (2 * filter->width);
if (!gst_buffer_is_writable (outbuf))
return GST_FLOW_OK;
......
......@@ -45,6 +45,7 @@ struct _GstAudioPanorama {
/* < private > */
GstAudioPanoramaProcessFunc process;
gint width;
};
struct _GstAudioPanoramaClass {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment