From patchwork Mon Dec 7 12:55:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linjie Fu X-Patchwork-Id: 24405 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:c00a:0:0:0:0:0 with SMTP id c10csp2592164ybf; Mon, 7 Dec 2020 05:20:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJwaceJNTqa7Xh9jEyLvwKEPvbwkSNNVTdr3++ci6t8uwOZms1vnGnAo8oJ2ytnZTzOTQOKm X-Received: by 2002:a5d:4ccd:: with SMTP id c13mr19833042wrt.254.1607347214426; Mon, 07 Dec 2020 05:20:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607347214; cv=none; d=google.com; s=arc-20160816; b=RTpYPXy2LaKinq93e7ciGCc7vNefwjy3OE1HurHwxpOt9vwJeYkTbDrMIOF/g9lUBX RsXUhc4WSLl956gzHNKPCCYWZkF9/Zb/ZoCKDF4AQt4iBaom6tvhktbeTc1GqLceNdok Mcy/GZaujPDY1WKzHcCU0K4srvGGG0Twaw6v6SY4U4btwNrEweQv65p9mWjmmqRtqqBg SCAScpY5O66Rjo82nsDUtKN+ZdhTg9WEyOn1lsyGpRvnPF78Aezdg0cN+Ss9BBoMVO/J XHh86EPCvQzCrYJBEShh9isUU9Q/gBuTHbC39Z6lvJjqwIUK0qDg7meoD5fG084LiPQz 1c5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=sD1dIPlXNlIw0ugqZCIMRGxmTqIg/Tj6qdyEeEZf5AQ=; b=t12Oz8ABpS6nL1mQ+6e3GG+uZnNy3oxYwDslEQYBb3lA1+RLReUR/h4K5T2ZvY2KJd 4b8qJMtqzeU3AsIf1w9o0ZFw5GwhpW5hW8sPIjn0Ca1wmbU4yfxNDzYQrlnLnuknJljU jBVmctcyvDPHeuICFfCfG8fDaYjHs3p4R69rQW4AqQubCLZq+9RF/rH7fhxVz+Cn7Aa7 oxaScONzUwBNPzWMRmlWodjUuzu7cy0tNzZXxS2pPhZNtClvL3qEJ+3DfpXDXHvePQb7 KYJT7vtJ5V1kOfoy6GjqGJQBDXCaOfTKZN1x1qWpojpPCQHfZgicwVI7hpHRc6JE45jD O7SA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b="MN/AoRX+"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c137si10925353wme.86.2020.12.07.05.20.14; Mon, 07 Dec 2020 05:20:14 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b="MN/AoRX+"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DB28468A1BC; Mon, 7 Dec 2020 15:20:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7B7E568A1BC for ; Mon, 7 Dec 2020 15:20:03 +0200 (EET) Received: by mail-qt1-f195.google.com with SMTP id l7so9271583qtp.8 for ; Mon, 07 Dec 2020 05:20:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AiKxfnmafTxf/imtYn1fAg/com/kSXVjcLw8S6VITmI=; b=MN/AoRX++Sws7Tpas4wyT5DKbhsDmhWFvOWMvBWs7t6Exi0glprAAnWOlT5mLbnqA2 V998xhFG69qi1bC34bQGh/5z5HxmqlF931wMT7TTXpXR87xEVvESYKRIEA7DOiOARP4h 0yvS4KI1dxOFHjzpQZ9HmnoTNtqWVvW4Tdsxeo6wHc28SGhZZKluLooe1jxjqUGLKauY YL5mz/LCXkXC92eM0a3iW2qC4uIE9Advwp+14rhqQDH+Kjh/CFdGTURB4ZYQUzsLEU/I m70Z77g5anVVFQv+KM6JNqF4RLK5uzyufIGSUzEco9Jbj2b7zWCkkF/Gb4EjkMaKFlCv /GoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AiKxfnmafTxf/imtYn1fAg/com/kSXVjcLw8S6VITmI=; b=C04CHJaNSQ6FeeZd4dXFWyrrxD6MQzZ8S3VcTXeJtqEf1+xCXdWrSs125+3yEr0ISw hrHEFpCvEFR9lNjACGKds8cVNlaplLQzLBB9YwUT+jg0y9RAwpN0kvEVITsRFAxmwbcL JM41tWR83KvBhI6p9fX5Nyg1/e8hnvwcrCzhnT4woC6IIEd7QDHg22s4hJ3yqSplrrKj wK/VekTg5sGBMN0GtonM05Lh5cFw1Q+XteaYgHV9Wv4KyHZ3xRqNXgZL0tGCn4lfHime k0o7cN5YkO6QrARtZD7xIpaJHbF6CFE8+ejgAa6VALRBo88GtmuVS4MFMgNKxPQ1TITr tUVA== X-Gm-Message-State: AOAM531vHHojpvOEgNvf10631tpmYQHOu48a35I0woRJ1XEi3Jx1GRuQ ZxqIwHVP5z+xZcKbamOUs3nDSgDgr5LD5w== X-Received: by 2002:ac8:4a92:: with SMTP id l18mr24303709qtq.212.1607345786949; Mon, 07 Dec 2020 04:56:26 -0800 (PST) Received: from ip-172-31-39-116.us-east-2.compute.internal (ec2-52-14-134-25.us-east-2.compute.amazonaws.com. [52.14.134.25]) by smtp.gmail.com with ESMTPSA id w15sm1638489qta.95.2020.12.07.04.56.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Dec 2020 04:56:26 -0800 (PST) From: Linjie Fu To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Dec 2020 12:55:42 +0000 Message-Id: <20201207125545.621159-6-linjie.justin.fu@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201207125545.621159-1-linjie.justin.fu@gmail.com> References: <20201207125545.621159-1-linjie.justin.fu@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 5/8] lavc/hevcdec: Fix the parsing for use_integer_mv_flag 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: Linjie Fu , Linjie Fu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: TqYsGdj/Wc9D Content-Length: 2456 From: Linjie Fu According to 7.3.6.1, use_integer_mv_flag should be parsed if motion_vector_resolution_control_idc equals to 2. Otherwise wrong parameters in the subsequent parsing procedures would be got. Signed-off-by: Linjie Fu --- libavcodec/hevcdec.c | 8 ++++++++ libavcodec/hevcdec.h | 1 + 2 files changed, 9 insertions(+) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 7074a0760a..6a029b270e 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -808,6 +808,14 @@ static int hls_slice_header(HEVCContext *s) sh->max_num_merge_cand); return AVERROR_INVALIDDATA; } + + // Syntax in 7.3.6.1 + if (s->ps.sps->motion_vector_resolution_control_idc == 2) + sh->use_integer_mv_flag = get_bits1(gb); + else + // Inferred to be equal to motion_vector_resolution_control_idc if not present + sh->use_integer_mv_flag = s->ps.sps->motion_vector_resolution_control_idc; + } sh->slice_qp_delta = get_se_golomb(gb); diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index 6e22e044dd..1164af2862 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -302,6 +302,7 @@ typedef struct SliceHeader { int tc_offset; ///< tc_offset_div2 * 2 unsigned int max_num_merge_cand; ///< 5 - 5_minus_max_num_merge_cand + uint8_t use_integer_mv_flag; unsigned *entry_point_offset; int * offset;