fre 2022-09-23 klockan 17:40 +0200 skrev Andreas Rheinhardt: > That way the SAR will be automatically set on the AVFrame. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > --- > If I am not mistaken, then the earlier code would set the sar > with a delay of one frame on the returned frames in case > there is a sar change mid-stream. But I don't have a sample > for this. > > libavcodec/jpeg2000dec.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c > index 7d9661f29f..c3f2a7aa03 100644 > --- a/libavcodec/jpeg2000dec.c > +++ b/libavcodec/jpeg2000dec.c > @@ -2519,6 +2519,10 @@ static int > jpeg2000_decode_frame(AVCodecContext *avctx, AVFrame *picture, > if (ret = jpeg2000_read_main_headers(s)) > goto end; > > + if (s->sar.num && s->sar.den) > + avctx->sample_aspect_ratio = s->sar; > + s->sar.num = s->sar.den = 0; > + > /* get picture buffer */ > if ((ret = ff_thread_get_buffer(avctx, picture, 0)) < 0) > goto end; > @@ -2547,9 +2551,6 @@ static int jpeg2000_decode_frame(AVCodecContext > *avctx, AVFrame *picture, > > if (s->avctx->pix_fmt == AV_PIX_FMT_PAL8) > memcpy(picture->data[1], s->palette, 256 * > sizeof(uint32_t)); > - if (s->sar.num && s->sar.den) > - avctx->sample_aspect_ratio = s->sar; > - s->sar.num = s->sar.den = 0;
I suspect not doing this is what caused my simple hack to not work when ff_thread_get_buffer() was skipped. Looks OK, passes FATE. /Tomas _______________________________________________ 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".