ffmpeg | branch: master | Zane van Iperen <z...@zanevaniperen.com> | Sat Sep 19 
22:14:52 2020 +1000| [9ab54eb501e3ddb20b1efd6362e6608b2553da59] | committer: 
Zane van Iperen

avformat/argo_brp: set BVID packet duration

Signed-off-by: Zane van Iperen <z...@zanevaniperen.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ab54eb501e3ddb20b1efd6362e6608b2553da59
---

 libavformat/argo_brp.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c
index 106391fbf8..dcda2c75ac 100644
--- a/libavformat/argo_brp.c
+++ b/libavformat/argo_brp.c
@@ -306,6 +306,7 @@ static int argo_brp_read_packet(AVFormatContext *s, 
AVPacket *pkt)
 {
     ArgoBRPDemuxContext *brp = s->priv_data;
     ArgoBRPBlockHeader blk;
+    const ArgoBRPStreamHeader *shdr;
     AVStream *st;
     uint8_t buf[BRP_MIN_BUFFER_SIZE];
     ArgoASFChunkHeader ckhdr;
@@ -327,6 +328,7 @@ static int argo_brp_read_packet(AVFormatContext *s, 
AVPacket *pkt)
         return AVERROR_INVALIDDATA;
 
     st = s->streams[blk.stream_id];
+    shdr = brp->streams + blk.stream_id;
 
     if (blk.stream_id == brp->basf.index) {
         if (blk.size < ASF_CHUNK_HEADER_SIZE)
@@ -358,6 +360,9 @@ static int argo_brp_read_packet(AVFormatContext *s, 
AVPacket *pkt)
     if (blk.stream_id == brp->basf.index) {
         pkt->duration = ckhdr.num_samples * ckhdr.num_blocks;
         pkt->pts      = av_rescale_rnd(blk.start_ms, ckhdr.sample_rate, 1000, 
AV_ROUND_UP);
+    } else if (shdr->codec_id == BRP_CODEC_ID_BVID) {
+        pkt->duration = av_rescale_rnd(1, st->duration, 
shdr->extradata.bvid.num_frames, AV_ROUND_UP);
+        pkt->pts      = blk.start_ms;
     } else {
         pkt->pts      = blk.start_ms;
     }

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to