FFmpeg
4.0
libavcodec
hq_hqa.h
Go to the documentation of this file.
1
/*
2
* Canopus HQ/HQA decoder
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
#ifndef AVCODEC_HQ_HQA_H
22
#define AVCODEC_HQ_HQA_H
23
24
#include <stdint.h>
25
26
#include "
avcodec.h
"
27
#include "
bytestream.h
"
28
#include "
hq_hqadsp.h
"
29
#include "
vlc.h
"
30
31
#define NUM_HQ_AC_ENTRIES 746
32
#define NUM_HQ_PROFILES 22
33
#define NUM_HQ_QUANTS 16
34
35
typedef
struct
HQContext
{
36
AVCodecContext
*
avctx
;
37
HQDSPContext
hqhqadsp
;
38
GetByteContext
gbc
;
39
40
VLC
hq_ac_vlc
;
41
VLC
hqa_cbp_vlc
;
42
DECLARE_ALIGNED
(16, int16_t,
block
)[12][64];
43
}
HQContext
;
44
45
typedef
struct
HQProfile
{
46
const
uint8_t
*
perm_tab
;
47
int
width
,
height
;
48
int
num_slices
;
49
int
tab_w
, tab_h;
50
}
HQProfile
;
51
52
extern
const
int32_t
*
const
ff_hq_quants
[16][2][4];
53
extern
const
HQProfile
ff_hq_profile
[
NUM_HQ_PROFILES
];
54
55
extern
const
uint8_t
ff_hq_ac_skips
[
NUM_HQ_AC_ENTRIES
];
56
extern
const
int16_t
ff_hq_ac_syms
[
NUM_HQ_AC_ENTRIES
];
57
58
int
ff_hq_init_vlcs
(
HQContext
*
c
);
59
60
#endif
/* AVCODEC_HQ_HQA_H */
GetByteContext
Definition:
bytestream.h:33
HQProfile::width
int width
Definition:
hq_hqa.h:47
HQContext::block
int16_t block[12][64]
Definition:
hq_hqa.h:42
vlc.h
ff_hq_quants
const int32_t *const ff_hq_quants[16][2][4]
Definition:
hq_hqadata.c:1126
ff_hq_profile
const HQProfile ff_hq_profile[NUM_HQ_PROFILES]
Definition:
hq_hqadata.c:8343
HQProfile::perm_tab
const uint8_t * perm_tab
Definition:
hq_hqa.h:46
HQContext::hq_ac_vlc
VLC hq_ac_vlc
Definition:
hq_hqa.h:40
hq_hqadsp.h
HQ/HQA variant of AAN IDCT It differs from the standard AAN IDCT in precision and in the second stage...
uint8_t
uint8_t
Definition:
audio_convert.c:194
HQDSPContext
Definition:
hq_hqadsp.h:32
DECLARE_ALIGNED
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
Definition:
mem.h:112
height
#define height
HQProfile::num_slices
int num_slices
Definition:
hq_hqa.h:48
HQContext::hqa_cbp_vlc
VLC hqa_cbp_vlc
Definition:
hq_hqa.h:41
bytestream.h
VLC
Definition:
vlc.h:26
ff_hq_init_vlcs
int ff_hq_init_vlcs(HQContext *c)
Definition:
hq_hqadata.c:8368
HQContext
Definition:
hq_hqa.h:35
int32_t
int32_t
Definition:
audio_convert.c:194
NUM_HQ_AC_ENTRIES
#define NUM_HQ_AC_ENTRIES
Definition:
hq_hqa.h:31
NUM_HQ_PROFILES
#define NUM_HQ_PROFILES
Definition:
hq_hqa.h:32
HQContext::gbc
GetByteContext gbc
Definition:
hq_hqa.h:38
avcodec.h
Libavcodec external API header.
AVCodecContext
main external API structure.
Definition:
avcodec.h:1518
ff_hq_ac_syms
const int16_t ff_hq_ac_syms[NUM_HQ_AC_ENTRIES]
Definition:
hq_hqadata.c:1342
HQProfile::tab_w
int tab_w
Definition:
hq_hqa.h:49
c
static double c[64]
Definition:
vsrc_mptestsrc.c:87
HQContext::avctx
AVCodecContext * avctx
Definition:
hq_hqa.h:36
HQContext::hqhqadsp
HQDSPContext hqhqadsp
Definition:
hq_hqa.h:37
HQProfile
Definition:
hq_hqa.h:45
ff_hq_ac_skips
const uint8_t ff_hq_ac_skips[NUM_HQ_AC_ENTRIES]
Definition:
hq_hqadata.c:1292
Generated on Tue May 22 2018 07:06:33 for FFmpeg by
1.8.13