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

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to