From 5759241eb4b6f3e798f369685b180db374733aae Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Fri, 16 Mar 2007 16:42:23 +0000 Subject: [PATCH] gst/audioconvert/gstaudioconvert.c: We don't support 64 bit integer audio, so don't try to claim we can. Original commit message from CVS: * gst/audioconvert/gstaudioconvert.c: (make_lossless_changes), (gst_audio_convert_transform_caps): We don't support 64 bit integer audio, so don't try to claim we can. Stops us producing caps don't match our template caps. Update comments. --- ChangeLog | 8 ++++++++ gst/audioconvert/gstaudioconvert.c | 11 +++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 24f7c16efb..7df33b4524 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-03-16 Michael Smith + + * gst/audioconvert/gstaudioconvert.c: (make_lossless_changes), + (gst_audio_convert_transform_caps): + We don't support 64 bit integer audio, so don't try to claim we can. + Stops us producing caps don't match our template caps. + Update comments. + 2007-03-15 Michael Smith * gst/audioresample/gstaudioresample.c: diff --git a/gst/audioconvert/gstaudioconvert.c b/gst/audioconvert/gstaudioconvert.c index b1b67a6374..59ecfefabe 100644 --- a/gst/audioconvert/gstaudioconvert.c +++ b/gst/audioconvert/gstaudioconvert.c @@ -413,6 +413,8 @@ make_lossless_changes (GstStructure * s, gboolean isfloat) gst_structure_set_value (s, "signed", &list); g_value_unset (&val); g_value_unset (&list); + /* We don't handle 64 bit integer audio, so we set the width here as well */ + gst_structure_set (s, "width", G_TYPE_INT, 32, NULL); } return s; @@ -522,10 +524,9 @@ gst_audio_convert_transform_caps (GstBaseTransform * base, /* Same, plus a float<->int conversion */ append_with_other_format (ret, s, isfloat); - /* We'll reduce depth if we must... only for integer, since we can't do this - * for float. We reduce as low as 16 bits; reducing to less than this is - * even worse than dropping channels. We only do this if we haven't already - * done the equivalent above. */ + /* We'll reduce depth if we must. We reduce as low as 16 bits (for integer); + * reducing to less than this is even worse than dropping channels. We only + * do this if we haven't already done the equivalent above. */ if (!gst_structure_get_int (structure, "width", &width) || width > 16) { if (isfloat) { GstStructure *s2 = gst_structure_copy (s); @@ -564,6 +565,8 @@ gst_audio_convert_transform_caps (GstBaseTransform * base, } else gst_caps_append_structure (ret, s); + GST_DEBUG_OBJECT (base, "Caps transformed to % " GST_PTR_FORMAT, ret); + return ret; }