From f601b66a1b99ccf5af22790e24b6b03634235f4c Mon Sep 17 00:00:00 2001 From: jeiea Date: Mon, 28 Apr 2025 23:26:29 +0900 Subject: [PATCH] media-playback: Fix possible crash on startup Frame width/height check crash if the frame is not given. We can reorder width/height check after other precondition checks. --- shared/media-playback/media-playback/media.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/shared/media-playback/media-playback/media.c b/shared/media-playback/media-playback/media.c index c718ff9f3ce00a..10a507987e517e 100644 --- a/shared/media-playback/media-playback/media.c +++ b/shared/media-playback/media-playback/media.c @@ -382,12 +382,6 @@ void mp_media_next_video(mp_media_t *m, bool preload) enum video_range_type new_range; AVFrame *f = d->frame; - if (!f->width || !f->height) { - blog(LOG_ERROR, "MP: media frame width or height are zero ('%s': %" PRIu32 "x%" PRIu32 ")", m->path, - f->width, f->height); - return; - } - if (!preload) { if (!mp_media_can_play_frame(m, d)) return; @@ -400,6 +394,12 @@ void mp_media_next_video(mp_media_t *m, bool preload) return; } + if (!f->width || !f->height) { + blog(LOG_ERROR, "MP: media frame width or height are zero ('%s': %" PRIu32 "x%" PRIu32 ")", m->path, + f->width, f->height); + return; + } + bool flip = false; if (m->swscale) { int ret = sws_scale(m->swscale, (const uint8_t *const *)f->data, f->linesize, 0, f->height,