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