mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
export pts from stream if available
store pts in stream if available (otherwise use frame_rate) Originally committed as revision 923 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
02ac31361b
commit
15415af418
@ -5,8 +5,8 @@
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT 0x000406
|
||||
#define LIBAVCODEC_VERSION "0.4.6"
|
||||
#define LIBAVCODEC_BUILD 4621
|
||||
#define LIBAVCODEC_BUILD_STR "4621"
|
||||
#define LIBAVCODEC_BUILD 4622
|
||||
#define LIBAVCODEC_BUILD_STR "4622"
|
||||
|
||||
enum CodecID {
|
||||
CODEC_ID_NONE,
|
||||
@ -318,6 +318,11 @@ typedef struct AVCodecContext {
|
||||
#define FF_DCT_MMX 3
|
||||
#define FF_DCT_MLIB 4
|
||||
|
||||
long long int pts; /* timestamp in micro seconds
|
||||
for decoding: the timestamp from the stream or 0
|
||||
for encoding: the timestamp which will be stored in the stream
|
||||
if 0 then the frame_rate will be used */
|
||||
|
||||
//FIXME this should be reordered after kabis API is finished ...
|
||||
//TODO kill kabi
|
||||
/*
|
||||
@ -330,7 +335,7 @@ typedef struct AVCodecContext {
|
||||
*/
|
||||
unsigned long long int
|
||||
ull_res0,ull_res1,ull_res2,ull_res3,ull_res4,ull_res5,
|
||||
ull_res6,ull_res7,ull_res8,ull_res9,ull_res10,ull_res11,ull_res12;
|
||||
ull_res6,ull_res7,ull_res8,ull_res9,ull_res10,ull_res11;
|
||||
float
|
||||
flt_res0,flt_res1,flt_res2,flt_res3,flt_res4,flt_res5,
|
||||
flt_res6,flt_res7,flt_res8,flt_res9,flt_res10,flt_res11,flt_res12;
|
||||
|
@ -1314,8 +1314,11 @@ void ff_set_mpeg4_time(MpegEncContext * s, int picture_number){
|
||||
|
||||
s->time_increment_bits = av_log2(s->time_increment_resolution - 1) + 1;
|
||||
}
|
||||
|
||||
s->time= picture_number*(INT64)FRAME_RATE_BASE*s->time_increment_resolution/s->frame_rate;
|
||||
|
||||
if(s->avctx->pts)
|
||||
s->time= (s->avctx->pts*s->time_increment_resolution + 500*1000)/(1000*1000);
|
||||
else
|
||||
s->time= picture_number*(INT64)FRAME_RATE_BASE*s->time_increment_resolution/s->frame_rate;
|
||||
time_div= s->time/s->time_increment_resolution;
|
||||
time_mod= s->time%s->time_increment_resolution;
|
||||
|
||||
@ -3993,7 +3996,9 @@ int mpeg4_decode_picture_header(MpegEncContext * s)
|
||||
return FRAME_SKIPED;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
s->avctx->pts= s->time*1000LL*1000LL / s->time_increment_resolution;
|
||||
|
||||
if(check_marker(&s->gb, "before vop_coded")==0 && s->picture_number==0){
|
||||
printf("hmm, seems the headers arnt complete, trying to guess time_increment_bits\n");
|
||||
for(s->time_increment_bits++ ;s->time_increment_bits<16; s->time_increment_bits++){
|
||||
|
Loading…
Reference in New Issue
Block a user