Example #1
0
        /// <summary>
        /// Adds preferred audio/video codecs.
        /// </summary>
        protected override void AddPreferredCodecs()
        {
            base.AddPreferredCodecs();

            BluRayPlayerSettings settings = ServiceRegistration.Get <ISettingsManager>().Load <BluRayPlayerSettings>();

            if (settings == null)
            {
                return;
            }

            //IAMPluginControl is supported in Win7 and later only.
            try
            {
                IAMPluginControl pc = new DirectShowPluginControl() as IAMPluginControl;
                if (pc != null)
                {
                    if (settings.VC1Codec != null)
                    {
                        BluRayPlayerBuilder.LogDebug("Setting preferred VC-1 codec {0}", settings.VC1Codec);
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_VC1, settings.VC1Codec.GetCLSID());
                    }
                }
            }
            catch
            {
            }
        }
        /// <summary>
        /// Adds preferred audio/video codecs.
        /// </summary>
        protected virtual void AddPreferredCodecs()
        {
            VideoSettings settings = ServiceRegistration.Get <ISettingsManager>().Load <VideoSettings>();

            if (settings == null)
            {
                return;
            }

            //IAMPluginControl is supported in Win7 and later only.
            try
            {
                IAMPluginControl pc = new DirectShowPluginControl() as IAMPluginControl;
                if (pc != null)
                {
                    if (settings.Mpeg2Codec != null)
                    {
                        pc.SetPreferredClsid(MediaSubType.Mpeg2Video, settings.Mpeg2Codec.GetCLSID());
                    }

                    if (settings.H264Codec != null)
                    {
                        pc.SetPreferredClsid(MediaSubType.H264, settings.H264Codec.GetCLSID());
                    }

                    if (settings.AVCCodec != null)
                    {
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_AVC, settings.AVCCodec.GetCLSID());
                    }

                    if (settings.AudioCodecLATMAAC != null)
                    {
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_LATM_AAC_AUDIO, settings.AudioCodecLATMAAC.GetCLSID());
                    }

                    if (settings.AudioCodecAAC != null)
                    {
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_AAC_AUDIO, settings.AudioCodecAAC.GetCLSID());
                    }

                    if (settings.AudioCodec != null)
                    {
                        foreach (Guid guid in new[]
                        {
                            MediaSubType.Mpeg2Audio,
                            MediaSubType.MPEG1AudioPayload,
                            CodecHandler.WMMEDIASUBTYPE_MP3,
                            CodecHandler.MEDIASUBTYPE_MPEG1_AUDIO,
                            CodecHandler.MEDIASUBTYPE_MPEG2_AUDIO
                        })
                        {
                            pc.SetPreferredClsid(guid, settings.AudioCodec.GetCLSID());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Debug("{0}: Exception in IAMPluginControl: {1}", PlayerTitle, ex.ToString());
            }
        }
Example #3
0
    /// <summary>
    /// Adds preferred audio/video codecs.
    /// </summary>
    protected override void AddPreferredCodecs()
    {
      base.AddPreferredCodecs();

      BluRayPlayerSettings settings = ServiceRegistration.Get<ISettingsManager>().Load<BluRayPlayerSettings>();
      if (settings == null)
        return;

      //IAMPluginControl is supported in Win7 and later only.
      try
      {
        IAMPluginControl pc = new DirectShowPluginControl() as IAMPluginControl;
        if (pc != null)
        {
          if (settings.VC1Codec != null)
          {
            BluRayPlayerBuilder.LogDebug("Setting preferred VC-1 codec {0}", settings.VC1Codec);
            pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_VC1, settings.VC1Codec.GetCLSID());
          }
        }
      }
      catch
      {
      }
    }
Example #4
0
        /// <summary>
        /// Adds preferred audio/video codecs.
        /// </summary>
        protected virtual void AddPreferredCodecs()
        {
            VideoSettings settings = ServiceRegistration.Get <ISettingsManager>().Load <VideoSettings>();

            if (settings == null)
            {
                return;
            }

            //IAMPluginControl is supported in Win7 and later only.
            DirectShowPluginControl dspc = null;
            IAMPluginControl        pc   = null;

            try
            {
                dspc = new DirectShowPluginControl();
                pc   = dspc as IAMPluginControl;
                if (pc != null)
                {
                    // Set black list of codecs to ignore, they are known to cause issues like hangs and crashes
                    // MPEG Audio Decoder
                    if (settings.DisabledCodecs != null && settings.DisabledCodecs.Any())
                    {
                        foreach (var disabledCodec in settings.DisabledCodecs)
                        {
                            ServiceRegistration.Get <ILogger>().Info("{0}: Disable codec '{1}'", PlayerTitle, disabledCodec.Name);
                            pc.SetDisabled(disabledCodec.GetCLSID(), true);
                        }
                    }

                    if (settings.Mpeg2Codec != null)
                    {
                        pc.SetPreferredClsid(MediaSubType.Mpeg2Video, settings.Mpeg2Codec.GetCLSID());
                    }

                    if (settings.H264Codec != null)
                    {
                        pc.SetPreferredClsid(MediaSubType.H264, settings.H264Codec.GetCLSID());
                    }

                    if (settings.AVCCodec != null)
                    {
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_AVC, settings.AVCCodec.GetCLSID());
                    }

                    if (settings.HEVCCodec != null)
                    {
                        DsGuid clsid = settings.HEVCCodec.GetCLSID();
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_HVC1, clsid);
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_HEVC, clsid);
                    }

                    if (settings.Splitter != null)
                    {
                        pc.SetPreferredClsid(Guid.Empty, settings.Splitter.GetCLSID());
                    }

                    if (settings.AudioCodecLATMAAC != null)
                    {
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_LATM_AAC_AUDIO, settings.AudioCodecLATMAAC.GetCLSID());
                    }

                    if (settings.AudioCodecAAC != null)
                    {
                        pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_AAC_AUDIO, settings.AudioCodecAAC.GetCLSID());
                    }

                    if (settings.AudioCodec != null)
                    {
                        DsGuid clsid = settings.AudioCodec.GetCLSID();
                        foreach (Guid guid in new[]
                        {
                            MediaSubType.Mpeg2Audio,
                            MediaSubType.MPEG1AudioPayload,
                            CodecHandler.WMMEDIASUBTYPE_MP3,
                            CodecHandler.MEDIASUBTYPE_MPEG1_AUDIO,
                            CodecHandler.MEDIASUBTYPE_MPEG2_AUDIO
                        })
                        {
                            pc.SetPreferredClsid(guid, clsid);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Debug("{0}: Exception in IAMPluginControl: {1}", PlayerTitle, ex.ToString());
            }
            finally
            {
                FilterGraphTools.TryRelease(ref dspc);
            }
        }
Example #5
0
    /// <summary>
    /// Adds preferred audio/video codecs.
    /// </summary>
    protected virtual void AddPreferredCodecs()
    {
      VideoSettings settings = ServiceRegistration.Get<ISettingsManager>().Load<VideoSettings>();
      if (settings == null)
        return;

      //IAMPluginControl is supported in Win7 and later only.
      try
      {
        IAMPluginControl pc = new DirectShowPluginControl() as IAMPluginControl;
        if (pc != null)
        {
          if (settings.Mpeg2Codec != null)
            pc.SetPreferredClsid(MediaSubType.Mpeg2Video, settings.Mpeg2Codec.GetCLSID());

          if (settings.H264Codec != null)
            pc.SetPreferredClsid(MediaSubType.H264, settings.H264Codec.GetCLSID());

          if (settings.AVCCodec != null)
            pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_AVC, settings.AVCCodec.GetCLSID());

          if (settings.HEVCCodec != null)
          {
            DsGuid clsid = settings.HEVCCodec.GetCLSID();
            pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_HVC1, clsid);
            pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_HEVC, clsid);
          }

          if (settings.AudioCodecLATMAAC != null)
            pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_LATM_AAC_AUDIO, settings.AudioCodecLATMAAC.GetCLSID());

          if (settings.AudioCodecAAC != null)
            pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_AAC_AUDIO, settings.AudioCodecAAC.GetCLSID());

          if (settings.AudioCodec != null)
          {
            DsGuid clsid = settings.AudioCodec.GetCLSID();
            foreach (Guid guid in new[]
                                    {
                                      MediaSubType.Mpeg2Audio,
                                      MediaSubType.MPEG1AudioPayload,
                                      CodecHandler.WMMEDIASUBTYPE_MP3,
                                      CodecHandler.MEDIASUBTYPE_MPEG1_AUDIO,
                                      CodecHandler.MEDIASUBTYPE_MPEG2_AUDIO
                                    })
              pc.SetPreferredClsid(guid, clsid);
          }
        }
      }
      catch (Exception ex)
      {
        ServiceRegistration.Get<ILogger>().Debug("{0}: Exception in IAMPluginControl: {1}", PlayerTitle, ex.ToString());
      }
    }
Example #6
0
        /// <summary>
        /// Adds preferred audio/video codecs.
        /// </summary>
        protected override void AddPreferredCodecs()
        {
            BDPlayerSettings settings = ServiceRegistration.Get<ISettingsManager>().Load<BDPlayerSettings>();
              if (settings == null)
            return;

              //IAMPluginControl is supported in Win7 and later only.
              try
              {
            IAMPluginControl pc = new DirectShowPluginControl() as IAMPluginControl;
            if (pc != null)
            {
              if (settings.AVCCodec != null)
            pc.SetPreferredClsid(CodecHandler.MEDIASUBTYPE_AVC, settings.AVCCodec.GetCLSID());
            }
              }
              catch
              {
              }
        }