> On Oct 17, 2014, at 03:19, Rodger Combs <rodger.co...@gmail.com> wrote:
> 
>> 
>> On Oct 15, 2014, at 06:00, Rodger Combs <rodger.co...@gmail.com 
>> <mailto:rodger.co...@gmail.com>> wrote:
>> 
>> 
>>> On Oct 15, 2014, at 05:37, Nicolas George <geo...@nsup.org> wrote:
>>> 
>>> Le quartidi 24 vendémiaire, an CCXXIII, Rodger Combs a écrit :
>>>> Discussed this briefly on IRC; decided this was a good idea. I'm not sure
>>>> if the commit message explains it well enough; please poke me here or on
>>>> IRC if it doesn't.
>>> 
>>>> From 617b532c8a403c1cf06e60c99e9f36c787553b43 Mon Sep 17 00:00:00 2001
>>>> From: Rodger Combs <rodger.co...@gmail.com>
>>>> Date: Wed, 15 Oct 2014 05:00:02 -0500
>>>> Subject: [PATCH] Make copyts a tri-state, with `no` normalizing input
>>>> timestamps.
>>>> 
>>>> This doesn't change the default or `-copyts` behavior, but allows
>>>> `-nocopyts` to make e.g. `-ss 50` have timestamps starting at 50 seconds,
>>>> even if the input file's timestamps start at a value other than zero.
>>>> ---
>>>> ffmpeg.c     | 6 +++---
>>>> ffmpeg_opt.c | 4 ++--
>>>> 2 files changed, 5 insertions(+), 5 deletions(-)
>>> 
>>> It looks like you forgot to update the documentation too.
>>> 
>>> Regards,
>>> 
>>> -- 
>>> Nicolas George
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel@ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> 
>> Indeed I did. Here you go:
>> <0001-Make-copyts-a-tri-state-with-no-normalizing-input-ti.patch>
>> 
>> It occurs to me that it might be more useful in some cases to have one 
>> master input file (the first one?) be shifted so its timestamps start at 
>> zero, and the rest be shifted by the same amount as the master. That might 
>> be a good argument for making this its own option, instead of making copyts 
>> a tri-state.
>> 
>> I'm not particularly attached to the naming or implementation here, so 
>> suggestions are plenty welcome :)
>> 
>> 
> Upon some further testing, this seems to create some unusual and undesired 
> behavior in some cases, and I'm not sure exactly why. The patch is definitely 
> not ready, but I'd appreciate it if anyone could help work out a better 
> design for the feature.

My previous patch was awkward and had some unintended side-effects; this 
version just adds a separate option instead of hacking -copyts.

>From 88eb820b701c7eea11d60dd75faa2cefe57bbfe0 Mon Sep 17 00:00:00 2001
From: Rodger Combs <rodger.co...@gmail.com>
Date: Mon, 20 Oct 2014 18:31:18 -0500
Subject: [PATCH] Add -start_at_zero option.

This automatically shifts input timestamps to start at 0 instead of the file's
starting timestamp when using -copyts.
---
 ffmpeg_opt.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index c518ae1..13152d0 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -91,6 +91,7 @@ int do_benchmark_all  = 0;
 int do_hex_dump       = 0;
 int do_pkt_dump       = 0;
 int copy_ts           = 0;
+int start_at_zero     = 0;
 int copy_tb           = -1;
 int debug_ts          = 0;
 int exit_on_error     = 0;
@@ -921,7 +922,7 @@ static int open_input_file(OptionsContext *o, const char 
*filename)
     f->start_time = o->start_time;
     f->recording_time = o->recording_time;
     f->input_ts_offset = o->input_ts_offset;
-    f->ts_offset  = o->input_ts_offset - (copy_ts ? 0 : timestamp);
+    f->ts_offset  = o->input_ts_offset - (copy_ts ? (start_at_zero && 
ic->start_time != AV_NOPTS_VALUE ? ic->start_time : 0) : timestamp);
     f->nb_streams = ic->nb_streams;
     f->rate_emu   = o->rate_emu;
     f->accurate_seek = o->accurate_seek;
@@ -2840,6 +2841,8 @@ const OptionDef options[] = {
         "audio drift threshold", "threshold" },
     { "copyts",         OPT_BOOL | OPT_EXPERT,                       { 
&copy_ts },
         "copy timestamps" },
+    { "start_at_zero",  OPT_BOOL | OPT_EXPERT,                       { 
&start_at_zero },
+        "shift input timestamps to start at 0 when using copyts" },
     { "copytb",         HAS_ARG | OPT_INT | OPT_EXPERT,              { 
&copy_tb },
         "copy input stream time base when stream copying", "mode" },
     { "shortest",       OPT_BOOL | OPT_EXPERT | OPT_OFFSET |
-- 
1.9.1


_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to