From 118c8ab0c2e2be839f9954beb84bc655f6112b0f Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 8 Mar 2018 12:49:56 -0600 Subject: [PATCH] FS-11016: [mod_av] Looping a video file that has resize feature enabled can allow a non-resized frame to slip after file seek #resolve --- src/mod/applications/mod_av/avformat.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_av/avformat.c b/src/mod/applications/mod_av/avformat.c index aab7d50a40..4d9929ea05 100644 --- a/src/mod/applications/mod_av/avformat.c +++ b/src/mod/applications/mod_av/avformat.c @@ -2324,14 +2324,14 @@ static switch_status_t av_file_read_video(switch_file_handle_t *handle, switch_f context->last_img = (switch_image_t *)pop; switch_img_copy(context->last_img, &frame->img); context->vid_ready = 1; - return SWITCH_STATUS_SUCCESS; + goto resize_check; } if (context->last_img) { // repeat the last img switch_img_copy(context->last_img, &frame->img); context->vid_ready = 1; context->seek_ts = -1; - return SWITCH_STATUS_SUCCESS; + goto resize_check; } if ((flags & SVR_BLOCK) && sanity-- > 0) { @@ -2346,7 +2346,7 @@ static switch_status_t av_file_read_video(switch_file_handle_t *handle, switch_f if ((flags & SVR_BLOCK)) switch_yield(100000); switch_img_copy(context->last_img, &frame->img); context->vid_ready = 1; - return SWITCH_STATUS_SUCCESS; + goto resize_check; } if ((flags & SVR_BLOCK)) { @@ -2359,7 +2359,7 @@ static switch_status_t av_file_read_video(switch_file_handle_t *handle, switch_f context->last_img = (switch_image_t *)pop; switch_img_copy(context->last_img, &frame->img); context->vid_ready = 1; - return SWITCH_STATUS_SUCCESS; + goto resize_check; } return SWITCH_STATUS_BREAK; @@ -2475,6 +2475,8 @@ GCC_DIAG_ON(deprecated-declarations) return SWITCH_STATUS_BREAK; } + resize_check: + if (frame->img) { if (frame->img && context->handle->mm.scale_w && context->handle->mm.scale_h) { if (frame->img->d_w != context->handle->mm.scale_w || frame->img->d_h != context->handle->mm.scale_h) {