private void ApplyParameters(PlayerToken playToken) { MItem mitem = playToken.MItem; //IPlayParameters parameters = playToken.Parameters; //if (parameters != null) { //((IMProps)mitem).PropsSet("file::interlace", EnumUtils.GetInterlaceString(playToken.Parameters.MPFieldsType)); //((IMProps)mitem).PropsSet("file::scale_type", EnumUtils.GetScaleTypeString(playToken.Parameters.StretchMode)); //((IMProps)mitem).PropsSet("file::aspect_ratio", EnumUtils.GetAspectRatioString(playToken.Parameters.AspectRatio)); if (playToken.HasAudio && IsMLSource(playToken.MediaSource)) { IFileMediaSource fileSource = playToken.MediaSource as IFileMediaSource; this.SetAudioGain((MItemClass)mitem, fileSource.AudioGain); } } // TODO: add other parameters }
private void M_Load(PlayerToken playToken) { Debug.Assert(_mplaylist != null); IFileMediaSource fileSource = (IFileMediaSource)playToken.MediaSource; // as IFileMediaSource; int index; MItem mitem = null; index = -1; _mplaylist.PlaylistAdd(null, _filePathResolver.Resolve(fileSource.FileName), string.Empty, ref index, out mitem); var adjustedRange = fileSource.Adjust(playToken.PlayRange); var loadRange = GetInOut(mitem); if (adjustedRange != null) { if (adjustedRange.Value.StartPosition != loadRange.StartPosition || adjustedRange.Value.StopPosition != loadRange.StopPosition) { loadRange = SetInOut(mitem, adjustedRange.Value); } } playToken.LoadRange = loadRange; int audioTracks = -1; ((MItemClass)mitem).AudioTracksGetCount(out audioTracks); playToken.HasAudio = (audioTracks > 0); playToken.MItem = mitem; ApplyParameters(playToken); }