On Wed, Jul 29, 2015 at 06:22:04PM +0200, Clément Bœsch wrote: > On Wed, Jul 29, 2015 at 05:32:14PM +0200, Michael Niedermayer wrote: > > ffmpeg | branch: master | Michael Niedermayer <[email protected]> | > > Mon Jul 27 04:30:26 2015 +0200| [f4ada6dc3ff7a5c4193d2b30151a48de8e219c94] > > | committer: Michael Niedermayer > > > > ffmpeg: Implement support for seeking relative to EOF > > > > Fixes Ticket227 > > > > Signed-off-by: Michael Niedermayer <[email protected]> > > > > > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f4ada6dc3ff7a5c4193d2b30151a48de8e219c94 > > --- > > > > doc/ffmpeg.texi | 5 +++++ > > ffmpeg.h | 1 + > > ffmpeg_opt.c | 6 ++++++ > > 3 files changed, 12 insertions(+) > > > > diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi > > index 4d73788..3806a12 100644 > > --- a/doc/ffmpeg.texi > > +++ b/doc/ffmpeg.texi > > @@ -307,6 +307,11 @@ input until the timestamps reach @var{position}. > > > > @var{position} may be either in seconds or in @code{hh:mm:ss[.xxx]} form. > > > > +@item -sseof @var{position} (@emph{input/output}) > > + > > +Like the -ss option but relative to the "end of file". That is negative > > nit: @code{-ss}
Fixed
>
> > +values are earlier in the file, 0 is at EOF.
> > +
>
> So mmh,, this works properly for both the duration of the input, and the
> duration of the output (respectively for -sseof as input and output
> option)
thats just copy an pasted, but does it not work?
If it doesnt ill take a look at if it can be made to work
>
> > @item -itsoffset @var{offset} (@emph{input})
> > Set the input time offset.
> >
> > diff --git a/ffmpeg.h b/ffmpeg.h
> > index a7e5e51..7467b16 100644
> > --- a/ffmpeg.h
> > +++ b/ffmpeg.h
> > @@ -92,6 +92,7 @@ typedef struct OptionsContext {
> >
> > /* input/output options */
> > int64_t start_time;
> > + int64_t start_time_eof;
> > int seek_timestamp;
> > const char *format;
> >
> > diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
> > index 3c9f98a..351c47b 100644
> > --- a/ffmpeg_opt.c
> > +++ b/ffmpeg_opt.c
> > @@ -156,6 +156,7 @@ static void init_options(OptionsContext *o)
> > o->stop_time = INT64_MAX;
> > o->mux_max_delay = 0.7;
> > o->start_time = AV_NOPTS_VALUE;
> > + o->start_time_eof = AV_NOPTS_VALUE;
> > o->recording_time = INT64_MAX;
> > o->limit_filesize = UINT64_MAX;
> > o->chapters_input_file = INT_MAX;
> > @@ -933,6 +934,8 @@ static int open_input_file(OptionsContext *o, const
> > char *filename)
> > }
> > }
> >
> > + if (o->start_time_eof != AV_NOPTS_VALUE && ic->duration>0)
> > + o->start_time = o->start_time_eof + ic->duration;
>
> You most likely want to print a warning about this having no effect when
> the duration can not be computed.
fixed
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I do not agree with what you have to say, but I'll defend to the death your
right to say it. -- Voltaire
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
