Coverage Report

Created: 2024-07-27 06:35

/src/libavc/decoder/x86/ih264d_function_selector.c
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 *
3
 * Copyright (C) 2015 The Android Open Source Project
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at:
8
 *
9
 * http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 *****************************************************************************
18
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19
*/
20
/**
21
*******************************************************************************
22
* @file
23
*  imp2d_function_selector.c
24
*
25
* @brief
26
*  Contains functions to initialize function pointers used in hevc
27
*
28
* @author
29
*  Naveen
30
*
31
* @par List of Functions:
32
* @remarks
33
*  None
34
*
35
*******************************************************************************
36
*/
37
/*****************************************************************************/
38
/* File Includes                                                             */
39
/*****************************************************************************/
40
41
#include <stdio.h>
42
#include <stddef.h>
43
#include <stdlib.h>
44
#include <string.h>
45
46
/* User Include files */
47
#include "ih264_typedefs.h"
48
#include "iv.h"
49
#include "ivd.h"
50
#include "ih264_defs.h"
51
#include "ih264_size_defs.h"
52
#include "ih264_error.h"
53
#include "ih264_trans_quant_itrans_iquant.h"
54
#include "ih264_inter_pred_filters.h"
55
56
#include "ih264d_structs.h"
57
#include "ih264d_function_selector.h"
58
59
void ih264d_init_function_ptr(dec_struct_t *ps_codec)
60
20.6k
{
61
62
20.6k
    ih264d_init_function_ptr_generic(ps_codec);
63
20.6k
    switch(ps_codec->e_processor_arch)
64
20.6k
    {
65
95
        case ARCH_X86_GENERIC:
66
95
            ih264d_init_function_ptr_generic(ps_codec);
67
95
        break;
68
27
        case ARCH_X86_SSSE3:
69
27
            ih264d_init_function_ptr_ssse3(ps_codec);
70
27
            break;
71
20.3k
        case ARCH_X86_SSE42:
72
20.5k
        default:
73
20.5k
            ih264d_init_function_ptr_ssse3(ps_codec);
74
20.5k
            ih264d_init_function_ptr_sse42(ps_codec);
75
20.5k
        break;
76
20.6k
    }
77
20.6k
}
78
void ih264d_init_arch(dec_struct_t *ps_codec)
79
99.2k
{
80
99.2k
#ifdef DEFAULT_ARCH
81
99.2k
#if DEFAULT_ARCH == D_ARCH_X86_SSE42
82
99.2k
    ps_codec->e_processor_arch = ARCH_X86_SSE42;
83
#elif DEFAULT_ARCH == D_ARCH_X86_SSSE3
84
    ps_codec->e_processor_arch = ARCH_X86_SSSE3;
85
#elif DEFAULT_ARCH == D_ARCH_X86_AVX2
86
    ps_codec->e_processor_arch = D_ARCH_X86_AVX2;
87
#else
88
    ps_codec->e_processor_arch = ARCH_X86_GENERIC;
89
#endif
90
#else
91
    ps_codec->e_processor_arch = ARCH_X86_SSE42;
92
#endif
93
94
99.2k
}