LCOV - code coverage report
Current view: top level - media/webrtc/trunk/webrtc/common_audio/signal_processing - resample_48khz.c (source / functions) Hit Total Coverage
Test: output.info Lines: 0 52 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 8 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
       3             :  *
       4             :  *  Use of this source code is governed by a BSD-style license
       5             :  *  that can be found in the LICENSE file in the root of the source
       6             :  *  tree. An additional intellectual property rights grant can be found
       7             :  *  in the file PATENTS.  All contributing project authors may
       8             :  *  be found in the AUTHORS file in the root of the source tree.
       9             :  */
      10             : 
      11             : 
      12             : /*
      13             :  * This file contains resampling functions between 48 kHz and nb/wb.
      14             :  * The description header can be found in signal_processing_library.h
      15             :  *
      16             :  */
      17             : 
      18             : #include <string.h>
      19             : #include "webrtc/common_audio/signal_processing/include/signal_processing_library.h"
      20             : #include "webrtc/common_audio/signal_processing/resample_by_2_internal.h"
      21             : 
      22             : ////////////////////////////
      23             : ///// 48 kHz -> 16 kHz /////
      24             : ////////////////////////////
      25             : 
      26             : // 48 -> 16 resampler
      27           0 : void WebRtcSpl_Resample48khzTo16khz(const int16_t* in, int16_t* out,
      28             :                                     WebRtcSpl_State48khzTo16khz* state, int32_t* tmpmem)
      29             : {
      30             :     ///// 48 --> 48(LP) /////
      31             :     // int16_t  in[480]
      32             :     // int32_t out[480]
      33             :     /////
      34           0 :     WebRtcSpl_LPBy2ShortToInt(in, 480, tmpmem + 16, state->S_48_48);
      35             : 
      36             :     ///// 48 --> 32 /////
      37             :     // int32_t  in[480]
      38             :     // int32_t out[320]
      39             :     /////
      40             :     // copy state to and from input array
      41           0 :     memcpy(tmpmem + 8, state->S_48_32, 8 * sizeof(int32_t));
      42           0 :     memcpy(state->S_48_32, tmpmem + 488, 8 * sizeof(int32_t));
      43           0 :     WebRtcSpl_Resample48khzTo32khz(tmpmem + 8, tmpmem, 160);
      44             : 
      45             :     ///// 32 --> 16 /////
      46             :     // int32_t  in[320]
      47             :     // int16_t out[160]
      48             :     /////
      49           0 :     WebRtcSpl_DownBy2IntToShort(tmpmem, 320, out, state->S_32_16);
      50           0 : }
      51             : 
      52             : // initialize state of 48 -> 16 resampler
      53           0 : void WebRtcSpl_ResetResample48khzTo16khz(WebRtcSpl_State48khzTo16khz* state)
      54             : {
      55           0 :     memset(state->S_48_48, 0, 16 * sizeof(int32_t));
      56           0 :     memset(state->S_48_32, 0, 8 * sizeof(int32_t));
      57           0 :     memset(state->S_32_16, 0, 8 * sizeof(int32_t));
      58           0 : }
      59             : 
      60             : ////////////////////////////
      61             : ///// 16 kHz -> 48 kHz /////
      62             : ////////////////////////////
      63             : 
      64             : // 16 -> 48 resampler
      65           0 : void WebRtcSpl_Resample16khzTo48khz(const int16_t* in, int16_t* out,
      66             :                                     WebRtcSpl_State16khzTo48khz* state, int32_t* tmpmem)
      67             : {
      68             :     ///// 16 --> 32 /////
      69             :     // int16_t  in[160]
      70             :     // int32_t out[320]
      71             :     /////
      72           0 :     WebRtcSpl_UpBy2ShortToInt(in, 160, tmpmem + 16, state->S_16_32);
      73             : 
      74             :     ///// 32 --> 24 /////
      75             :     // int32_t  in[320]
      76             :     // int32_t out[240]
      77             :     // copy state to and from input array
      78             :     /////
      79           0 :     memcpy(tmpmem + 8, state->S_32_24, 8 * sizeof(int32_t));
      80           0 :     memcpy(state->S_32_24, tmpmem + 328, 8 * sizeof(int32_t));
      81           0 :     WebRtcSpl_Resample32khzTo24khz(tmpmem + 8, tmpmem, 80);
      82             : 
      83             :     ///// 24 --> 48 /////
      84             :     // int32_t  in[240]
      85             :     // int16_t out[480]
      86             :     /////
      87           0 :     WebRtcSpl_UpBy2IntToShort(tmpmem, 240, out, state->S_24_48);
      88           0 : }
      89             : 
      90             : // initialize state of 16 -> 48 resampler
      91           0 : void WebRtcSpl_ResetResample16khzTo48khz(WebRtcSpl_State16khzTo48khz* state)
      92             : {
      93           0 :     memset(state->S_16_32, 0, 8 * sizeof(int32_t));
      94           0 :     memset(state->S_32_24, 0, 8 * sizeof(int32_t));
      95           0 :     memset(state->S_24_48, 0, 8 * sizeof(int32_t));
      96           0 : }
      97             : 
      98             : ////////////////////////////
      99             : ///// 48 kHz ->  8 kHz /////
     100             : ////////////////////////////
     101             : 
     102             : // 48 -> 8 resampler
     103           0 : void WebRtcSpl_Resample48khzTo8khz(const int16_t* in, int16_t* out,
     104             :                                    WebRtcSpl_State48khzTo8khz* state, int32_t* tmpmem)
     105             : {
     106             :     ///// 48 --> 24 /////
     107             :     // int16_t  in[480]
     108             :     // int32_t out[240]
     109             :     /////
     110           0 :     WebRtcSpl_DownBy2ShortToInt(in, 480, tmpmem + 256, state->S_48_24);
     111             : 
     112             :     ///// 24 --> 24(LP) /////
     113             :     // int32_t  in[240]
     114             :     // int32_t out[240]
     115             :     /////
     116           0 :     WebRtcSpl_LPBy2IntToInt(tmpmem + 256, 240, tmpmem + 16, state->S_24_24);
     117             : 
     118             :     ///// 24 --> 16 /////
     119             :     // int32_t  in[240]
     120             :     // int32_t out[160]
     121             :     /////
     122             :     // copy state to and from input array
     123           0 :     memcpy(tmpmem + 8, state->S_24_16, 8 * sizeof(int32_t));
     124           0 :     memcpy(state->S_24_16, tmpmem + 248, 8 * sizeof(int32_t));
     125           0 :     WebRtcSpl_Resample48khzTo32khz(tmpmem + 8, tmpmem, 80);
     126             : 
     127             :     ///// 16 --> 8 /////
     128             :     // int32_t  in[160]
     129             :     // int16_t out[80]
     130             :     /////
     131           0 :     WebRtcSpl_DownBy2IntToShort(tmpmem, 160, out, state->S_16_8);
     132           0 : }
     133             : 
     134             : // initialize state of 48 -> 8 resampler
     135           0 : void WebRtcSpl_ResetResample48khzTo8khz(WebRtcSpl_State48khzTo8khz* state)
     136             : {
     137           0 :     memset(state->S_48_24, 0, 8 * sizeof(int32_t));
     138           0 :     memset(state->S_24_24, 0, 16 * sizeof(int32_t));
     139           0 :     memset(state->S_24_16, 0, 8 * sizeof(int32_t));
     140           0 :     memset(state->S_16_8, 0, 8 * sizeof(int32_t));
     141           0 : }
     142             : 
     143             : ////////////////////////////
     144             : /////  8 kHz -> 48 kHz /////
     145             : ////////////////////////////
     146             : 
     147             : // 8 -> 48 resampler
     148           0 : void WebRtcSpl_Resample8khzTo48khz(const int16_t* in, int16_t* out,
     149             :                                    WebRtcSpl_State8khzTo48khz* state, int32_t* tmpmem)
     150             : {
     151             :     ///// 8 --> 16 /////
     152             :     // int16_t  in[80]
     153             :     // int32_t out[160]
     154             :     /////
     155           0 :     WebRtcSpl_UpBy2ShortToInt(in, 80, tmpmem + 264, state->S_8_16);
     156             : 
     157             :     ///// 16 --> 12 /////
     158             :     // int32_t  in[160]
     159             :     // int32_t out[120]
     160             :     /////
     161             :     // copy state to and from input array
     162           0 :     memcpy(tmpmem + 256, state->S_16_12, 8 * sizeof(int32_t));
     163           0 :     memcpy(state->S_16_12, tmpmem + 416, 8 * sizeof(int32_t));
     164           0 :     WebRtcSpl_Resample32khzTo24khz(tmpmem + 256, tmpmem + 240, 40);
     165             : 
     166             :     ///// 12 --> 24 /////
     167             :     // int32_t  in[120]
     168             :     // int16_t out[240]
     169             :     /////
     170           0 :     WebRtcSpl_UpBy2IntToInt(tmpmem + 240, 120, tmpmem, state->S_12_24);
     171             : 
     172             :     ///// 24 --> 48 /////
     173             :     // int32_t  in[240]
     174             :     // int16_t out[480]
     175             :     /////
     176           0 :     WebRtcSpl_UpBy2IntToShort(tmpmem, 240, out, state->S_24_48);
     177           0 : }
     178             : 
     179             : // initialize state of 8 -> 48 resampler
     180           0 : void WebRtcSpl_ResetResample8khzTo48khz(WebRtcSpl_State8khzTo48khz* state)
     181             : {
     182           0 :     memset(state->S_8_16, 0, 8 * sizeof(int32_t));
     183           0 :     memset(state->S_16_12, 0, 8 * sizeof(int32_t));
     184           0 :     memset(state->S_12_24, 0, 8 * sizeof(int32_t));
     185           0 :     memset(state->S_24_48, 0, 8 * sizeof(int32_t));
     186           0 : }

Generated by: LCOV version 1.13