On Wed, Apr 25, 2018 at 9:55 AM, Steve Lhomme <rob...@ycbcr.xyz> wrote: > Le 24/04/2018 à 08:28, Hendrik Leppkes a écrit : >> >> On Fri, Jan 19, 2018 at 1:01 PM, Steve Lhomme <rob...@ycbcr.xyz> wrote: >>> >>> If we don't do that get_format might not be called for a while and the >>> proper >>> SAR not used. >>> >>> See the sample mentioned here: https://trac.videolan.org/vlc/ticket/19435 >>> --- >>> libavcodec/h264_slice.c | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c >>> index e6b7998834..319a37f5b6 100644 >>> --- a/libavcodec/h264_slice.c >>> +++ b/libavcodec/h264_slice.c >>> @@ -1050,8 +1050,10 @@ static int h264_init_ps(H264Context *h, const >>> H264SliceContext *sl, int first_sl >>> || (non_j_pixfmt(h->avctx->pix_fmt) != >>> non_j_pixfmt(get_pixel_format(h, 0)))) >>> must_reinit = 1; >>> >>> - if (first_slice && av_cmp_q(sps->sar, >>> h->avctx->sample_aspect_ratio)) >>> + if (first_slice && av_cmp_q(sps->sar, >>> h->avctx->sample_aspect_ratio)) { >>> must_reinit = 1; >>> + ff_set_sar(h->avctx, sps->sar); >>> + } >>> >>> if (!h->setup_finished) { >>> h->avctx->profile = ff_h264_get_profile(sps); >>> -- >>> 2.14.2 >> >> Why do we even do a get_format call for aspect ratio changes in the >> first place? It doesn't change the physical image properties, the >> format of image buffers etc remains the same, hwaccel decisions remain >> the same.. anyone know why this is? > > > How are we supposed to know the display format has changed ? Checking each > AVFrame sample_aspect_ratio to see if something changed ? >
Exactly. There is a lot more properties that do not and should not call get_format, like color properties (matrix,trc,primaries,range,etc). get_format should be called when the physical properties of the image buffer change, not its interpretation. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel