From patchwork Thu Sep 1 04:53:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: wangyaqiang <1035567130@qq.com> X-Patchwork-Id: 37586 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp59839pzh; Wed, 31 Aug 2022 21:53:28 -0700 (PDT) X-Google-Smtp-Source: AA6agR4MOTVcTxpBOGpE/gci/gveam+ftRz5WJVfEOCx3VKflVW8liPGiCMF0tfB4k67QRCqFrp/ X-Received: by 2002:a17:906:5d08:b0:734:bf6a:6309 with SMTP id g8-20020a1709065d0800b00734bf6a6309mr21989147ejt.516.1662008008232; Wed, 31 Aug 2022 21:53:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662008008; cv=none; d=google.com; s=arc-20160816; b=KRx44mceImYh07Gcg2NVV45zwh+KjJci8vAsS7eKh7NlvpKs2l6IeDdmG9J76aimSn Qpx+/2PTT4evtjcH6J+ccfam8rn0XOW/QT+l2KVCXzDY7feASCIdelyZ6a7h4/I7B4km K+mUHEmq8P7sm1m/d2Ql4O96n3Lp8I4MU8Aa00IXukKHPikhP7exOtXfZw4AZMOqcqEC S0VlgiEfUeM94XQuvnRfIqTXdnMt9p2ur/u1Xd9cQoKJiIClML10oIC9w/SyDswuD7Y8 3B2QSF58Jg2KE/I1ZWeDNr1DBdNo0m6LTcT7XTSp9qiV3nQ7x9dhiGiLMB9WchkfqSEx DdPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=TDJHYLWAz0JqOSmq0icWWUtu1xH3sXpZKqSaFxk6B/8=; b=RHX+tyhQNSWcTAzu5AgecRwmqOPZYgKRBtWNoLHXtzlm7PGw5t2pxOBpdf0S3CMgCy xy6jGghQ/3YS6wnsCZGvpgRpx4JeZDjmGQ2p1+Ub/IMnoTxdWb0Q7j4LnPGpdavWhGBz eRlNxKMPJ8kCCKB31P48SeoUM5AcZW8P0WjsEwy3ap2Az5Lfh+QkAjE5hIo8C8nhSOz6 v+zWg8QFBnPfGeAm8uJTgREdGB1phgcoSat8qGhSPtQKdh+U7ECyjC2nQLhWddAI5r63 L9jj9Z7W33OFSnrls/3v8NbjDH4QtVt5uxCqTcfGac4uN8dv73vdLLcEfN7RbYc4sVBY 6p3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@qq.com header.s=s201512 header.b=hVD065yY; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=qq.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id xe14-20020a170907318e00b007414dda0c62si11762583ejb.817.2022.08.31.21.53.27; Wed, 31 Aug 2022 21:53:28 -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=@qq.com header.s=s201512 header.b=hVD065yY; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=qq.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2593B68BA12; Thu, 1 Sep 2022 07:53:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-80.mail.qq.com (out203-205-251-80.mail.qq.com [203.205.251.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 35E1368B9ED for ; Thu, 1 Sep 2022 07:53:17 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1662007993; bh=v+naqyBclKCYuoPgCmfFAR0GJeZPedXnbYX1AoeAjJ8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=hVD065yYy5IIjLP6apMFf5UDRUdghVEQfrc/LCAyxVzBGvRrDMqAyrlXNl2uJjhBR SRZ13QowfxqxiigyKa0PVhRHxusTBFFLbFg33RquYSyFtGMC9lgHuKQB5E65LJprPV pcfTAG4dOM6/R4zEmGyg7W3d4jbKtqwskV+o8PMg= Received: from localhost.localdomain ([103.107.217.225]) by newxmesmtplogicsvrsza30.qq.com (NewEsmtp) with SMTP id D4C01C61; Thu, 01 Sep 2022 12:53:12 +0800 X-QQ-mid: xmsmtpt1662007992tx2l8h7hz Message-ID: X-QQ-XMAILINFO: NNoVXaH09J17b2Hk/tf+5XE/2/ucQjkH0xuwi6dpJoGhKU2NXoFWhl7RoeDMbq hMIYG7U0D/oU64OLoG6BpVqyny56jY/zsBCfGnoPjYvvpjUlzTKpyz5SUzsNmCYN/gZU8AYK/EYS +uaG9eitKtnjM3s3DgLbk91j2zkVlmAOLs5BIoe4oG/EolYn/4Etql5tfyBeJuaDbQtBzJItLeDZ szFbHcxIsJwBxU66g2BNqUTVw8uhs3dj6GNd9DrYPjx0isH3s1BrNMcb5J09VmTaJdClUPn0kVIj DZv0HbuS09laFyv1sdDes9JMU9k8CTPiiqfWK0HEUq7py3a2ZWDDq0v5tZPL2jpiMA5z//LW94MV Dnt7nu/NeWo0jndvgq8cPKWYZJ0dV8yvGa0cTH57HkA+WDgm92f8xPOMeu6eYfvRbdDn2a6LQ2UR oOO/uK5yV2bBB37Cpy+s115W4jXL6OIK6GzSUu4Pmiru+TuFZwxhusg7LjLnMnaKNw5ReXbIWn6c eBMou2ZjBivrAev1gIAuUki9dO8ygxIkh/7s+TVAvANLeSQo4ZDQ8N+AB2fKxzV6F2//J4UEo6Zl Ixu+hR1FnbaBlPtJvKwHOXuUcaQ5lUrcXi8vmeI7trBWpf6jhuVUwl2KvvhujkwqKeJLMTYWmsDw odoBNDAsDzu6BiLi2612hvz0qhtb9AOwnOJk5IGsngnf05suzUc0nvQuNhpcLfwiqc5gdG4Z59Dh zjo8ntj0PRSe7tAUYO+SxQQaAktaZEIMRHC3LEhMtqDflrD26stZC1cr0qihJJF5Z1Eq5kHHpA8n vJiSIv5wi5GaKZ1+271G8cmeOhYGVGL1mRXyLTg3FMjJdunVp2NDBjqD9ApalOBPNJPfp6JpnjGV JHYRhXzinIenofsFR0Ob4WkwK3MdKQ9NOIhWJrZCyB From: 1035567130@qq.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Sep 2022 12:53:03 +0800 X-OQ-MSGID: <20220901045303.59009-1-1035567130@qq.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: References: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] fftools/ffplay: fix rotation incorrect when frame contains the displaymatrix 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 Cc: Wang Yaqiang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 8ebPKir0MjWu From: Wang Yaqiang For example, if the jpeg contains exif information and the rotation direction is included in the exif, the displaymatrix will be set on the side_data of the frame when decoding. However, when ffplay is used to play the image, only the side data in the stream will be determined. It does not check whether the frame also contains rotation information, causing it to play in the wrong direction Signed-off-by: Wang Yaqiang --- fftools/ffplay.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fftools/ffplay.c b/fftools/ffplay.c index 9242047f5c..5bda29169d 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -1915,7 +1915,12 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c } while (0) if (autorotate) { - int32_t *displaymatrix = (int32_t *)av_stream_get_side_data(is->video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL); + int32_t *displaymatrix = NULL; + AVFrameSideData *sd = av_frame_get_side_data(frame,AV_FRAME_DATA_DISPLAYMATRIX); + if (sd) + displaymatrix = (int32_t *)sd->data; + if (!displaymatrix) + displaymatrix = (int32_t *)av_stream_get_side_data(is->video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL); double theta = get_rotation(displaymatrix); if (fabs(theta - 90) < 1.0) {