From patchwork Fri Dec 7 13:06:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 11331 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 2B98844D1EF for ; Fri, 7 Dec 2018 15:06:40 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7BCEA68A8AD; Fri, 7 Dec 2018 15:06:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it1-f194.google.com (mail-it1-f194.google.com [209.85.166.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 295BA68A730 for ; Fri, 7 Dec 2018 15:06:24 +0200 (EET) Received: by mail-it1-f194.google.com with SMTP id h65so6906195ith.3 for ; Fri, 07 Dec 2018 05:06:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=ieQqpsAH/V6Ie0M2Mv4nMfWixXUBE5WqyJHCoJXz0ek=; b=AzC3AyJaFlKgsNBfgNXhx67ZW87c0xlT0hLDMWF+1tW1P/ieFYjiwn6Ecmn23HxxaX z4VAoQTDosT9qHfTIZDByodSpcdwDGOfoM23IcWiIkterkSPtTUIa7YZ9TcrTIkoob43 ryyjsZRvozJSk8cet4Lg1GdjIxDTOOh1ULRkEjb8VV9QUwQUtHePFJgGtB6sv+hY3Cdj 5zin5RWWjuZ1ljgTGWSg7fV5eXRcGxmw09o5SxM0B4nJIjQUXfDl7KHCZDljzQRkVmve /u9j050YLBNQ23J1pOI5ijvGf9CuGEkHjgWHLtuY6Xm+BcoQ9KjL8mWZiFl2Kg0bHFbv IGIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=ieQqpsAH/V6Ie0M2Mv4nMfWixXUBE5WqyJHCoJXz0ek=; b=bkgI+B/UunZYXVYPKINwp7tYOuybW9VNp+ylJnj416//2kpN6IHiFwyzlU8DwVj+nw j+cPjCDxMfi10Kgqepdg+xNjQwM9uo3ZhGb6ShZqW9kI6OFzjZznf7ua1NIG8X00UN6f 4RxeWGqftSGLeyHGKLslMfiVZbEmf2jX8f9kCggdkYin9hikt66bMderF/S4PnKpgrah MJNtLGIaXZvuCPSL2pQ5DzT7hn2OLIHXILqFQvlFvEbWZtYrQcFLJvnzIZn/b3B5AcQ2 MgbiZX/dO5X4MH6OC3/4FACtTBdQ6lSpJUuM2jpl4rvuz2yKO5DlhenwB5uW0dWivWWo krTQ== X-Gm-Message-State: AA+aEWZ1ScAEIBrYNILw4FWcVn+ZNHCntqHiWyi/bEw+WIt9ipkF/oJt czUvsCB9cobSDX11I2eR9pdVFV6orR6yj0Um50qMyA== X-Google-Smtp-Source: AFSGD/UsH6wbpT4h8+1RAMkMcmXTHMNGWLeoJPQk2J2pIx1PalSrYG2sY6w77e9EL8QkOVR7LD5W6bcKoSYAA50OS1o= X-Received: by 2002:a02:9c53:: with SMTP id h19mr1690537jal.31.1544187992263; Fri, 07 Dec 2018 05:06:32 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a02:5f11:0:0:0:0:0 with HTTP; Fri, 7 Dec 2018 05:06:31 -0800 (PST) In-Reply-To: <20181206142641.3441-1-onemda@gmail.com> References: <20181206142641.3441-1-onemda@gmail.com> From: Carl Eugen Hoyos Date: Fri, 7 Dec 2018 14:06:31 +0100 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH] avcodec/h264_refs: reset MMCO when invalid mmco code is found 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" 2018-12-06 15:26 GMT+01:00, Paul B Mahol : > This recovers state with #7374 linked sample. > > Work funded by Open Broadcast Systems. > > Signed-off-by: Paul B Mahol > --- > libavcodec/h264_refs.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c > index eaf965e43d..5645a203a7 100644 > --- a/libavcodec/h264_refs.c > +++ b/libavcodec/h264_refs.c > @@ -718,6 +718,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h) > } > break; > case MMCO_RESET: > + default: > while (h->short_ref_count) { > remove_short(h, h->short_ref[0]->frame_num, 0); > } > @@ -730,7 +731,6 @@ int ff_h264_execute_ref_pic_marking(H264Context *h) > for (j = 0; j < MAX_DELAYED_PIC_COUNT; j++) > h->last_pocs[j] = INT_MIN; > break; > - default: assert(0); > } > } > Alternative is to avoid an invalid mmco opcode. Carl Eugen diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c index eaf965e..c7e64ec 100644 --- a/libavcodec/h264_refs.c +++ b/libavcodec/h264_refs.c @@ -875,6 +875,7 @@ av_log(logctx, AV_LOG_ERROR, "illegal memory management control operation %d\n", opcode); + mmco[i].opcode = MMCO_RESET; return -1; } if (opcode == MMCO_END)