]> git.sesse.net Git - ffmpeg/commitdiff
* making it possible to specify recording date and time in a stream
authorRoman Shaposhnik <roman@shaposhnik.org>
Tue, 6 Apr 2004 06:31:12 +0000 (06:31 +0000)
committerRoman Shaposhnik <roman@shaposhnik.org>
Tue, 6 Apr 2004 06:31:12 +0000 (06:31 +0000)
Originally committed as revision 2971 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffmpeg.c
ffserver.c
libavformat/avformat.h
libavformat/dv.c

index 35a8fd0de83ccfb64ba84fde1efa83a4d29ef485..e1a2b18d8625e2c077833f7200583753332f8dc2 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -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" },
index 20f2b2372461d8da1426a7f64490526527b2f174..b81b5c8865ace4ee3ab4714b640d6bd6a6d680a9 100644 (file)
@@ -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>
index 7b64e0bbd869dec7d4466ad86ccd489a1f630918..d1db5f3a55d1cb802da0db441d9c3564a00d38e2 100644 (file)
@@ -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];
index 6ff94a7ff8a06ba6fb45812e97d5cbd24e28db75..71033d2718d7e4b680bd619e2981dbdc0fcf5d58 100644 (file)
@@ -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;