diff options
author | Roman Shaposhnik <roman@shaposhnik.org> | 2004-04-06 06:31:12 +0000 |
---|---|---|
committer | Roman Shaposhnik <roman@shaposhnik.org> | 2004-04-06 06:31:12 +0000 |
commit | 4568325a1810ea5d829230dc5e9ef0e56c51632f (patch) | |
tree | 7285032dd6413a353e2832e33af8598a50ab60bc | |
parent | 8c266f0cb76b5f293f257227ba66f68c0914257d (diff) | |
download | ffmpeg-4568325a1810ea5d829230dc5e9ef0e56c51632f.tar.gz |
* making it possible to specify recording date and time in a stream
Originally committed as revision 2971 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | ffmpeg.c | 11 | ||||
-rw-r--r-- | ffserver.c | 1 | ||||
-rw-r--r-- | libavformat/avformat.h | 1 | ||||
-rw-r--r-- | libavformat/dv.c | 2 |
4 files changed, 13 insertions, 2 deletions
@@ -166,6 +166,7 @@ static int audio_codec_id = CODEC_ID_NONE; static int64_t recording_time = 0; static int64_t start_time = 0; +static int64_t rec_timestamp = 0; static int file_overwrite = 0; static char *str_title = NULL; static char *str_author = NULL; @@ -2213,6 +2214,11 @@ static void opt_start_time(const char *arg) start_time = parse_date(arg, 1); } +static void opt_rec_timestamp(const char *arg) +{ + rec_timestamp = parse_date(arg, 0) / 1000000; +} + static void opt_input_file(const char *filename) { AVFormatContext *ic; @@ -2658,7 +2664,9 @@ static void opt_output_file(const char *filename) exit(1); } - if (str_title) + oc->timestamp = rec_timestamp; + + if (str_title) pstrcpy(oc->title, sizeof(oc->title), str_title); if (str_author) pstrcpy(oc->author, sizeof(oc->author), str_author); @@ -3127,6 +3135,7 @@ const OptionDef options[] = { { "t", HAS_ARG, {(void*)opt_recording_time}, "set the recording time", "duration" }, { "ss", 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" }, + { "timestamp", HAS_ARG, {(void*)&opt_rec_timestamp}, "set the timestamp", "time" }, { "author", HAS_ARG | OPT_STRING, {(void*)&str_author}, "set the author", "string" }, { "copyright", HAS_ARG | OPT_STRING, {(void*)&str_copyright}, "set the copyright", "string" }, { "comment", HAS_ARG | OPT_STRING, {(void*)&str_comment}, "set the comment", "string" }, diff --git a/ffserver.c b/ffserver.c index 20f2b23724..b81b5c8865 100644 --- a/ffserver.c +++ b/ffserver.c @@ -26,6 +26,7 @@ #include <sys/poll.h> #include <errno.h> #include <sys/time.h> +#undef time //needed because HAVE_AV_CONFIG_H is defined on top #include <time.h> #include <sys/types.h> #include <sys/socket.h> diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 7b64e0bbd8..d1db5f3a55 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -251,6 +251,7 @@ typedef struct AVFormatContext { AVStream *streams[MAX_STREAMS]; char filename[1024]; /* input or output filename */ /* stream info */ + int64_t timestamp; char title[512]; char author[512]; char copyright[512]; diff --git a/libavformat/dv.c b/libavformat/dv.c index 6ff94a7ff8..71033d2718 100644 --- a/libavformat/dv.c +++ b/libavformat/dv.c @@ -685,7 +685,7 @@ DVMuxContext* dv_init_mux(AVFormatContext* s) /* Ok, everything seems to be in working order */ c->frames = 0; c->has_audio = c->has_video = 0; - c->start_time = 0; + c->start_time = (time_t)s->timestamp; c->aspect = 0; /* 4:3 is the default */ if ((int)(av_q2d(vst->codec.sample_aspect_ratio) * vst->codec.width / vst->codec.height * 10) == 17) /* 16:9 */ c->aspect = 0x07; |