26     u(8, reserved_zero_8bits, 0, 0);
 
   36         fixed(1, alignment_bit_equal_to_zero, 0);
 
   47     current->filler_size = 0;
 
   49         fixed(8, ff_byte, 0xff);
 
   50         ++current->filler_size;
 
   55         for (
i = 0; 
i < current->filler_size; 
i++)
 
   56             fixed(8, ff_byte, 0xff);
 
   72     u(5, reserved_zero_5bits, 0, 0);
 
   77     u(4, chroma_format_idc, 0, 4);
 
   78     if (current->chroma_format_idc == 1) {
 
   80                "chroma_format_idc 1 for 4:2:0 is not allowed in APV.\n");
 
   84     u(4, bit_depth_minus8, 2, 8);
 
   86     ub(8, capture_time_distance);
 
   88     u(8, reserved_zero_8bits, 0, 0);
 
  101         for (
int y = 0; y < 8; y++) {
 
  102             for (
int x = 0; x < 8 ; x++) {
 
  103                 us(8, q_matrix[
c][x][y], 1, 255, 3, 
c, x, y);
 
  116     int frame_width_in_mbs   = (fh->frame_info.frame_width  + 15) / 16;
 
  117     int frame_height_in_mbs  = (fh->frame_info.frame_height + 15) / 16;
 
  129     ub(1, tile_size_present_in_fh_flag);
 
  133     if (current->tile_size_present_in_fh_flag) {
 
  134         for (
int t = 0; t < priv->
num_tiles; t++) {
 
  150     u(8, reserved_zero_8bits, 0, 0);
 
  152     ub(1, color_description_present_flag);
 
  153     if (current->color_description_present_flag) {
 
  156         ub(8, matrix_coefficients);
 
  157         ub(1, full_range_flag);
 
  161         infer(matrix_coefficients,      2);
 
  162         infer(full_range_flag,          0);
 
  165     priv->
bit_depth = current->frame_info.bit_depth_minus8 + 8;
 
  169     if (current->use_q_matrix) {
 
  171                                         ¤t->quantization_matrix));
 
  174             for (
int y = 0; y < 8; y++) {
 
  175                 for (
int x = 0; x < 8 ; x++) {
 
  184     u(8, reserved_zero_8bits_2, 0, 0);
 
  193                              int tile_idx, uint32_t tile_size)
 
  196     uint16_t expected_tile_header_size;
 
  197     uint32_t tile_size_remaining;
 
  201     expected_tile_header_size = 4 + priv->
num_comp * (4 + 1) + 1;
 
  203     u(16, tile_header_size,
 
  204       expected_tile_header_size, expected_tile_header_size);
 
  206     u(16, tile_index, tile_idx, tile_idx);
 
  208     tile_size_remaining = tile_size - current->tile_header_size;
 
  210         us(32, tile_data_size[
c], 1, tile_size_remaining, 1, 
c);
 
  211         tile_size_remaining -= current->tile_data_size[
c];
 
  216         us(8, tile_qp[
c], 0, max_qp, 1, 
c);
 
  219     u(8, reserved_zero_8bits, 0, 0);
 
  226                       int tile_idx, uint32_t tile_size)
 
  232                             tile_idx, tile_size));
 
  235         uint32_t comp_size = current->tile_header.tile_data_size[
c];
 
  265     for (
int t = 0; t < priv->
num_tiles; t++) {
 
  269                          t, current->tile_size[t]));
 
  282     HEADER(
"Access Unit Information");
 
  286     for (
int i = 0; 
i < current->num_frames; 
i++) {
 
  287         ubs(8, pbu_type[
i], 1, 
i);
 
  288         ubs(8, group_id[
i], 1, 
i);
 
  290         us(8, reserved_zero_8bits[
i], 0, 0, 1, 
i);
 
  295     u(8, reserved_zero_8bits_2, 0, 0);
 
  306     size_t read_size = payload_size - 1;
 
  308     HEADER(
"ITU-T T.35 Metadata");
 
  310     ub(8, itu_t_t35_country_code);
 
  312     if (current->itu_t_t35_country_code == 0xff) {
 
  313         ub(8, itu_t_t35_country_code_extension);
 
  318     current->data_size = read_size;
 
  320     if (!current->data_ref)
 
  322     current->data = current->data_ref->data;
 
  324     if (current->data_size != read_size) {
 
  326                "payload %zu but expecting %zu\n",
 
  327                current->data_size, read_size);
 
  332     for (
size_t i = 0; 
i < current->data_size; 
i++) {
 
  333         xu(8, itu_t_t35_payload[
i],
 
  334            current->data[
i], 0x00, 0xff, 1, 
i);
 
  348     for (
i = 0; 
i < 3; 
i++) {
 
  349         ubs(16, primary_chromaticity_x[
i], 1, 
i);
 
  350         ubs(16, primary_chromaticity_y[
i], 1, 
i);
 
  353     ub(16, white_point_chromaticity_x);
 
  354     ub(16, white_point_chromaticity_y);
 
  356     ub(32, max_mastering_luminance);
 
  357     ub(32, min_mastering_luminance);
 
  383     HEADER(
"Filler Metadata");
 
  385     for (
size_t i = 0; 
i < payload_size; 
i++)
 
  386         fixed(8, ff_byte, 0xff);
 
  398     HEADER(
"User-Defined Metadata");
 
  400     for (
int i = 0; 
i < 16; 
i++)
 
  401         ubs(8, uuid[
i], 1, 
i);
 
  404     current->data_size = payload_size - 16;
 
  406     if (!current->data_ref)
 
  408     current->data = current->data_ref->data;
 
  410     if (current->data_size != payload_size - 16) {
 
  412                "payload %zu but expecting %zu\n",
 
  413                current->data_size, payload_size - 16);
 
  418     for (
size_t i = 0; 
i < current->data_size; 
i++) {
 
  419         xu(8, user_defined_data_payload[
i],
 
  420            current->data[
i], 0x00, 0xff, 1, 
i);
 
  433     HEADER(
"Undefined Metadata");
 
  436     current->data_size = payload_size;
 
  438     if (!current->data_ref)
 
  440     current->data = current->data_ref->data;
 
  442     if (current->data_size != payload_size) {
 
  444                "payload %zu but expecting %zu\n",
 
  445                current->data_size, payload_size - 16);
 
  450     for (
size_t i = 0; 
i < current->data_size; 
i++) {
 
  451         xu(8, undefined_metadata_payload_byte[
i],
 
  452            current->data[
i], 0x00, 0xff, 1, 
i);
 
  464     switch (current->payload_type) {
 
  468                                        current->payload_size));
 
  479                                     current->payload_size));
 
  483                                           ¤t->user_defined,
 
  484                                           current->payload_size));
 
  489                                        current->payload_size));
 
  501     uint32_t metadata_bytes_left;
 
  504     uint32_t metadata_start_position;
 
  513     ub(32, metadata_size);
 
  515     metadata_bytes_left = current->metadata_size;
 
  523             fixed(8, ff_byte, 0xff);
 
  525             --metadata_bytes_left;
 
  527         xu(8, metadata_payload_type, 
tmp, 0, 254, 0);
 
  529         --metadata_bytes_left;
 
  533             fixed(8, ff_byte, 0xff);
 
  535             --metadata_bytes_left;
 
  537         xu(8, metadata_payload_size, 
tmp, 0, 254, 0);
 
  539         --metadata_bytes_left;
 
  543                    "payload_size larger than remaining metadata size " 
  548         current->metadata_count = 
p + 1;
 
  553         if (metadata_bytes_left == 0)
 
  560     metadata_start_state = *rw;
 
  563     trace = 
ctx->trace_enable;
 
  564     ctx->trace_enable = 0;
 
  566     for (
int pass = 1; pass <= 2; pass++) {
 
  567         *rw = metadata_start_state;
 
  569         ub(32, metadata_size);
 
  571         for (
int p = 0; 
p < current->metadata_count; 
p++) {
 
  573             uint32_t payload_start_position;
 
  578                 fixed(8, ff_byte, 0xff);
 
  581             xu(8, metadata_payload_type, 
tmp, 0, 254, 0);
 
  585                 fixed(8, ff_byte, 0xff);
 
  588             xu(8, metadata_payload_size, 
tmp, 0, 254, 0);
 
  593             ctx->trace_enable = trace;
 
  599                                     payload_start_position) / 8;
 
  605                                       metadata_start_position) / 8 - 4;
 
  606             ctx->trace_enable = trace;