# HG changeset patch # User David T Yuen <dtyx...@gmail.com> # Date 1392935264 28800 # Node ID fe18d3e9e8ccca9ba618e1292e1a4e415e0d3547 # Parent 549f5bf10211da2b5b427d4ea0a87eb7ef20341b Added better vui parameter checking
diff -r 549f5bf10211 -r fe18d3e9e8cc source/common/common.cpp --- a/source/common/common.cpp Thu Feb 20 14:47:41 2014 -0600 +++ b/source/common/common.cpp Thu Feb 20 14:27:44 2014 -0800 @@ -549,6 +549,49 @@ } CHECK(param->bEnableWavefront < 0, "WaveFrontSynchro cannot be negative"); + CHECK((param->aspectRatioIdc < 0 + || param->aspectRatioIdc > 16) + && param->aspectRatioIdc != 255, + "Sample Aspect Ratio must be 0-16 or 255"); + CHECK(param->sarWidth < 0, + "Sample Aspect Ratio width must be greater than 0"); + CHECK(param->sarHeight < 0, + "Sample Aspect Ratio height must be greater than 0"); + CHECK(param->bEnableOverscanInfoPresentFlag < 0, + "Overscan must be show, crop or undef"); + CHECK(param->videoFormat < 0 || param->videoFormat > 5, + "Video Format must be Component component," + " pal, ntsc, secam, mac or undef"); + CHECK(param->colorPrimaries < 0 + || param->colorPrimaries > 9 + || param->colorPrimaries == 3, + "Color Primaries must be undef, bt709, bt470m," + " bt470bg, smpte170m, smpte240m, film or bt2020"); + CHECK(param->transferCharacteristics < 0 + || param->transferCharacteristics > 15 + || param->transferCharacteristics == 3, + "Transfer Characteristics must be undef, bt709, bt470m, bt470bg," + " smpte170m, smpte240m, linear, log100, log316, iec61966-2-4, bt1361e," + " iec61966-2-1, bt2020-10 or bt2020-12"); + CHECK(param->matrixCoeffs < 0 + || param->matrixCoeffs > 10 + || param->matrixCoeffs == 3, + "Matrix Coefficients must be undef, bt709, fcc, bt470bg, smpte170m," + " smpte240m, GBR, YCgCo, bt2020nc or bt2020c"); + CHECK(param->chromaSampleLocTypeTopField < 0 + || param->chromaSampleLocTypeTopField > 5, + "Chroma Sample Location Type Top Field must be 0-5"); + CHECK(param->chromaSampleLocTypeBottomField < 0 + || param->chromaSampleLocTypeBottomField > 5, + "Chroma Sample Location Type Bottom Field must be 0-5"); + CHECK(param->defDispWinLeftOffset < 0, + "Default Display Window Left Offset must be 0 or greater"); + CHECK(param->defDispWinRightOffset < 0, + "Default Display Window Right Offset must be 0 or greater"); + CHECK(param->defDispWinTopOffset < 0, + "Default Display Window Top Offset must be 0 or greater"); + CHECK(param->defDispWinBottomOffset < 0, + "Default Display Window Bottom Offset must be 0 or greater"); return check_failed; } @@ -832,6 +875,8 @@ p->bEnableOverscanInfoPresentFlag = bvalue; p->bEnableOverscanAppropriateFlag = bvalue; } + else + p->bEnableOverscanInfoPresentFlag = -1; } OPT("videoformat") { @@ -849,6 +894,8 @@ p->videoFormat = 4; else if (!strcmp(value, "undef")) p->videoFormat = 5; + else + p->videoFormat = -1; } OPT("range") { @@ -877,6 +924,8 @@ p->colorPrimaries = 8; else if (!strcmp(value, "bt2020")) p->colorPrimaries = 9; + else + p->colorPrimaries = -1; } OPT("transfer") { @@ -911,6 +960,8 @@ p->transferCharacteristics = 14; else if (!strcmp(value, "bt2020-12")) p->transferCharacteristics = 15; + else + p->transferCharacteristics = -1; } OPT("colormatrix") { @@ -937,6 +988,8 @@ p->matrixCoeffs = 9; else if (!strcmp(value, "bt2020c")) p->matrixCoeffs = 10; + else + p->matrixCoeffs = -1; } OPT("chromaloc") { _______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel