Mercurial > libavcodec.hg
comparison h263.c @ 1763:951403db901f libavcodec
first coded vs. first displayed pts (segfault & pts fix if b frames are used)
author | michael |
---|---|
date | Tue, 27 Jan 2004 13:55:34 +0000 |
parents | ebe7fa49ddcc |
children | bb5b19529111 |
comparison
equal
deleted
inserted
replaced
1762:1532ff770277 | 1763:951403db901f |
---|---|
2171 } | 2171 } |
2172 } | 2172 } |
2173 | 2173 |
2174 static void mpeg4_encode_gop_header(MpegEncContext * s){ | 2174 static void mpeg4_encode_gop_header(MpegEncContext * s){ |
2175 int hours, minutes, seconds; | 2175 int hours, minutes, seconds; |
2176 int64_t time; | |
2176 | 2177 |
2177 put_bits(&s->pb, 16, 0); | 2178 put_bits(&s->pb, 16, 0); |
2178 put_bits(&s->pb, 16, GOP_STARTCODE); | 2179 put_bits(&s->pb, 16, GOP_STARTCODE); |
2179 | 2180 |
2180 seconds= s->time/s->time_increment_resolution; | 2181 if(s->current_picture_ptr->pts){ |
2182 time= FFMIN(s->reordered_input_picture[1]->pts, s->current_picture_ptr->pts); | |
2183 time= (time*s->time_increment_resolution + 500*1000)/(1000*1000); | |
2184 }else | |
2185 time= av_rescale(s->current_picture_ptr->coded_picture_number*(int64_t)s->avctx->frame_rate_base, s->time_increment_resolution, s->avctx->frame_rate); | |
2186 | |
2187 seconds= time/s->time_increment_resolution; | |
2181 minutes= seconds/60; seconds %= 60; | 2188 minutes= seconds/60; seconds %= 60; |
2182 hours= minutes/60; minutes %= 60; | 2189 hours= minutes/60; minutes %= 60; |
2183 hours%=24; | 2190 hours%=24; |
2184 | 2191 |
2185 put_bits(&s->pb, 5, hours); | 2192 put_bits(&s->pb, 5, hours); |
2188 put_bits(&s->pb, 6, seconds); | 2195 put_bits(&s->pb, 6, seconds); |
2189 | 2196 |
2190 put_bits(&s->pb, 1, !!(s->flags&CODEC_FLAG_CLOSED_GOP)); | 2197 put_bits(&s->pb, 1, !!(s->flags&CODEC_FLAG_CLOSED_GOP)); |
2191 put_bits(&s->pb, 1, 0); //broken link == NO | 2198 put_bits(&s->pb, 1, 0); //broken link == NO |
2192 | 2199 |
2193 s->last_time_base= s->time_base; | 2200 s->last_time_base= time / s->time_increment_resolution; |
2194 | 2201 |
2195 ff_mpeg4_stuffing(&s->pb); | 2202 ff_mpeg4_stuffing(&s->pb); |
2196 } | 2203 } |
2197 | 2204 |
2198 static void mpeg4_encode_visual_object_header(MpegEncContext * s){ | 2205 static void mpeg4_encode_visual_object_header(MpegEncContext * s){ |