Set constraint set 0 and 1 flags for non-scalable as well

This allows decoders to know that a baseline stream doesn't
contain any of the features that aren't in the constrained
baseline subset.

Set the flags based on what profile we target.
This commit is contained in:
Martin Storsjö
2014-10-30 10:48:00 +02:00
parent 3abd54ca73
commit 53e2f67e80
6 changed files with 8468 additions and 8464 deletions

View File

@@ -945,9 +945,13 @@ static inline int32_t InitDqLayers (sWelsEncCtx** ppCtx) {
pParam->iMaxNumRefFrame, pParam->iMaxNumRefFrame,
iSpsId, pParam->bEnableFrameCroppingFlag, pParam->iRCMode != RC_OFF_MODE); iSpsId, pParam->bEnableFrameCroppingFlag, pParam->iRCMode != RC_OFF_MODE);
if (iDlayerCount > 1) { if (pDlayerParam->uiProfileIdc == PRO_BASELINE) {
pSps->bConstraintSet0Flag = true; pSps->bConstraintSet0Flag = true;
}
if (pDlayerParam->uiProfileIdc <= PRO_MAIN) {
pSps->bConstraintSet1Flag = true; pSps->bConstraintSet1Flag = true;
}
if (iDlayerCount > 1) {
pSps->bConstraintSet2Flag = true; pSps->bConstraintSet2Flag = true;
} }
} else { } else {

View File

@@ -107,8 +107,8 @@ TEST_P (DecodeEncodeTest, CompareOutput) {
} }
} }
static const DecodeEncodeFileParam kFileParamArray[] = { static const DecodeEncodeFileParam kFileParamArray[] = {
{"res/test_vd_1d.264", "a4c7299ec1a7bacd5819685e221a79ac2b56cdbc", 320, 192, 12.0f}, {"res/test_vd_1d.264", "63fe502aa2d63869cc888592e4984b3d6e8c3bef", 320, 192, 12.0f},
{"res/test_vd_rc.264", "106fd8cc978c1801b0d1f8297e9b7f17d5336e15", 320, 192, 12.0f}, {"res/test_vd_rc.264", "fda7fdfbef853ec7aaf3e236dcfa7c0ba9c2314a", 320, 192, 12.0f},
}; };

View File

@@ -79,23 +79,23 @@ TEST_P (EncoderOutputTest, CompareOutput) {
static const EncodeFileParam kFileParamArray[] = { static const EncodeFileParam kFileParamArray[] = {
{ {
"res/CiscoVT2people_320x192_12fps.yuv", "res/CiscoVT2people_320x192_12fps.yuv",
"0a36b75e423fc6b49f6adf7eee12c039a096f538", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false "16b145cf76a677d87240ef6c8efff0ff8d3a2f3a", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
}, },
{ {
"res/CiscoVT2people_160x96_6fps.yuv", "res/CiscoVT2people_160x96_6fps.yuv",
"73981e6ea5b62f7338212c538a7cc755e7c9c030", CAMERA_VIDEO_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false "874ab77ba13f199d70b67cd75f8e23baf482c1ed", CAMERA_VIDEO_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
}, },
{ {
"res/Static_152_100.yuv", "res/Static_152_100.yuv",
"02bbff550ee0630e44e46e14dc459d3686f2a360", CAMERA_VIDEO_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false "73b40ad71e1f1ffbbd5425de2b094ccbdfa798a6", CAMERA_VIDEO_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
}, },
{ {
"res/CiscoVT2people_320x192_12fps.yuv", "res/CiscoVT2people_320x192_12fps.yuv",
"c8b759bcec7ffa048f1d3ded594b8815bed0aead", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_ROWMB_SLICE, false, 1, false, false, false // One slice per MB row "c1b187be92a35ac8f4f9724b594559e0394c1df8", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_ROWMB_SLICE, false, 1, false, false, false // One slice per MB row
}, },
{ {
"res/CiscoVT2people_320x192_12fps.yuv", "res/CiscoVT2people_320x192_12fps.yuv",
"e64ba75456c821ca35a949eda89f85bff8ee69fa", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, true, 1, false, false, false "959a94ea684bf37eaf39909f6460e02b50ad0a5f", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, true, 1, false, false, false
}, },
{ {
"res/CiscoVT2people_320x192_12fps.yuv", "res/CiscoVT2people_320x192_12fps.yuv",
@@ -103,7 +103,7 @@ static const EncodeFileParam kFileParamArray[] = {
}, },
{ {
"res/Cisco_Absolute_Power_1280x720_30fps.yuv", "res/Cisco_Absolute_Power_1280x720_30fps.yuv",
"2bc06262d87fa0897ad4c336cc4047d5a67f7203", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false "27a595af0e9598feb4dc1403fd99affddfa51f46", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false
}, },
{ {
"res/Cisco_Absolute_Power_1280x720_30fps.yuv", "res/Cisco_Absolute_Power_1280x720_30fps.yuv",
@@ -112,32 +112,32 @@ static const EncodeFileParam kFileParamArray[] = {
// the following values may be adjusted for times since we start tuning the strategy // the following values may be adjusted for times since we start tuning the strategy
{ {
"res/CiscoVT2people_320x192_12fps.yuv", "res/CiscoVT2people_320x192_12fps.yuv",
"3ce65d9c326657b845cd00b22ce76128c29f8347", SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false "7113004abe156bf69c399803f302644645ac42be", SCREEN_CONTENT_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, false
}, },
{ {
"res/CiscoVT2people_160x96_6fps.yuv", "res/CiscoVT2people_160x96_6fps.yuv",
"2b57e1cc7a4db6258116c302eada3bf870ee94a1", SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false "51fc38d467509f94e85f9678f11429220e46d862", SCREEN_CONTENT_REAL_TIME, 160, 96, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
}, },
{ {
"res/Static_152_100.yuv", "res/Static_152_100.yuv",
"bad065da4564d0580a1722d91463fa0f9fd947c8", SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false "1af33ad3d8c40756ef1f6074c019a06535c35ab0", SCREEN_CONTENT_REAL_TIME, 152, 100, 6.0f, SM_SINGLE_SLICE, false, 1, false, false, false
}, },
{ {
"res/Cisco_Absolute_Power_1280x720_30fps.yuv", "res/Cisco_Absolute_Power_1280x720_30fps.yuv",
"8ee6cd375b58e9877f6145fb72da844e65162b14", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false "e032f8f8b153f37e614676735074cdce843032de", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, false
}, },
//for different strategy //for different strategy
{ {
"res/Cisco_Absolute_Power_1280x720_30fps.yuv", "res/Cisco_Absolute_Power_1280x720_30fps.yuv",
"6a7fc060a4d9dc0ec397987f02df0cf4d96181e6", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, true, true, false "28e290b204257eae5c735b2b96491358ec14221e", SCREEN_CONTENT_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, true, true, false
}, },
{ {
"res/CiscoVT2people_320x192_12fps.yuv", "res/CiscoVT2people_320x192_12fps.yuv",
"fc6faa6409150cce304bcdefb486fee4b4a70e1d", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, true //turn on cabac "59e51ffc741172df4a729d7fc1f85645885311a5", CAMERA_VIDEO_REAL_TIME, 320, 192, 12.0f, SM_SINGLE_SLICE, false, 1, false, false, true //turn on cabac
}, },
{ {
"res/Cisco_Absolute_Power_1280x720_30fps.yuv", "res/Cisco_Absolute_Power_1280x720_30fps.yuv",
"7b166367ece61cf489c793872c40c37d4047b7aa", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, true "f4361779554ae66ce62308f1e01218369ca0edf4", CAMERA_VIDEO_REAL_TIME, 1280, 720, 30.0f, SM_DYN_SLICE, false, 1, false, false, true
}, },
}; };