summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorStephan Vedder <vedder@mbits.info>2022-07-04 11:41:45 +0200
committerStephan Vedder <vedder@mbits.info>2022-07-04 13:29:09 +0200
commit1c8bddf3cad7ac2721c89f661268d0a558057683 (patch)
treecaeec9fec07ee2f7705d8857a066c44d12651d8d /modules
parentb0766a62ec1b220f9172dfd412357b016be24aca (diff)
downloadgtk+-1c8bddf3cad7ac2721c89f661268d0a558057683.tar.gz
ffmpeg: Fix crash on some media files
Return code EAGAIN expects the user to feed more packets into the decoder
Diffstat (limited to 'modules')
-rw-r--r--modules/media/gtkffmediafile.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/media/gtkffmediafile.c b/modules/media/gtkffmediafile.c
index 819d14d2c1..2210d31ddd 100644
--- a/modules/media/gtkffmediafile.c
+++ b/modules/media/gtkffmediafile.c
@@ -292,9 +292,15 @@ gtk_ff_media_file_decode_frame (GtkFfMediaFile *video,
if (errnum >= 0)
{
errnum = avcodec_receive_frame (video->codec_ctx, frame);
+ if (errnum == AVERROR (EAGAIN))
+ {
+ // Just retry with the next packet
+ errnum = 0;
+ continue;
+ }
if (errnum < 0)
G_BREAKPOINT();
- if (errnum >= 0)
+ else
{
av_packet_unref (&packet);
break;