]> git.sesse.net Git - ffmpeg/commitdiff
avformat/vividas: simplify, use av_rescale_q() instead
authorLimin Wang <lance.lmwang@gmail.com>
Tue, 28 Apr 2020 03:49:16 +0000 (11:49 +0800)
committerLimin Wang <lance.lmwang@gmail.com>
Sun, 10 May 2020 14:32:33 +0000 (22:32 +0800)
note it'll cause a small difference in accuracy for the pts, please see the testing result below:
 $ wget http://samples.ffmpeg.org/archive/all/unknown+unknown+unknown+unknown+5029_paramount_en_1250.viv
 $ ./ffmpeg -t 0.04 -i ./unknown+unknown+unknown+unknown+5029_paramount_en_1250.viv -f null -
 old:
 pts: 522
 pts: 1044
 pts: 1567
 pts: 3918
 pts: 8097
 pts: 12277
 pts: 16457
 ...

 new:
 pts: 522
 pts: 1045
 pts: 1567
 pts: 3918
 pts: 8098
 pts: 12278
 pts: 16457
 ...

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
libavformat/vividas.c

index 4f54a4302e1356632ede417351231a21045d0ddd..b0f9f35ac20f97530b58fd2ecbe7b4ed97dae1b2 100644 (file)
@@ -646,7 +646,7 @@ static int viv_read_packet(AVFormatContext *s,
         pkt->stream_index = 1;
         astream = s->streams[pkt->stream_index];
 
-        pkt->pts = av_rescale(viv->audio_sample, astream->time_base.den, astream->time_base.num) / astream->codecpar->sample_rate;
+        pkt->pts = av_rescale_q(viv->audio_sample, av_make_q(1, astream->codecpar->sample_rate), astream->time_base);
         viv->audio_sample += viv->audio_subpackets[viv->current_audio_subpacket].pcm_bytes / 2 / astream->codecpar->channels;
         pkt->flags |= AV_PKT_FLAG_KEY;
         viv->current_audio_subpacket++;