mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
gst/modplug/gstmodplug.cc: Don't use NULL caps for srcpad is not yet connected.
Original commit message from CVS: * gst/modplug/gstmodplug.cc: Don't use NULL caps for srcpad is not yet connected.
This commit is contained in:
parent
e6c86a500d
commit
77d01626c1
2 changed files with 34 additions and 24 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2007-08-21 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
|
* gst/modplug/gstmodplug.cc:
|
||||||
|
Don't use NULL caps for srcpad is not yet connected.
|
||||||
|
|
||||||
2007-08-20 Zaheer Abbas Merali <zaheerabbas at merali dot org>
|
2007-08-20 Zaheer Abbas Merali <zaheerabbas at merali dot org>
|
||||||
|
|
||||||
* configure.ac:
|
* configure.ac:
|
||||||
|
|
|
@ -93,27 +93,24 @@ enum
|
||||||
#define DEFAULT_OVERSAMP TRUE
|
#define DEFAULT_OVERSAMP TRUE
|
||||||
#define DEFAULT_NOISE_REDUCTION TRUE
|
#define DEFAULT_NOISE_REDUCTION TRUE
|
||||||
|
|
||||||
#define SRC_CAPS \
|
|
||||||
"audio/x-raw-int," \
|
|
||||||
" endianness = (int) BYTE_ORDER," \
|
|
||||||
" signed = (boolean) true," \
|
|
||||||
" width = (int) 16," \
|
|
||||||
" depth = (int) 16," \
|
|
||||||
" rate = (int) { 8000, 11025, 22050, 44100 }," \
|
|
||||||
" channels = (int) 2; " \
|
|
||||||
"audio/x-raw-int," \
|
|
||||||
" endianness = (int) BYTE_ORDER," \
|
|
||||||
" signed = (boolean) false," \
|
|
||||||
" width = (int) 8," \
|
|
||||||
" depth = (int) 8," \
|
|
||||||
" rate = (int) { 8000, 11025, 22050, 44100 }, " \
|
|
||||||
" channels = (int) [ 1, 2 ]"
|
|
||||||
|
|
||||||
static GstStaticPadTemplate modplug_src_template_factory =
|
static GstStaticPadTemplate modplug_src_template_factory =
|
||||||
GST_STATIC_PAD_TEMPLATE ("src",
|
GST_STATIC_PAD_TEMPLATE ("src",
|
||||||
GST_PAD_SRC,
|
GST_PAD_SRC,
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS (SRC_CAPS));
|
GST_STATIC_CAPS ("audio/x-raw-int,"
|
||||||
|
" endianness = (int) BYTE_ORDER,"
|
||||||
|
" signed = (boolean) true,"
|
||||||
|
" width = (int) 16,"
|
||||||
|
" depth = (int) 16,"
|
||||||
|
" rate = (int) { 8000, 11025, 22050, 44100 },"
|
||||||
|
" channels = (int) 2; "
|
||||||
|
"audio/x-raw-int,"
|
||||||
|
" endianness = (int) BYTE_ORDER,"
|
||||||
|
" signed = (boolean) false,"
|
||||||
|
" width = (int) 8,"
|
||||||
|
" depth = (int) 8,"
|
||||||
|
" rate = (int) { 8000, 11025, 22050, 44100 }, "
|
||||||
|
" channels = (int) [ 1, 2 ]"));
|
||||||
|
|
||||||
static GstStaticPadTemplate modplug_sink_template_factory =
|
static GstStaticPadTemplate modplug_sink_template_factory =
|
||||||
GST_STATIC_PAD_TEMPLATE ("sink",
|
GST_STATIC_PAD_TEMPLATE ("sink",
|
||||||
|
@ -459,14 +456,18 @@ gst_modplug_load_song (GstModPlug * modplug)
|
||||||
GstStructure *structure;
|
GstStructure *structure;
|
||||||
gint depth;
|
gint depth;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (modplug, "Loading song");
|
GST_DEBUG_OBJECT (modplug, "Setting caps");
|
||||||
|
|
||||||
modplug->mSoundFile = new CSoundFile;
|
|
||||||
|
|
||||||
/* negotiate srcpad caps */
|
/* negotiate srcpad caps */
|
||||||
othercaps = gst_pad_get_allowed_caps (modplug->srcpad);
|
if (othercaps = gst_pad_get_allowed_caps (modplug->srcpad)) {
|
||||||
newcaps = gst_caps_copy_nth (othercaps, 0);
|
newcaps = gst_caps_copy_nth (othercaps, 0);
|
||||||
gst_caps_unref (othercaps);
|
gst_caps_unref (othercaps);
|
||||||
|
} else {
|
||||||
|
GST_WARNING ("no allowed caps on srcpad, no peer linked");
|
||||||
|
/* FIXME: this can be done in a better way */
|
||||||
|
newcaps =
|
||||||
|
gst_caps_copy_nth (gst_pad_get_pad_template_caps (modplug->srcpad), 0);
|
||||||
|
}
|
||||||
gst_pad_fixate_caps (modplug->srcpad, newcaps);
|
gst_pad_fixate_caps (modplug->srcpad, newcaps);
|
||||||
gst_pad_set_caps (modplug->srcpad, newcaps);
|
gst_pad_set_caps (modplug->srcpad, newcaps);
|
||||||
|
|
||||||
|
@ -480,6 +481,10 @@ gst_modplug_load_song (GstModPlug * modplug)
|
||||||
modplug->read_samples = 1152;
|
modplug->read_samples = 1152;
|
||||||
modplug->read_bytes = modplug->read_samples * modplug->channel * depth / 8;
|
modplug->read_bytes = modplug->read_samples * modplug->channel * depth / 8;
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (modplug, "Loading song");
|
||||||
|
|
||||||
|
modplug->mSoundFile = new CSoundFile;
|
||||||
|
|
||||||
if (modplug->_16bit)
|
if (modplug->_16bit)
|
||||||
modplug->mSoundFile->SetWaveConfig (modplug->frequency, 16,
|
modplug->mSoundFile->SetWaveConfig (modplug->frequency, 16,
|
||||||
modplug->channel);
|
modplug->channel);
|
||||||
|
|
Loading…
Reference in a new issue