diff --git a/deps/media-playback/media-playback/decode.c b/deps/media-playback/media-playback/decode.c index ec81e3bd0..86f2b689b 100644 --- a/deps/media-playback/media-playback/decode.c +++ b/deps/media-playback/media-playback/decode.c @@ -338,15 +338,12 @@ static int decode_packet(struct mp_decode *d, int *got_frame) } int err = av_hwframe_transfer_data(d->sw_frame, d->hw_frame, 0); + if (err == 0) { + err = av_frame_copy_props(d->sw_frame, d->hw_frame); + } if (err) { ret = 0; *got_frame = false; - } else { - d->sw_frame->color_range = d->hw_frame->color_range; - d->sw_frame->color_primaries = - d->hw_frame->color_primaries; - d->sw_frame->color_trc = d->hw_frame->color_trc; - d->sw_frame->colorspace = d->hw_frame->colorspace; } }