public StdVideoH264SequenceParameterSet
        (
            StdVideoH264ProfileIdc?profileIdc           = null,
            StdVideoH264Level?levelIdc                  = null,
            byte?seqParameterSetId                      = null,
            StdVideoH264ChromaFormatIdc?chromaFormatIdc = null,
            byte?bitDepthLumaMinus8                     = null,
            byte?bitDepthChromaMinus8                   = null,
            byte?log2MaxFrameNumMinus4                  = null,
            StdVideoH264PocType?picOrderCntType         = null,
            byte?log2MaxPicOrderCntLsbMinus4            = null,
            int?offsetForNonRefPic                      = null,
            int?offsetForTopToBottomField               = null,
            byte?numRefFramesInPicOrderCntCycle         = null,
            byte?maxNumRefFrames                    = null,
            uint?picWidthInMbsMinus1                = null,
            uint?picHeightInMapUnitsMinus1          = null,
            uint?frameCropLeftOffset                = null,
            uint?frameCropRightOffset               = null,
            uint?frameCropTopOffset                 = null,
            uint?frameCropBottomOffset              = null,
            StdVideoH264SpsFlags?flags              = null,
            int *pOffsetForRefFrame                 = null,
            StdVideoH264ScalingLists *pScalingLists = null,
            StdVideoH264SequenceParameterSetVui *pSequenceParameterSetVui = null
        ) : this()
        {
            if (profileIdc is not null)
            {
                ProfileIdc = profileIdc.Value;
            }

            if (levelIdc is not null)
            {
                LevelIdc = levelIdc.Value;
            }

            if (seqParameterSetId is not null)
            {
                SeqParameterSetId = seqParameterSetId.Value;
            }

            if (chromaFormatIdc is not null)
            {
                ChromaFormatIdc = chromaFormatIdc.Value;
            }

            if (bitDepthLumaMinus8 is not null)
            {
                BitDepthLumaMinus8 = bitDepthLumaMinus8.Value;
            }

            if (bitDepthChromaMinus8 is not null)
            {
                BitDepthChromaMinus8 = bitDepthChromaMinus8.Value;
            }

            if (log2MaxFrameNumMinus4 is not null)
            {
                Log2MaxFrameNumMinus4 = log2MaxFrameNumMinus4.Value;
            }

            if (picOrderCntType is not null)
            {
                PicOrderCntType = picOrderCntType.Value;
            }

            if (log2MaxPicOrderCntLsbMinus4 is not null)
            {
                Log2MaxPicOrderCntLsbMinus4 = log2MaxPicOrderCntLsbMinus4.Value;
            }

            if (offsetForNonRefPic is not null)
            {
                OffsetForNonRefPic = offsetForNonRefPic.Value;
            }

            if (offsetForTopToBottomField is not null)
            {
                OffsetForTopToBottomField = offsetForTopToBottomField.Value;
            }

            if (numRefFramesInPicOrderCntCycle is not null)
            {
                NumRefFramesInPicOrderCntCycle = numRefFramesInPicOrderCntCycle.Value;
            }

            if (maxNumRefFrames is not null)
            {
                MaxNumRefFrames = maxNumRefFrames.Value;
            }

            if (picWidthInMbsMinus1 is not null)
            {
                PicWidthInMbsMinus1 = picWidthInMbsMinus1.Value;
            }

            if (picHeightInMapUnitsMinus1 is not null)
            {
                PicHeightInMapUnitsMinus1 = picHeightInMapUnitsMinus1.Value;
            }

            if (frameCropLeftOffset is not null)
            {
                FrameCropLeftOffset = frameCropLeftOffset.Value;
            }

            if (frameCropRightOffset is not null)
            {
                FrameCropRightOffset = frameCropRightOffset.Value;
            }

            if (frameCropTopOffset is not null)
            {
                FrameCropTopOffset = frameCropTopOffset.Value;
            }

            if (frameCropBottomOffset is not null)
            {
                FrameCropBottomOffset = frameCropBottomOffset.Value;
            }

            if (flags is not null)
            {
                Flags = flags.Value;
            }

            if (pOffsetForRefFrame is not null)
            {
                POffsetForRefFrame = pOffsetForRefFrame;
            }

            if (pScalingLists is not null)
            {
                PScalingLists = pScalingLists;
            }

            if (pSequenceParameterSetVui is not null)
            {
                PSequenceParameterSetVui = pSequenceParameterSetVui;
            }
        }
        public StdVideoH264PictureParameterSet
        (
            byte?seqParameterSetId = null,
            byte?picParameterSetId = null,
            byte?numRefIdxL0DefaultActiveMinus1             = null,
            byte?numRefIdxL1DefaultActiveMinus1             = null,
            StdVideoH264WeightedBipredIdc?weightedBipredIdc = null,
            byte?picInitQpMinus26                   = null,
            byte?picInitQsMinus26                   = null,
            byte?chromaQpIndexOffset                = null,
            byte?secondChromaQpIndexOffset          = null,
            StdVideoH264PpsFlags?flags              = null,
            StdVideoH264ScalingLists *pScalingLists = null
        ) : this()
        {
            if (seqParameterSetId is not null)
            {
                SeqParameterSetId = seqParameterSetId.Value;
            }

            if (picParameterSetId is not null)
            {
                PicParameterSetId = picParameterSetId.Value;
            }

            if (numRefIdxL0DefaultActiveMinus1 is not null)
            {
                NumRefIdxL0DefaultActiveMinus1 = numRefIdxL0DefaultActiveMinus1.Value;
            }

            if (numRefIdxL1DefaultActiveMinus1 is not null)
            {
                NumRefIdxL1DefaultActiveMinus1 = numRefIdxL1DefaultActiveMinus1.Value;
            }

            if (weightedBipredIdc is not null)
            {
                WeightedBipredIdc = weightedBipredIdc.Value;
            }

            if (picInitQpMinus26 is not null)
            {
                PicInitQpMinus26 = picInitQpMinus26.Value;
            }

            if (picInitQsMinus26 is not null)
            {
                PicInitQsMinus26 = picInitQsMinus26.Value;
            }

            if (chromaQpIndexOffset is not null)
            {
                ChromaQpIndexOffset = chromaQpIndexOffset.Value;
            }

            if (secondChromaQpIndexOffset is not null)
            {
                SecondChromaQpIndexOffset = secondChromaQpIndexOffset.Value;
            }

            if (flags is not null)
            {
                Flags = flags.Value;
            }

            if (pScalingLists is not null)
            {
                PScalingLists = pScalingLists;
            }
        }