diff options
author | Niklas Haas <git@haasn.dev> | 2024-02-17 21:51:19 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2024-03-04 14:03:17 +0100 |
commit | d85577b60174d213221809e558ae2a3e7d524146 (patch) | |
tree | f6f4376f48c90d6e323cc6c0063c27ba5bae90dc | |
parent | f00d9bc8bc593651e4eade85b383f2c2be5369ce (diff) |
avcodec/mjpegdec: respect side data preference
-rw-r--r-- | libavcodec/mjpegdec.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 81f724d230..43b36d0a8f 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -2840,16 +2840,18 @@ the_end: for (i = 0; i < s->iccnum; i++) total_size += s->iccentries[i].length; - sd = av_frame_new_side_data(frame, AV_FRAME_DATA_ICC_PROFILE, total_size); - if (!sd) { + ret = ff_frame_new_side_data(avctx, frame, AV_FRAME_DATA_ICC_PROFILE, total_size, &sd); + if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "Could not allocate frame side data\n"); - return AVERROR(ENOMEM); + return ret; } - /* Reassemble the parts, which are now in-order. */ - for (i = 0; i < s->iccnum; i++) { - memcpy(sd->data + offset, s->iccentries[i].data, s->iccentries[i].length); - offset += s->iccentries[i].length; + if (sd) { + /* Reassemble the parts, which are now in-order. */ + for (i = 0; i < s->iccnum; i++) { + memcpy(sd->data + offset, s->iccentries[i].data, s->iccentries[i].length); + offset += s->iccentries[i].length; + } } } |