diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-10-21 10:55:24 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-10-21 10:55:24 +0000 |
commit | 8831db5ca231f3c63177c7b916a7753534bbb234 (patch) | |
tree | b979dfe8a50270768f44a11d0e213d1e98e67579 /ffmpeg.c | |
parent | 33a6984b8c85bead476f9db24ecdcda6dae71a57 (diff) | |
download | ffmpeg-8831db5ca231f3c63177c7b916a7753534bbb234.tar.gz |
start time hack by (devik <devik at cdi dot cz>)
Originally committed as revision 2408 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -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<nb_ostreams;i++) { int frame_size; @@ -2028,6 +2034,11 @@ static void opt_recording_time(const char *arg) recording_time = parse_date(arg, 1); } +static void opt_start_time(const char *arg) +{ + start_time = parse_date(arg, 1); +} + static void opt_input_file(const char *filename) { AVFormatContext *ic; @@ -2663,6 +2674,7 @@ const OptionDef options[] = { { "y", OPT_BOOL, {(void*)&file_overwrite}, "overwrite output files" }, { "map", HAS_ARG | OPT_EXPERT, {(void*)opt_map}, "set input stream mapping", "file:stream" }, { "t", HAS_ARG, {(void*)opt_recording_time}, "set the recording time", "duration" }, + { "start", HAS_ARG, {(void*)opt_start_time}, "set the start time offset", "time_off" }, { "title", HAS_ARG | OPT_STRING, {(void*)&str_title}, "set the title", "string" }, { "author", HAS_ARG | OPT_STRING, {(void*)&str_author}, "set the author", "string" }, { "copyright", HAS_ARG | OPT_STRING, {(void*)&str_copyright}, "set the copyright", "string" }, |