예제 #1
0
        /// <summary>
        /// Sets the video bit rate.
        /// </summary>
        /// <param name="minKbps">The min KBPS.</param>
        /// <param name="maxKbps">The max KBPS.</param>
        /// <param name="isVBR">if set to <c>true</c> [is VBR].</param>
        public void SetVideoBitRate(int minKbps, int maxKbps, bool isVBR)
        {
            AppLogger.Message(String.Format("WinTV: SetVideoBitrate min:{0} max:{1} vbr:{2} {3}", minKbps, maxKbps, isVBR, Marshal.SizeOf(typeof(VideoBitRate))));
            VideoBitRate bitrate = new VideoBitRate();

            if (isVBR)
            {
                bitrate.isvbr = 1;
            }
            else
            {
                bitrate.isvbr = 0;
            }
            bitrate.size       = (uint)Marshal.SizeOf(typeof(VideoBitRate));
            bitrate.bitrate    = (uint)minKbps;
            bitrate.maxBitrate = (uint)maxKbps;
            SetStructure(HauppaugeGuid, (int)PropertyId.VideoBitRate, typeof(VideoBitRate), (object)bitrate);
            GetVideoBitRate(out minKbps, out maxKbps, out isVBR);
        }
예제 #2
0
        public void SaveSettings()
        {
            if (iniFile != null)
            {
                iniFile.WriteValue("Settings", "AudioInputPath", AudioInputPath);
                iniFile.WriteValue("Settings", "AudioChannel", AudioChannel.ToString());
                iniFile.WriteValue("Settings", "AudioBitRate", AudioBitRate.ToString());
                iniFile.WriteValue("Settings", "AudioSampleRate", AudioSampleRate.ToString());
                iniFile.WriteValue("Settings", "AudioFrameSize", AudioFrameSize.ToString());
                iniFile.WriteValue("Settings", "Camera1_InputPath", Camera1_InputPath);
                iniFile.WriteValue("Settings", "Camera2_InputPath", Camera2_InputPath);
                iniFile.WriteValue("Settings", "VideoMixingMode", VideoMixingMode.ToString());
                iniFile.WriteValue("Settings", "VideoOutputFormat", VideoOutputFormat.ToString());
                iniFile.WriteValue("Settings", "VideoBitRate", VideoBitRate.ToString());
                iniFile.WriteValue("Settings", "VideoFrameRate", VideoFrameRate.ToString());
            }

            Log.WriteLine(ToString());
        }
예제 #3
0
        /// <summary>
        /// Gets the video bit rate.
        /// </summary>
        /// <param name="minKbps">The min KBPS.</param>
        /// <param name="maxKbps">The max KBPS.</param>
        /// <param name="isVBR">if set to <c>true</c> [is VBR].</param>
        /// <returns></returns>
        public bool GetVideoBitRate(out int minKbps, out int maxKbps, out bool isVBR)
        {
            VideoBitRate bitrate = new VideoBitRate();

            bitrate.size = (uint)Marshal.SizeOf(bitrate);
            object obj = GetStructure(HauppaugeGuid, (int)PropertyId.VideoBitRate, typeof(VideoBitRate));

            try
            {
                bitrate = (VideoBitRate)obj;
            }
            catch (Exception exc)
            {
                AppLogger.Message(String.Format("GetVideoBitRate exception: {0}", exc.Message));
            }
            isVBR   = bitrate.isvbr != 0;
            minKbps = (int)bitrate.bitrate;
            maxKbps = (int)bitrate.maxBitrate;
            AppLogger.Message(String.Format("WinTV: current VideoProfileSettings: min:{0} max:{1} vbr:{2}", minKbps, maxKbps, isVBR));
            return(true);
        }