[nut]: r591 - src/trunk/nututils/nutparse.c

Author: cladisch Date: Thu Feb 7 09:03:36 2008 New Revision: 591 Log: add FLAG_MATCH_TIME support Modified: src/trunk/nututils/nutparse.c Modified: src/trunk/nututils/nutparse.c ============================================================================== --- src/trunk/nututils/nutparse.c (original) +++ src/trunk/nututils/nutparse.c Thu Feb 7 09:03:36 2008 @@ -27,6 +27,7 @@ #define FLAG_SIZE_MSB 0x0020 #define FLAG_CHECKSUM 0x0040 #define FLAG_RESERVED 0x0080 +#define FLAG_MATCH_TIME 0x0800 #define FLAG_CODED 0x1000 #define FLAG_INVALID 0x2000 @@ -182,6 +183,11 @@ static int64_t read_svar(void) return convert_to_signed(read_var()); } +static int64_t read_svar_restricted(void) +{ + return convert_to_signed(read_var_restricted()); +} + static uint64_t convert_ts(uint64_t t, int tb_from, int tb_to) { uint64_t ln = time_bases[tb_from].num * time_bases[tb_to].denom; @@ -214,6 +220,7 @@ static void parse_main_header(void) int64_t tmp_pts; uint64_t tmp_mul; uint64_t tmp_stream; + int64_t tmp_match; uint64_t tmp_size; uint64_t tmp_res; uint64_t count; @@ -264,6 +271,7 @@ static void parse_main_header(void) tmp_pts = 0; tmp_mul = 1; tmp_stream = 0; + tmp_match = 1 - (INT64_C(1) << 62); for (i = 0; i < 256; ) { tmp_flag = read_var(); printf(" tmp_flag: %"PRIu64"\n", tmp_flag); @@ -313,7 +321,11 @@ static void parse_main_header(void) if (!count) error("count is zero"); } - for (j64 = 6; j64 < tmp_fields; ++j64) + if (tmp_fields > 6) { + tmp_match = read_svar(); + printf(" tmp_match: %"PRId64"\n", tmp_match); + } + for (j64 = 7; j64 < tmp_fields; ++j64) printf(" tmp_reserved[%"PRIu64"]: %"PRIu64"\n", j64, read_var()); for (j = 0; j < count && i < 256; ++j, ++i) { if (i == 'N') { @@ -337,6 +349,8 @@ static void parse_main_header(void) printf(" checksum"); if (tmp_flag & FLAG_RESERVED) printf(" reserved"); + if (tmp_flag & FLAG_MATCH_TIME) + printf(" match_time"); if (tmp_flag & FLAG_CODED) printf(" flag_coded"); if (tmp_flag & FLAG_INVALID) @@ -706,6 +720,7 @@ static void parse_frame(int frame_type) uint64_t coded_pts = 0; int64_t pts_delta; uint64_t data_size_msb; + int64_t match_time_delta; uint64_t reserved_count; uint64_t data_size; uint64_t old_last_pts; @@ -740,6 +755,10 @@ static void parse_frame(int frame_type) data_size_msb = read_var_restricted(); printf(" data_size_msb: %"PRIu64"\n", data_size_msb); } + if (frame_flags & FLAG_MATCH_TIME) { + match_time_delta = read_svar_restricted(); + printf(" match_time_delta: %"PRId64"\n", match_time_delta); + } if (frame_flags & FLAG_RESERVED) { reserved_count = read_var_restricted(); printf(" reserved_count: %"PRIu64"\n", reserved_count);
participants (1)
-
cladisch