On 1/21/25 7:34 AM, Leo Izen wrote:
This function can return AVERROR_BUG in theory if something
went wrong, but so can the caller, so we should propagate that
error message upward in that case.

Signed-off-by: Leo Izen <leo.i...@gmail.com>
---
  libavutil/frame.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libavutil/frame.c b/libavutil/frame.c
index 10b59545f0..89c200bcc2 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -1095,6 +1095,7 @@ int av_frame_apply_cropping(AVFrame *frame, int flags)
  {
      const AVPixFmtDescriptor *desc;
      size_t offsets[4];
+    int ret;
if (!(frame->width > 0 && frame->height > 0))
          return AVERROR(EINVAL);
@@ -1122,7 +1123,9 @@ int av_frame_apply_cropping(AVFrame *frame, int flags)
      }
/* calculate the offsets for each plane */
-    calc_cropping_offsets(offsets, frame, desc);
+    ret = calc_cropping_offsets(offsets, frame, desc);
+    if (ret < 0)
+        return ret;
/* adjust the offsets to avoid breaking alignment */
      if (!(flags & AV_FRAME_CROP_UNALIGNED)) {
@@ -1141,7 +1144,9 @@ int av_frame_apply_cropping(AVFrame *frame, int flags)
if (min_log2_align < 5 && log2_crop_align != INT_MAX) {
              frame->crop_left &= ~((1 << (5 + log2_crop_align - 
min_log2_align)) - 1);
-            calc_cropping_offsets(offsets, frame, desc);
+            ret = calc_cropping_offsets(offsets, frame, desc);
+            if (ret < 0)
+                return ret;
          }
      }

Will apply.

- Leo Izen (Traneptora)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to