From patchwork Fri Jan 5 19:02:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "LongChair ." X-Patchwork-Id: 7146 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.78.2 with SMTP id r2csp1121720jaa; Fri, 5 Jan 2018 11:02:37 -0800 (PST) X-Google-Smtp-Source: ACJfBouvo2WA4R/qRMxpellISZxK7DDHZbm+nyrlgX1pRMxRz9zNkau/GdnweurwZrj5brf1s5p/ X-Received: by 10.223.178.26 with SMTP id u26mr3487942wra.149.1515178957233; Fri, 05 Jan 2018 11:02:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1515178957; cv=none; d=google.com; s=arc-20160816; b=GHFujzI6I8zXtwEwyqOEwqN0NLItssDBO6Y5C/gANt+NCqITgbGn2UPX1yFtOUSu/W fs4Kd+IRtNVxJxOGjgfQ157dj/beAkMtylaYiXZpwBlJ8zF6gQ7zyFa5rksOWQVFrF7n iki/3SUITQKn4QMu+hIfA0a2/IXM4+Z6TEu50gImaf3zNDOhQLPrXGATP8tUX1wAq+AZ cu+iGhBieD3AMhphP+RVcJUvQEIMNCZUOlwn7ET2q+G4jpt3INXBXdm1dMg9qA3g9XWZ UgIgdODjbeJ8FVonCfc0yj08WqYaIoIwR5ldqjFV2y0VNhRSMK5vyMfmogRV+qwhPjN+ zrhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:message-id:date:thread-index :thread-topic:to:from:dkim-signature:delivered-to :arc-authentication-results; bh=IdXv0bqQbwwRVR36wpy7l86KFf4rYWbgzkBlxoJc6/w=; b=l9EXAIdVsoTcFbf/3BCBFgOK6fVS/LXa9/1y+cTTAQ2jH2tdYGjTQ2HLwcBa9xrjZC qcnB0b4bwMiNUBc4jUeJ6WN3TL+QbNMHHJ8TotW6tU90jr/tTm/TgLWHGeOsUEpbyzrr HvOuu3/SjzxJVMoXACLcIokM0k2YLZBt3KWHjVwkxmXKMPFgm1lOYssVxNIwzPSqvuqQ y3qrA0S7NMw7dgdnLcru0RHf7klE/xuT8cYgwTXmLXazt7RXWMvWFR7hji5DaWjXFREJ HUY0cPnHecT5ZZ69eWmtSopVZRWMF+DZAgMe/KoEY+xdET9ZBat7e5bxsUDbb9FL9oOJ Kmqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@hotmail.com header.s=selector1 header.b=n63qjdWW; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=hotmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c71si3989256wmi.226.2018.01.05.11.02.36; Fri, 05 Jan 2018 11:02:37 -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=@hotmail.com header.s=selector1 header.b=n63qjdWW; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=hotmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2EA0C689AA9; Fri, 5 Jan 2018 21:02:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-oln040092011033.outbound.protection.outlook.com [40.92.11.33]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2A5F46882A3 for ; Fri, 5 Jan 2018 21:02:28 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Hn06PgGIncSOdZyXasFBzcO/j+1+jqh2GC3rMUFvQrM=; b=n63qjdWWU+WgVtvkHImJ4WEBg+Hv5su+WIDILMKOwvn7dFaPDMMLcXbUM1AnjC/LWgzq0gm1G9JFrv3HqxkOstaCYDqYwB++41q/QG1FJy+iFeixUimlCeIsJ30rUBbwG8zOEoH94/UuWJTE36w7sqGlm5SDM5LgRrfgKRCVSVZ8iCsYiPVHiNdNRucERZz4+3ipcEfoomL0ci8zOvHwuk6KCfqCgc4r9LBTg7tmgg9WM7WGGFrBh3nxoumN1Gn1NxITmycIIlHlqy3LNTsXFfSLK7RG+dWqZQmZy4ReDAQZYNKPRzE0GO6vD5x2wg5jRw7g2+b0B1//vCLH4t88dQ== Received: from BN3NAM04FT035.eop-NAM04.prod.protection.outlook.com (10.152.92.55) by BN3NAM04HT071.eop-NAM04.prod.protection.outlook.com (10.152.92.190) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.302.6; Fri, 5 Jan 2018 19:02:25 +0000 Received: from MWHPR17MB1614.namprd17.prod.outlook.com (10.152.92.58) by BN3NAM04FT035.mail.protection.outlook.com (10.152.92.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.345.12 via Frontend Transport; Fri, 5 Jan 2018 19:02:25 +0000 Received: from MWHPR17MB1614.namprd17.prod.outlook.com ([10.173.242.16]) by MWHPR17MB1614.namprd17.prod.outlook.com ([10.173.242.16]) with mapi id 15.20.0386.006; Fri, 5 Jan 2018 19:02:25 +0000 From: "LongChair ." To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: avcodec/rkmpp : Fix broken build and remove some useless code Thread-Index: AQHThle5QVmdmSIGs0WfNXl3DYAgvQ== Date: Fri, 5 Jan 2018 19:02:25 +0000 Message-ID: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:569FFE568B82A6F02511757878B3EC45CC6D31552E321F1F5857C8C250518100; UpperCasedChecksum:1E60BC9E3433BD8BE374519B95C729745E65E71FE968A3EB6049B2745B7B8A7B; SizeAsReceived:6893; Count:44 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [7XQHgczaMbOoDCx4HPEUtKJfMYl5NlJB] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BN3NAM04HT071; 6:s7jZLuOKZtwI4hO27kxpkog3ELzMX2s9h/OVs0O2OY6dSkhdZ7ZLKnpPOoBtpFUdYPZ5czhgCw3f65qbK4nZdYrI4U9jqmXitsmRGiHRU8+uWkd67oQcBryJ0pDmoHYrLK42slf4N+qo+BjXgff/8hdTngGlMXNjnRLaEk9jiBL2j6aKbuPn8SRJCiPC9BTVdxQgVqlKNzMYZefuBKS3o3SfVNaCMV8gNZa4uyebN0xcHCn0KZLsapt1w1alDmu2Un0OMBLFEqAdhqrOC7RI9In02XWZmkR8XuYvK0P2IVIjw++WABx6R3SDo3Mw7g4zhyZ3JZM+osFL14l0C44MHRNrNkuI3djIMaACVw8YMxg=; 5:M9QJKnb7YUVJTxEPI5+6PUhLDNt+jFFYSsCEAc+re/oU9RYxhGwUa5ySPhCgndreoTLtcx3VpznOgCs0CMrN2fZfKEBXfF8cSawZfKUdMlTtQ/7KArSQ6VZMXIjPbDbzAfVqWvFEbutESIoTUDa6Uqaf3l+DIZ2C7As15Nung+s=; 24:JHTV8py3s1x9YaXZ68NAtpREbaUjvhOf6xRsUYimP6pZBoCDxsFlGowbzc91vdk4oy8geoOKoaJPgZHdH7pAL/GZfnQdVgyBlfM8ibTUipo=; 7:t3BvI7c5Ou1BVXSmJcRLn8G1XiV7TRg0ZMKIxtc5Y1eMeyOt0yRWEWBfUNtJceyUIwm1ADVaorf64Zepmvuw4Web2KXSeBeo8lzWkbRBORzT7+x2ZKncQXGR76ugraTYt67UOYqzhgFsTuvoRvpPVaWgofajyjOgklZAADybt8OuMinfbG6wIe9WDH92bDekcY5REU0bhv6mvv3DKOVDPvm/aS2/tjaY2FaBPYbcd4s9BTf/60QHDcAj+qK/NlYn x-incomingheadercount: 44 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:BN3NAM04HT071; x-ms-traffictypediagnostic: BN3NAM04HT071: x-ms-office365-filtering-correlation-id: fc769294-ad7a-4883-87ca-08d5546edb52 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:BN3NAM04HT071; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:BN3NAM04HT071; x-forefront-prvs: 05437568AA x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:BN3NAM04HT071; H:MWHPR17MB1614.namprd17.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc769294-ad7a-4883-87ca-08d5546edb52 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2018 19:02:25.5704 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3NAM04HT071 Subject: [FFmpeg-devel] avcodec/rkmpp : Fix broken build and remove some useless code X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi, Here are two patches that should : - fix https://trac.ffmpeg.org/ticket/6834. - remove code that looked a bit hackish and which is not necessary anymore. The first patch is required as mpp removed some control operation from the API, breaking the build. The second one is related to mpp fixes that make things work better. Both patches have been tested on ROCK64. More details are included in the patch themselves. LongChair From 46523ce0fca740a69619e59398d329623800e501 Mon Sep 17 00:00:00 2001 From: LongChair Date: Tue, 2 Jan 2018 12:38:01 +0100 Subject: [PATCH] avcodec/rkmpp : remove stream start retries before first frame. those were needed because of some odd mpp behavior that seems to have been fixed. Makes the code cleaner. --- libavcodec/rkmppdec.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/libavcodec/rkmppdec.c b/libavcodec/rkmppdec.c index 946b827918..143d05bd51 100644 --- a/libavcodec/rkmppdec.c +++ b/libavcodec/rkmppdec.c @@ -47,7 +47,6 @@ typedef struct { MppApi *mpi; MppBufferGroup frame_group; - char first_frame; char first_packet; char eos_reached; @@ -329,28 +328,14 @@ static int rkmpp_retrieve_frame(AVCodecContext *avctx, AVFrame *frame) MppBuffer buffer = NULL; AVDRMFrameDescriptor *desc = NULL; AVDRMLayerDescriptor *layer = NULL; - int retrycount = 0; int mode; MppFrameFormat mppformat; uint32_t drmformat; - // on start of decoding, MPP can return -1, which is supposed to be expected - // this is due to some internal MPP init which is not completed, that will - // only happen in the first few frames queries, but should not be interpreted - // as an error, Therefore we need to retry a couple times when we get -1 - // in order to let it time to complete it's init, then we sleep a bit between retries. -retry_get_frame: ret = decoder->mpi->decode_get_frame(decoder->ctx, &mppframe); - if (ret != MPP_OK && ret != MPP_ERR_TIMEOUT && !decoder->first_frame) { - if (retrycount < 5) { - av_log(avctx, AV_LOG_DEBUG, "Failed to get a frame, retrying (code = %d, retrycount = %d)\n", ret, retrycount); - usleep(10000); - retrycount++; - goto retry_get_frame; - } else { - av_log(avctx, AV_LOG_ERROR, "Failed to get a frame from MPP (code = %d)\n", ret); - goto fail; - } + if (ret != MPP_OK && ret != MPP_ERR_TIMEOUT) { + av_log(avctx, AV_LOG_ERROR, "Failed to get a frame from MPP (code = %d)\n", ret); + goto fail; } if (mppframe) { @@ -366,7 +351,6 @@ retry_get_frame: avctx->height = mpp_frame_get_height(mppframe); decoder->mpi->control(decoder->ctx, MPP_DEC_SET_INFO_CHANGE_READY, NULL); - decoder->first_frame = 1; av_buffer_unref(&decoder->frames_ref); @@ -480,7 +464,6 @@ retry_get_frame: goto fail; } - decoder->first_frame = 0; return 0; } else { av_log(avctx, AV_LOG_ERROR, "Failed to retrieve the frame buffer, frame is dropped (code = %d)\n", ret); @@ -560,7 +543,6 @@ static void rkmpp_flush(AVCodecContext *avctx) ret = decoder->mpi->reset(decoder->ctx); if (ret == MPP_OK) { - decoder->first_frame = 1; decoder->first_packet = 1; } else av_log(avctx, AV_LOG_ERROR, "Failed to reset MPI (code = %d)\n", ret); -- 2.14.1