#pragma warning disable 618,612 private static IEncoderAPI checkEncoderAPI(IBaseFilter filterVideoEncoder, IBaseFilter filterCapture, IBaseFilter filterMultiplexer, IBaseFilter filterVideoCompressor) { IEncoderAPI videoEncoder = null; if (filterVideoEncoder != null) { videoEncoder = filterVideoEncoder as IEncoderAPI; } if (videoEncoder == null && filterCapture != null) { videoEncoder = filterCapture as IEncoderAPI; } if (videoEncoder == null && filterMultiplexer != null) { videoEncoder = filterMultiplexer as IEncoderAPI; } if (videoEncoder == null && filterVideoCompressor != null) { videoEncoder = filterVideoCompressor as IEncoderAPI; } return(videoEncoder); }
/// <summary> /// Creates the object that implements the IQuality interface /// </summary> public static IQuality createQualityControl(Configuration configuration, IBaseFilter filterVideoEncoder, IBaseFilter filterCapture, IBaseFilter filterMultiplexer, IBaseFilter filterVideoCompressor) { ICodecAPI codecAPI = checkCodecAPI(filterVideoEncoder, filterCapture, filterMultiplexer, filterVideoCompressor); if (codecAPI != null) { return(new CodecAPIControl(configuration, codecAPI)); } IVideoEncoder videoEncoder = checkVideoEncoder(filterVideoEncoder, filterCapture, filterMultiplexer, filterVideoCompressor); if (videoEncoder != null) { return(new VideoEncoderControl(configuration, videoEncoder)); } #pragma warning disable 618,612 IEncoderAPI encoderAPI = checkEncoderAPI(filterVideoEncoder, filterCapture, filterMultiplexer, filterVideoCompressor); if (encoderAPI != null) { return(new EncoderAPIControl(configuration, encoderAPI)); } #pragma warning restore 618,612 return(null); }
/// <summary> /// Initializes a new instance of the <see cref="EncoderAPIControl"/> class. /// </summary> /// <param name="configuration">The encoder settings to use.</param> /// <param name="encoderAPI">The IEncoderAPI interface to the filter that must be used to control the quality.</param> public EncoderAPIControl(Configuration configuration, IEncoderAPI encoderAPI) : base(configuration) { _encoderAPI = encoderAPI; Log.Log.WriteFile("analog: IEncoderAPI supported by: " + FilterGraphTools.GetFilterName(_encoderAPI as IBaseFilter) + "; Checking capabilities "); CheckCapabilities(); }
/// <summary> /// Initializes a new instance of the <see cref="EncoderAPIControl"/> class. /// </summary> /// <param name="configuration">The encoder settings to use.</param> /// <param name="encoderAPI">The IEncoderAPI interface to the filter that must be used to control the quality.</param> public EncoderAPIControl(Configuration configuration, IEncoderAPI encoderAPI) : base(configuration) { _encoderAPI = encoderAPI; Log.Log.WriteFile("analog: IEncoderAPI supported by: " + FilterGraphTools.GetFilterName(_encoderAPI as IBaseFilter) + "; Checking capabilities "); CheckCapabilities(); }