From patchwork Sun Aug 8 18:38:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 29362 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6c0f:0:0:0:0:0 with SMTP id a15csp2239406ioh; Sun, 8 Aug 2021 11:39:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJywdHTcpXHGrdFO2uyp8Ir1xaoft3eQ8SPLRlGoknGj9BxO4PBiJim6l53ugUkv0MjNy+xN X-Received: by 2002:a17:906:2b10:: with SMTP id a16mr19073165ejg.33.1628447955233; Sun, 08 Aug 2021 11:39:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628447955; cv=none; d=google.com; s=arc-20160816; b=V6NGDZiRNT1vE1EbUR3p0/iVplpIJw0oxWG/ZaxS00f7OT/W2x1BplKZBp64eaXERE RnW9FDVVR6z+snvvvMsSuqCbB7Efe5Zvb8SifFMM3xO6WP/0LUjF9QaYjWldZaFQTBYo du76leNKXIWZ1KI1CGzlKcKjoguh5jr/er/6V4YFNW9qYq74P5TcbIIguQ8py3D0zPNH ECwR/nQAWacFBrOrxaQh9rwsM/bwPgTl1Sj0/ZXAwJR/8cVjrc50WylVYmQGj+75CEBP uTXneiDQZ5Fsqhpk48sjWYlottty+ULjq2E5X5u4+TH8XdBjcXqnZqp8MnQ4bTwpUOQ/ IMSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=hp0fbT0PGQOFuZwFqyjJZM7aDHWd5M/169ZgDVPUHCw=; b=oQ2UZHtf1Qx+6NIQHRpTugJT+Na38TXs/JPGEPRu6ZRzdaXrBRiobOzvv0//w86gVU d+zM972CjrajzIf7SyEDsJSUZ2R4LLFao1x7Pg3MrSL3MX9l0VW+R4firxegL8LxklBb 9ddhIuEgP2zUJCoMEslkwMnBVEv1j8FVC7T2DynTzbFBYfhEFJhnoizDURa+fVmUcuN1 YXV5LnHLymBi953Ab6SzysfFE52qatMpPWqYZMk/4OoSEKRh0le5LirOP53Naul+VMs1 e9xdxSYB3cLYFSi7vE9r7U/zyQU+gNrb1PMLaoj70bRMajiKjDP5K49F9NwnkRmYF/qB tgCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=DPdg4pdp; 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 cn3si3679397edb.298.2021.08.08.11.39.14; Sun, 08 Aug 2021 11:39:15 -0700 (PDT) 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=DPdg4pdp; 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 C9D3E68A242; Sun, 8 Aug 2021 21:39:10 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EAB1B680518 for ; Sun, 8 Aug 2021 21:39:03 +0300 (EEST) Received: by mail-pl1-f174.google.com with SMTP id u16so14047404ple.2 for ; Sun, 08 Aug 2021 11:39:03 -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=Etkgau5GSA7BZeqEbcHtOWfIQ9t5OSuLtH7Uyk9N1gs=; b=DPdg4pdp1vH48m8jEYbNshTL0IWxUBzktamiaBXEdjcrsS91ol9r0UZvW6hY/sEkJK Ets8rC/MlXLnDR93IuXFQVg37mR/lFg1h6irJQzN7BzeEvBawWn+xAGac/sZdlhe+aRR OwG48HwEvvFVDurZk4lj0fz6ssseDWHkTs9IxpFqQCvu2HWiSjH1g6Jq1C7ZkiCxjWOF jKvd+PoqoSG0s5acw5e4pUIlKCKCA72UoIEAZNg2UAlwFFTxPgI3osPLfzLL7rk3aCyP p+gbSAeKOr99OxBA86+8iWQTlQz4taXqIeKfkNrwtBsd5CGDy4/G0Rkp+IaBOkboQWfv Ul/Q== 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=Etkgau5GSA7BZeqEbcHtOWfIQ9t5OSuLtH7Uyk9N1gs=; b=oM4gYYIpDMpEF18enqaIx9kKCBPhOa5N3TlZnd6wH4ocobAqA5ZeCR2gHsd2TCBtdb 4o4aHiVt2u0NM8VMn2mTa1ERIWOi/HKyx5Hgyfhog+53X0WY6SvlXke9r4+rhplXlSV1 OALXYtr4RrAjeys0GehWDWDi3EvH1JOgi3lRA9uIAyZ39+8/kWmIYIQNpSfpQOvKxHWG wtHhdfJagw01Vsrs2COFukxp0c8aWxTfyyRch5V4t5GNg0jvPARDhYLwY6U973YrVCDE 4UoGZoZ99YdgO2Ul41GbnDaUrBXlJrU+yCSVsWczD+/p2U6ATVjel15lhVxzIBW/l6vr pDLQ== X-Gm-Message-State: AOAM533ZL4Blj2sNFpqdemFOnSA62ribG9/PdS30soYpC3zbhw6/TeqA w4s/I8au5q0imjIBw1HLKtLVOhmzQWA= X-Received: by 2002:a05:6a00:1245:b029:30f:2098:fcf4 with SMTP id u5-20020a056a001245b029030f2098fcf4mr20507092pfi.66.1628447941498; Sun, 08 Aug 2021 11:39:01 -0700 (PDT) Received: from localhost.localdomain ([191.84.233.71]) by smtp.gmail.com with ESMTPSA id s23sm11659822pfg.208.2021.08.08.11.39.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Aug 2021 11:39:01 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 8 Aug 2021 15:38:37 -0300 Message-Id: <20210808183837.1485-1-jamrial@gmail.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/h264_slice: clear old slice POC values on parsing failure X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: C1T/Gs5BE2x9 If a slice header fails to parse, and the next one uses different Sequence and Picture parameter sets, certain values may not be read if they are not coded, resulting in the previous slice values being used. Signed-off-by: James Almer --- libavcodec/h264_slice.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 41338fbcb6..a31e804620 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1897,6 +1897,8 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, if (nal->type == H264_NAL_IDR_SLICE) get_ue_golomb_long(&sl->gb); /* idr_pic_id */ + sl->poc_lsb = 0; + sl->delta_poc_bottom = 0; if (sps->poc_type == 0) { sl->poc_lsb = get_bits(&sl->gb, sps->log2_max_poc_lsb); @@ -1904,6 +1906,7 @@ static int h264_slice_header_parse(const H264Context *h, H264SliceContext *sl, sl->delta_poc_bottom = get_se_golomb(&sl->gb); } + sl->delta_poc[0] = sl->delta_poc[1] = 0; if (sps->poc_type == 1 && !sps->delta_pic_order_always_zero_flag) { sl->delta_poc[0] = get_se_golomb(&sl->gb);