M4ChannelConverter.c revision 7c9d8018755adf1857571125ba1b3598c96ea506
17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*
27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2004-2011 NXP Software
37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project
47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License");
67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License.
77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at
87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      http://www.apache.org/licenses/LICENSE-2.0
107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software
127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS,
137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and
157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License.
167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file    M4ChannelCoverter.c
207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief
217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargivoid MonoTo2I_16( const short *src,
267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        short *dst,
277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        short n)
287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    short ii;
307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    src += n-1;
317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    dst += (n*2)-1;
327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    for (ii = n; ii != 0; ii--){
347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        *dst-- = *src;
357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        *dst-- = *src--;
367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    }
377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    return;
397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}
407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargivoid From2iToMono_16( const short *src,
427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                            short *dst,
437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                            short n)
447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    short ii;
467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    long Temp;
477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    for (ii = n; ii != 0; ii--){
487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        Temp = (long)*(src++);
497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        Temp += (long)*(src++);
507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        *(dst++) = (short)(Temp >>1);
517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    }
527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    return;
547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}
557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
56