From 14cd6e6ae179fba49b462fc647dcfd062a873a8e Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Wed, 28 Feb 2007 12:08:27 +0000 Subject: [PATCH] gst/audioconvert/audioconvert.c: Also make valgrind happy and avoid copying data in some cases. Original commit message from CVS: * gst/audioconvert/audioconvert.c: (float), (double), (float_hq), (double_hq), (audio_convert_get_func_index), (check_default), (audio_convert_prepare_context), (audio_convert_convert): Also make valgrind happy and avoid copying data in some cases. --- ChangeLog | 7 +++++++ gst/audioconvert/audioconvert.c | 14 +++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d10d0fc17c..187752a8a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-02-28 Stefan Kost + + * gst/audioconvert/audioconvert.c: (float), (double), (float_hq), + (double_hq), (audio_convert_get_func_index), (check_default), + (audio_convert_prepare_context), (audio_convert_convert): + Also make valgrind happy and avoid copying data in some cases. + 2007-02-28 Stefan Kost * gst/audioconvert/audioconvert.c: (float), (double), (float_hq), diff --git a/gst/audioconvert/audioconvert.c b/gst/audioconvert/audioconvert.c index d06f6ac485..cfdfda9bb0 100644 --- a/gst/audioconvert/audioconvert.c +++ b/gst/audioconvert/audioconvert.c @@ -252,10 +252,14 @@ audio_convert_get_func_index (AudioConvertFmt * fmt) } static gboolean -check_default (AudioConvertFmt * fmt) +check_default (AudioConvertCtx * ctx, AudioConvertFmt * fmt) { - return (fmt->width == 32 && fmt->depth == 32 && - fmt->endianness == G_BYTE_ORDER && fmt->sign == TRUE); + if (ctx->in.is_int || ctx->out.is_int) { + return (fmt->width == 32 && fmt->depth == 32 && + fmt->endianness == G_BYTE_ORDER && fmt->sign == TRUE); + } else { + return (fmt->width == 64); + } } gboolean @@ -312,11 +316,11 @@ audio_convert_prepare_context (AudioConvertCtx * ctx, AudioConvertFmt * in, GST_INFO ("unitsizes: %d -> %d", in->unit_size, out->unit_size); /* check if input is in default format */ - ctx->in_default = check_default (in); + ctx->in_default = check_default (ctx, in); /* check if channel mixer is passthrough */ ctx->mix_passthrough = gst_channel_mix_passthrough (ctx); /* check if output is in default format */ - ctx->out_default = check_default (out); + ctx->out_default = check_default (ctx, out); GST_INFO ("in default %d, mix passthrough %d, out default %d", ctx->in_default, ctx->mix_passthrough, ctx->out_default);