diff --git a/vod/media_set.c b/vod/media_set.c index fee35c11..e17a819e 100644 --- a/vod/media_set.c +++ b/vod/media_set.c @@ -20,6 +20,6 @@ media_set_get_segment_time_millis(media_set_t* media_set) } } - return cur_track->original_clip_time + + return cur_track->original_clip_time - media_set->time_offset + rescale_time(cur_track->first_frame_time_offset, cur_track->media_info.timescale, 1000); } diff --git a/vod/media_set.h b/vod/media_set.h index 84133005..9e24662b 100644 --- a/vod/media_set.h +++ b/vod/media_set.h @@ -129,6 +129,7 @@ typedef struct { bool_t use_discontinuity; bool_t presentation_end; bool_t cache_mapping; + int64_t time_offset; uint32_t clip_count; // number of clips relevant to serve the current request uint32_t sequence_count; diff --git a/vod/media_set_parser.c b/vod/media_set_parser.c index c46542fe..14ce092d 100644 --- a/vod/media_set_parser.c +++ b/vod/media_set_parser.c @@ -1419,6 +1419,7 @@ media_set_parse_live_params( if (params[MEDIA_SET_PARAM_TIME_OFFSET] != NULL) { request_context->time_offset = params[MEDIA_SET_PARAM_TIME_OFFSET]->v.num.num; + media_set->time_offset = params[MEDIA_SET_PARAM_TIME_OFFSET]->v.num.num * 1000; } // clip times