FFmpeg
Loading...
Searching...
No Matches
cbs_vp9.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_CBS_VP9_H
20#define AVCODEC_CBS_VP9_H
21
22#include <stddef.h>
23#include <stdint.h>
24
25#include "cbs.h"
26
27
28// Miscellaneous constants (section 3).
29enum {
31
34
37
40};
41
42// Frame types (section 7.2).
43enum {
46};
47
48// Frame sync bytes (section 7.2.1).
49enum {
53};
54
55// Color space values (section 7.2.2).
56enum {
65};
66
67// Reference frame types (section 7.4.12).
68enum {
73};
74
75// Superframe properties (section B.3).
76enum {
78
80};
81
82
83typedef struct VP9RawFrameHeader {
84 uint8_t frame_marker;
87
90
91 uint8_t frame_type;
92 uint8_t show_frame;
94
95 // Color config.
97 uint8_t color_space;
98 uint8_t color_range;
101
103
104 uint8_t intra_only;
106
109
111
114
116
117 // Frame/render size.
124
125 // Interpolation filter.
128
129 // Loop filter params.
138
139 // Quantization params.
140 uint8_t base_q_idx;
144
145 // Segmentation params.
156
157 // Tile info.
160
163
171
178
183
185 int frame_width; // RefFrameWidth
186 int frame_height; // RefFrameHeight
187 int subsampling_x; // RefSubsamplingX
188 int subsampling_y; // RefSubsamplingY
189 int bit_depth; // RefBitDepth
191
219
220
221#endif /* AVCODEC_CBS_VP9_H */
@ VP9_SUPERFRAME_MARKER
Definition cbs_vp9.h:79
@ VP9_MAX_FRAMES_IN_SUPERFRAME
Definition cbs_vp9.h:77
@ VP9_CS_RGB
Definition cbs_vp9.h:64
@ VP9_CS_RESERVED
Definition cbs_vp9.h:63
@ VP9_CS_BT_2020
Definition cbs_vp9.h:62
@ VP9_CS_UNKNOWN
Definition cbs_vp9.h:57
@ VP9_CS_BT_709
Definition cbs_vp9.h:59
@ VP9_CS_BT_601
Definition cbs_vp9.h:58
@ VP9_CS_SMPTE_240
Definition cbs_vp9.h:61
@ VP9_CS_SMPTE_170
Definition cbs_vp9.h:60
@ VP9_ALTREF_FRAME
Definition cbs_vp9.h:72
@ VP9_INTRA_FRAME
Definition cbs_vp9.h:69
@ VP9_GOLDEN_FRAME
Definition cbs_vp9.h:71
@ VP9_LAST_FRAME
Definition cbs_vp9.h:70
@ VP9_MAX_REF_FRAMES
Definition cbs_vp9.h:36
@ VP9_REFS_PER_FRAME
Definition cbs_vp9.h:30
@ VP9_MAX_SEGMENTS
Definition cbs_vp9.h:38
@ VP9_MAX_TILE_WIDTH_B64
Definition cbs_vp9.h:33
@ VP9_MIN_TILE_WIDTH_B64
Definition cbs_vp9.h:32
@ VP9_NUM_REF_FRAMES
Definition cbs_vp9.h:35
@ VP9_SEG_LVL_MAX
Definition cbs_vp9.h:39
@ VP9_FRAME_SYNC_0
Definition cbs_vp9.h:50
@ VP9_FRAME_SYNC_2
Definition cbs_vp9.h:52
@ VP9_FRAME_SYNC_1
Definition cbs_vp9.h:51
@ VP9_NON_KEY_FRAME
Definition cbs_vp9.h:45
@ VP9_KEY_FRAME
Definition cbs_vp9.h:44
A reference to a data buffer.
Definition buffer.h:82
uint8_t feature_enabled[VP9_MAX_SEGMENTS][VP9_SEG_LVL_MAX]
Definition cbs_vp9.h:213
uint8_t feature_value[VP9_MAX_SEGMENTS][VP9_SEG_LVL_MAX]
Definition cbs_vp9.h:214
int8_t loop_filter_ref_deltas[VP9_MAX_REF_FRAMES]
Definition cbs_vp9.h:209
VP9ReferenceFrameState ref[VP9_NUM_REF_FRAMES]
Definition cbs_vp9.h:217
uint8_t segmentation_pred_prob[3]
Definition cbs_vp9.h:212
int8_t loop_filter_mode_deltas[2]
Definition cbs_vp9.h:210
uint8_t segmentation_tree_probs[7]
Definition cbs_vp9.h:211
uint8_t feature_sign[VP9_MAX_SEGMENTS][VP9_SEG_LVL_MAX]
Definition cbs_vp9.h:215
uint8_t segmentation_update_map
Definition cbs_vp9.h:147
uint8_t tile_rows_log2
Definition cbs_vp9.h:159
uint8_t ref_frame_idx[VP9_REFS_PER_FRAME]
Definition cbs_vp9.h:107
uint8_t frame_to_show_map_idx
Definition cbs_vp9.h:89
uint8_t subsampling_y
Definition cbs_vp9.h:100
uint8_t base_q_idx
Definition cbs_vp9.h:140
uint16_t render_height_minus_1
Definition cbs_vp9.h:123
int8_t loop_filter_ref_deltas[VP9_MAX_REF_FRAMES]
Definition cbs_vp9.h:135
uint16_t header_size_in_bytes
Definition cbs_vp9.h:161
uint8_t loop_filter_delta_update
Definition cbs_vp9.h:133
uint8_t update_mode_delta[2]
Definition cbs_vp9.h:136
uint8_t feature_enabled[VP9_MAX_SEGMENTS][VP9_SEG_LVL_MAX]
Definition cbs_vp9.h:153
uint8_t refresh_frame_flags
Definition cbs_vp9.h:102
uint8_t color_range
Definition cbs_vp9.h:98
uint8_t render_and_frame_size_different
Definition cbs_vp9.h:121
uint16_t render_width_minus_1
Definition cbs_vp9.h:122
uint8_t color_space
Definition cbs_vp9.h:97
int8_t delta_q_uv_ac
Definition cbs_vp9.h:143
int8_t loop_filter_mode_deltas[2]
Definition cbs_vp9.h:137
uint8_t refresh_frame_context
Definition cbs_vp9.h:112
uint8_t segmentation_abs_or_delta_update
Definition cbs_vp9.h:152
uint8_t ref_frame_sign_bias[VP9_MAX_REF_FRAMES]
Definition cbs_vp9.h:108
uint8_t segmentation_update_data
Definition cbs_vp9.h:151
uint8_t tile_cols_log2
Definition cbs_vp9.h:158
uint8_t intra_only
Definition cbs_vp9.h:104
uint8_t raw_interpolation_filter_type
Definition cbs_vp9.h:127
uint8_t frame_context_idx
Definition cbs_vp9.h:115
uint8_t error_resilient_mode
Definition cbs_vp9.h:93
uint8_t show_frame
Definition cbs_vp9.h:92
uint8_t frame_marker
Definition cbs_vp9.h:84
uint8_t loop_filter_sharpness
Definition cbs_vp9.h:131
uint16_t frame_height_minus_1
Definition cbs_vp9.h:120
uint8_t segmentation_pred_prob[3]
Definition cbs_vp9.h:150
uint8_t segmentation_temporal_update
Definition cbs_vp9.h:149
uint8_t found_ref[VP9_REFS_PER_FRAME]
Definition cbs_vp9.h:118
int8_t delta_q_y_dc
Definition cbs_vp9.h:141
uint8_t allow_high_precision_mv
Definition cbs_vp9.h:110
uint8_t segmentation_tree_probs[7]
Definition cbs_vp9.h:148
uint8_t reset_frame_context
Definition cbs_vp9.h:105
uint8_t feature_sign[VP9_MAX_SEGMENTS][VP9_SEG_LVL_MAX]
Definition cbs_vp9.h:155
uint8_t frame_parallel_decoding_mode
Definition cbs_vp9.h:113
uint8_t frame_type
Definition cbs_vp9.h:91
int8_t delta_q_uv_dc
Definition cbs_vp9.h:142
uint8_t segmentation_enabled
Definition cbs_vp9.h:146
uint8_t subsampling_x
Definition cbs_vp9.h:99
uint8_t profile_low_bit
Definition cbs_vp9.h:85
uint8_t show_existing_frame
Definition cbs_vp9.h:88
uint8_t loop_filter_level
Definition cbs_vp9.h:130
uint8_t loop_filter_delta_enabled
Definition cbs_vp9.h:132
uint8_t ten_or_twelve_bit
Definition cbs_vp9.h:96
uint8_t is_filter_switchable
Definition cbs_vp9.h:126
uint8_t feature_value[VP9_MAX_SEGMENTS][VP9_SEG_LVL_MAX]
Definition cbs_vp9.h:154
uint8_t update_ref_delta[VP9_MAX_REF_FRAMES]
Definition cbs_vp9.h:134
uint16_t frame_width_minus_1
Definition cbs_vp9.h:119
uint8_t profile_high_bit
Definition cbs_vp9.h:86
uint8_t * data
Definition cbs_vp9.h:167
size_t data_size
Definition cbs_vp9.h:169
VP9RawFrameHeader header
Definition cbs_vp9.h:165
AVBufferRef * data_ref
Definition cbs_vp9.h:168
uint8_t superframe_marker
Definition cbs_vp9.h:173
uint8_t bytes_per_framesize_minus_1
Definition cbs_vp9.h:174
uint32_t frame_sizes[VP9_MAX_FRAMES_IN_SUPERFRAME]
Definition cbs_vp9.h:176
uint8_t frames_in_superframe_minus_1
Definition cbs_vp9.h:175
VP9RawFrame frames[VP9_MAX_FRAMES_IN_SUPERFRAME]
Definition cbs_vp9.h:180
VP9RawSuperframeIndex index
Definition cbs_vp9.h:181