From patchwork Tue Jan 4 09:08:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Qian X-Patchwork-Id: 33048 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16811645iog; Tue, 4 Jan 2022 01:09:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJynWpsRdl3kjtFczZAgVLiFjgmX+VOlYLr+Hz7oUHEAJtOJTNBPu8fW+gFOYLr2d3c0Jy82 X-Received: by 2002:a17:906:82c4:: with SMTP id a4mr40001384ejy.23.1641287359967; Tue, 04 Jan 2022 01:09:19 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id di3si20216450ejc.338.2022.01.04.01.09.19; Tue, 04 Jan 2022 01:09:19 -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=@nxp.com header.s=selector2 header.b=aEW2JKbq; arc=fail (body hash mismatch); 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=NONE dis=NONE) header.from=nxp.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D498368B1EA; Tue, 4 Jan 2022 11:09:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70049.outbound.protection.outlook.com [40.107.7.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7581268B254 for ; Tue, 4 Jan 2022 11:09:10 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DJlPzJ2PrzHMuKwQMSsQdzRyIulrwFHxpt18+o0WdB5G7g3yxANiGUHKesdcSXttvDZepS488XPtCPVpFZ7TGptCOP15BmCr4Q4d5fFIoUXjQUlGh2TCU+0QjPc8hrgXfnor/THjh3fI+lmzmLsWvb5a6h2eJ5pyxCv+5emBoDyiHkB5UdVZQzcMe6791FjwBnYWHUEH/U5fOG6GFkoVynXKuavTslKdQp15N/ZrmkQdoevRRGDU8DJljwXeFr8suNtUlyDQOOTEWOaL47nO2ASdlcgQgJ5exVbPoL8nCBb6iKRTUOJdLk2t9LUDItPDwzcIIsGb+FY+QLllAMLtfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+3JGJBlEzBxMYLlf703eW0079HXvyFubo/KjShH/VaY=; b=mCcWeUGv/C4WlyecIK6e8yjCdNlWdmXgJZHAWVOFXpfM9s5filS6C2zdzLQBmG7NBDNfTlxiUHTQeT/NJ/UundeDqrSrJ0Y6tuchINRS9rzr8Utze/OWZp6TPZY0NGKADd4WKXf9OELXQ1Qkl1xRXjGl9HUptw6WDSzg2F+dIll2id1aWI+1r/4/ErPb/hOISUZ3oTab4f11mump7p0CAuzRx2b0jq5q/Wz7iEUJVhbKTUxV7hsn0TkkFVzil8RBwxmmfjpx25+agFEHSSG5IF34BEeAgsgM5ys0Yi68MvY5o5dCOXqsZh5kElzjcxTlx3cnv3E4wX8+AyT+SsC7qg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+3JGJBlEzBxMYLlf703eW0079HXvyFubo/KjShH/VaY=; b=aEW2JKbq5aMlZSrUh6GKFGm/nTq9LNR7jR3N1OT+Ydl0D+sUhx0LuaruuPwLMiTgmoCaA4HesRRE+tnbDe2pw6D2kY91dhTXscEHTa+cFnqLjRi8QhahYrrM552OMBATctTplQYdgSeJ02lah7fzzqT5Chh7xckpLuBZxqfhXGU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) by AS8PR04MB7640.eurprd04.prod.outlook.com (2603:10a6:20b:297::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Tue, 4 Jan 2022 09:09:09 +0000 Received: from AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2]) by AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2%4]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:09:09 +0000 From: Ming Qian To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jan 2022 17:08:30 +0800 Message-Id: <20220104090836.31660-1-ming.qian@nxp.com> X-Mailer: git-send-email 2.33.0 X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::13) To AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5d95654a-b873-4247-1abc-08d9cf61dd8f X-MS-TrafficTypeDiagnostic: AS8PR04MB7640:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1850; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KlFMfce6ReCB+07irp9t5SIOP1P/BtFW1+VH0i4NrzznvH+5sjGyzD1cLVl5HdwDCwQWRldkkNq+WsN4sdE8jVdfwXLMKB00moXEb5KL5ldCweHBsfKIi2m66TGIzwj9dOHzuSeLKla0b0bRGFDYU0hJJxJYpw7abcyCaQmUuw+LpIuipDqE5xU7inLlaovwf/LS4VZ7600YO6trfGbdj88XhNNdpE55jH+Gn0NMSGeJgPqWgVuf4cljQZesd+vVs089GCwX0+VVX2qjudRbwNGGoFwQ3Zl7zj9EHblEoMvi12kd48rym9eP7xu3Wd0UN6yjD6tJbIN7RaMuNJ2fqT4yv8Bt8MU40zAGxxDv+ZdaGTDkvVR9vX+sOuIVVHuAmcS08Pp0tci6BpK8Ul85C7kET7sP0Pmh3n1SWvWD8T2EVC/jPH8MOm88nWqudNbTpinDBgF2dfBKHi9JBuQHDY7zY6qz3KR2v8iAaILzFPrqOz1Lz5mUAxb9QEIiwzT6HjZh6kwMATmVx0LhXRSh4RZ90E95E1VLUPMacsA/J4CYrnDL7hx5ffYf4WIsi+aRD7uLZuUjwqkWqIHMGOvi9PKcqu5oSvMc9h1KTZLp8Tdg6X3INbJTDJ1ANaL2mys/VyLEkM3K7n79e6BmCBlOMIdNcsMjE7zciZCWMN6L7V5D5wcRCXPdWxQMHokvhZrOAVmaX06jrHyqcL4OeoKTZg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6341.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(52116002)(6506007)(186003)(66556008)(26005)(508600001)(6666004)(66946007)(66476007)(2906002)(38100700002)(8936002)(2616005)(5660300002)(36756003)(316002)(6512007)(44832011)(6916009)(38350700002)(83380400001)(8676002)(6486002)(86362001)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: D14aF76KqoVkXf0LG36PBqbPURigQZ+E0vQu5zdUR6kDXK2JJgywI7ui2L8GJoOQac1j10N+P3Pinm/yXF4sFHDJxBnCg7OZ0b2dBUX8H8LezzlHVwA0NWaypRw0KlizbM/Jr9azTsjspYBq7lq7dnlcjb5ARNVYUxuZ9JGAOZLmyhBCgxl0YDi7yxgXDevhNQpcHfIdWM4YDfFrTMr0i4Z8TiIepMDpxxYSTnf4TkZCaj48yRSDCTCpHGw1I7qsjSxCSS/RX+AiZyaFennXrov0Zb9qkbU7GU6eHpFmAdKgVEkHW83eDjoyi4VcaTCNk+yoslD2zzwHEx7+Zq9aJda7YtlVT7AqyCf0nrQkONCOBOwzXDBQjQzb9jxasBwu1CK511a67Z9tX2fj6u12MbOG/4KOLxzH2IsxPGQq6RJtYMAswMUXi3vaKqjJ4/RCiK3hPWf5spd4Uw44wMcgc01dg98IOEccvi8MWuRnQnYn8Yu9ISnVALsvZs4wkUut6GWOxFxzBQG3ECT0BcigWpmD/qwjZGhbIfnnzBYEkkk6S7+vJG/J0m9ikZ2syN14QL5pLxJCR5QnOpAfn3jETM2XOfk4Aaupbu1NtUApgDkonOpGlS3xEyeY3GQFWYv+aOCe0zXJ8RmaBlcOMqDaw2h1KwBxsFbFvqMQz3NlXCmwFOD7J2k/W0pfkTIXBuMo3bQeNX7dKYcwMzsvr51txlYsn1DaA6zqt5VPUfVpggs8p+EeWi/bitRLuyAwpmWLSIk3mqUl+iWVxWwK8dvP++3gRNaCu4p4L3jToGzC/9Dk27xDIqFyK5JBO2CGYoMenThi3LKFhfjbeblt3iYbfvYXz15koSQKT4IOEa7ut/5ElufZiSnIXR3UBuU8FhCT6Tf3VOywbzjPD3Y4BA5ea7F7oythZeLTPrrruNEfFsTz5Z/Vx1Jsd8oJM1JtheUmcs6v+ei7Twyoih1u+6YbOO/Br3xtucvaMp6/3FfXxeBOvTsbUggDCSm2XjsjoUewsljg+YBF8PQ/Ek3tFdT0KwuCJbKYqmQLSAOdU527iYhBjXxfdiv2viSMrpNr9ehJ2YbgWTuSW0Wl1z/g46yumgcs6lL3ry8iFg0y3NNB2Q0PdQdy7Eozvu0GoO1l4hf8nML1rZxJ0UD4X7k1TCRe/GRKpjDnhaCjm8DYJdbl7lXM9g+NK1vyTSeYI5ZDRZvZcLORJT2X2ISl4RNoaZJOe/14WzTig2SGY8wqc9bdBgL4Ljx2AehRpSjV5tIlDjFJUv/fGosOksHgNZ9esl/yvhOFDeHgtxdMWp/PKwmn2g8nwECfNk3AN/lHyoXacgv7T8JhmiEoU64NxEkkBWJe80tEDQZZ8640G588m/YQbnlugTgKmAcmbheOdmJUlyMM3Pc3L12cR5rj6cDsg3oD+BypWm4JWWYXNbBlEVNOPvWSX9jSorNir9NWJgfNKauRoFH+zjyyyho5FcRd2lETJTOJjB6Qt3ZJBsJvy7UXFFwvsY80LYwwZHaFQXUKVeNfPpyddA0fb6eVzdBl0R75biehrQ6p+7Z9+inrCn5EBLOx8nHBY33ZLlEy4U8ydEF6Odo/gtLC3N4k3kertB/vQZi/1hfw8M6v7JR1cZWGNKs= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d95654a-b873-4247-1abc-08d9cf61dd8f X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6341.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:09:08.9462 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sLA0kJBiLOrUN3Ro2jfr/Y3fjBEvH/ps7Ru+zQhp2Q4IUc2CZEDARfqAS0mJKm+OkGwxcaTVqSBy2UPeUa2PKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7640 Subject: [FFmpeg-devel] [PATCH v5 1/7] avcodec/v4l2_context: don't reinit output queue when dynamic resolution change 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: j+D7gPW+iOhD in the v4l2 stateful video document, we can see the following description: During the resolution change sequence, the OUTPUT queue must remain streaming. Calling VIDIOC_STREAMOFF() on the OUTPUT queue would abort the sequence and initiate a seek. In principle, the OUTPUT queue operates separately from the CAPTURE queue and this remains true for the duration of the entire resolution change sequence as well. so don't reinit the output queue when handling the resolution change event Signed-off-by: Ming Qian --- libavcodec/v4l2_context.c | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index ff1ea8e57b08..dda5157698c3 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -162,9 +162,8 @@ static int v4l2_handle_event(V4L2Context *ctx) { V4L2m2mContext *s = ctx_to_m2mctx(ctx); struct v4l2_format cap_fmt = s->capture.format; - struct v4l2_format out_fmt = s->output.format; struct v4l2_event evt = { 0 }; - int full_reinit, reinit, ret; + int reinit, ret; ret = ioctl(s->fd, VIDIOC_DQEVENT, &evt); if (ret < 0) { @@ -180,25 +179,12 @@ static int v4l2_handle_event(V4L2Context *ctx) if (evt.type != V4L2_EVENT_SOURCE_CHANGE) return 0; - ret = ioctl(s->fd, VIDIOC_G_FMT, &out_fmt); - if (ret) { - av_log(logger(ctx), AV_LOG_ERROR, "%s VIDIOC_G_FMT\n", s->output.name); - return 0; - } - ret = ioctl(s->fd, VIDIOC_G_FMT, &cap_fmt); if (ret) { av_log(logger(ctx), AV_LOG_ERROR, "%s VIDIOC_G_FMT\n", s->capture.name); return 0; } - full_reinit = v4l2_resolution_changed(&s->output, &out_fmt); - if (full_reinit) { - s->output.height = v4l2_get_height(&out_fmt); - s->output.width = v4l2_get_width(&out_fmt); - s->output.sample_aspect_ratio = v4l2_get_sar(&s->output); - } - reinit = v4l2_resolution_changed(&s->capture, &cap_fmt); if (reinit) { s->capture.height = v4l2_get_height(&cap_fmt); @@ -206,18 +192,9 @@ static int v4l2_handle_event(V4L2Context *ctx) s->capture.sample_aspect_ratio = v4l2_get_sar(&s->capture); } - if (full_reinit || reinit) + if (reinit) s->reinit = 1; - if (full_reinit) { - ret = ff_v4l2_m2m_codec_full_reinit(s); - if (ret) { - av_log(logger(ctx), AV_LOG_ERROR, "v4l2_m2m_codec_full_reinit\n"); - return AVERROR(EINVAL); - } - goto reinit_run; - } - if (reinit) { if (s->avctx) ret = ff_set_dimensions(s->avctx, s->capture.width, s->capture.height); From patchwork Tue Jan 4 09:08:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Qian X-Patchwork-Id: 33049 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16811711iog; Tue, 4 Jan 2022 01:09:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJyoJ6kc//s9laMuKywNqzuhRocSxCLXvShNoE8I2kM4NmcM2JhKKAzOizgiQDi0iiH3yIgJ X-Received: by 2002:a17:906:ce2c:: with SMTP id sd12mr32729261ejb.721.1641287369764; Tue, 04 Jan 2022 01:09:29 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m16si18024662edq.27.2022.01.04.01.09.29; Tue, 04 Jan 2022 01:09:29 -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=@nxp.com header.s=selector2 header.b=CcWW9wSQ; arc=fail (body hash mismatch); 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=NONE dis=NONE) header.from=nxp.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E65DB68B262; Tue, 4 Jan 2022 11:09:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DA01068B257 for ; Tue, 4 Jan 2022 11:09:12 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C4XHir6sVsQPCOZnSn8ZLgESRZXFJkr8/biC/BkAhajbqfb/HaGNjEBpkISzJdPtGnrd4tnwIqj5ANw2dBFWypz15mdev6PaPcHF2rxxKX7HQcT3E6ZHb+Wh80rEqPbbFKK6kte+YCMAZbBOkaAuZwxgi65xBv+cxQqw46HxA4+oBcRoOndOgQmk7OizGxS0uGrgsaYGlgkQ50BVnphy401ROOAXJ0IShlYixn9nvVsirLyvmG9qGEU3DbJC0gaKntdVcRMO7wrUB8/Ek5R3vyRepqGh/8usrhyuqjUc2D/sgVkB4pLImtuOafoA0eNHW9juvH8Ym5Fp5bE8mBZo4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jYitRR3Qtt3FUnZW5VoxA1gVvi2GNXe9vxy86mktsj4=; b=TC1lqxaRbP2FtP3sVO3gQELLzEIOelpb3R0aPcuROP3HlsPSP3GOVXFlZ3aBAaeZST4ac9e2dTYl7PY7d1I6yXvSt4Ue6TnMuM8sTHdLIobHxTSu76MmV6KcGozVQ1ERpOH2MFQxWGG6YsnPYd7OeQdcmyzGsho0V/4dYNBLtdtYRdEOdroVqHNAsa3iwNO7uyKwtGNDwVOegXVJl8g3QcBGg8NjgpOcjLUDcf5FjU9MCRBmqsTS318Hoi7ywy98oviA1S3YvsXDC41XQR4ldqbCutm4NBw6DDYGbeGJKwSggIf3VB/274zks6cuNcRe8eMLIUOvkahWaSvc0xZnCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jYitRR3Qtt3FUnZW5VoxA1gVvi2GNXe9vxy86mktsj4=; b=CcWW9wSQomwT4y2/mauviiVKXdUn6AL6sewLL9UQb16AMTqztONbyDhmVzYcdeS3x6GmA9tiGWL7K4mvJb+0Qz6TlgmtxZgvLx1B6b4VNTsWvcUq1qD58RtMOEeqHjkkNMFg5xlC+sa+4PKkOqTNnaLXYrs6G9boAbj530g1NeI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) by AM5PR0401MB2435.eurprd04.prod.outlook.com (2603:10a6:203:36::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Tue, 4 Jan 2022 09:09:10 +0000 Received: from AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2]) by AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2%4]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:09:10 +0000 From: Ming Qian To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jan 2022 17:08:31 +0800 Message-Id: <20220104090836.31660-2-ming.qian@nxp.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220104090836.31660-1-ming.qian@nxp.com> References: <20220104090836.31660-1-ming.qian@nxp.com> X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::13) To AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 57561aca-fd06-4b6a-d22e-08d9cf61de6c X-MS-TrafficTypeDiagnostic: AM5PR0401MB2435:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:747; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: h4pXenZw5SaMsrPl1tFcPawpO5lI7VBIkpfimt2z0L+6W0UVrEAt8WHdmGXBMcZq7fHzew/O8AwiYOxc7vWEvDBJwtTVyQpkK4UVefhAnZGwM6t23l1L8qERB4y3+3Njz1RSQTtCB76c/FydjXhc3RSBp14C/cldThtQRcBYjVn+27Eu1pCbSNBxT/hsKU0+BJle11XPbmJ2otldK0L2/SiGSF0h3m8M7+OnQ+zq2c6pI3INWTwJAxzS5S4z/3qQ4JXYMC7/cVNKn6BuiyAUiV3KuP0x7OsAnzkMn0UGmEVioocQcKr7DoOhSbFKBq5zpoQJh4ZC8kmV5rVIvC6tqYi086+5Qk4BAg8xVehDFTB1C+d0mFplYjJCq8gf5BSpct/yTIKpYB80euOwBchI7wr/wWXNjz0N3UZ5WgSc+gAawuuuTrgnpj58ximaQAmgGy1ztSnVDUMZOExFUfeVgK8uALxEJKxgGWma6t8cGddRvtqpqPQGi2OsIrBCytg4W8RlWA66RWe5kwfpikrYW8QnYoSl+cJsrViePgHY4+oSZ5yBW2NqNhCHujqQAE50bkLWuu4eKZlaF/KCnvhJOcRKCvVe57sutmWGEjTaMTXQsuE+N1h60VVN+f52iP+8Le6bC4hVZkS2P6N4VaDiBeOMmLbMBpHTMEaGMWavg7v0vAGVNxZkSCJ7t2M+e1BkuX7TH8IV5aweZzafMBXliX7rsuB1JlSuWznHPnOD55F65YJeGps9KPJuK5x8aV3e X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6341.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(26005)(36756003)(5660300002)(6506007)(83380400001)(38350700002)(38100700002)(52116002)(186003)(6916009)(316002)(66556008)(508600001)(66476007)(66946007)(86362001)(1076003)(6666004)(8936002)(8676002)(6486002)(44832011)(6512007)(2906002)(2616005)(70780200001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sqKXi/gP33iJHR+1q3CyPXOiaQmeB58lK7EHPj0KRlOSTLxwWU6F2PsHQn9uKyHNLBi3k1Gp54dSdOCOqtWu6uOOgQul4X9lCXzDPA4cmkG4UNO7nVHm21eGLQ8SSnwkHgmTjmHCcQBg1/PWojlDNUpyHcEohRVZK1nvE5pTe0Cbu6SNNOo2YPo4PpmQcwxPk66MVYRcLj3eeu1zVIDwCrRI1E/ckcPl4LnDTPpDWgfH6dmjrc3+RnS0YrBidvc2hQwuY9fA5uqu7jxNmdjqQNX4W37+pAdkzGZZCDwRCP6m7E+ZLh77HapzbQNd52PsAzznnS85NCe9IE5V9aNlYIOQNo0LhcxQmGBwpPR/rRl/vYEou0+i3SoktgVb1NozM7cMZc7+vWETNQcRFXtL3u2QpmBGtbEz8ArfO1RF6mUXO3/HSXKdQocPEB7GPpZaGwxgt8G55mmhww9XGmhSDswkyOS5gBr007pHeB2/7eKKPDl2fLTkuMnSnQDlX5xVWFzbSjauYp1VMjETjH1eM80GqN+bLOq18oSfKMIw7/jJOdiVldoi3VijwwxgMnI10CiWdqycHKqqJbVJsmBU/QwYIXsCiRrIysbEm51dBdBp/qFauYu5Tu15oopBuxUJLBWnijAClh7KmBhFomKAxQNuN65GyopQXqCmNj4hNnqhDGkiN6tDm54llxfTpnmvNFTgFmrwHRzKQRKQE+kEkJE8z+2+fiO72gzVSi+k340EM9l4Xl2/y6SC2s2PQXUT093504hgRxoL2kaSonajocqrapMKSSq3oJCoknNn8rl4oYZyCPtQl/wuR2AFrlPAmmo2G/yCV2ZbAl5OsUyLXvyNqF4sca4tvytfwLQw2Jl2b9pk+WmhSyT6Cp3AHRefrLx/BDrkWKylHXh39kvmiqWyUMUMtyJ/Hi0ipbzF4eXUgKJYrJaBl26ezv+b5x0GhZPS3aFJOJ3rVm7EHI6johfgauOkP253xWbDQuxUUqLjz/+9szMsmRKbeTGxhgjJ5an+qqfqOybjv96pfLDyy4oLoy6P7JwY18ot1ddOOTV8dTUr+AEjBllqJnnB4MqHtnztYsSvaWFNr2t0JqN1qOteKG4FXgXCg3zdqJY9qL6B9rXiy0DOchr2ajkONdVhRJ3DNTs5CkssVMa22YuL8V0kuqz/oAR6oWelxrX4I9Gho9AfpBwR530onYnN4ezdRKutwGzgybw4HcGFdEqc0dbqTlYQ6fO4TSfVrKNDhgG8BgXJh8bygbm3/82HriYRrS2E6VIiy8AkRjwnNKbPJS8Vbum8rCYdjT+h9USvRNRlJZ0GvfvfgY+lO8YMUym90OjA3IQzfeMkDDQkvvXqrkrVEfYF7BZhM49wAz+ZPN/x5VyZ0EPLShLsmf3og31+LtsbkPlYqRyL0gVqWzIA3z0xatwp2w7A8BagWDBJ8Z1bS7kwufGbK136Y4txTeF8Xjvy/3q4e8RPochyiEzKi0n2QfVYHmFmhBdLsZLH5WcfoNAXBvdDEq0TS1D+hsmeBPJp36yCret9fxIPEade0w58UIWtHB11IbpYjtZzhGcNNmdOn1jQPBjqf/4L9b5qXp8t91vIYAm9U4DLZDUp9DCmrCHGpDAk7IEND3KStbQ= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57561aca-fd06-4b6a-d22e-08d9cf61de6c X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6341.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:09:10.2586 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UJteQo3gxbs1AuO9/bW5mf/dgDK47dUPjoobJKtaxGkJA5cfn/LL0d6LqsOjl9DyvOA7n8Z/weG130WcbYVNKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2435 Subject: [FFmpeg-devel] [PATCH v5 2/7] avcodec/v4l2_m2m: remove ff_v4l2_m2m_codec_full_reinit 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: Jo+CAQhHigJs ff_v4l2_m2m_codec_full_reinit is not used any more, so remove it. Signed-off-by: Ming Qian --- libavcodec/v4l2_m2m.c | 76 ------------------------------------------- libavcodec/v4l2_m2m.h | 10 ------ 2 files changed, 86 deletions(-) diff --git a/libavcodec/v4l2_m2m.c b/libavcodec/v4l2_m2m.c index cdfd579810f2..a0ee5a201360 100644 --- a/libavcodec/v4l2_m2m.c +++ b/libavcodec/v4l2_m2m.c @@ -245,82 +245,6 @@ int ff_v4l2_m2m_codec_reinit(V4L2m2mContext *s) return 0; } -int ff_v4l2_m2m_codec_full_reinit(V4L2m2mContext *s) -{ - void *log_ctx = s->avctx; - int ret; - - av_log(log_ctx, AV_LOG_DEBUG, "%s full reinit\n", s->devname); - - /* wait for pending buffer references */ - if (atomic_load(&s->refcount)) - while(sem_wait(&s->refsync) == -1 && errno == EINTR); - - ret = ff_v4l2_context_set_status(&s->output, VIDIOC_STREAMOFF); - if (ret) { - av_log(log_ctx, AV_LOG_ERROR, "output VIDIOC_STREAMOFF\n"); - goto error; - } - - ret = ff_v4l2_context_set_status(&s->capture, VIDIOC_STREAMOFF); - if (ret) { - av_log(log_ctx, AV_LOG_ERROR, "capture VIDIOC_STREAMOFF\n"); - goto error; - } - - /* release and unmmap the buffers */ - ff_v4l2_context_release(&s->output); - ff_v4l2_context_release(&s->capture); - - /* start again now that we know the stream dimensions */ - s->draining = 0; - s->reinit = 0; - - ret = ff_v4l2_context_get_format(&s->output, 0); - if (ret) { - av_log(log_ctx, AV_LOG_DEBUG, "v4l2 output format not supported\n"); - goto error; - } - - ret = ff_v4l2_context_get_format(&s->capture, 0); - if (ret) { - av_log(log_ctx, AV_LOG_DEBUG, "v4l2 capture format not supported\n"); - goto error; - } - - ret = ff_v4l2_context_set_format(&s->output); - if (ret) { - av_log(log_ctx, AV_LOG_ERROR, "can't set v4l2 output format\n"); - goto error; - } - - ret = ff_v4l2_context_set_format(&s->capture); - if (ret) { - av_log(log_ctx, AV_LOG_ERROR, "can't to set v4l2 capture format\n"); - goto error; - } - - ret = ff_v4l2_context_init(&s->output); - if (ret) { - av_log(log_ctx, AV_LOG_ERROR, "no v4l2 output context's buffers\n"); - goto error; - } - - /* decoder's buffers need to be updated at a later stage */ - if (s->avctx && !av_codec_is_decoder(s->avctx->codec)) { - ret = ff_v4l2_context_init(&s->capture); - if (ret) { - av_log(log_ctx, AV_LOG_ERROR, "no v4l2 capture context's buffers\n"); - goto error; - } - } - - return 0; - -error: - return ret; -} - static void v4l2_m2m_destroy_context(void *opaque, uint8_t *context) { V4L2m2mContext *s = (V4L2m2mContext*)context; diff --git a/libavcodec/v4l2_m2m.h b/libavcodec/v4l2_m2m.h index b67b21633109..16e0a6d6b90f 100644 --- a/libavcodec/v4l2_m2m.h +++ b/libavcodec/v4l2_m2m.h @@ -119,14 +119,4 @@ int ff_v4l2_m2m_codec_end(V4L2m2mPriv *priv); */ int ff_v4l2_m2m_codec_reinit(V4L2m2mContext *ctx); -/** - * Reinitializes the V4L2m2mContext when the driver cannot continue processing - * with the any of the current V4L2Contexts (ie, changes in output and capture). - * - * @param[in] ctx The V4L2m2mContext instantiated by the encoder/decoder. - * - * @returns 0 in case of success, negative number otherwise - */ -int ff_v4l2_m2m_codec_full_reinit(V4L2m2mContext *ctx); - #endif /* AVCODEC_V4L2_M2M_H */ From patchwork Tue Jan 4 09:08:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Qian X-Patchwork-Id: 33051 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16811871iog; Tue, 4 Jan 2022 01:09:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJw5PmuqixyMMXsCIxd2gdkWPI2yja+5d02BTjJG0NBFLPCnAt7zaPmVMWz5cLhsX7R5Mzo/ X-Received: by 2002:a17:907:94d1:: with SMTP id dn17mr39883096ejc.375.1641287389567; Tue, 04 Jan 2022 01:09:49 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id he18si16163301ejc.24.2022.01.04.01.09.49; Tue, 04 Jan 2022 01:09:49 -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=@nxp.com header.s=selector2 header.b=AIVngZYc; arc=fail (body hash mismatch); 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=NONE dis=NONE) header.from=nxp.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C4ECB68B133; Tue, 4 Jan 2022 11:09:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0306F68B11F for ; Tue, 4 Jan 2022 11:09:18 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XxbuRpFiU0WNBfgWJ8HI7MoPerxwPwvIvNiWl3wSpw3pwWvD6RR9MYtKHcVzauDNDJzGGVlYWkdM63UhyNs8gzJjkLoq+TD7Cg0dIrmCxHtDVzUYmheYqNp4MWRuQZcw/pCms8Z/vagANRRgUsAiM+nnp2xdh+9ArySqSaivMHcZfhTfGo6DYING1Q8d5Vwne+BkWAlq8E4I71Avw9sedaoL9JqOHkuvZCOUZd9aGn6tS/e7JmwEXO/Pl0K7oX5JxJoVpLoUFN/uRCXy+ZjZEoJRc+ScSf5KMPbgp9yz6EsaQQ/iOB9FjVzhhXceaK7zGrXcGbo2QteCTqV6mRisBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=glYYM7TIzZAuTJtewdwCg31hRwASqjhvCjkbJJtKzVs=; b=KBXN7A3zcn2e/q8MTvHVgIFS8/XBksEJukCVSAflXwNOMzP5euzJ1t+G4rpUJNd7sLJWcrKdKDP/omseXL4mUvItqwoYKuDH7wfpdxnAR6P+9aH9nBIj4e6o6IMbKBzszIIpqKGj2vpUi7eoZZDhKrsfhcn5T1eTHuZjSiIsUufOTEUBoEIip6lSJuyuL0g9YXA4O9CyjVAZVGvjkrv0O2wkFVl7m69eQ84brmrg2OSoLtfrD+TNbL9OFIvqgwC4Otz9FNP2O38BDi6M08skUB9Sjj0AzkTlKS4iFtVShw+Mv67DkF+Ji3FGxFRW59OmnNpLPPIzaBuxMWVVV+Zqpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=glYYM7TIzZAuTJtewdwCg31hRwASqjhvCjkbJJtKzVs=; b=AIVngZYcTfGB1IBajPteE6hmuXpYzq77a3UTwDpj4cefw7kTHcXMSxH53neL1GFgKuFg8iPHMLQge+8Nj++PZZHKWvk8HFUHz2fFOd5dx8IGk0/RWh4lyj5RbqfCXOd70MFdbypCWtIDYPYIqRYUpZlkXto7w4ObDCPh+kQ+NQE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) by AM5PR0401MB2435.eurprd04.prod.outlook.com (2603:10a6:203:36::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Tue, 4 Jan 2022 09:09:11 +0000 Received: from AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2]) by AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2%4]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:09:11 +0000 From: Ming Qian To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jan 2022 17:08:32 +0800 Message-Id: <20220104090836.31660-3-ming.qian@nxp.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220104090836.31660-1-ming.qian@nxp.com> References: <20220104090836.31660-1-ming.qian@nxp.com> X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::13) To AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 18769be2-935f-4523-60ec-08d9cf61df62 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2435:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:279; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Tx2yziTC+ngEJTFqqADna32gnqlzGOvhRaaCEg2umskddNsZW7iCrKoggFn1xVyuInOO+EmRM4zgGP5CjXXti6jhkyLyYedYBWhdW2q9hBLdCi/dHd+ebJgKp7gPXNeCJC7Lg1CJ2/8+xltlpE3fg4qBkxgH/komCIZ0xFxvcudEp8WCDTeDtslRbLxiahnDXNNU8SSi0XU1Px8w/yPXCpi9THJ6FzGDZHeMakLLzIfpA41OjXlrtc2Dhw9bUOlLS17gEh9YbdQ21XRnzvbYFK60QA8Ro47/amwIb+MM3m/u/1A2KL+rp4aJrE+enWauiBK0iJLQHrO6OTOMlRw7rpbis0i+NKDGVD1LjuDPlnOh7Vg8wdQcWqBeF/4ORuxs773hSyq6yPpHMnNpAu6Nmj/aDG1gWKQnWNrWPiasaThXHlp8/T7gmaKqNX0IiyhoGuGKac0WMufGzQiStnuUdM/p9Iyl/NMMUfcgSFtQWWBN6DRpWOd6oPU26e5xx86XpLWtDyBdh9zqqzSkeSpxGIjz80J6D+cT5fBISUuTLkOU6s8qDKdosR/hCKzhMkplM+FUA7JlHDaOahQzii2ceMqUP6UqiO4MCICe2WvTbejvbbW29fFvsdZPc5psjF0aqeqtpcZR3Cy7GZSy1szWXHcuMkItv4sYWMYQzk1BsgpVx8IFoR5YIUETLM58Aztefh/xJM/ysEISK0qCVo8iTA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6341.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(26005)(36756003)(5660300002)(6506007)(38350700002)(38100700002)(52116002)(186003)(6916009)(316002)(66556008)(508600001)(66476007)(66946007)(86362001)(1076003)(6666004)(8936002)(8676002)(6486002)(44832011)(6512007)(2906002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1bJ4D2IXuwCNl6ZYk5o/VMWz2JCUUA3En+xLf3gD29W3duPy2OE02qqO6T9oVNZ7mWtHmJwdmCq8A0AvV+1tTfaFYBj77+YjTqOC4/qdbY+u7M6CW+gIl2YAyKh5iHcryxQFxm6ZYfo/2V7SQGkPHdfpCvM/4F3EwUSX+/Sf0Pat8PYf8OgytraudiBDlvbDtL2LL5n7adJru80+zH8kPCixZ4Kj5vSNIHBjxWt2EbQEVomHXUgbVcZOib/rVnAY1DFSiybBRwK5kV7vmgnQBMzG+v4UeiIiS8nOdRzIyqMlDkU9rEYEpWBnbfThsxKiAGV+mxEmm5AoAZ0T6xnmIrP19mqmsm8bybjxWBLYnVLtSrFy+OwIi90TTA00J8VEApJfzgFyF6GL0NdJ/DjOX7xBKUbjKJ61L4s6veObS3mpighAwGQfaZaKMLpstjTrObYYeNGjTYLbX/2+1DBbM1r1eu9HXp7G0un2BRRD6C494LEkDZ0qCUi3OjV+r6iriYu+LetAGMuQnNS/LkYDxXkDO4AycOef7L1wT0kH8oe1puwxvZoriG6WUCwEt5GZ+kkgo0OqEz5J8668Rbo433/zCMnGfcJ74ziMT+by9RLJDLE+K/TglnTDDF3JoTS9tSSsB3qkVj1hPQNXqEx65YAc6uTgWSkzkfuMbqnEF8Vuwbk84/3IGwKoeCn2tbHd4VoX3CU/pj/aWF71mWZpM3uHJg1uflF8nS9gn+bR3jEdiGtRs76RyjsXtTk68IRNUO0SqR9SXgLTuB/JPWF6fRWM5BmwoKimyYwW4uJWh6JPU0HddDyGBo+G6eKoOXOhpP2qlBqqfg739rK3gfReT0wDUIuPOwSYHLXMeDpKSmtBucukHRfH4wwyrrHPPrSIJ2e7mG6SlAtdGd4nZSx2br+XuTMmwIpuSNhSg1mFjaR36L0YQlqR4M2kFcoJWCOX1V8X2fdDPOZWbKh9VSH14r1y58iALu2De8RKKBUYfz1C+qpSlOE6dX2maWVoF4aqJOKiQP1CerEmDKPk0MtpSbvfZYlGkf8D3854/Hwp7SD0WQcp1F2Mooh7YKTJLJh/GnvTQW8o+4Kl19RoP9mUcH1W/hwuAGUIE1Y9yFlCR7MC/rdif2b0oUW1WqP+MlA9xVCLkAPcayqf2SrqGSUWqhrVMXUH4KxySZFWargQ9M2J1XTN770nwPEDjhdQNs7nHA1ek5z4Gn8jZCvl8q0Uxmbvvv9QN3suVpjrlZMUsqDuOFDNUYPH8SKLdKzQvEdu/1eKXWAnRzYMemomRcnxbrzacyeyM59HdK0KvEnCCJa17yxzQyqaZs3q6LihuB7yUaoLeAp8Hvm/oeNEy1/CYgIuRlLX7kPuZoIPoDQCzhj+i6l5my6GLb5MC2zdgP39K3YfamZfOGSk6NYUIGlpi2/WbUb3EAJ3Q2KolW48dW7D7N5q3Lh6ezhqS4S+vjIsbdP15pG7zEEWPjn6sEjw8+zhbr28S+t/cl1lMbFaMcX0TM94B/Rw3XTvsj14N82pFRwMToaUcxfszaoRtOW7bFfsP8J5YCzoaTVgvZgTrNxUR1+bZS68emKraTc0BnndYTpOX0rnPRE2TFwr8JGOaF00/4nPMls0h6hzZ1bsKxU= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18769be2-935f-4523-60ec-08d9cf61df62 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6341.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:09:11.8054 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cCQzebpVfol0UXas66q4teSMxT/9+vjPVdrzGQMA95+ANzsnMHfsZko/nkr4xQhf5anDISNcVIYUEkf9G8ebdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2435 Subject: [FFmpeg-devel] [PATCH v5 3/7] avcodec/v4l2_context: add v4l2_start_decode 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: VHe9hF8x8fKS on dynamic resolution change, The decoding process must be resumed with either a pair of calls to VIDIOC_STREAMOFF() and VIDIOC_STREAMON() on the CAPTURE queue, or a call to VIDIOC_DECODER_CMD() with the V4L2_DEC_CMD_START command. Signed-off-by: Ming Qian --- libavcodec/v4l2_context.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index dda5157698c3..a181f884d2a6 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -153,6 +153,21 @@ static inline void v4l2_save_to_context(V4L2Context* ctx, struct v4l2_format_upd } } +static int v4l2_start_decode(V4L2Context *ctx) +{ + struct v4l2_decoder_cmd cmd = { + .cmd = V4L2_DEC_CMD_START, + .flags = 0, + }; + int ret; + + ret = ioctl(ctx_to_m2mctx(ctx)->fd, VIDIOC_DECODER_CMD, &cmd); + if (ret) + return AVERROR(errno); + + return 0; +} + /** * handle resolution change event and end of stream event * returns 1 if reinit was successful, negative if it failed @@ -190,6 +205,9 @@ static int v4l2_handle_event(V4L2Context *ctx) s->capture.height = v4l2_get_height(&cap_fmt); s->capture.width = v4l2_get_width(&cap_fmt); s->capture.sample_aspect_ratio = v4l2_get_sar(&s->capture); + } else { + v4l2_start_decode(ctx); + return 0; } if (reinit) From patchwork Tue Jan 4 09:08:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Qian X-Patchwork-Id: 33053 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16812079iog; Tue, 4 Jan 2022 01:10:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJyE/En+sbVt9V91vmHHFhU1wt3DAlxH2hL3ubo223vA0ZnY6M15xUFwd7hBK2c7spLr+acI X-Received: by 2002:a17:907:6e1d:: with SMTP id sd29mr39948006ejc.381.1641287410497; Tue, 04 Jan 2022 01:10:10 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s2si13467873ejn.539.2022.01.04.01.10.10; Tue, 04 Jan 2022 01:10:10 -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=@nxp.com header.s=selector2 header.b=hjK2jgpy; arc=fail (body hash mismatch); 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=NONE dis=NONE) header.from=nxp.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CF36A68B286; Tue, 4 Jan 2022 11:09:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20BC268B277 for ; Tue, 4 Jan 2022 11:09:23 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QLMk4tYlhNaOdZMhusTq51mOFj9NdeOlDPeWWoBNYvaf+g4N8exiSXFGi00u3qurly28lunA1Z7BxaZxbbKKx6qNqGz1GaWi/ffhnyj+3G01wOcBQ8NwG7bUBpiC100NublldHnhijSxu7pPxXFCEsRv/1JG/oxZhLnprwEMJleIsACRpYrkWQ/FN0MTzumdUnsJob7EQEaxEpDgfymROLzH5fppobu//0kl8w1MndO58vFxtTkchDJt0bKPeSAgTQQTy9iWSYS3dV7Qa8jkFqoaS0qX8I80VgEwFnQoGPF4msFuOSgL2NDxk/Yyk6uVZKioowZ4qNtrCC+vw+xfNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sOl8h7zZbwId1ndVWNfSuTnyBznBZuTUg8GWCnfm6uc=; b=KYecrySs0C0uL1xaCNJ8uZSej/fZ61D/KD+R1/CVXhT1ROImOHh7ZUVS8G5LN68/lac1+DGYVH4cUgiaA4wLfBtIu3uITFyPjIkwT5fxiovJlFV5Rx5+d/HJrnp/4mBQHXVSO+rIW/NjSGX6ZiccU+M+tL4A18VdQ7DUfuKIn0G4BBRj2ccPqBnGZNXgkF0EOiBBHrC9idO0oPgOG/+pOpaUAr4WiKlXljYIOYyWZme8Ufz86gxCrEf6R8eK6uYZQODgc0xm8YfTxUIx2ma6GqqUL99CN9zH3FQ1S26aJENfyBjDfnD5kTDzz4Ey1DO4S46KXefTBV4Jcf9kkdZZaw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sOl8h7zZbwId1ndVWNfSuTnyBznBZuTUg8GWCnfm6uc=; b=hjK2jgpyuZvTaGjJarV7/knpY3EBMYT367KmwbiNa0oNYRGL+JYak5lyK7Pwx2HZ79E3zRSEiWgEQSQABTYdjMRlpRyd8hbquTAi7ueXPMHzG04RwmutMvObehbm9a65/dOalSIBhg5JBHEF868VOCXrmUauPQ759K01hltZwVA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) by AM5PR0401MB2435.eurprd04.prod.outlook.com (2603:10a6:203:36::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Tue, 4 Jan 2022 09:09:13 +0000 Received: from AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2]) by AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2%4]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:09:13 +0000 From: Ming Qian To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jan 2022 17:08:33 +0800 Message-Id: <20220104090836.31660-4-ming.qian@nxp.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220104090836.31660-1-ming.qian@nxp.com> References: <20220104090836.31660-1-ming.qian@nxp.com> X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::13) To AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6cf4d478-dc98-4ebc-7ca9-08d9cf61e023 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2435:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T9PUTX+Fivqoey9htTldnCp8CkG9xL3h9lDwt7biLvLw0oGYpx8tWq+1ZvNXtM6u8VFIt0vzYzsYrkUOh9WzGHEC87bomJSgiLr2JTJWAL1pH6eoEPZBafRquE4jzGQfqepbUVWcDX/CiE5inm/MLkm6/YcF3vpRFn/+EySnaqBw1WmN92FOW30y73iBxlYfIqtdiGkv7256l6Kv785vhytBB5UhE28aGwZfgRk3qt9hd4YsA3VgvTN1kVjE+I1tgaQaqrdzwa6WoAPkWllUnyB8TGfSaHDoHT2SD3hF1RwawMq3YWeVDvL0a4NmFpAlOeYH4Ezo8GLy/CzYBo77azNHrAjjpyCOhINF6k7FjwsCKnpitiOWQeg36dN2LVTuRV5B5Kgoyn3NvM6PLH63ll4rjdQtSCQo/FkK463oWGD/8us01o79xa+MXIrs6Z3tN5dCYZ/kA+CKklIX7nITG6TFNXYyDOcO7qkJWqgIFDJQHgpzzmDyPYuWrN24i/lhAG05dLEXnMGT7Cr2X9pf6TVNT5dMZBVEQjAp9QieGLx0HL5jXjHIUxl2vY9GviP7t4YAL8oa/KFaSfYEaKF1oWM2+jZB7cE5pzgVfiql72ox/kgNmvAbg4CMP92A1F1nO53JEl07iqhXh5GsRItwJN09u1DTgfOuj1ThEg+bntFAaAFUtgzRgu1HdW4N5uAxxKz3xKugVPHS17WWKhXbHw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6341.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(26005)(36756003)(5660300002)(6506007)(83380400001)(38350700002)(38100700002)(52116002)(186003)(6916009)(316002)(66556008)(508600001)(66476007)(66946007)(86362001)(1076003)(6666004)(8936002)(8676002)(6486002)(44832011)(6512007)(2906002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1K9JkTbOW8QsxQ6JgWS2/5fwMv2MDYUvcp44E0O/Niu8KLtnL+8MB++EyjboBuO1RL4IeIwQsOrMK5GwbtMMMpsoG654/x68jqsFpnpEdNtLIY7Lk0YvZrh9yioF4xAsYDX60+L24n1nQmdVEZrRGbNEF/8/StfgdMbYhFIUesni5Wgd8nkq8NfGgx1ZOnoqd6Q30QT7lB+bs06EwghWvp/dm30ubgcKEAzFhPzylvX12N9sOx/Va1xZULLm9vr6VajFmtTJYMhILuCMCE8+P9iA32d47V0wONnw1cjDNpTw26dy34C4zf7eFS8/tT1q/Si235a/gLonyb/HEyjW0q979nDqpcTsHizoRgtLKtSkdwNGBKPm7RUnQXIAu+fs5aufXvWgUfnS9auQK9Nlm36elrJpGf9Iy/cBk3yc4ekUjCy7oEym/NaV7zHyjJyy9CY2T1Jr883skf3/JYx+iT8VnggC5oYoVeO+B/yVJBxgdB9gToFbLHYbNwyXmiiOCOi8byUAcDnZmd3X9jDyc9htOJC3bJbPguvdVqxjGuxdpEIDxCKFWIJfXGAx/JCru0A717EWtDnkhFHH/yb2NVt21bZu/sM+iuND+P8gNoGpkaENFw6zgp7KqWadV+SQzPciXnqesN784xLKRcYx0PEAKqk16QlRBrqbl2TGkNcMFJeTnOMr/GngE/xrTWg+GTJH1okJqBNiKkSmFK6OA5F+RtLKKKQ7/G7jDNT+cXHraa13bj00lrWMCO3nEK3BMdF4+PKK2ybvbqY+6Mv69+eu3pA3itXmv78vv1iOVTIfjocimJGhlFfGEFFYoBMQzSSVWRvU+yplWX1aQaPMf8XrxeC/xXHoSh44ut+SHS2ctw+u7E/c2bqyLmhxizqyAmixVB/Hw6KkIskRwk6JrwutAhJutr4W2lQd+mEPUzLcAT1nzB5WGsQm2Yk/pN6rEts7LDF8QFlc7F4du316BmFBCRgr0wlJ7f5+bzED1gBcenFO3BABCxoR9IWMCK9TKAPHkdeCdETxZBExF4/QbH26fFwc3nR4kqzs52HC0+AvUwfqIiUoXrGJXqf5pIUxk5ELho/TUV1NXJGd9lWzu7T8yWoMtZwWlZFN8bUMfavqLDZfrPF7AZMB5F71iyfwNIfC3JTO8/6U9K12dlAFC+F+i3qT/lg2OpeNj3yYI86wqO6AknMJBV49OWJ7gH9lXId63i/8t4AKd8wo1W9z2S8in6JvVkB1ER1Hsa2NW4tObu5bDpQ3GvFHrWLXqyPnr+Eic41eBlPU6smagcRzw/pyLELIfsHWawePr223Swiw2RTDvIoyFlrElel57e+jdQUBc1tMBjjm1eyuT0WSgKBRjrwe5sIdP1jZ/c6FJqOlZ5j9GdsEgule+17TPrdxLVcEqRfy13Bfai7E6IMaFw8OwduXesZ9iKtRc4fgZSUc6CZT5cib7je1eYQh0RoeTC27Uh6f2NvvYmKbVAWRB8+jpY3KxnehsFKp6tOMx94uM0yE1f9AyVDWpxtz9//4TjwAQKmxdfwUe5Ab4SutiFBhOP0dpMQqj9iZ+THeykHdgW5ELxjsxr6SEJDehpZvn+3xJovB60kyGsItEKkmEwcYL3MkkkXqAGlk9Siy/6c= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cf4d478-dc98-4ebc-7ca9-08d9cf61e023 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6341.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:09:13.0553 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3NdqLvnzx0Pk7vakJPfhkzSvkp4i73tIBNGpY2bflpnjao7l2vLuutTr9SZ8cqZk5B+L5PIp+04Hz6CQjfzRgw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2435 Subject: [FFmpeg-devel] [PATCH v5 4/7] avcodec/v4l2_context: set resolution change if decoded format changed 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: FNgJLx+yfSrp The dynamic resoltuion change occurs when he decoder detects a coded frame with one or more of the following parameters different from those previously established (and reflected by corresponding queries): 1. coded resolution (OUTPUT width and height) 2. visible resolution (selection rectangles) 3. the minimum number of buffers needed for decoding 4. bit-depth of the bitstream has been changed when the bit-depth is changed, the pixel format will be changed, so the format is changed after a source change event, we should handle it and reinit the capture queue. Signed-off-by: Ming Qian --- libavcodec/v4l2_context.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index a181f884d2a6..0a0f5b226960 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -85,9 +85,11 @@ static inline unsigned int v4l2_resolution_changed(V4L2Context *ctx, struct v4l2 { struct v4l2_format *fmt1 = &ctx->format; int ret = V4L2_TYPE_IS_MULTIPLANAR(ctx->type) ? + fmt1->fmt.pix_mp.pixelformat != fmt2->fmt.pix_mp.pixelformat || fmt1->fmt.pix_mp.width != fmt2->fmt.pix_mp.width || fmt1->fmt.pix_mp.height != fmt2->fmt.pix_mp.height : + fmt1->fmt.pix.pixelformat != fmt2->fmt.pix.pixelformat || fmt1->fmt.pix.width != fmt2->fmt.pix.width || fmt1->fmt.pix.height != fmt2->fmt.pix.height; From patchwork Tue Jan 4 09:08:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Qian X-Patchwork-Id: 33054 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16812187iog; Tue, 4 Jan 2022 01:10:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJwjtQ8pMN8ANKv8B3OhhYQ4Eiopwut/fSdlpBkBjZdgr8NUrDIRhgTXgoamCId5oRlWMxWg X-Received: by 2002:a17:906:3a59:: with SMTP id a25mr38823989ejf.762.1641287421314; Tue, 04 Jan 2022 01:10:21 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hr40si19784128ejc.598.2022.01.04.01.10.21; Tue, 04 Jan 2022 01:10:21 -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=@nxp.com header.s=selector2 header.b=M0ffWZfG; arc=fail (body hash mismatch); 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=NONE dis=NONE) header.from=nxp.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D4D2A68B270; Tue, 4 Jan 2022 11:09:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 50F8168B270 for ; Tue, 4 Jan 2022 11:09:28 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AsEbccddLYtOoQdzkLqskdcK+wNvWXDvT6YtP+5oYOP+cTxDPTN2i49PYMOxD5PhQDzbOC1AyfbWWd10bM25mIqQqXClpdIujc2TbfH5OPJFVwll36r8wS7SLuDhBJtUlKHPTpXwHIjsQjd7Y+x47dmZ4I4wwfm65P3nCf2ks1n1cw/ZMGnJURikd6jUdm4NMCtObRkUO5jE4w0viliLFR0IqtYrD7cRVTDJ52IdXB3a2WlwhRkjsngQzvkQ/AsYXcu2jc9P+MngQ3pHyzXE8Gv1+z03j00eJvnFez/zakqPRqxeQeeQWcCrVP3IZ57cyDT6LFW2Lkgzu31pAhX0aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=f+9O7xKonSY9OK77kWt6TXzM3MYiBm6U3tK6JBE2MYE=; b=HWAAZTvyuvznm9/RNWLo+TQMH3HKLI4AlMa9p+75IJr/Gxnx32r6Tiz9LSAetM/sBjY9072D5AHQZORO+DDPxkn1vpfRVykY7EmQmT7tQwN61PlpuKeM0oNjrs7sK8ZA5UirIo8tjJX8lR4mUWdlxKn+EPFEAJE3EDqkMDuZ9Y0gcm1B/YeFYbFmHZtkZdUvz4qIs7waKn84wCrhvY8Qk3zA/FibY1CTVBMlTNaCraj2Tzzu1ufsl5YiaXBcz1qr4Bw8r7kJxKRN/5nnSbyQJWu/M2FzviWqPsMpJhjL1eqFrzk99Fp3XER3G79ZZbFlvLvyW5Q0s0OhdKy1E8cbKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=f+9O7xKonSY9OK77kWt6TXzM3MYiBm6U3tK6JBE2MYE=; b=M0ffWZfGw/Ol9EtlGo3CfLv8/7tnHrHh3r0y/gJVWy021hljvcpCnUUQ+VhzpkOOEsFFvTH4ByMbf+/MLmuZbQPk3o3AvWGQcXWqXNx85PhoatKxc84VdpOIdpXdL40FDkQPxVnh+tHFUWWnz7geGhnK96CKAIhbtEKm73+BPiQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) by AM5PR0401MB2435.eurprd04.prod.outlook.com (2603:10a6:203:36::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Tue, 4 Jan 2022 09:09:14 +0000 Received: from AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2]) by AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2%4]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:09:14 +0000 From: Ming Qian To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jan 2022 17:08:34 +0800 Message-Id: <20220104090836.31660-5-ming.qian@nxp.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220104090836.31660-1-ming.qian@nxp.com> References: <20220104090836.31660-1-ming.qian@nxp.com> X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::13) To AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fb3ae4d3-f1ef-4336-985f-08d9cf61e0e4 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2435:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1186; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FeeXp9Kg/MGEe1+CBFiCZHhe49LHc0YTI7u71KSGRNJJP8Sb0/Ci7Fs5HzBQz6ToDbmbONVP5a/l3iX0AQCERehKL9McOsoAu0qGt2yBoMOB0IUoz9/C+JTYReASipjUFIT7Uq14DrHQpLvevY5NBZ7cRBbUi3gs+GkNPqLU6NwdsOYXPc/uCVru33zdChe2V2WJGFOetl7jMTFyVNAEp5UwUP/g9ulPCX1TTaEOwmH0ZnvA9dhD3P7gTZOGSjJzKG9GsxQ1gtdeD2s8bSRzn7vPfZg1NOTSc/ie63G/WApaemFBMdtVsP8HWAqeEIckut2T+iQRSPxYT9U5FKHAvsb+2TX43IfERddSvu108x5m02j7aUwFEsRuE0Alb8j0pDlBXOuCFQKItIGlLbWS/l47ik0ZgtoITKj23u9SACF3R0UDnlgbwKW0J1pJJp/Qk1VgeeqQL7c1N/pcg69aRTpjOcCDNDPCHdSR/L2MgDtB3Ck6DwS7s7MsG/v6fiVWSS2KcfONQFIAIzU3k4cPwtaf9CEG8wCi+N2Ep1m0oGawDmQvXyV6oqWQDeq/c9CiTPJ4bNrOYIkcOPgp+yCfX1UzwfX6FaXWnbs+4NYRBWbspy0TuDbj7w2tpyie9DFebyNyG3HxWFkDZI5bKKZw4lcgqHsmwdzjnGnraxb6SQNTQQxrxljGMxEYcVHkOUy6DrtXKd8IRRrfffFzy2ICZg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6341.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(26005)(36756003)(5660300002)(6506007)(83380400001)(38350700002)(38100700002)(52116002)(186003)(6916009)(316002)(66556008)(508600001)(66476007)(66946007)(86362001)(1076003)(6666004)(8936002)(8676002)(6486002)(44832011)(6512007)(2906002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BnosUPVGJNiIkBLjB1QibqFjFwez7+PD/S9+jzmnB13mvO2nByTkmQpgcEZRAA4EgOhmsf3OnSPFvowmLlethg9rnHvqsHIEPfwLRrFAJzyyCMvRSQKbI1MtgHj2vDInbpj9i/lz8aAf42/65BCyvo7+CYSvXRVr9Jn7DoGbihTg+bF9NOGlg9QEiPddgYKZAIzjRbKk0eOAZUjmaRWAQgggZRyweyYCRLQ2eaLCiGNGGIEsvPLL+tV1albQglnXPsT6lEjt1Jm1snm84ytivOHZaYAhEtSEH0JJUJlFn41WaySXnS2FdCQ+KygChPYtMFxOKGYKsmqUAJheDqyuZMJia6rOwj6tKGlvVDPGandGxrO40GlsEdfMLVUk+xftyrcQCpxvwUzzav+XB8bN8zamdllW/ieGB3sY71OJJBVumVxGYDvVA5sk7rFst0EadBSofKJ9v5Mhr39/9R5nPXnjm+667y8v55NxRFB4k9aAcaZedz//Y553LzxGPlP46vFcevw4Gk9mTdBUpa/oSlSSA6ox35zKmmHyzSfQgYe/HiTozjs08DC50WBM0xyNN29DCKmzydzN96Fod2HVke9S7OPPQN19aDYk8TG9sVa1IlcRVssBGaERUaaZ17s6poPwbyBxBbmNNswrXpYs1BIjrZwySA10cCALSMChuHF/GBoBJLx/VsxPaBXxVl4PmMcMMoTEkQbwP36VRsEAUK57iKzMhLGMiKqe9yNa1/aYmg5SIQWVV8luqA22vztxGSnvz3wndoEU1I5R0vTvd/sdrejgoytxRku6HXhJ1nAyOdNmxx90Ms+KQbOc5v7c6jCP2J0JBtO0DNqWzPA4S05cjER0MovOsXEu5d9vnWJa2ZQYwonpxn/wcelWhCS7q0Ad6U/vPifs/UYAHQOC9yjBdYXM8HIhO/VKmUVoSDMT42qHd6hzs1lOGvH24zkWtKMdksUC+RF5QzsBQBVk1OupduAnuaSfhz6sVQ0jjBzKRjLwE3xHkfMg3JXT1YEP7Pj2helRTBzYCKbV6KahF5jpBRqZhDpKYdNg5HgqnyLvxMuO2KftC0mbp51Aclppy2CrH6JIGCXT01yvBqXwjoKThwJ/cNtcCGNVxEDvR1oILh4kkoDDS5gSUh3t1KBty2drs+sYcnrpwlLXH5dtTbiT768jkCL83SXsYYQEBaQ0F2w54wP1fl3Q3h1d542drHPyxqF5+5jJ2VIrUyxiSrGXtwKLpPtoXoNoFqs4/YX5rASGQRKYPpbI/DzUqqx7RW7hc8WgCVvq9zfiHE2zgIygIM14RFx+IEpTqpEvqYxmRAwZqvoHtuCohfDfdGklfxiJ9jUO7zvFUVl8+EVxLMMfwt6W1BehmLel3jvbv6ZE7fO63TR29fDHAH5FC+chgfyuMZt2nZEm69fdxctSeP5Set0OE5vyPfNHbzoQCcP/l46pwHe9tdA7CuCVnAe+rTkxfKu7Ix/y6QKWkQ4+x6SADAFQykgp8igbp9tCi4kcf061F+GUfum7ANSGI6D+Hx3tP120SDRnzRvuU76GDXP+z8rqIQTsBAdWSB4e/C2BEaABEdLow7LTnTLs4x0/LcRBEXX/AHPOBrrIBKLinCInX+PYWCkOV3Mmex/hxnY= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb3ae4d3-f1ef-4336-985f-08d9cf61e0e4 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6341.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:09:14.3365 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 89U1nboetP/05tLqWxoiEyAmkcdpEkrtp0rpSkJAXUYOOLik/cDAYGJn+y7aR8wIuLrdwYv25IuHp3qsZbDXhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2435 Subject: [FFmpeg-devel] [PATCH v5 5/7] avcodec/v4l2_context: resume the decoding process after source change event received. 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: tBzCwN1Mr6Hu client need to resume the decoding process after it dequeues the source change event. no matter what's the return value of v4l2_resolution_changed(). if the client doesn't resume the decoding process, the decoder may keep waiting in documentation of v4l2 stateful decoder, we can see the following description: The client must continue the sequence as described below to continue the decoding process. 1. Dequeue the source change event. Important A source change triggers an implicit decoder drain, similar to the explicit Drain sequence. The decoder is stopped after it completes. The decoding process must be resumed with either a pair of calls to VIDIOC_STREAMOFF() and VIDIOC_STREAMON() on the CAPTURE queue, or a call to VIDIOC_DECODER_CMD() with the V4L2_DEC_CMD_START command. 2. Continue with the Capture Setup sequence. Signed-off-by: Ming Qian --- libavcodec/v4l2_context.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index 0a0f5b226960..b7b584dfbef6 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -180,7 +180,7 @@ static int v4l2_handle_event(V4L2Context *ctx) V4L2m2mContext *s = ctx_to_m2mctx(ctx); struct v4l2_format cap_fmt = s->capture.format; struct v4l2_event evt = { 0 }; - int reinit, ret; + int ret; ret = ioctl(s->fd, VIDIOC_DQEVENT, &evt); if (ret < 0) { @@ -202,8 +202,7 @@ static int v4l2_handle_event(V4L2Context *ctx) return 0; } - reinit = v4l2_resolution_changed(&s->capture, &cap_fmt); - if (reinit) { + if (v4l2_resolution_changed(&s->capture, &cap_fmt)) { s->capture.height = v4l2_get_height(&cap_fmt); s->capture.width = v4l2_get_width(&cap_fmt); s->capture.sample_aspect_ratio = v4l2_get_sar(&s->capture); @@ -212,28 +211,20 @@ static int v4l2_handle_event(V4L2Context *ctx) return 0; } - if (reinit) - s->reinit = 1; + s->reinit = 1; - if (reinit) { - if (s->avctx) - ret = ff_set_dimensions(s->avctx, s->capture.width, s->capture.height); - if (ret < 0) - av_log(logger(ctx), AV_LOG_WARNING, "update avcodec height and width\n"); + if (s->avctx) + ret = ff_set_dimensions(s->avctx, s->capture.width, s->capture.height); + if (ret < 0) + av_log(logger(ctx), AV_LOG_WARNING, "update avcodec height and width\n"); - ret = ff_v4l2_m2m_codec_reinit(s); - if (ret) { - av_log(logger(ctx), AV_LOG_ERROR, "v4l2_m2m_codec_reinit\n"); - return AVERROR(EINVAL); - } - goto reinit_run; + ret = ff_v4l2_m2m_codec_reinit(s); + if (ret) { + av_log(logger(ctx), AV_LOG_ERROR, "v4l2_m2m_codec_reinit\n"); + return AVERROR(EINVAL); } - /* dummy event received */ - return 0; - /* reinit executed */ -reinit_run: return 1; } From patchwork Tue Jan 4 09:08:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Qian X-Patchwork-Id: 33050 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16811783iog; Tue, 4 Jan 2022 01:09:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJxqIV71hfB5m6/LbkFbnDQU44n/aZ5D1pkzCpGPudtY7EJl6PiTD2zKLP5p1OcuaieP+S9A X-Received: by 2002:a05:6402:1241:: with SMTP id l1mr48330892edw.115.1641287379353; Tue, 04 Jan 2022 01:09:39 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cx15si17190295edb.170.2022.01.04.01.09.39; Tue, 04 Jan 2022 01:09:39 -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=@nxp.com header.s=selector2 header.b=LeZJxkvF; arc=fail (body hash mismatch); 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=NONE dis=NONE) header.from=nxp.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C5DE368B258; Tue, 4 Jan 2022 11:09:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130082.outbound.protection.outlook.com [40.107.13.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5FD1E68B11F for ; Tue, 4 Jan 2022 11:09:17 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RDyXSHJQeVmXCkvMv27eYwQEdXcfb7w7mRuoJPsMOKMwPg4MIai5gAY54TETqI7ziBTb6vCWR5WnElGKF9cIO4bzdr2D6IrorcLbtvA5NHyIMu+agqZiHWWjgeez6aX6qV+x18iiTwrhSMv3kIQb0YW9CAssSMUswZ2+BWVgZk2jkC/5MSXGaKH69dyESsR/GNKUHrDXEyq+26mTy7uMsqPCLmTCn07N0os9+6xRFKuBqF+PhKHYTiv7jLeYTZy0lduckD5tPSYnAepdms33HXZINvTcdzrtruWaif38bYcUyZXGA03WSn6TtzFeO0fspQxlm6rF4md6cBpUpL9ntQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IXLyPNFXPSkyZz1z9h83iRUi/k9ijqhPa2iNrPWzirQ=; b=EsBqyFgB+AA7FP+1xGMP1fuDxXQupRme8ug8ny3GiGftzyZgtnzPSCqxmIDV6wYZOb1rQHyFuUaUt9fHsHcyx9DUTLCXgO3MrpNqTaACcAAORJ5b+wC1PgQps0dbIqsrZzKxLreJ+YobtAnvGC3XOzGm5ySk4S08yMKIsLBdkHtUx7k/GcYbJT6llpQNOJngCA1ao0HqVporx45sJSNEP0DczPY7pPXjBs3fFu523+b514fPLsGWms216dgPPdF7j84FwzVjtXZRMmMWAG58JkkIyjCp6IOcb/K25BK9ICRQdBENdJzfVyRN4A0sjyHIBKABxR2/Y6tw2gKSh4A+Cg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IXLyPNFXPSkyZz1z9h83iRUi/k9ijqhPa2iNrPWzirQ=; b=LeZJxkvFbUXnttXHYgHHMwjcx//2ZEXB6k2xewvUjjXmxQ4GKPn0jDdcml+uaxibAMyScFL+WoWBb2hP8UNWdWxNW7r7Y/0jg9sJubrNpxSKcqFllADQLl/crQFOUNpGLjnQAL+OwUo0vtgj8N6VYYsIpbXeokxvCY/LjtOgVf0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) by AM6PR04MB5928.eurprd04.prod.outlook.com (2603:10a6:20b:a3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Tue, 4 Jan 2022 09:09:15 +0000 Received: from AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2]) by AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2%4]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:09:15 +0000 From: Ming Qian To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jan 2022 17:08:35 +0800 Message-Id: <20220104090836.31660-6-ming.qian@nxp.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220104090836.31660-1-ming.qian@nxp.com> References: <20220104090836.31660-1-ming.qian@nxp.com> X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::13) To AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2a16d3e8-bc3b-436a-b417-08d9cf61e1a5 X-MS-TrafficTypeDiagnostic: AM6PR04MB5928:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:298; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7fz1hQhtOX9qXS3V+LR6A+qThhs3bgQhBTRP/KbhSAf/yyyygXqmJhX/PUQqKQkKulEluwz+6cloB3b2joB4LoNmsX2dxVjSrfrxYjtbgjRaPtTsbtmvHsXqjr3OTwBpqV5leAvlBhOhRktJPmv/a26dbcn2/UeimqLaLPWOJuIbxIxBsmz/HzREIN70a2g03oy9A0z0GY6SAe2Lw7MgfPzBFuir4NzTFyb8G1kJHXMpBYvzU0wXLoZqumqlRzXOH1itFEoMYYY5VODW/t/8zarUYuoFQwdaOXugJU4nNBDQw8vHMPorCbVKGCcbk625EXZ5LmEScfwkGJdxSkikvH5wPzZb8ogBKb8OTW7h5+bk8esB4rcYGmz3iWefgNjSp25tn8pvFZ/eMdfZf2QYh+HhM7Y4F73d5xg1GZy91ps4XppTy6drv0fGxhxOC9P37uS4ZZTRqW1DqqspiOQJOe5x5j/mISd0l2u+IZqjUczhEv+VeJvsKOugiViE55ghlUMYnB/5v8/GBZD3yOakNXt6OxmUjsElS9p7gg82c3JVTQ5OvCw/CLbpvM9S49xogA2n28Qw4Yq3BFKYCCui2BXIhyTwwC8OSDIQfH/38ZAR6kf1eWzlzy/wcyeNCwlvNe9o47MdlnyipW5sH4jpfeEoS4mpfPEDCXU130tCK6W/IS5l4rIOapmn3hnt81yfOg2ZUtuwDaIJQPyh/HFOnA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6341.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38350700002)(6506007)(36756003)(6916009)(6512007)(2906002)(38100700002)(4744005)(6666004)(2616005)(6486002)(8936002)(316002)(66476007)(26005)(5660300002)(1076003)(66556008)(66946007)(508600001)(44832011)(8676002)(52116002)(186003)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mv/bwfw67eIR7A8fr90pKjyE2CLWyMfTUmWIvk4BLtmWos1qJniAGr+0E8M0H6iWZcvuGfvZgWuVEcIpNqrtTzOXXpKf/Yd6a3bgOK7DUEbaIkpWIneh/kRSUXJDA6irF0LHOs58sCh0TijftjlTp5AOf0pMAH63SgHwNlEU3WmSl37AOZdg4pzdDljDJ6SlLCvHZGx2YRIFuxuVxjvEtT2JjbCh8kQxyv/3bQhnR/YGNvcvsq6TkYc3IXt52csIi60DAN0B19nEH+RbRJDkyPqECxwnaZ0fgMfKk2sPvV3BHM3pJqEHU+6FFvbGA3YOAbMxBjw08eM36fDB3oh1ugvSt3jx2A2bmVjmvqMCbkYigP9y5uNJparNSrw5Hv5aqUae4R5TubkYdpSBT8rwfc3GuMtUKsjyCItfwLhtDwG+PJe7k5dtdd8XJyuL4Ur05bNZRR8fKi7mpo84rkWwcUgUGILUaQvYa8SXtcefKIH0gKF5KgIcbGI7mNRHdHNtLGPRVXNbZq0zFgv5dI4AzSwOjFn8rQiVF9fy2JvuPz3EFlDeE2b8wZubYxLSHzPKUOQryGv9oTXKOCuvba+sZPe1V14Z9jKAzz/8xKsVg6ywGMYRdgju2LNQ9pwbsjPzefs6PeFVISF62xX3bpMeAWrfPtrescXf0yS2/mb6H9g2zcrKS9B2MVJaZMiO2XzOjgN7su2mxFfBiF5rGCQgdPt1mMUoCwFzELhu1yETpCvxIxEzhoJufJrcu4LtEVtfDgws4Al4zDSP/ZYsn9VMlWNO0CxXgBZzjXs8+KTATTgf/SqKP9hOf9J7Xo8VWGHqfbxpxE0qfZoBS5HCCqJMHGRXZKBaohGcetqXugiP7LPoSRxgKaCYTwOOmByaQV6+UU2dcVjNSeld8r3493wfbbRmOcXexEneKWzvIIOXh4c9qCfWy1zT2BrCMoExbOzrh/j/RhsZG6x7BV40l9F28p3So8vTq7nZPSuCXPy+yow7ZH7JceciUU75sWbzP29bsTy75Usjk1WiZnFBExW9UK4gTbAT5Ml54uRyglnjxxl6mSkCSfqNRrYlaQtqCz9Ly/8vD1n7Hy4yZAGJADJMi25TuikjN82cLnGXPtXZRWy6Q8zMU12Q/MD5VkuROOT9e7Hfyd8wbj88CF87GoeiJAuYOEQ/ZfQScCCr0ZihyF5BwJopLV6eU0Q4CyP7ybNodOISlC4Dd6QaIkZ1YQgPCYAbxvWppvVoUZz4nzRVefV/dB63yXmlcDR0ILN7sxEDiL6VbcR3kh2kyRmBmxNuhkZASsbptZPMOlACPvNnD6ldUfnWG12Q2n5cJOaLhfL7Z8xpBVfnaIYD53OGWHwJ1T6jXU9v34wc75k0oX5ehQ/m1tcH8SMLTAayWRBwcAf6OyMC0qsjx2bkxdXwJXlQQ/cTmfDVNp+RJRwGRSbiknJaLuCaF2KiMCLLSGy4HLRk5McKqELgNmq4O4ahxNobzMcIB+Ehv80u7yxKrSE9Dpxn0NIV+WoGt10sA5QXVd60O/wPGUIFBJdhapEw6d6yOleRsHsU+1cqvZ8+VgGi0ExYXHxZDEcag0cUCgs97VpI7G3G1cluykCd5zC/ByIiKlF5w3cMdeCKW6EnF77GwV4= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a16d3e8-bc3b-436a-b417-08d9cf61e1a5 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6341.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:09:15.7271 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HtFbMz07Er+OX9xDZqKWwbLXmzpyZ9+N+EWKV9XSyOE2nFT9SHdEh4U5IyuBH+d8cOW/hBl+BGCSgiAKfD/FEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5928 Subject: [FFmpeg-devel] [PATCH v5 6/7] avcodec/v4l2_context: sync v4l2 context status with driver. 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: ksplD2mD1K77 Check v4l2 context before call VIDIOC_STREAMON() or VIDIOC_STREAMOFF(). Signed-off-by: Ming Qian --- libavcodec/v4l2_context.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index b7b584dfbef6..8910ae08d3a5 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -562,6 +562,9 @@ int ff_v4l2_context_set_status(V4L2Context* ctx, uint32_t cmd) int type = ctx->type; int ret; + if (ctx->streamon == (cmd == VIDIOC_STREAMON)) + return 0; + ret = ioctl(ctx_to_m2mctx(ctx)->fd, cmd, &type); if (ret < 0) return AVERROR(errno); From patchwork Tue Jan 4 09:08:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Qian X-Patchwork-Id: 33052 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp16811966iog; Tue, 4 Jan 2022 01:09:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJzJyfZQSA/U1+GEwm2i8DisQ5KhdOHOQS4Zdlx6cMMC5GHsUk05Q+Qtj/r+FCZFiXdzeFFa X-Received: by 2002:a05:6402:455:: with SMTP id p21mr47438299edw.384.1641287399589; Tue, 04 Jan 2022 01:09:59 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ht21si19690519ejc.442.2022.01.04.01.09.59; Tue, 04 Jan 2022 01:09:59 -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=@nxp.com header.s=selector2 header.b=sDgZgChm; arc=fail (body hash mismatch); 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=NONE dis=NONE) header.from=nxp.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CA32968B27F; Tue, 4 Jan 2022 11:09:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130082.outbound.protection.outlook.com [40.107.13.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8919768B11F for ; Tue, 4 Jan 2022 11:09:22 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TuoIg04vI/6+6Y+NYfB/5iMTUOMudp7xgciAa8IpOfRgZrsWNrPqv1ki+SNNAS9p14UayAQPgWItlxl5kx3YBc6wxJC4V02UfUYc95TIBQlZNf33e87VeRi3R6Sa1X36P7Eq13bzIC6d5boMwbTfptEhXtSJk+6DJ/6umMhm69Xiw4dtLhJXiN5Wc4YamLLUM7b2NQdzd6UCLcQvu7CxuT4a7LdoU5i8KyzB1gRVAeOY87NNrqm3eZLh4hTYVbRaj68/mQUso45uROf86oMFRuSQH/yggOr/PPtIHuYjl7DLZZl43hsfwbBAnoXM2VdwQMfclhFh5FyMC7IwA4Xaeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p+9tSbaHYi7e8yCcNkjj4LKeCORANjgo5zRFTu4LSAQ=; b=X+tnf5GLvFwXAPP7F1ckckQxmDTuzfdzSB2n7zg0U1HrZmZqFeqf+7Wc6DHunsNXVhfd3ERvTLQlX8nb56EmVbLYUaaI3lYE9/Xh+C3l5jx46NlMb3MZMvV6MEMfdhHkqBYEYEv4rCNpagTSdkDwuJhS3v2fhdTv1HQ6hZLCQGPDR8LS0jSuM7DVMDolGJsPbgmem40EDRHEUhC60/ZVNwfeBCh9u66NmvVmowkn1MFfLuvW2JS6L2j5UOrHUVPBl1peb3WcfktVDwNvN4m1T/2yNr77bxKfBsSOzq/VpnPNsazGrXKBVPhjFTbpBCOw2Zc5kdz92v93vvpKeHrN+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p+9tSbaHYi7e8yCcNkjj4LKeCORANjgo5zRFTu4LSAQ=; b=sDgZgChmUF8otsxlpPQ75w+3TuiyJ57o6emrzYUx6G2XgxOv7/P8axtsyVOrmjmIdKhl7vwhPq2gI26rZIhNbaf7RB4my7tcZYvpaOt9WD4mYcJM+As87MBhglaos1Q/vqwy2TyeQCMfswOnRWdTUUgqZYUWYBGiRlxsE/GTgoA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) by AM6PR04MB5928.eurprd04.prod.outlook.com (2603:10a6:20b:a3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Tue, 4 Jan 2022 09:09:17 +0000 Received: from AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2]) by AM6PR04MB6341.eurprd04.prod.outlook.com ([fe80::b9f1:7371:3484:95b2%4]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:09:17 +0000 From: Ming Qian To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jan 2022 17:08:36 +0800 Message-Id: <20220104090836.31660-7-ming.qian@nxp.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220104090836.31660-1-ming.qian@nxp.com> References: <20220104090836.31660-1-ming.qian@nxp.com> X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::13) To AM6PR04MB6341.eurprd04.prod.outlook.com (2603:10a6:20b:d8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0075dccf-3d2e-4494-1dbe-08d9cf61e275 X-MS-TrafficTypeDiagnostic: AM6PR04MB5928:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2803; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Zb2I5HyOQepPk0WONnEWOKQLwwqeGItXIy5pjUHQzEHONhVyk2BWOXsNcW4fCMtXMbAoMaAnYKmtBKvkaFwJY5TuilIwcPQPyCeQxAqpFdxHcwLNxRDzQgockJzV3iwze7B8Z+uLuUqGbrDAABFKnS3gKRY7JPtnV1hHiiTVFhtd7VnxihIcA0cWioR3PCsVvIIz2/vEmA0grq5m0rI7OimP/ILo/N1kOxRX9j9b+GEgtAX+b09BGj/lvc8d5jmToD1wEYzGDpz0vF1nZdtW6VQHsmQUO5mL4Bnj2H1jILlqqssKCS2cQyw5vyntSezQaGnbx3yu52wTiczwZdVrQ+5zC2DEiZJR03dw8at9zN2mItBCYE1TRa0r/XG/gqcxq0inG4yP6G+yI9eDVHT5p45bwIhs+upj3TUJcXtPL83pbsldxW9B/qbd1fkPUzu399AROZwiP+O7VJ32wzmAxonJ/z8H5jTRZYPsz4Xmxyu1xFXunDR7Gn+ObsAWMXG96aOt920YGdUSbsVzRcPwWQAv0wNfb9o+8eVI0fUOcgKE5eqRqrnHaQ06/mxrdeY5Ps1B+5WV+PKnpIS9eNFACrO+a83vaCw79JqZjXa8Ke36y0mUnre/JB5JawlouzyQb9NfM8n6DcTiGT+zOGDCeZslHCaLaAANrY2ekL9wCWAEZbtOF8DOvLduRjjyzVby/4W8jB5bHWLTEAdO6djcjcCelBSlfRGi60ObK/9ZUXw= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR04MB6341.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38350700002)(6506007)(36756003)(6916009)(6512007)(2906002)(38100700002)(6666004)(2616005)(6486002)(8936002)(316002)(66476007)(26005)(5660300002)(1076003)(66556008)(66946007)(83380400001)(508600001)(44832011)(8676002)(52116002)(186003)(86362001)(70780200001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Xp5uHHFMzEkQTdWijCY/rW2Ou2NjrI/f4LvOw1TZUUzzHqoWefCrC5O7O1jeH5Cgcx7A/2rDsL72FZFbTbCMNGMZZBOpHuSzT8+heotk8i/+znFxY2MQbwso1KD3HD+36zvqmkyGBTAB7JXlrWzgMXh10/tr0iFNz4ECiF34y0yNTs8ShhtZ2RBuCQvz3s4gymHfmq07EGH/zHR9xRtydhzcby0dLgmcNNGUYEeXZy0rHv3czw+D/I5UdnbuYiCSucluNXoYUpVAea2HqRJB7NUuQs05R5jHuAsZNRJBGOthkhtAWZCdHtD5yEZFyn33ipcPqCTjLb/Z8HdVxjnTWOq0JLwZEGmua9NoouQgiqHLGeMLDB4lDh7zO8FO91Jl8r27s9jz06kRppSQJmA5fprsR7njWzvhbCH1sQkxUJIgVaTOX9lFYwp5jLHuu19TqyKdZnJUYlOuvvmSiqDu+jKF4DSbYV9H8EpE86dS3LMKB1iiNOlppVPUOm5Jw3o+b6yVHQIka+UYmGLpUQq9zFLr6CiXr+sUKy5Q6+BYj+gQdhKlz79CuZYz7+UtDb4dhuck/y8P1nZrVP9Hf0FgBgtRyPLJhbzREMIomZfWlCwVB5Gr0rUsYttJVchI06VbwNx7BIFxZA25Fjaf1M93G+5OTsH0pwx76mkPgUsM+B/Jqzkwxes0sRq9c9PuX0unnBEFtqrH9IWpzz6Lqip7Z2WpYLAu7YPDsazAb+t8wrYZ8O9wkZ9p8q4j6s43ILWG3y1yuohEtrmL57p+AFSmkrNWS3sJNgTIOkoqHD1SM0ocqq3TNd5w5N4lEqLPMNXJnaiAXILQr/nec6dHgdsVmv16DDiUvRsdj5rHcIqezPQDjLzbzVGexC+xnD4Ra6mDvwz7UoMwrmF9iSwUIAAqG00AgqqpPr4+ZNms86f81at0yrDMlNkTLaEoCvOPByMH6/WVZmmWzA59fBRcE6vOo3eBaRcAF0ApmH9tAofreV/ubS+oLgEVCkg+2Fi6amB/ZEZFRP7ETS34LIaqiOzsNrHBwpwLz72XcgdSWSrLpU0xeMB96cuB55fN2/pz0nW1cvsGMUZvuNAtsKzASsTEaEdI4FHTKcpO+/jbxonOrNIp7OWBaS7c0Rk8M+hbKVJ3f+UEEr27VUYboKq7+ntbCsU41k1caoIepIVpMtHxZvkscOs+LGJt0cEWE5US2CJi02fNHhQ0cjb871vULdXGcyDIp7z24WQY/uQq2NXiSmTsfVU2WOHzPYswhm0k1iFEFIGcWiTmU1KKesfoKAEt5dVdgoQ5fLSsmcnzMF3jrJfHYeZ2Ge7Snwbj1gizVlmzmy5h1oHDFQ6D66nMCR9RS5yAaWCMEvGiHVx67JZsSabNCl5I2xPmtVQIrA/2V3q1X1SwnhYOAXR4ebyVPw5yUX+k360RBSxqhTlf6Cn15zz+3iX7lwkXYME5hGwhS81Od1O0Z4i128+3KDMRIinuo6lKgav9qkWOw+VcOgOwWrWl8jqQCeDOng+a+Pf0AkXlkozzOYPYW6ywIYVR9a3v1Cmn1aa6lOfmVkJigEDocHNwaeIaatcXaa1FmahitfUXs20hdEfvfEUGyX+ZCoRr6bs3Xdz/a7a2yanDFHuEuxs= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0075dccf-3d2e-4494-1dbe-08d9cf61e275 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB6341.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:09:16.9926 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mYl9KvWN6wMaMpcsrjnDLicRM5H0Xsy/VVbOpoj0tyfZ6QQJpD1yKXmYURVnXZNAxeV0EuUsBGC7YhvrtMvwFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5928 Subject: [FFmpeg-devel] [PATCH v5 7/7] avcodec/v4l2_m2m_dec: setup capture queue before enqueue the first frame 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: SC5qMMILqXZq there are two proper ways to setup capture queue. 1. client wait the source change event, then setup the capture queue and streamon 2. client setup the capture queue in advance, but to avoid time issues, client should start the capture queue before it enqueue the sequence header to decoder driver through output queue. and the sequence header is always in the first frame, so client should start capture before enqueue the first frame. ffmpeg use the method 2 to setup capture queue, but currently ffmpeg enqueue the first frame before starting the capture queue. so in driver side, there are time issues. when driver has parsed the resolution from sequence header, but the client may not finished setup the capture. so driver can't decide whether to notify a source change event to client. and the following flow may be chaotic. And it's OK that client setup capture queue first, then enqueue the first frame. Signed-off-by: Ming Qian --- libavcodec/v4l2_m2m_dec.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/libavcodec/v4l2_m2m_dec.c b/libavcodec/v4l2_m2m_dec.c index b0c3d30ac8ae..e67758531ace 100644 --- a/libavcodec/v4l2_m2m_dec.c +++ b/libavcodec/v4l2_m2m_dec.c @@ -153,6 +153,14 @@ static int v4l2_receive_frame(AVCodecContext *avctx, AVFrame *frame) if (s->draining) goto dequeue; + ret = v4l2_try_start(avctx); + if (ret) { + /* can't recover */ + if (ret != AVERROR(ENOMEM)) + ret = 0; + goto fail; + } + ret = ff_v4l2_context_enqueue_packet(output, &s->buf_pkt); if (ret < 0 && ret != AVERROR(EAGAIN)) goto fail; @@ -161,16 +169,6 @@ static int v4l2_receive_frame(AVCodecContext *avctx, AVFrame *frame) if (ret != AVERROR(EAGAIN)) av_packet_unref(&s->buf_pkt); - if (!s->draining) { - ret = v4l2_try_start(avctx); - if (ret) { - /* cant recover */ - if (ret != AVERROR(ENOMEM)) - ret = 0; - goto fail; - } - } - dequeue: return ff_v4l2_context_dequeue_frame(capture, frame, -1); fail: