mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-03 05:59:10 +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>
|
2006-12-08 Jan Schmidt <thaytan@mad.scientist.com>
|
||||||
|
|
||||||
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_reset):
|
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_reset):
|
||||||
|
|
|
@ -168,6 +168,7 @@ gst_audio_panorama_init (GstAudioPanorama * filter,
|
||||||
GstAudioPanoramaClass * klass)
|
GstAudioPanoramaClass * klass)
|
||||||
{
|
{
|
||||||
filter->panorama = 0;
|
filter->panorama = 0;
|
||||||
|
filter->width = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -253,7 +254,7 @@ gst_audio_panorama_set_caps (GstBaseTransform * base, GstCaps * incaps,
|
||||||
GstAudioPanorama *filter = GST_AUDIO_PANORAMA (base);
|
GstAudioPanorama *filter = GST_AUDIO_PANORAMA (base);
|
||||||
const GstStructure *structure;
|
const GstStructure *structure;
|
||||||
gboolean ret;
|
gboolean ret;
|
||||||
gint channels;
|
gint channels, width;
|
||||||
const gchar *fmt;
|
const gchar *fmt;
|
||||||
|
|
||||||
/*GST_INFO ("incaps are %" GST_PTR_FORMAT, incaps); */
|
/*GST_INFO ("incaps are %" GST_PTR_FORMAT, incaps); */
|
||||||
|
@ -263,6 +264,12 @@ gst_audio_panorama_set_caps (GstBaseTransform * base, GstCaps * incaps,
|
||||||
if (!ret)
|
if (!ret)
|
||||||
goto no_channels;
|
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);
|
fmt = gst_structure_get_name (structure);
|
||||||
|
|
||||||
GST_DEBUG ("try to process %s input with %d channels", fmt, channels);
|
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:
|
no_channels:
|
||||||
GST_DEBUG ("no channels in caps");
|
GST_DEBUG ("no channels in caps");
|
||||||
return ret;
|
return ret;
|
||||||
|
no_width:
|
||||||
|
GST_DEBUG ("no width in caps");
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -434,7 +444,7 @@ gst_audio_panorama_transform (GstBaseTransform * base, GstBuffer * inbuf,
|
||||||
GstBuffer * outbuf)
|
GstBuffer * outbuf)
|
||||||
{
|
{
|
||||||
GstAudioPanorama *filter = GST_AUDIO_PANORAMA (base);
|
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))
|
if (!gst_buffer_is_writable (outbuf))
|
||||||
return GST_FLOW_OK;
|
return GST_FLOW_OK;
|
||||||
|
|
|
@ -45,6 +45,7 @@ struct _GstAudioPanorama {
|
||||||
|
|
||||||
/* < private > */
|
/* < private > */
|
||||||
GstAudioPanoramaProcessFunc process;
|
GstAudioPanoramaProcessFunc process;
|
||||||
|
gint width;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstAudioPanoramaClass {
|
struct _GstAudioPanoramaClass {
|
||||||
|
|
Loading…
Reference in a new issue