From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 469D14003F for ; Tue, 13 Jan 2026 22:45:28 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'EqH6pC0cQtCQ0Pk9ZHadnk5EbOBDShUOeTPNlyvaVVc=', expected b'oRpJCwj+478BnPsbSEf2zOdaQ4Ny5kjDcTNMEUGdn4Q=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1768344312; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=EqH6pC0cQtCQ0Pk9ZHadnk5EbOBDShUOeTPNlyvaVVc=; b=t0AxC+cZs1SJ6yST7xjfC8SDErUIqi/rjbUzsnrisrQGRerny7/8lG7ZY2wgsavjL4uJl cQjKSsfjSNvhJ+rDXdDDFnt8wkktKeinhk7Ot63caCxvsTzEKE9Nfeu1ViMJAtddai8OaIO 9UJ2SN6y1d9VzEmHEjdira7irJ3wAcN+0cZu63E1t5k+xDR6tzs4LuwAcU//noK0yNh9oKS 1TFGnTjVUxsdnc47QzRAlIh5MQ1A5X/EJK1MyGUGwVMirbb89KHqDviLQrgTumNsLBUEcIJ ++sBIjq6hhx3WJrz3VvhDbyPfXKPUPMQXINVXjUaUt/XI7iLYV02ypazV0lg== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 5620D690D85; Wed, 14 Jan 2026 00:45:12 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1768344294; b=Q3vDOlRozgS/N7puhQfhjhK7K7f/qIgPybYKwdoU2iGbETgxk4ixyy7ICGbXN/BNMak/Y BP8a5oyIfznrAnePLhB51l/mNu37n0RuarUIMu27sNFUEHDuG9uwRvWqBa1RKl6Gsj/SPu6 rnUPMaoiX0sR3ru6hCYxS089fb1/l3AYwkNP7/2pH3HdgVlOg/fUsCxtGZxSJap0tGGov05 3pMPlSIZQmgt0WEyvb2LDKdOTaKOyCyGjHYiFj5fGweEztxsOJehUt4XG2Kby0WnYsy/1oS gKoeI/lbW+LUFJfKue96jhCwtVc23kyupejJnOxKxsaYdAMQJZNS5yESH8Rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1768344294; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=dBOhvmU5+goM4RAxY5XCTCTuWCJlGQMbUbgVhxGF+xE=; b=aWPye+QOWNoNydPDDx4Cssg59TNzhGQ9h+RfS8w72PA0nVJdrHLiKKGkvc7P/yjYehQSe WbEHZKGLYFQP4j0YGjwEZwKCEExA1Vv7hFsuWdsKhGZxDLR1+H45P6dKUK/dEdiKD6g/pCj bwrKv8GPNEJ+DRy4s1Fb2RQOYXVsg0K9Id2v09PdggI3cTU1Xdx9Hr9a031Edim8tUGH374 +34yzoqHrgtqrgWiksFLExUu4bguE1lWQFlGVl8T0nduao4xyNarQQAP98z8x2Qp8iUkRju 5sRgN+HzqINTBzPg/Q6aLU0DP56UD3h2awAF017r9T0zDN2lt66CBXF2pE8Q== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1768344285; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=oRpJCwj+478BnPsbSEf2zOdaQ4Ny5kjDcTNMEUGdn4Q=; b=iPcmoa5kc2ZnVWIs2CQgJUCq03YrRC7j9umMd3QRF6JpcfRL8E3rNu2Sfd8bj1eRm3ZAv +c5TvOLCYmyOntPKUyMlOCMK5I9x9t4+MMUSDX2boLTMdAezw4dKioAhWSsu2YR0lDK3oAL kbN5FCx62oezMiHhqpSZYKyVRyrAJN5vOCNE7ARclEpgzU7wSHsVv8KRdOZNBeokHv+1Vsz NUwiNPnzs546BVqqS58ODqsNYFaVZCh4joeRurGA7fUJg3aN6aE2e1I2KH3hGCbDdbKcT5a Z8OSPoZzAuqQSJ20+BA++jz9s01AwsxFk0hevk1e1hBXwlJAVKhl9oB0uZYA== Received: from f7c34508609e (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id D9EEF68F436 for ; Wed, 14 Jan 2026 00:44:45 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Tue, 13 Jan 2026 22:44:45 -0000 Message-ID: <176834428605.25.15797470367229740403@4457048688e7> Message-ID-Hash: UWVGP6AGJKQZJZRQF6MESR64VKFMVT6Q X-Message-ID-Hash: UWVGP6AGJKQZJZRQF6MESR64VKFMVT6Q X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] fftools/ffplay: use a checkerboard video background for transparent video (PR #21454) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Marton Balint via ffmpeg-devel Cc: Marton Balint Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21454 opened by Marton Balint (cus) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21454 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21454.patch Signed-off-by: Marton Balint >>From b451ed58f7b601b17b53e9ea73cf9e36aeef121d Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sun, 11 Jan 2026 21:37:19 +0100 Subject: [PATCH] fftools/ffplay: use a checkerboard video background for transparent video Signed-off-by: Marton Balint --- fftools/ffplay.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/fftools/ffplay.c b/fftools/ffplay.c index dcd20e70bc..911928db64 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -963,6 +963,27 @@ static void set_sdl_yuv_conversion_mode(AVFrame *frame) #endif } +static void draw_checkerboard(VideoState *is, SDL_Rect *rect) +{ + const int checkboard_size = 64; + SDL_BlendMode blendMode; + if (!SDL_GetTextureBlendMode(is->vid_texture, &blendMode) && blendMode == SDL_BLENDMODE_BLEND) { + SDL_SetRenderDrawColor(renderer, 237, 237, 237, 255); + fill_rectangle(rect->x, rect->y, rect->w, rect->h); + SDL_SetRenderDrawColor(renderer, 222, 222, 222, 222); + for (int x = 0; x < rect->w; x += checkboard_size * 2) + fill_rectangle(rect->x + x, rect->y, FFMIN(checkboard_size, rect->w - x), rect->h); + for (int y = 0; y < rect->h; y += checkboard_size * 2) + fill_rectangle(rect->x, rect->y + y, rect->w, FFMIN(checkboard_size, rect->h - y)); + SDL_SetRenderDrawColor(renderer, 237, 237, 237, 255); + for (int y = 0; y < rect->h; y += checkboard_size * 2) { + int h = FFMIN(checkboard_size, rect->h - y); + for (int x = 0; x < rect->w; x += checkboard_size * 2) + fill_rectangle(x + rect->x, y + rect->y, FFMIN(checkboard_size, rect->w - x), h); + } + } +} + static void video_image_display(VideoState *is) { Frame *vp; @@ -1032,6 +1053,7 @@ static void video_image_display(VideoState *is) vp->flip_v = vp->frame->linesize[0] < 0; } + draw_checkerboard(is, &rect); SDL_RenderCopyEx(renderer, is->vid_texture, NULL, &rect, 0, NULL, vp->flip_v ? SDL_FLIP_VERTICAL : 0); set_sdl_yuv_conversion_mode(NULL); if (sp) { -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org