Message ID | 20231008115737.80200-1-lq@chinaffmpeg.org |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,v1] avcodec/libaomdec: don't set aspect ratio when it's not yet known | expand |
On 10/8/2023 8:57 AM, Steven Liu wrote: > Makes the output of the libaom av1 decoder consistent with external decoders like > libdav1d. > > reference commit: 1652f2492f88434010053289d946dab6a57e4d58 But it is known at this point. picture->sample_aspect_ratio is set directly above. What needs to be done is initializing the decoder in aom_init() using the extradata, so lavf will not attempt to decode frames in order to get stream info, which is what i assume is happening here and why you want SAR to be 0/1. > > Signed-off-by: Steven Liu <lq@chinaffmpeg.org> > --- > libavcodec/libaomdec.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c > index 695d901051..ff4137bfc6 100644 > --- a/libavcodec/libaomdec.c > +++ b/libavcodec/libaomdec.c > @@ -204,7 +204,6 @@ static int aom_decode(AVCodecContext *avctx, AVFrame *picture, > picture->height * img->r_w, > picture->width * img->r_h, > INT_MAX); > - ff_set_sar(avctx, picture->sample_aspect_ratio); > > if ((img->fmt & AOM_IMG_FMT_HIGHBITDEPTH) && img->bit_depth == 8) > ff_aom_image_copy_16_to_8(picture, img);
James Almer <jamrial@gmail.com>于2023年10月8日 周日20:08写道: > On 10/8/2023 8:57 AM, Steven Liu wrote: > > Makes the output of the libaom av1 decoder consistent with external > decoders like > > libdav1d. > > > > reference commit: 1652f2492f88434010053289d946dab6a57e4d58 > > But it is known at this point. picture->sample_aspect_ratio is set > directly above. > > What needs to be done is initializing the decoder in aom_init() using > the extradata, so lavf will not attempt to decode frames in order to get > stream info, which is what i assume is happening here and why you want > SAR to be 0/1. i want fate pass > > > > > > Signed-off-by: Steven Liu <lq@chinaffmpeg.org> > > --- > > libavcodec/libaomdec.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c > > index 695d901051..ff4137bfc6 100644 > > --- a/libavcodec/libaomdec.c > > +++ b/libavcodec/libaomdec.c > > @@ -204,7 +204,6 @@ static int aom_decode(AVCodecContext *avctx, AVFrame > *picture, > > picture->height * img->r_w, > > picture->width * img->r_h, > > INT_MAX); > > - ff_set_sar(avctx, picture->sample_aspect_ratio); > > > > if ((img->fmt & AOM_IMG_FMT_HIGHBITDEPTH) && img->bit_depth == > 8) > > ff_aom_image_copy_16_to_8(picture, img); > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
On 10/8/2023 9:45 AM, Steven Liu wrote: > James Almer <jamrial@gmail.com>于2023年10月8日 周日20:08写道: > >> On 10/8/2023 8:57 AM, Steven Liu wrote: >>> Makes the output of the libaom av1 decoder consistent with external >> decoders like >>> libdav1d. >>> >>> reference commit: 1652f2492f88434010053289d946dab6a57e4d58 >> >> But it is known at this point. picture->sample_aspect_ratio is set >> directly above. >> >> What needs to be done is initializing the decoder in aom_init() using >> the extradata, so lavf will not attempt to decode frames in order to get >> stream info, which is what i assume is happening here and why you want >> SAR to be 0/1. > > i want fate pass It will if you parse extradata during init(). This change is not ok given it's removing SAR altogether, meaning if a sample has render dimensions that are not the same as the coded dimensions, this information will not be propagated and players will display the frames with the wrong aspect ratio. > >> >> >>> >>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org> >>> --- >>> libavcodec/libaomdec.c | 1 - >>> 1 file changed, 1 deletion(-) >>> >>> diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c >>> index 695d901051..ff4137bfc6 100644 >>> --- a/libavcodec/libaomdec.c >>> +++ b/libavcodec/libaomdec.c >>> @@ -204,7 +204,6 @@ static int aom_decode(AVCodecContext *avctx, AVFrame >> *picture, >>> picture->height * img->r_w, >>> picture->width * img->r_h, >>> INT_MAX); >>> - ff_set_sar(avctx, picture->sample_aspect_ratio); >>> >>> if ((img->fmt & AOM_IMG_FMT_HIGHBITDEPTH) && img->bit_depth == >> 8) >>> ff_aom_image_copy_16_to_8(picture, img); >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >> > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c index 695d901051..ff4137bfc6 100644 --- a/libavcodec/libaomdec.c +++ b/libavcodec/libaomdec.c @@ -204,7 +204,6 @@ static int aom_decode(AVCodecContext *avctx, AVFrame *picture, picture->height * img->r_w, picture->width * img->r_h, INT_MAX); - ff_set_sar(avctx, picture->sample_aspect_ratio); if ((img->fmt & AOM_IMG_FMT_HIGHBITDEPTH) && img->bit_depth == 8) ff_aom_image_copy_16_to_8(picture, img);
Makes the output of the libaom av1 decoder consistent with external decoders like libdav1d. reference commit: 1652f2492f88434010053289d946dab6a57e4d58 Signed-off-by: Steven Liu <lq@chinaffmpeg.org> --- libavcodec/libaomdec.c | 1 - 1 file changed, 1 deletion(-)