[FFmpeg-devel] [PATCH 4/6] h264: don't re-assign H264Picture::mbaff between slices.

Michael Niedermayer michael at niedermayer.cc
Thu Mar 30 03:06:50 EEST 2017


On Wed, Mar 29, 2017 at 10:12:22AM -0400, Ronald S. Bultje wrote:
> The value must be identical between slices. (Maybe this needs an error
> path to inform caller if this fails?)
> ---
>  libavcodec/h264_direct.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/h264_direct.c b/libavcodec/h264_direct.c
> index 4e7202b..20136b0 100644
> --- a/libavcodec/h264_direct.c
> +++ b/libavcodec/h264_direct.c
> @@ -138,7 +138,11 @@ void ff_h264_direct_ref_list_init(const H264Context *const h, H264SliceContext *
>          memcpy(cur->ref_poc[1],   cur->ref_poc[0],   sizeof(cur->ref_poc[0]));
>      }
>  
> -    cur->mbaff = FRAME_MBAFF(h);
> +    if (h->current_slice == 0) {
> +        cur->mbaff = FRAME_MBAFF(h);
> +    } else if (cur->mbaff != FRAME_MBAFF(h)) {
> +        av_log(h->avctx, AV_LOG_ERROR, "Frame mixes MBAFF and non-MBAFF slices\n");
> +    }

It should not be possible for mbaff to differ between slices without
some checks failing
we check for sps and frame/field to match thogh this code was shuffled
around with some merges i think it still works

so maybe a assert0 would work for this

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170330/9882a354/attachment.sig>


More information about the ffmpeg-devel mailing list