From patchwork Sun Sep 20 08:07:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zane van Iperen X-Patchwork-Id: 22517 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 5AB92449516 for ; Sun, 20 Sep 2020 11:07:21 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 456F968B736; Sun, 20 Sep 2020 11:07:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.protonmail.ch (mail1.protonmail.ch [185.70.40.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C77E68B6CF for ; Sun, 20 Sep 2020 11:07:14 +0300 (EEST) Date: Sun, 20 Sep 2020 08:07:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589233; bh=rlsmbhpknVPAYPVaa5X+yjZipWsTjSd5gL0T2MQNxmk=; h=Date:To:From:Cc:Reply-To:Subject:From; b=oVLfn2SsRG1otDDfN+RnFlVBlAhZdMp9BmxXy8+TP8DBfsyGY+jDgDKde+umvRQI6 5ak0+zIzMoLiKNNcaXcL0UNU7dAmO7yaBV0k8OQYfImcKOT3I9pL9N8RhIc+cbaE3k 0th6zvDZPcoZnjASieo29fzV7Br0vWteGhd+zFS6B11/52FmzFafNxFCjDiFBuVSyY uB9NGMerfTh27V06m5jpGPmrWubr3ZUqmTuUVN1UGRk60oNDrt+vaA3z+NUI2Qj+jD 5JCXc9LP/N1NFlgRf6xQqkKnMDNRDf6BAubAJam9fA8jmiKdAVy6HlZRiXaRR9Hx+7 mLQNCYz4fuzyw== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-8-zane@zanevaniperen.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Subject: [FFmpeg-devel] [PATCH 07/10] avformat/argo_brp: set BVID packet duration X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zane van Iperen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Zane van Iperen --- libavformat/argo_brp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c index fb5c2b7245..ad54420283 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 (brp->streams[blk.stream_id].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; }