FFmpeg
libavcodec
apv.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef AVCODEC_APV_H
20
#define AVCODEC_APV_H
21
22
// Signature value in APV bitstreams (section 5.3.1).
23
#define APV_SIGNATURE MKBETAG('a', 'P', 'v', '1')
24
25
// PBU types (section 5.3.3).
26
enum
{
27
APV_PBU_PRIMARY_FRAME
= 1,
28
APV_PBU_NON_PRIMARY_FRAME
= 2,
29
APV_PBU_PREVIEW_FRAME
= 25,
30
APV_PBU_DEPTH_FRAME
= 26,
31
APV_PBU_ALPHA_FRAME
= 27,
32
APV_PBU_ACCESS_UNIT_INFORMATION
= 65,
33
APV_PBU_METADATA
= 66,
34
APV_PBU_FILLER
= 67,
35
};
36
37
// Format parameters (section 4.2).
38
enum
{
39
APV_MAX_NUM_COMP
= 4,
40
APV_MB_WIDTH
= 16,
41
APV_MB_HEIGHT
= 16,
42
APV_TR_SIZE
= 8,
43
};
44
45
// Chroma formats (section 4.2).
46
enum
{
47
APV_CHROMA_FORMAT_400
= 0,
48
APV_CHROMA_FORMAT_422
= 2,
49
APV_CHROMA_FORMAT_444
= 3,
50
APV_CHROMA_FORMAT_4444
= 4,
51
};
52
53
// Coefficient limits (section 5.3.15).
54
enum
{
55
APV_BLK_COEFFS
= (
APV_TR_SIZE
*
APV_TR_SIZE
),
56
APV_MIN_TRANS_COEFF
= -32768,
57
APV_MAX_TRANS_COEFF
= 32767,
58
};
59
60
// Profiles (section 10.1.3).
61
enum
{
62
APV_PROFILE_422_10
= 33,
63
APV_PROFILE_422_12
= 44,
64
APV_PROFILE_444_10
= 55,
65
APV_PROFILE_444_12
= 66,
66
APV_PROFILE_4444_10
= 77,
67
APV_PROFILE_4444_12
= 88,
68
APV_PROFILE_400_10
= 99,
69
};
70
71
// General level limits for tiles (section 10.1.4.1).
72
enum
{
73
APV_MIN_TILE_WIDTH_IN_MBS
= 16,
74
APV_MIN_TILE_HEIGHT_IN_MBS
= 8,
75
APV_MAX_TILE_COLS
= 20,
76
APV_MAX_TILE_ROWS
= 20,
77
APV_MAX_TILE_COUNT
=
APV_MAX_TILE_COLS
*
APV_MAX_TILE_ROWS
,
78
};
79
80
// Metadata types (section 10.3.1).
81
enum
{
82
APV_METADATA_ITU_T_T35
= 4,
83
APV_METADATA_MDCV
= 5,
84
APV_METADATA_CLL
= 6,
85
APV_METADATA_FILLER
= 10,
86
APV_METADATA_USER_DEFINED
= 170,
87
};
88
89
#endif
/* AVCODEC_APV_H */
APV_BLK_COEFFS
@ APV_BLK_COEFFS
Definition:
apv.h:55
APV_PBU_PREVIEW_FRAME
@ APV_PBU_PREVIEW_FRAME
Definition:
apv.h:29
APV_CHROMA_FORMAT_444
@ APV_CHROMA_FORMAT_444
Definition:
apv.h:49
APV_PROFILE_444_10
@ APV_PROFILE_444_10
Definition:
apv.h:64
APV_PROFILE_444_12
@ APV_PROFILE_444_12
Definition:
apv.h:65
APV_PBU_METADATA
@ APV_PBU_METADATA
Definition:
apv.h:33
APV_PROFILE_422_10
@ APV_PROFILE_422_10
Definition:
apv.h:62
APV_CHROMA_FORMAT_400
@ APV_CHROMA_FORMAT_400
Definition:
apv.h:47
APV_PROFILE_4444_10
@ APV_PROFILE_4444_10
Definition:
apv.h:66
APV_PBU_NON_PRIMARY_FRAME
@ APV_PBU_NON_PRIMARY_FRAME
Definition:
apv.h:28
APV_MB_HEIGHT
@ APV_MB_HEIGHT
Definition:
apv.h:41
APV_MB_WIDTH
@ APV_MB_WIDTH
Definition:
apv.h:40
APV_MIN_TILE_WIDTH_IN_MBS
@ APV_MIN_TILE_WIDTH_IN_MBS
Definition:
apv.h:73
APV_PBU_ACCESS_UNIT_INFORMATION
@ APV_PBU_ACCESS_UNIT_INFORMATION
Definition:
apv.h:32
APV_MAX_TILE_COLS
@ APV_MAX_TILE_COLS
Definition:
apv.h:75
APV_MAX_TRANS_COEFF
@ APV_MAX_TRANS_COEFF
Definition:
apv.h:57
APV_METADATA_CLL
@ APV_METADATA_CLL
Definition:
apv.h:84
APV_PROFILE_400_10
@ APV_PROFILE_400_10
Definition:
apv.h:68
APV_METADATA_USER_DEFINED
@ APV_METADATA_USER_DEFINED
Definition:
apv.h:86
APV_MAX_TILE_COUNT
@ APV_MAX_TILE_COUNT
Definition:
apv.h:77
APV_PROFILE_4444_12
@ APV_PROFILE_4444_12
Definition:
apv.h:67
APV_CHROMA_FORMAT_422
@ APV_CHROMA_FORMAT_422
Definition:
apv.h:48
APV_MIN_TRANS_COEFF
@ APV_MIN_TRANS_COEFF
Definition:
apv.h:56
APV_PBU_PRIMARY_FRAME
@ APV_PBU_PRIMARY_FRAME
Definition:
apv.h:27
APV_MAX_NUM_COMP
@ APV_MAX_NUM_COMP
Definition:
apv.h:39
APV_MIN_TILE_HEIGHT_IN_MBS
@ APV_MIN_TILE_HEIGHT_IN_MBS
Definition:
apv.h:74
APV_METADATA_MDCV
@ APV_METADATA_MDCV
Definition:
apv.h:83
APV_CHROMA_FORMAT_4444
@ APV_CHROMA_FORMAT_4444
Definition:
apv.h:50
APV_PBU_FILLER
@ APV_PBU_FILLER
Definition:
apv.h:34
APV_MAX_TILE_ROWS
@ APV_MAX_TILE_ROWS
Definition:
apv.h:76
APV_TR_SIZE
@ APV_TR_SIZE
Definition:
apv.h:42
APV_METADATA_FILLER
@ APV_METADATA_FILLER
Definition:
apv.h:85
APV_PROFILE_422_12
@ APV_PROFILE_422_12
Definition:
apv.h:63
APV_PBU_DEPTH_FRAME
@ APV_PBU_DEPTH_FRAME
Definition:
apv.h:30
APV_PBU_ALPHA_FRAME
@ APV_PBU_ALPHA_FRAME
Definition:
apv.h:31
APV_METADATA_ITU_T_T35
@ APV_METADATA_ITU_T_T35
Definition:
apv.h:82
Generated on Sun Apr 27 2025 19:21:25 for FFmpeg by
1.8.17