aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@googlemail.com>2018-12-01 08:52:54 +0100
committerMark Thompson <sw@jkqxz.net>2018-12-02 19:49:08 +0000
commit9f588ba5ca283c6b0b0b744085275e6253ba5cc6 (patch)
tree1bbcfe06a86a0b39f7f675d93dacbb5accbc59e9
parentf7faaa8c187fd110629cdf327dbf4f8322eea085 (diff)
downloadffmpeg-9f588ba5ca283c6b0b0b744085275e6253ba5cc6.tar.gz
cbs_h265: Fix Time Code SEI syntax
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
-rw-r--r--libavcodec/cbs_h265_syntax_template.c56
1 files changed, 30 insertions, 26 deletions
diff --git a/libavcodec/cbs_h265_syntax_template.c b/libavcodec/cbs_h265_syntax_template.c
index 0a430df23a..f1e1bb0e7e 100644
--- a/libavcodec/cbs_h265_syntax_template.c
+++ b/libavcodec/cbs_h265_syntax_template.c
@@ -1955,36 +1955,40 @@ static int FUNC(sei_time_code)(CodedBitstreamContext *ctx, RWContext *rw,
u(2, num_clock_ts, 1, 3);
for (i = 0; i < current->num_clock_ts; i++) {
- flags(units_field_based_flag[i], 1, i);
- us(5, counting_type[i], 0, 6, 1, i);
- flags(full_timestamp_flag[i], 1, i);
- flags(discontinuity_flag[i], 1, i);
- flags(cnt_dropped_flag[i], 1, i);
-
- us(9, n_frames[i], 0, MAX_UINT_BITS(9), 1, i);
-
- if (current->full_timestamp_flag[i]) {
- us(6, seconds_value[i], 0, 59, 1, i);
- us(6, minutes_value[i], 0, 59, 1, i);
- us(5, hours_value[i], 0, 23, 1, i);
- } else {
- flags(seconds_flag[i], 1, i);
- if (current->seconds_flag[i]) {
+ flags(clock_timestamp_flag[i], 1, i);
+
+ if (current->clock_timestamp_flag[i]) {
+ flags(units_field_based_flag[i], 1, i);
+ us(5, counting_type[i], 0, 6, 1, i);
+ flags(full_timestamp_flag[i], 1, i);
+ flags(discontinuity_flag[i], 1, i);
+ flags(cnt_dropped_flag[i], 1, i);
+
+ us(9, n_frames[i], 0, MAX_UINT_BITS(9), 1, i);
+
+ if (current->full_timestamp_flag[i]) {
us(6, seconds_value[i], 0, 59, 1, i);
- flags(minutes_flag[i], 1, i);
- if (current->minutes_flag[i]) {
- us(6, minutes_value[i], 0, 59, 1, i);
- flags(hours_flag[i], 1, i);
- if (current->hours_flag[i])
- us(5, hours_value[i], 0, 23, 1, i);
+ us(6, minutes_value[i], 0, 59, 1, i);
+ us(5, hours_value[i], 0, 23, 1, i);
+ } else {
+ flags(seconds_flag[i], 1, i);
+ if (current->seconds_flag[i]) {
+ us(6, seconds_value[i], 0, 59, 1, i);
+ flags(minutes_flag[i], 1, i);
+ if (current->minutes_flag[i]) {
+ us(6, minutes_value[i], 0, 59, 1, i);
+ flags(hours_flag[i], 1, i);
+ if (current->hours_flag[i])
+ us(5, hours_value[i], 0, 23, 1, i);
+ }
}
}
- }
- us(5, time_offset_length[i], 0, 31, 1, i);
- if (current->time_offset_length[i] > 0)
- us(current->time_offset_length[i], time_offset_value[i],
- 0, MAX_UINT_BITS(current->time_offset_length[i]), 1, i);
+ us(5, time_offset_length[i], 0, 31, 1, i);
+ if (current->time_offset_length[i] > 0)
+ us(current->time_offset_length[i], time_offset_value[i],
+ 0, MAX_UINT_BITS(current->time_offset_length[i]), 1, i);
+ }
}
return 0;