On 11/29/2011 10:51 AM, Anton Khirnov wrote: > > 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.
I see. Patch looks ok then. I was thinking of previous behavior and didn't realize it had changed. -Justin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
