fftools/ffplay: add support for rendering without alpha

Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint
2026-01-17 21:27:41 +01:00
parent e76c73afaf
commit 0ba9e272fa
4 changed files with 12 additions and 2 deletions

View File

@@ -995,6 +995,9 @@ static void draw_video_background(VideoState *is)
fill_rectangle(rect->x, rect->y, rect->w, rect->h);
break;
}
case VIDEO_BACKGROUND_NONE:
SDL_SetTextureBlendMode(is->vid_texture, SDL_BLENDMODE_NONE);
break;
}
}
}
@@ -3266,7 +3269,9 @@ static VideoState *stream_open(const char *filename,
if (startup_volume > 100)
av_log(NULL, AV_LOG_WARNING, "-volume=%d > 100, setting to 100\n", startup_volume);
if (video_background) {
if (strcmp(video_background, "tiles")) {
if (!strcmp(video_background, "none")) {
is->render_params.video_background_type = VIDEO_BACKGROUND_NONE;
} else if (strcmp(video_background, "tiles")) {
if (av_parse_color(is->render_params.video_background_color, video_background, -1, NULL) >= 0)
is->render_params.video_background_type = VIDEO_BACKGROUND_COLOR;
else

View File

@@ -747,6 +747,9 @@ static int display(VkRenderer *renderer, AVFrame *frame, RenderParams *params)
pl_params.background_color[i] = params->video_background_color[i] / 255.0;
pl_params.background_transparency = (255 - params->video_background_color[3]) / 255.0;
break;
case VIDEO_BACKGROUND_NONE:
pl_frame.repr.alpha = PL_ALPHA_NONE;
break;
}
if (!pl_render_image(ctx->renderer, &pl_frame, &target, &pl_params)) {

View File

@@ -30,6 +30,7 @@ typedef struct VkRenderer VkRenderer;
enum VideoBackgroundType {
VIDEO_BACKGROUND_TILES,
VIDEO_BACKGROUND_COLOR,
VIDEO_BACKGROUND_NONE,
};
typedef struct RenderParams {