nutdec: Implement duration parsing for indexed nuts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -601,6 +601,7 @@ static int find_and_decode_index(NUTContext *nut) | ||||
|     int i, j, syncpoint_count; | ||||
|     int64_t filesize = avio_size(bc); | ||||
|     int64_t *syncpoints; | ||||
|     uint64_t max_pts; | ||||
|     int8_t *has_keyframe; | ||||
|     int ret = -1; | ||||
|  | ||||
| @@ -620,7 +621,12 @@ static int find_and_decode_index(NUTContext *nut) | ||||
|     end  = get_packetheader(nut, bc, 1, INDEX_STARTCODE); | ||||
|     end += avio_tell(bc); | ||||
|  | ||||
|     ffio_read_varlen(bc); // max_pts | ||||
|     max_pts = ffio_read_varlen(bc); | ||||
|     s->duration = av_rescale_q(max_pts / nut->time_base_count, | ||||
|                                nut->time_base[max_pts % nut->time_base_count], | ||||
|                                AV_TIME_BASE_Q); | ||||
|     s->duration_estimation_method = AVFMT_DURATION_FROM_PTS; | ||||
|  | ||||
|     GET_V(syncpoint_count, tmp < INT_MAX / 8 && tmp > 0); | ||||
|     syncpoints   = av_malloc(sizeof(int64_t) *  syncpoint_count); | ||||
|     has_keyframe = av_malloc(sizeof(int8_t)  * (syncpoint_count + 1)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Michael Niedermayer
					Michael Niedermayer