You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
avcodec/jpeg2000dec: Implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
This could be improved further by not allocating the buffers that won't be needed lateron in the first place. Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -2523,6 +2523,11 @@ static int jpeg2000_decode_frame(AVCodecContext *avctx, AVFrame *picture,
|
|||||||
avctx->sample_aspect_ratio = s->sar;
|
avctx->sample_aspect_ratio = s->sar;
|
||||||
s->sar.num = s->sar.den = 0;
|
s->sar.num = s->sar.den = 0;
|
||||||
|
|
||||||
|
if (avctx->skip_frame >= AVDISCARD_ALL) {
|
||||||
|
jpeg2000_dec_cleanup(s);
|
||||||
|
return avpkt->size;
|
||||||
|
}
|
||||||
|
|
||||||
/* get picture buffer */
|
/* get picture buffer */
|
||||||
if ((ret = ff_thread_get_buffer(avctx, picture, 0)) < 0)
|
if ((ret = ff_thread_get_buffer(avctx, picture, 0)) < 0)
|
||||||
goto end;
|
goto end;
|
||||||
@@ -2587,4 +2592,5 @@ const FFCodec ff_jpeg2000_decoder = {
|
|||||||
.p.priv_class = &jpeg2000_class,
|
.p.priv_class = &jpeg2000_class,
|
||||||
.p.max_lowres = 5,
|
.p.max_lowres = 5,
|
||||||
.p.profiles = NULL_IF_CONFIG_SMALL(ff_jpeg2000_profiles),
|
.p.profiles = NULL_IF_CONFIG_SMALL(ff_jpeg2000_profiles),
|
||||||
|
.caps_internal = FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM,
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user