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 }
public void Load(IPlayerItem playerItem) { Debug.Assert(_nextItem == null); PlayerToken playToken = new PlayerToken(playerItem, _dateTimeService); if (IsMLSource(playerItem.MediaSource)) { playToken.MPlaylist = _mplaylist; M_Load(playToken); } else { var adjustedRange = playerItem.MediaSource.Adjust(playToken.PlayRange); playToken.LoadRange = adjustedRange.Value; } _nextItem = playerItem; _nextItem.LoadTime = _dateTimeService.GetLocalNow(); _nextItem.PlayerToken = playToken; OnItemLoaded(_nextItem); }
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); }