diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2006-07-24 14:16:06 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2006-07-24 14:16:06 +0000 |
commit | 4304e0f4388e94e0bc26a71d995afbdc276f064c (patch) | |
tree | 5f287fc95e7c86faad5def898c488cac754fba0b /gst/law/alaw-encode.c | |
parent | 26e4a48271461a75832b2ceca1859d871a85375c (diff) |
gst/law/: Fix negotiation to deal with ANY/EMPTY caps instead of leaking.
Original commit message from CVS:
* gst/law/alaw-decode.c: (alawdec_getcaps):
* gst/law/alaw-encode.c: (alawenc_getcaps), (gst_alawenc_chain):
* gst/law/mulaw-decode.c: (mulawdec_getcaps):
* gst/law/mulaw-encode.c: (mulawenc_getcaps):
Fix negotiation to deal with ANY/EMPTY caps instead of leaking.
Diffstat (limited to 'gst/law/alaw-encode.c')
-rw-r--r-- | gst/law/alaw-encode.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/law/alaw-encode.c b/gst/law/alaw-encode.c index 991085da..9cbcae98 100644 --- a/gst/law/alaw-encode.c +++ b/gst/law/alaw-encode.c @@ -139,6 +139,9 @@ alawenc_getcaps (GstPad * pad) GValue irate = { 0 }, ichans = { 0}; + if (gst_caps_is_empty (othercaps) || gst_caps_is_any (othercaps)) + goto done; + structure = gst_caps_get_structure (othercaps, 0); orate = gst_structure_get_value (structure, "rate"); ochans = gst_structure_get_value (structure, "channels"); @@ -159,9 +162,9 @@ alawenc_getcaps (GstPad * pad) gst_structure_set_value (structure, "rate", &irate); gst_structure_set_value (structure, "channels", &ichans); + done: gst_caps_unref (othercaps); } -done: return base_caps; } |