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

Reply via email to