LCOV - code coverage report
Current view: top level - libavcodec - flacdsp_template.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 31 31 100.0 %
Date: 2017-12-13 02:34:56 Functions: 8 16 50.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2012 Mans Rullgard <mans@mansr.com>
       3             :  *
       4             :  * This file is part of FFmpeg.
       5             :  *
       6             :  * FFmpeg is free software; you can redistribute it and/or
       7             :  * modify it under the terms of the GNU Lesser General Public
       8             :  * License as published by the Free Software Foundation; either
       9             :  * version 2.1 of the License, or (at your option) any later version.
      10             :  *
      11             :  * FFmpeg is distributed in the hope that it will be useful,
      12             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      13             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14             :  * Lesser General Public License for more details.
      15             :  *
      16             :  * You should have received a copy of the GNU Lesser General Public
      17             :  * License along with FFmpeg; if not, write to the Free Software
      18             :  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
      19             :  */
      20             : 
      21             : #include <stdint.h>
      22             : #include "libavutil/avutil.h"
      23             : 
      24             : #undef FUNC
      25             : #undef FSUF
      26             : #undef sample
      27             : #undef sample_type
      28             : #undef OUT
      29             : #undef S
      30             : 
      31             : #if SAMPLE_SIZE == 32
      32             : #   define sample_type  int32_t
      33             : #else
      34             : #   define sample_type  int16_t
      35             : #endif
      36             : 
      37             : #if PLANAR
      38             : #   define FSUF   AV_JOIN(SAMPLE_SIZE, p)
      39             : #   define sample sample_type *
      40             : #   define OUT(n) n
      41             : #   define S(s, c, i) (s[c][i])
      42             : #else
      43             : #   define FSUF   SAMPLE_SIZE
      44             : #   define sample sample_type
      45             : #   define OUT(n) n[0]
      46             : #   define S(s, c, i) (*s++)
      47             : #endif
      48             : 
      49             : #define FUNC(n) AV_JOIN(n ## _, FSUF)
      50             : 
      51        1244 : static void FUNC(flac_decorrelate_indep_c)(uint8_t **out, int32_t **in,
      52             :                                            int channels, int len, int shift)
      53             : {
      54        1244 :     sample *samples = (sample *) OUT(out);
      55             :     int i, j;
      56             : 
      57     8254962 :     for (j = 0; j < len; j++)
      58    29956862 :         for (i = 0; i < channels; i++)
      59    21703144 :             S(samples, i, j) = (int)((unsigned)in[i][j] << shift);
      60        1244 : }
      61             : 
      62         734 : static void FUNC(flac_decorrelate_ls_c)(uint8_t **out, int32_t **in,
      63             :                                         int channels, int len, int shift)
      64             : {
      65         734 :     sample *samples = (sample *) OUT(out);
      66             :     int i;
      67             : 
      68     2200340 :     for (i = 0; i < len; i++) {
      69     2199606 :         int a = in[0][i];
      70     2199606 :         int b = in[1][i];
      71     2199606 :         S(samples, 0, i) =  a      << shift;
      72     2199606 :         S(samples, 1, i) = (a - b) << shift;
      73             :     }
      74         734 : }
      75             : 
      76         469 : static void FUNC(flac_decorrelate_rs_c)(uint8_t **out, int32_t **in,
      77             :                                         int channels, int len, int shift)
      78             : {
      79         469 :     sample *samples = (sample *) OUT(out);
      80             :     int i;
      81             : 
      82     1738715 :     for (i = 0; i < len; i++) {
      83     1738246 :         int a = in[0][i];
      84     1738246 :         int b = in[1][i];
      85     1738246 :         S(samples, 0, i) = (a + b) << shift;
      86     1738246 :         S(samples, 1, i) =  b      << shift;
      87             :     }
      88         469 : }
      89             : 
      90         560 : static void FUNC(flac_decorrelate_ms_c)(uint8_t **out, int32_t **in,
      91             :                                         int channels, int len, int shift)
      92             : {
      93         560 :     sample *samples = (sample *) OUT(out);
      94             :     int i;
      95             : 
      96     2329165 :     for (i = 0; i < len; i++) {
      97     2328605 :         int a = in[0][i];
      98     2328605 :         int b = in[1][i];
      99     2328605 :         a -= b >> 1;
     100     2328605 :         S(samples, 0, i) = (a + b) << shift;
     101     2328605 :         S(samples, 1, i) =  a      << shift;
     102             :     }
     103         560 : }

Generated by: LCOV version 1.13