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);