[libav-api] Set timestamps for muxing after seeking
espenjurgensen at gmail.com
Fri Aug 28 20:40:04 CEST 2015
So my application basically transcodes (demuxes, decodes, encodes, muxes)
very much the same way as in doc/examples/transcode.c.
During transcoding, the user may decide to seek backwards in the input
file. I have this working fine with av_seek_frame(). My issue is that the
timestamps passed to the muxer are those from the decoded packets (like in
the transcode.c example), and after seeking backwards a discontinuity
naturally arises so they are no longer monotonically increasing, which
understandably makes the muxer very unhappy.
I'm thinking of a solution where I calculate the length of the jump for
each stream, and then add those to the decoder packet timestamps given to
the muxer, again for each stream. It would be rather cumbersome, and I have
a feeling there is a better way of doing it? I would really appreciate some
My Google-fu was not strong enough to find an answer, and I should add that
I'm fairly new to this.
More information about the libav-api