﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1296	parsing parseProfileTier not conformant with Table A 2 – Bitstream indications for conformance to format range extensions profiles	marcin.jasinski		"It seems decoder interprets the fields:
general_max_12bit_constraint_flag	general_max_10bit_constraint_flag	general_max_8bit_constraint_flag	general_max_422chroma_constraint_flag	general_max_420chroma_constraint_flag	general_max_monochrome_constraint_flag

incorrectly. For example the case of:

{{{
Main 10 Intra	1	1	0	1	1	0	1	0	0 or 1
}}}

where:

{{{
general_max_12bit_constraint_flag = 1;
general_max_10bit_constraint_flag = 1;
general_max_8bit_constraint_flag = 0;
general_max_422chroma_constraint_flag = 1;
general_max_420chroma_constraint_flag = 1;
general_max_monochrome_constraint_flag = 0;
}}}

will be interpreted as Main 4:2:2 12, here is the code:

{{{
    READ_FLAG(    uiCode, ""general_max_12bit_constraint_flag"" ); if (uiCode)                   maxBitDepth=12;
    READ_FLAG(    uiCode, ""general_max_10bit_constraint_flag"" ); if (uiCode && maxBitDepth<10) maxBitDepth=10;
    READ_FLAG(    uiCode, ""general_max_8bit_constraint_flag""  ); if (uiCode && maxBitDepth<8 ) maxBitDepth=8;
    if (maxBitDepth==0) maxBitDepth=16;
    ptl->setBitDepthConstraint(maxBitDepth);
    ChromaFormat chromaFmtConstraint=NUM_CHROMA_FORMAT;
    READ_FLAG(    uiCode, ""general_max_422chroma_constraint_flag""  ); if (uiCode)                                           chromaFmtConstraint=CHROMA_422;
    READ_FLAG(    uiCode, ""general_max_420chroma_constraint_flag""  ); if (uiCode && chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_420;
    READ_FLAG(    uiCode, ""general_max_monochrome_constraint_flag"" ); if (uiCode && chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_400;
    if (chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_444;

}}}


Here is what I think it should be:

{{{

    UInt maxBitDepth=0;
    READ_FLAG(    uiCode, ""general_max_12bit_constraint_flag"" ); if (uiCode) maxBitDepth=12;
    READ_FLAG(    uiCode, ""general_max_10bit_constraint_flag"" ); if (uiCode) maxBitDepth=10;
    READ_FLAG(    uiCode, ""general_max_8bit_constraint_flag""  ); if (uiCode) maxBitDepth=8;
    if (maxBitDepth==0) maxBitDepth=16;
    ptl->setBitDepthConstraint(maxBitDepth);

    ChromaFormat chromaFmtConstraint=NUM_CHROMA_FORMAT;
    READ_FLAG(    uiCode, ""general_max_422chroma_constraint_flag""  ); if (uiCode) chromaFmtConstraint=CHROMA_422;
    READ_FLAG(    uiCode, ""general_max_420chroma_constraint_flag""  ); if (uiCode) chromaFmtConstraint=CHROMA_420;
    READ_FLAG(    uiCode, ""general_max_monochrome_constraint_flag"" ); if (uiCode) chromaFmtConstraint=CHROMA_400;
    if (chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_444;
}}}

"	defect	closed	major	HM+RExt-8.0	HM RExt	RExt-7.2 (HM-14.0)	fixed		davidf karlsharman jct-vc@…
