internal static void SetDRC(this MMALCameraComponent camera, MMAL_PARAMETER_DRC_STRENGTH_T strength)
        {
            MMAL_PARAMETER_DRC_T drc = new MMAL_PARAMETER_DRC_T(new MMAL_PARAMETER_HEADER_T(MMAL_PARAMETER_DYNAMIC_RANGE_COMPRESSION, Marshal.SizeOf <MMAL_PARAMETER_DRC_T>()),
                                                                strength);

            MMALCheck(MMALPort.mmal_port_parameter_set(camera.Control.Ptr, &drc.hdr), "Unable to set DRC");
        }
        public static MMAL_PARAMETER_DRC_STRENGTH_T GetDRC(this MMALCameraComponent camera)
        {
            MMAL_PARAMETER_DRC_T drc = new MMAL_PARAMETER_DRC_T(new MMAL_PARAMETER_HEADER_T(MMAL_PARAMETER_DYNAMIC_RANGE_COMPRESSION, Marshal.SizeOf <MMAL_PARAMETER_DRC_T>()),
                                                                new MMAL_PARAMETER_DRC_STRENGTH_T());

            MMALCheck(MMALPort.mmal_port_parameter_get(camera.Control.Ptr, &drc.hdr), "Unable to get DRC");

            return(drc.Strength);
        }