mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-03 14:08:56 +00:00
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.
This commit is contained in:
parent
a3b5d523d8
commit
6a016876c8
3 changed files with 22 additions and 2 deletions
|
@ -1,3 +1,12 @@
|
|||
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 {
|
||||
|
|
Loading…
Reference in a new issue