FFmpeg
2.8.15
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavcodec
x86
proresdsp_init.c
Go to the documentation of this file.
1
/*
2
* Apple ProRes compatible decoder
3
*
4
* Copyright (c) 2010-2011 Maxim Poliakovski
5
*
6
* This file is part of FFmpeg.
7
*
8
* FFmpeg is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2.1 of the License, or (at your option) any later version.
12
*
13
* FFmpeg is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* Lesser General Public License for more details.
17
*
18
* You should have received a copy of the GNU Lesser General Public
19
* License along with FFmpeg; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*/
22
23
#include "
libavutil/attributes.h
"
24
#include "
libavutil/x86/cpu.h
"
25
#include "
libavcodec/idctdsp.h
"
26
#include "
libavcodec/proresdsp.h
"
27
28
void
ff_prores_idct_put_10_sse2
(uint16_t *dst,
int
linesize,
29
int16_t *
block
,
const
int16_t *qmat);
30
void
ff_prores_idct_put_10_avx
(uint16_t *dst,
int
linesize,
31
int16_t *
block
,
const
int16_t *qmat);
32
33
av_cold
void
ff_proresdsp_init_x86
(
ProresDSPContext
*dsp,
AVCodecContext
*avctx)
34
{
35
#if ARCH_X86_64
36
int
cpu_flags =
av_get_cpu_flags
();
37
38
if
(
EXTERNAL_SSE2
(cpu_flags)) {
39
dsp->
idct_permutation_type
=
FF_IDCT_PERM_TRANSPOSE
;
40
dsp->
idct_put
=
ff_prores_idct_put_10_sse2
;
41
}
42
43
if
(
EXTERNAL_AVX
(cpu_flags)) {
44
dsp->
idct_permutation_type
=
FF_IDCT_PERM_TRANSPOSE
;
45
dsp->
idct_put
=
ff_prores_idct_put_10_avx
;
46
}
47
#endif
/* ARCH_X86_64 */
48
}
ProresDSPContext::idct_permutation_type
int idct_permutation_type
Definition:
proresdsp.h:32
cpu.h
attributes.h
Macro definitions for various function/variable attributes.
av_cold
#define av_cold
Definition:
attributes.h:74
EXTERNAL_SSE2
#define EXTERNAL_SSE2(flags)
Definition:
cpu.h:56
idctdsp.h
ProresDSPContext
Definition:
proresdsp.h:31
proresdsp.h
ff_proresdsp_init_x86
av_cold void ff_proresdsp_init_x86(ProresDSPContext *dsp, AVCodecContext *avctx)
Definition:
proresdsp_init.c:33
FF_IDCT_PERM_TRANSPOSE
Definition:
idctdsp.h:39
AVCodecContext
main external API structure.
Definition:
avcodec.h:1512
ProresDSPContext::idct_put
void(* idct_put)(uint16_t *out, int linesize, int16_t *block, const int16_t *qmat)
Definition:
proresdsp.h:34
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:76
ff_prores_idct_put_10_avx
void ff_prores_idct_put_10_avx(uint16_t *dst, int linesize, int16_t *block, const int16_t *qmat)
ff_prores_idct_put_10_sse2
void ff_prores_idct_put_10_sse2(uint16_t *dst, int linesize, int16_t *block, const int16_t *qmat)
EXTERNAL_AVX
#define EXTERNAL_AVX(flags)
Definition:
cpu.h:65
block
static int16_t block[64]
Definition:
dct-test.c:110
Generated on Tue Jul 17 2018 05:57:02 for FFmpeg by
1.8.8