summaryrefslogtreecommitdiff
path: root/src/libvdpau/nal_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libvdpau/nal_parser.h')
-rw-r--r--src/libvdpau/nal_parser.h39
1 files changed, 3 insertions, 36 deletions
diff --git a/src/libvdpau/nal_parser.h b/src/libvdpau/nal_parser.h
index 7a3c4726a..fed12ff0d 100644
--- a/src/libvdpau/nal_parser.h
+++ b/src/libvdpau/nal_parser.h
@@ -22,26 +22,6 @@ enum nal_unit_types {
NAL_SPS_EXT
};
-/* default scaling_lists according to Table 7-2 */
-uint8_t default_4x4_intra[16] =
- { 6, 13, 13, 20, 20, 20, 28, 28, 28, 28, 32, 32, 32, 37, 37, 42 };
-
-uint8_t default_4x4_inter[16] =
- { 10, 14, 14, 20, 20, 20, 24, 24, 24, 24, 27, 27, 27, 30, 30, 34};
-
-uint8_t default_8x8_intra[64] =
- { 6, 10, 10, 13, 11, 13, 16, 16, 16, 16, 18, 18, 18, 18, 18, 32,
- 23, 23, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27,
- 27, 27, 27, 27, 29, 29, 29, 29, 29, 29, 29, 31, 31, 31, 31, 31,
- 31, 33, 33, 33, 33, 33, 36, 36, 36, 36, 38, 38, 38, 40, 40, 42 };
-
-uint8_t default_8x8_inter[64] =
- { 9, 13, 13, 15, 13, 15, 17, 17, 17, 17, 19, 19, 19, 19, 19, 21,
- 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, 24,
- 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27,
- 27, 28, 28, 28, 28, 28, 30, 30, 30, 30, 32, 32, 32, 33, 33, 35 };
-
-
struct nal_unit {
uint8_t nal_ref_idc; // 0x03
uint8_t nal_unit_type; // 0x1f
@@ -64,12 +44,11 @@ struct seq_parameter_set_rbsp {
uint8_t seq_scaling_matrix_present_flag;
/* if(seq_scaling_matrix_present_flag) */
- {
uint8_t seq_scaling_list_present_flag[8];
uint8_t scaling_lists_4x4[6][16];
uint8_t scaling_lists_8x8[2][64];
- }
+ /* endif */
uint32_t log2_max_frame_num_minus4;
uint32_t pic_order_cnt_type;
@@ -110,32 +89,22 @@ struct pic_parameter_set_rbsp {
uint32_t num_slice_groups_minus1;
/* num_slice_groups_minus1 > 0 */
- {
- uint32_t slice_group_map_type;
+ uint32_t slice_group_map_type;
/* slice_group_map_type == 1 */
- {
uint32_t run_length_minus1[64];
- }
/* slice_group_map_type == 2 */
- {
uint32_t top_left[64];
uint32_t bottom_right[64];
- }
/* slice_group_map_type == 3,4,5 */
- {
uint8_t slice_group_change_direction_flag;
uint32_t slice_group_change_rate_minus1;
- }
/* slice_group_map_type == 6 */
- {
uint32_t pic_size_in_map_units_minus1;
uint8_t slice_group_id[64];
- }
- }
uint32_t num_ref_idx_l0_active_minus1;
uint32_t num_ref_idx_l1_active_minus1;
@@ -153,14 +122,12 @@ struct pic_parameter_set_rbsp {
uint8_t pic_scaling_matrix_present_flag;
/* if(pic_scaling_matrix_present_flag) */
- {
uint8_t pic_scaling_list_present_flag[8];
uint8_t scaling_lists_4x4[6][16];
uint8_t scaling_lists_8x8[2][64];
int32_t second_chroma_qp_index_offset;
- }
};
struct slice_header {
@@ -211,6 +178,6 @@ int seek_for_nal(uint8_t *buf, int buf_len);
struct nal_parser* init_parser();
void free_parser(struct nal_parser *parser);
int parse_frame(struct nal_parser *parser, uint8_t *inbuf, int inbuf_len,
- uint8_t **ret_buf, int *ret_len);
+ uint8_t **ret_buf, uint32_t *ret_len, uint32_t *ret_slice_cnt);
#endif