From patchwork Sun Sep 20 08:06:18 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: 22513 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 9AB71449284 for ; Sun, 20 Sep 2020 11:06:33 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7DFC468B6CB; Sun, 20 Sep 2020 11:06:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-40131.protonmail.ch (mail-40131.protonmail.ch [185.70.40.131]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2707568B682 for ; Sun, 20 Sep 2020 11:06:27 +0300 (EEST) Date: Sun, 20 Sep 2020 08:06:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589186; bh=b7TDvoVDgYNL7d8tmyNR8WRYYJNoIoGn1JuLw54YtVg=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=OwiGhUilL3uq29AyqbZyTalXABZFURoSkVltYf30k/OoLY3hyh/j5uqGhpC5uJGx8 K3CH7cAaKKb2U24w1gN96i+xNOE800Xfz6P9ty8BUnZpN1Cp43DbMzg/lM0FMyBVcK JYL4eYWR/+3Q+cN1YU+fzWMuosOaRRhBI/Lxt8qx5culSW80XLtsEAMotXrFdfHGoo QbYXQpoOJGxp0BAxjQUuuJB1DTD2t44PFl0O/+JaL/AbOkuZ5mlrHYzEEAhVPjU6AM XQTFd1YSllR9qiMu50NmNKeJgEbhpRd/FSaWXHxRr3kpDcVV0rxqRL8VNfQd6XENho zIq4orh97rQ2Q== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-2-zane@zanevaniperen.com> In-Reply-To: <20200920080528.26200-1-zane@zanevaniperen.com> References: <20200920080528.26200-1-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 01/10] avformat/argo_asf: fix enforcement of chunk count 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" Enforcing num_chunks == 1 only makes sense when demuxing from an ASF file. When embedded in a BRP file, an ASF stream can have multiple chunks. Signed-off-by: Zane van Iperen --- libavformat/argo_asf.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index 048e5441d6..eb0c18601d 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -59,11 +59,6 @@ int ff_argo_asf_validate_file_header(AVFormatContext *s, const ArgoASFFileHeader if (hdr->magic != ASF_TAG || hdr->num_chunks == 0) return AVERROR_INVALIDDATA; - if (hdr->num_chunks > 1) { - avpriv_request_sample(s, ">1 chunk"); - return AVERROR_PATCHWELCOME; - } - if (hdr->chunk_offset < ASF_FILE_HEADER_SIZE) return AVERROR_INVALIDDATA; @@ -139,8 +134,12 @@ int ff_argo_asf_fill_stream(AVStream *st, const ArgoASFFileHeader *fhdr, avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); st->start_time = 0; - st->duration = ckhdr->num_blocks * ckhdr->num_samples; - st->nb_frames = ckhdr->num_blocks; + + if (fhdr->num_chunks == 1) { + st->duration = ckhdr->num_blocks * ckhdr->num_samples; + st->nb_frames = ckhdr->num_blocks; + } + return 0; } @@ -199,6 +198,10 @@ static int argo_asf_read_header(AVFormatContext *s) if ((ret = ff_argo_asf_validate_file_header(s, &asf->fhdr)) < 0) return ret; + /* This should only be 1 in ASF files. >1 is fine if in BRP. */ + if (asf->fhdr.num_chunks != 1) + return AVERROR_INVALIDDATA; + if ((ret = avio_skip(pb, asf->fhdr.chunk_offset - ASF_FILE_HEADER_SIZE)) < 0) return ret; From patchwork Sun Sep 20 08:06:26 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: 22514 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 AF341449284 for ; Sun, 20 Sep 2020 11:06:38 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9967F68B6EB; Sun, 20 Sep 2020 11:06:38 +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 06BAE68B6D7 for ; Sun, 20 Sep 2020 11:06:32 +0300 (EEST) Date: Sun, 20 Sep 2020 08:06:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589191; bh=YVrA5GOK4Jsu8WIoKsg9ueuZSStCW/yJt84oS398+QM=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=UZXOzTjJN5qEJAXO6WhwoKEWVKr6iJXH6edZVvSAGEUIuP12Y785AJOFykEvDKvMm f4KAgq/ChF15KcTp1xcDgCVGd1EOTiY9fC8OhoXuOObZ9D1X0dC3/eIIqmCjGV6jzO ptq0FG9eJtLSu0EOPtCmiaCjlAgJbsD3P5wKnJtis3mlPkQp3arsiKRgwjVJOdhQc9 pkXrMJG2032n1nTvrqtw1aPY5UPBwhU7pEKzPXdSMHcYc9wqK0aFLoyDt5Pp+iRl+K /jgsy51E0UKxEhplKe+QxIukOc9cZRdDjNVPLDSEDtXZenVjxA9on6xtdQn6nkt+Du ITMKW1fTwauZw== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-3-zane@zanevaniperen.com> In-Reply-To: <20200920080528.26200-1-zane@zanevaniperen.com> References: <20200920080528.26200-1-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 02/10] avformat/argo_asf: cosmetics 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_asf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index eb0c18601d..6f7d9e93c9 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -348,7 +348,7 @@ static int argo_asf_write_header(AVFormatContext *s) const char *end = strrchr(start, '.'); size_t len; - if(end) + if (end) len = end - start; else len = strlen(start); From patchwork Sun Sep 20 08:06:34 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: 22515 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 8FE50449284 for ; Sun, 20 Sep 2020 11:06:40 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7735C68B750; Sun, 20 Sep 2020 11:06:40 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-40134.protonmail.ch (mail-40134.protonmail.ch [185.70.40.134]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F011F68B736 for ; Sun, 20 Sep 2020 11:06:38 +0300 (EEST) Date: Sun, 20 Sep 2020 08:06:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589197; bh=JFpTUGYkGjWh7STe6m4468u+nOhXREt8lr8XX5Q8+WU=; h=Date:To:From:Cc:Reply-To:Subject:From; b=WevM2LMjBIfnU1Em7awjW5MjNYRW4Hzk1DJ3c+mqXkda0bzdJf8LYIJV1DaF5+Ttv PHaV/dLsqXzeRdIvBXd4vILmQ+0ubEF482WsrKT3h0GW7YB7O4C5r2Dcc3gtNKjWvM 9/3y0iJENAg6ShZ+KKW5TH+XD6q7g1xSGhKr0CW+BX8OBQ2ZfN32oMCfhDqQxINNWl WgRV/nmVf3MuY3kht6rJLMBRtDifhY/JVzG75J0GU+hFtMjwiZmDAcb48U49ywdE68 Zt5uX0ZCsE/5+dHugvp/LHRtdTRHzwwukXcvw3/qiTfmgSu90NcW06JzbC8eZ251UP 7SlOAkdebKuTA== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-4-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 03/10] avformat/argo_brp: remove an allocation 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 | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c index 27029d07b1..e57c20eb96 100644 --- a/libavformat/argo_brp.c +++ b/libavformat/argo_brp.c @@ -77,7 +77,7 @@ typedef struct ArgoBRPStreamHeader { typedef struct ArgoBRPDemuxContext { ArgoBRPFileHeader fhdr; - ArgoBRPStreamHeader *streams; + ArgoBRPStreamHeader streams[BRP_MAX_STREAMS]; /* To know how much of a BASF to give. */ int64_t lastpts; int hit_eof; @@ -101,16 +101,6 @@ static int argo_brp_probe(const AVProbeData *p) return AVPROBE_SCORE_EXTENSION + 1; } -static int argo_brp_read_close(AVFormatContext *s) -{ - ArgoBRPDemuxContext *brp = s->priv_data; - - if (brp->streams != NULL) - av_freep(&brp->streams); - - return 0; -} - static int read_extradata(AVFormatContext *s, const ArgoBRPStreamHeader *hdr, void *buf, size_t bufsz) { @@ -174,9 +164,6 @@ static int argo_brp_read_header(AVFormatContext *s) return AVERROR_PATCHWELCOME; } - if ((brp->streams = av_mallocz_array(brp->fhdr.num_streams, sizeof(ArgoBRPStreamHeader))) == NULL) - return AVERROR(ENOMEM); - /* Build the stream info. */ brp->basf.index = -1; for (uint32_t i = 0; i < brp->fhdr.num_streams; i++) { @@ -331,8 +318,6 @@ static int argo_brp_read_header(AVFormatContext *s) return 0; fail: - /* TODO: Remove once AVFMT_HEADER_CLEANUP lands. */ - argo_brp_read_close(s); return ret; } @@ -444,6 +429,5 @@ AVInputFormat ff_argo_brp_demuxer = { .priv_data_size = sizeof(ArgoBRPDemuxContext), .read_probe = argo_brp_probe, .read_header = argo_brp_read_header, - .read_packet = argo_brp_read_packet, - .read_close = argo_brp_read_close + .read_packet = argo_brp_read_packet }; From patchwork Sun Sep 20 08:06:42 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: 22516 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 85E7C449284 for ; Sun, 20 Sep 2020 11:06:54 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 71A0368B787; Sun, 20 Sep 2020 11:06:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-40131.protonmail.ch (mail-40131.protonmail.ch [185.70.40.131]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 09FD468B784 for ; Sun, 20 Sep 2020 11:06:53 +0300 (EEST) Date: Sun, 20 Sep 2020 08:06:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589212; bh=xA6TlQWyGsKMy2nDHuw/kZKqb5qKMz1JBCWXzu4ts/0=; h=Date:To:From:Cc:Reply-To:Subject:From; b=lDJLzUWkf3tpBpkMZnsIVzEVXSvFfNrlJfqwm/OSGOs7qSxq8fNLAzJTMGOIiptwu uI2diYpSYjpSX//DFEvFAcbtPHHQG0RFqAaCQiLb2htnFJswbt9qz6UTxm6D/kJMuM Bdg8Lnn5D7tk/wN/OCZkm5nHhwRMAb15FVauEQ8GUhUHkhCuTbUpM6kS/0zxr167+l 9D89Il83CG2kyvN7us659PsHf+J9trIYUfjxY/Cy9c5f56ldzMmzr7YPfB/i5lrqXN 4+TlWsY7WojuM0zBQqQTP6F0sPqjXyr6CrugJoUVKaDS5fWY3HkvoHJsTHADfijU+W jrhCLJy9tnRwQ== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-5-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 04/10] avformat/argo_brp: cleanup 'goto fail's 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 | 63 +++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 40 deletions(-) diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c index e57c20eb96..6c6e126b17 100644 --- a/libavformat/argo_brp.c +++ b/libavformat/argo_brp.c @@ -170,17 +170,13 @@ static int argo_brp_read_header(AVFormatContext *s) ArgoBRPStreamHeader *hdr = brp->streams + i; AVStream *st; - if (!(st = avformat_new_stream(s, NULL))) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!(st = avformat_new_stream(s, NULL))) + return AVERROR(ENOMEM); - if ((ret = avio_read(pb, buf, BRP_STREAM_HEADER_SIZE)) < 0) { - goto fail; - } else if (ret != BRP_STREAM_HEADER_SIZE) { - ret = AVERROR(EIO); - goto fail; - } + if ((ret = avio_read(pb, buf, BRP_STREAM_HEADER_SIZE)) < 0) + return ret; + else if (ret != BRP_STREAM_HEADER_SIZE) + return AVERROR(EIO); hdr->codec_id = AV_RL32(buf + 0); hdr->id = AV_RL32(buf + 4); @@ -194,7 +190,7 @@ static int argo_brp_read_header(AVFormatContext *s) st->codecpar->bit_rate = hdr->byte_rate * 8; if ((ret = read_extradata(s, hdr, buf, sizeof(buf))) < 0) { - goto fail; + return ret; } else if (ret > 0) { st->codecpar->codec_type = AVMEDIA_TYPE_UNKNOWN; continue; @@ -216,8 +212,7 @@ static int argo_brp_read_header(AVFormatContext *s) /* These are from 1990's games, sanity check this. */ if (bvid->width >= 65536 || bvid->height >= 65536 || bvid->depth > 24 || bvid->depth % 8 != 0) { - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } st->codecpar->width = bvid->width; @@ -229,8 +224,7 @@ static int argo_brp_read_header(AVFormatContext *s) st->codecpar->format = AV_PIX_FMT_RGB24; } else { avpriv_request_sample(s, "depth == %u", bvid->depth); - ret = AVERROR_PATCHWELCOME; - goto fail; + return AVERROR_PATCHWELCOME; } } else if (hdr->codec_id == BRP_CODEC_ID_BASF) { /* @@ -240,8 +234,7 @@ static int argo_brp_read_header(AVFormatContext *s) */ if (brp->basf.index >= 0) { avpriv_request_sample(s, "Multiple BASF streams"); - ret = AVERROR_PATCHWELCOME; - goto fail; + return AVERROR_PATCHWELCOME; } st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; @@ -250,7 +243,7 @@ static int argo_brp_read_header(AVFormatContext *s) ff_argo_asf_parse_file_header(&hdr->extradata.basf, buf); if ((ret = ff_argo_asf_validate_file_header(s, &hdr->extradata.basf)) < 0) - goto fail; + return ret; } else { av_assert0(0); /* Caught above, should never happen. */ @@ -271,11 +264,9 @@ static int argo_brp_read_header(AVFormatContext *s) av_assert0(brp->streams[brp->basf.index].extradata_size == ASF_FILE_HEADER_SIZE); if ((ret = avio_read(pb, buf, BRP_BLOCK_HEADER_SIZE)) < 0) - goto fail; - else if (ret != BRP_BLOCK_HEADER_SIZE) { - ret = AVERROR(EIO); - goto fail; - } + return ret; + else if (ret != BRP_BLOCK_HEADER_SIZE) + return AVERROR(EIO); blk.stream_id = AV_RL32(buf + 0); blk.start_ms = AV_RL32(buf + 4); @@ -283,42 +274,34 @@ static int argo_brp_read_header(AVFormatContext *s) if (blk.stream_id != brp->basf.index) { avpriv_request_sample(st, "first block not BASF"); - ret = AVERROR_PATCHWELCOME; - goto fail; + return AVERROR_PATCHWELCOME; } - if (blk.size < ASF_CHUNK_HEADER_SIZE) { - ret = AVERROR_INVALIDDATA; - goto fail; - } + if (blk.size < ASF_CHUNK_HEADER_SIZE) + return AVERROR_INVALIDDATA; if ((ret = avio_read(pb, buf, ASF_CHUNK_HEADER_SIZE)) < 0) - goto fail; - else if (ret != ASF_CHUNK_HEADER_SIZE) { - ret = AVERROR(EIO); - goto fail; - } + return ret; + else if (ret != ASF_CHUNK_HEADER_SIZE) + return AVERROR(EIO); ff_argo_asf_parse_chunk_header(&brp->basf.ckhdr, buf); if ((ret = ff_argo_asf_fill_stream(st, &hdr->extradata.basf, &brp->basf.ckhdr)) < 0) - goto fail; + return ret; /* Convert ms to samples. */ st->start_time = (blk.start_ms * st->codecpar->sample_rate) / 1000; if ((ret = avio_tell(s->pb)) < 0) - goto fail; + return ret; brp->basf.offset = ret; if ((ret = avio_skip(s->pb, blk.size - ASF_CHUNK_HEADER_SIZE)) < 0) - goto fail; + return ret; } return 0; - -fail: - return ret; } static int argo_brp_read_basf(AVFormatContext *s, AVPacket *pkt, 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; } From patchwork Sun Sep 20 08:07:14 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: 22518 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 1D2BE449516 for ; Sun, 20 Sep 2020 11:07:22 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0826668B7E2; Sun, 20 Sep 2020 11:07:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-40131.protonmail.ch (mail-40131.protonmail.ch [185.70.40.131]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2081068B730 for ; Sun, 20 Sep 2020 11:07:20 +0300 (EEST) Date: Sun, 20 Sep 2020 08:07:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589239; bh=qVC6mtypIK/+3rZoEKDSKToYlgquJXk7BMSs7zkA73U=; h=Date:To:From:Cc:Reply-To:Subject:From; b=qxZKMZmbIzWp2uDiR/VvLhDe2SGin2gBGI4kQJnjM1KlQp+MsKfNCapzFB3OkJzpn gaa2nRtW7xjI+63u8t7Ypki3DduYW96kpJyvCOXd5ubPHpAtWxs0v+QHCGUBARog88 ysnp8cscIsyPk8OnJZC3bbrZU0GfsyomDUPSD/noOSMBKsWaSbv2mrA6o60sbqNo8l osz05WZ/zlN4shd8yPVK7LDH4KVfJx1yiYHvXj/jgO2lu3hs+kYbDFs13sUEkWBrji CYaNrBkVEd6eqVLTfWw4Ev9tFY21uDL3UAfhWEvbqwRtsmCUAE3v3mBk28mDvTfjss 4V56rL8KbB4mw== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-9-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 08/10] avformat/argo_brp: don't pass AVStream into avpriv_request_sample() 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c index ad54420283..75587b24c0 100644 --- a/libavformat/argo_brp.c +++ b/libavformat/argo_brp.c @@ -275,7 +275,7 @@ static int argo_brp_read_header(AVFormatContext *s) blk.size = AV_RL32(buf + 8); if (blk.stream_id != brp->basf.index) { - avpriv_request_sample(st, "first block not BASF"); + avpriv_request_sample(s, "first block not BASF"); return AVERROR_PATCHWELCOME; } From patchwork Sun Sep 20 08:07:22 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: 22519 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 D54C6449516 for ; Sun, 20 Sep 2020 11:07:26 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C09BC68B7C9; Sun, 20 Sep 2020 11:07:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-40133.protonmail.ch (mail-40133.protonmail.ch [185.70.40.133]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1077668B7C9 for ; Sun, 20 Sep 2020 11:07:26 +0300 (EEST) Date: Sun, 20 Sep 2020 08:07:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589245; bh=cqVupWSfuPYxv5vcP8D+RQJEhOUXit/L7gKKtwNSB+I=; h=Date:To:From:Cc:Reply-To:Subject:From; b=jdhF2IbKkw0JOBGN5HfTvzw+RXNFvj16K8Eryds1NvveU+wYW/iwe5vpXogDokORO 1AMdDihqGT8+9yi4lOoCPzIrb4X8fmVnX6YUWdU8eUvmqV8oeKF/NlqNeKKTHYg0U5 n/RAamvOqsMfYx11+e0gewL8bkixvIw8J3NRf6juu1ggmVTcju2EWrFyjpVror1tjE R05k/Z4UjmbVvOyIM0eefBub+dbNE18xd8SLPS1x57uMVjpY7DBMOP6ZpZtcBzz6nb iKa5rWo9K5heHGDQ6/RX78m7y1zb2ieOEl4IotZErRUiPU47/nS8zGkYLVsj2elWLY HbxZsMTijqPJQ== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-10-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 09/10] avcodec: add "Argonaut Games Video" descriptor 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 --- libavcodec/codec_desc.c | 7 +++++++ libavcodec/codec_id.h | 1 + libavcodec/version.h | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index 9e73dcba27..713a45ddc9 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -1798,6 +1798,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .long_name = NULL_IF_CONFIG_SMALL("Kodak Photo CD"), .props = AV_CODEC_PROP_LOSSY, }, + { + .id = AV_CODEC_ID_ARGO, + .type = AVMEDIA_TYPE_VIDEO, + .name = "argo", + .long_name = NULL_IF_CONFIG_SMALL("Argonaut Games Video"), + .props = AV_CODEC_PROP_LOSSY, + }, /* various PCM "codecs" */ { diff --git a/libavcodec/codec_id.h b/libavcodec/codec_id.h index e4eca5d580..e730e5ae4a 100644 --- a/libavcodec/codec_id.h +++ b/libavcodec/codec_id.h @@ -298,6 +298,7 @@ enum AVCodecID { AV_CODEC_ID_PFM, AV_CODEC_ID_MOBICLIP, AV_CODEC_ID_PHOTOCD, + AV_CODEC_ID_ARGO, /* various PCM "codecs" */ AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs diff --git a/libavcodec/version.h b/libavcodec/version.h index 5ce4ba55d9..85b96c8c20 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -28,7 +28,7 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 58 -#define LIBAVCODEC_VERSION_MINOR 106 +#define LIBAVCODEC_VERSION_MINOR 107 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ From patchwork Sun Sep 20 08:07:31 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: 22520 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 DE2AB449516 for ; Sun, 20 Sep 2020 11:07:49 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BFE4068B85B; Sun, 20 Sep 2020 11:07:49 +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 AF51E68B82F for ; Sun, 20 Sep 2020 11:07:43 +0300 (EEST) Date: Sun, 20 Sep 2020 08:07:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zanevaniperen.com; s=protonmail2; t=1600589263; bh=J8nkU+BtCuwVHx9hDxliVT8T/0R1iq8BGI5lhVz6pxQ=; h=Date:To:From:Cc:Reply-To:Subject:From; b=xue18QDeONc2b07x2FKxKHN2HtSKRsKM2EVFqNMVVyTg/qcWjDcv0DjubDfkgJvj/ 43H1TYq9uOLgVN7goOLOohqIXJ9l0GDmo1kHBliJE5dsbnXg8zBnbt4cTyKIF7P8XG vciXE3C8VcKETXy3RUxbMUB8AMqTbAPvvluR7fPdTHeVgV87gmp5EHpnbOphHIWW1n 96aPjM++iwsLmrzU0xmGovdk9DCyD07xsbB0ocjxqAFSyRSspENsmJxaH4t5vdH1aD HrVsc7Izs9MXqLqWL5fepwcfWPW4CBphTj0DLQbostaNVuavLqSaf7jdd6baBa2p3H j/0pkWPl3UIsw== To: ffmpeg-devel@ffmpeg.org From: Zane van Iperen Message-ID: <20200920080528.26200-11-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 10/10] avformat/argo_brp: use AV_CODEC_ID_ARGO 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 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c index 75587b24c0..5c8d6b0851 100644 --- a/libavformat/argo_brp.c +++ b/libavformat/argo_brp.c @@ -196,9 +196,7 @@ static int argo_brp_read_header(AVFormatContext *s) ArgoBVIDHeader *bvid = &hdr->extradata.bvid; st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; - - /* No decoder for this yet. */ - st->codecpar->codec_id = AV_CODEC_ID_NONE; + st->codecpar->codec_id = AV_CODEC_ID_ARGO; bvid->num_frames = AV_RL32(buf + 0); bvid->width = AV_RL32(buf + 4);