From 8831db5ca231f3c63177c7b916a7753534bbb234 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 21 Oct 2003 10:55:24 +0000 Subject: [PATCH] start time hack by (devik ) Originally committed as revision 2408 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffmpeg.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index a1b73ae3b7..7ac8228a74 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -133,6 +133,7 @@ static int audio_channels = 1; static int audio_codec_id = CODEC_ID_NONE; static int64_t recording_time = 0; +static int64_t start_time = 0; static int file_overwrite = 0; static char *str_title = NULL; static char *str_author = NULL; @@ -1255,11 +1256,12 @@ static int av_encode(AVFormatContext **output_files, if (ist->discard) goto discard_packet; - // printf("read #%d.%d size=%d\n", ist->file_index, ist->index, pkt.size); + //fprintf(stderr,"read #%d.%d size=%d\n", ist->file_index, ist->index, pkt.size); len = pkt.size; ptr = pkt.data; while (len > 0) { + int ipts; /* decode the packet if needed */ data_buf = NULL; /* fail safe */ data_size = 0; @@ -1368,8 +1370,12 @@ static int av_encode(AVFormatContext **output_files, } } #endif - /* transcode raw format, encode packets and output them */ + ipts = (double)ist->pts * is->pts_num / is->pts_den; + //fprintf(stderr,"decoded ipts=%ld %d\n",ipts,ist->pts); + /* if output time reached then transcode raw format, + encode packets and output them */ + if (start_time == 0 || ipts > (start_time / 1000000.0)) for(i=0;i