On Tue, 29 Nov 2011 09:16:01 -0500, Justin Ruggles <[email protected]>
wrote:
> On 11/29/2011 03:03 AM, Anton Khirnov wrote:
>
> > This was broken in 2a651b719c309c5e2fc663a5a9d6ca36153ab98f.
> > ---
> > avconv.c | 1 +
> > 1 files changed, 1 insertions(+), 0 deletions(-)
> >
> > diff --git a/avconv.c b/avconv.c
> > index 4c5498a..067678d 100644
> > --- a/avconv.c
> > +++ b/avconv.c
> > @@ -1906,6 +1906,7 @@ static int output_packet(InputStream *ist,
> > /* handle stream copy */
> > if (!ist->decoding_needed) {
> > rate_emu_sleep(ist);
> > + ist->pts = ist->next_pts;
> > switch (ist->st->codec->codec_type) {
> > case AVMEDIA_TYPE_AUDIO:
> > ist->next_pts += ((int64_t)AV_TIME_BASE *
> > ist->st->codec->frame_size) /
>
>
> Is this really correct? Shouldn't it be using the pts from the input
> packet, not the made-up pts?
>
I'm simply restoring the previous behavior, I don't yet understand it
enough for any claims of correctness ;)
But near the begginning there's this
if(pkt->dts != AV_NOPTS_VALUE)
ist->next_pts = ist->pts = av_rescale_q(pkt->dts, ist->st->time_base,
AV_TIME_BASE_Q);
so the line added in this patch is a noop when the packet contains dts.
--
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel