From patchwork Fri Aug 14 14:02:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 21660 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 D8F804496B7 for ; Fri, 14 Aug 2020 17:30:38 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A891D68AEE8; Fri, 14 Aug 2020 17:30:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 716616897D6 for ; Fri, 14 Aug 2020 17:30:32 +0300 (EEST) Received: by mail-qt1-f193.google.com with SMTP id s16so7022693qtn.7 for ; Fri, 14 Aug 2020 07:30:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=XVEKEXzbXfIO3oaKTe5ZpUhdHTR6dTobH+ULTvT9Gf0=; b=O7oHP7T4LLXgIR6/Tr6PPwtpgzgiGaPdG8Oy+qMch3wPJoF9bQh7MFE4BwPStoPYtU QUdYHe0ULINyblmDGnmPiqhlRU6lP1LC0TS+rqqSvOXJ8eQe7hllY0WVAclB/p8YbimA ODGmxENR2c8YNjJ8dWZGjcC5WyzTJlY1xN+7kiJPtEpzwfvyS2NAiA49RI/UBhmMMddV MxmbxKiHxsMXeUymCjhcn7jzVS5nmZx4ocgeuYaXh2FtATYQc1/DpsMLubxbw49C0/lI bRGIbKOKh1lnf6uHlSKNh+N++Ipe4QJY9RAOlTtfvK5zzGANpFZYgTUXu1P9SpcxklMc EwJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=XVEKEXzbXfIO3oaKTe5ZpUhdHTR6dTobH+ULTvT9Gf0=; b=pRlfoOm+FuaxxpmUdGh73wk3jo5WCG+xIETh8INshxiI/nuRLg2RTQYfeWV/phwKbn Dxl24UaBFbaXmi/Vwz69wJMZtVIPKzP7fbR3Kg5WThI7hp5MkXKnZHtvjMn7s7CpAGyF aGGJSqbPYTMljfCzoThPTqEZxonyBvMcQo+OyF44O1tHo6Pa6PNX1fZYqTmY9l93/j+X 6kGM6P7n7K8p7mYLUlezS8A+4FcSgJfLKSZQCXVwKhiSVyT3k2BfN2onydkH6URDv7sy wkoTFaUzav4SWfmBo+f0bu9FgSujGHoykUtaR/XVOy+Kcoa2tVxIe1UOyeEs3wX8b4nu cuWg== X-Gm-Message-State: AOAM533sTA7HpkWgdi9mHzoqvbhLll7ScsDEL9vtsgNc2vWytEfnmDwx TIMeK0VZHRXWeYime5qK3sU2OuzyAUw= X-Google-Smtp-Source: ABdhPJzj15xerte/fLZLoBkYwF5VcCHJIRcAfq/DD9kPp7iQiLZIivR8WnJBxu8BD+6eO1u9hdPzAw== X-Received: by 2002:ac8:4cc2:: with SMTP id l2mr2128744qtv.130.1597413788324; Fri, 14 Aug 2020 07:03:08 -0700 (PDT) Received: from localhost.localdomain ([181.23.66.204]) by smtp.gmail.com with ESMTPSA id q126sm8433972qkb.75.2020.08.14.07.03.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 07:03:07 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 14 Aug 2020 11:02:44 -0300 Message-Id: <20200814140244.2292-1-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/av1dec: inline obu_read_data() and obu_prefetch() into obu_get_packet() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" They don't really help making the demuxer more readable. Signed-off-by: James Almer --- libavformat/av1dec.c | 56 +++++++++++++++++--------------------------- 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c index 0693e40ac1..c06f5303f5 100644 --- a/libavformat/av1dec.c +++ b/libavformat/av1dec.c @@ -382,60 +382,46 @@ static int obu_read_header(AVFormatContext *s) return read_header(s, &c->framerate, &c->bsf, c); } -static int obu_prefetch(AVFormatContext *s, uint8_t* dest) +static int obu_get_packet(AVFormatContext *s, AVPacket *pkt) { ObuContext *c = s->priv_data; + uint8_t header[MAX_OBU_HEADER_SIZE]; + int64_t obu_size; int size = av_fifo_space(c->fifo); + int ret, len, type; + av_fifo_generic_write(c->fifo, s->pb, size, (int (*)(void*, void*, int))avio_read); size = av_fifo_size(c->fifo); - if (size > 0) { - av_fifo_generic_peek(c->fifo, dest, size, NULL); + if (!size) + return 0; + + av_fifo_generic_peek(c->fifo, header, size, NULL); + + len = read_obu_with_size(header, size, &obu_size, &type); + if (len < 0) { + av_log(c, AV_LOG_ERROR, "Failed to read obu\n"); + return len; } - return size; -} -static int obu_read_data(AVFormatContext *s, AVPacket *pkt, int len) -{ - int size, left; - ObuContext *c = s->priv_data; - int ret = av_new_packet(pkt, len); + ret = av_new_packet(pkt, len); if (ret < 0) { av_log(c, AV_LOG_ERROR, "Failed to allocate packet for obu\n"); return ret; } - size = FFMIN(av_fifo_size(c->fifo), len); + size = FFMIN(size, len); av_fifo_generic_read(c->fifo, pkt->data, size, NULL); - left = len - size; - if (left > 0) { - ret = avio_read(s->pb, pkt->data + size, left); - if (ret != left) { - av_log(c, AV_LOG_ERROR, "Failed to read %d frome file\n", left); + len -= size; + if (len > 0) { + ret = avio_read(s->pb, pkt->data + size, len); + if (ret != len) { + av_log(c, AV_LOG_ERROR, "Failed to read %d frome file\n", len); return ret < 0 ? ret : AVERROR_INVALIDDATA; } } return 0; } -static int obu_get_packet(AVFormatContext *s, AVPacket *pkt) -{ - ObuContext *c = s->priv_data; - int64_t obu_size; - int ret, type; - uint8_t header[MAX_OBU_HEADER_SIZE]; - - ret = obu_prefetch(s, header); - if (!ret) - return 0; - - ret = read_obu_with_size(header, ret, &obu_size, &type); - if (ret < 0) { - av_log(c, AV_LOG_ERROR, "Failed to read obu\n"); - return ret; - } - return obu_read_data(s, pkt, ret); -} - static int obu_read_packet(AVFormatContext *s, AVPacket *pkt) { ObuContext *c = s->priv_data;