The first 2 frames for TwinVQ are encoder delay.
---
libavformat/vqf.c | 3 +++
tests/ref/fate/vqf-demux | 2 +-
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/libavformat/vqf.c b/libavformat/vqf.c
index 66ced37..057a371 100644
--- a/libavformat/vqf.c
+++ b/libavformat/vqf.c
@@ -226,6 +226,8 @@ static int vqf_read_packet(AVFormatContext *s, AVPacket
*pkt)
pkt->pos = avio_tell(s->pb);
pkt->stream_index = 0;
pkt->duration = 1;
+ pkt->pts = ((pkt->pos - s->data_offset) * 8 - c->remaining_bits) /
+ c->frame_bit_len - 2;
pkt->data[0] = 8 - c->remaining_bits; // Number of bits to skip
pkt->data[1] = c->last_frame_bits;
@@ -261,6 +263,7 @@ static int vqf_read_seek(AVFormatContext *s,
st->cur_dts = av_rescale(pos, st->time_base.den,
st->codec->bit_rate * (int64_t)st->time_base.num);
+ pos += 2 * c->frame_bit_len;
if ((ret = avio_seek(s->pb, ((pos-7) >> 3) + s->data_offset, SEEK_SET)) <
0)
return ret;
diff --git a/tests/ref/fate/vqf-demux b/tests/ref/fate/vqf-demux
index 3acae60..c44daef 100644
--- a/tests/ref/fate/vqf-demux
+++ b/tests/ref/fate/vqf-demux
@@ -1 +1 @@
-d72fb75fb22f4bcc94a1dc7af5356ec1
+0add59365a458e5947a89f7ec212b01c
--
1.7.1
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel