mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-10 19:31:12 +00:00
ext/lame/gstlame.c: Fix up case where there is no peer, in which case _get_allowed_caps() will return NULL.
Original commit message from CVS: * ext/lame/gstlame.c: Fix up case where there is no peer, in which case _get_allowed_caps() will return NULL.
This commit is contained in:
parent
8d9b031015
commit
ead8e9facf
1 changed files with 17 additions and 10 deletions
|
@ -1162,9 +1162,7 @@ gst_lame_setup (GstLame * lame)
|
|||
}G_STMT_END
|
||||
|
||||
int retval;
|
||||
GstCaps *src_caps;
|
||||
GstStructure *structure;
|
||||
gint samplerate;
|
||||
GstCaps *allowed_caps;
|
||||
|
||||
GST_DEBUG_OBJECT (lame, "starting setup");
|
||||
|
||||
|
@ -1185,8 +1183,13 @@ gst_lame_setup (GstLame * lame)
|
|||
lame_set_in_samplerate (lame->lgf, lame->samplerate);
|
||||
|
||||
/* let lame choose default samplerate unless outgoing sample rate is fixed */
|
||||
src_caps = gst_pad_get_allowed_caps (lame->srcpad);
|
||||
structure = gst_caps_get_structure (src_caps, 0);
|
||||
allowed_caps = gst_pad_get_allowed_caps (lame->srcpad);
|
||||
|
||||
if (allowed_caps != NULL) {
|
||||
GstStructure *structure;
|
||||
gint samplerate;
|
||||
|
||||
structure = gst_caps_get_structure (allowed_caps, 0);
|
||||
|
||||
if (gst_structure_get_int (structure, "rate", &samplerate)) {
|
||||
GST_DEBUG_OBJECT (lame, "Setting sample rate to %d as fixed in src caps",
|
||||
|
@ -1196,6 +1199,10 @@ gst_lame_setup (GstLame * lame)
|
|||
GST_DEBUG_OBJECT (lame, "Letting lame choose sample rate");
|
||||
lame_set_out_samplerate (lame->lgf, 0);
|
||||
}
|
||||
} else {
|
||||
GST_DEBUG_OBJECT (lame, "No peer yet, letting lame choose sample rate");
|
||||
lame_set_out_samplerate (lame->lgf, 0);
|
||||
}
|
||||
|
||||
/* force mono encoding if we only have one channel */
|
||||
if (lame->num_channels == 1)
|
||||
|
|
Loading…
Reference in a new issue