On Mon, Nov 21, 2011 at 10:19 PM, Anton Khirnov <[email protected]> wrote:
> ---
>  avconv.c |   13 +++++--------
>  1 files changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/avconv.c b/avconv.c
> index a87f852..3ba8534 100644
> --- a/avconv.c
> +++ b/avconv.c
> @@ -1845,7 +1845,7 @@ static int output_packet(InputStream *ist, int 
> ist_index,
>  {
>     OutputStream *ost;
>     int ret = 0, i;
> -    int got_output;
> +    int got_output = 1;
>     int64_t pkt_pts = AV_NOPTS_VALUE;
>
>     AVPacket avpkt;
> @@ -1858,19 +1858,16 @@ static int output_packet(InputStream *ist, int 
> ist_index,
>         av_init_packet(&avpkt);
>         avpkt.data = NULL;
>         avpkt.size = 0;
> -        goto handle_eof;
>     } else {
>         avpkt = *pkt;
> +        if (pkt->dts != AV_NOPTS_VALUE)
> +            ist->next_pts = ist->pts = av_rescale_q(pkt->dts, 
> ist->st->time_base, AV_TIME_BASE_Q);
> +        if (pkt->pts != AV_NOPTS_VALUE)
> +            pkt_pts = av_rescale_q(pkt->pts, ist->st->time_base, 
> AV_TIME_BASE_Q);
>     }
>
> -    if(pkt->dts != AV_NOPTS_VALUE)
> -        ist->next_pts = ist->pts = av_rescale_q(pkt->dts, 
> ist->st->time_base, AV_TIME_BASE_Q);
> -    if(pkt->pts != AV_NOPTS_VALUE)
> -        pkt_pts = av_rescale_q(pkt->pts, ist->st->time_base, AV_TIME_BASE_Q);
> -
>     //while we have more to decode or while the decoder did output something 
> on EOF
>     while (ist->decoding_needed && (avpkt.size > 0 || (!pkt && got_output))) {
> -    handle_eof:
>         ist->pts= ist->next_pts;
>
>         if(avpkt.size && avpkt.size != pkt->size)
> --

OK
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to