MediaPortal Forums HTPC/MediaCenter

Go Back   MediaPortal Forum » MediaPortal 1 » Get Support » Codecs, External Players


Codecs, External Players Post problems with Codecs or External Players here!

Reply
 
Thread Tools Display Modes
Old 2006-01-04, 01:13   #1 (permalink)
Portal Member
 
Join Date: Dec 2005
Location: IOW
Age: 45
Posts: 536
Thanks: 28
Thanked 3 Times in 3 Posts

Country:

My System

Default Visualisations slow still?

Hi,

just wondered if ths is still a known problem as some visualisations are unusable in MP whilst fine in WMP10?

Thanks
Nemulate is offline   Reply With Quote
Old 2006-01-04, 13:55   #2 (permalink)
Portal Member
 
Join Date: Jan 2005
Posts: 239
Thanks: 5
Thanked 1 Time in 1 Post


Default Re: Visualisations slow still?

Quote:
Originally Posted by Nemulate
Hi,

just wondered if ths is still a known problem as some visualisations are unusable in MP whilst fine in WMP10?

Thanks
It's still the same - I did some investigation work a while back - the gPlayer has a flag to go fullscreen that is still set false I think - this may be root cause - I wrote a test plugin from WMP that just never received the 'fullscreen' flag. For say a D3D visualisation, this would allow the vis to Present (via HW) rather than have to GDI copy. Wish I had more time to fix this, but hope this helps.
BigJ.
bigj is offline   Reply With Quote
Old 2006-01-05, 23:00   #3 (permalink)
Portal Member
 
Join Date: Dec 2005
Location: IOW
Age: 45
Posts: 536
Thanks: 28
Thanked 3 Times in 3 Posts

Country:

My System

Default

Ok so sounds like it's a programing bug then? The vis never realises it's in full screen so can't use hardware d3d? Will see if it's in mantis then. Thanks
Nemulate is offline   Reply With Quote
Old 2006-01-21, 02:37   #4 (permalink)
Portal Member
 
Join Date: Jan 2005
Posts: 239
Thanks: 5
Thanked 1 Time in 1 Post


Default

Ok, so I finally got round to checking out the CVS and building the project from the sources...

I tried applying the fullscreen flag to the player and it does solve the issue with visualisations running slow when fullscreen. I had to apply a workaround for MP losing focus (borrowed from elsewhere in the project).

There's some caveats with this as it stands:

1. To prevent it going fullscreen when running MP in a window, I check for this and fallback to the previous stretch-blit method in this case. This is consistent then with the other player modes (tv, movies etc).

2. Some vis plugins try to change screen res when going fullscreen; so if using say a TV-out be prepared for this.

Perhaps if this was ever to be applied to the tree there should be an option added to the configuration to allow users to choose.
e.g.
WMPlayer Visualisation Fullscreen : Use Stretch [ ], Use true fullscreen [X]
In which case the check for 1. above would be redundant since the user option could be used as an explicit preference.

I tested it and it works at high framerates for GForce and for my own test plugin - was 8fps now >35fps

Here's the new code; sorry to dump it here, I can't get CVS/tortoise to work consistently for some reason.

AudioPlayerWMP9.cs
See SetVideoWindow...


/*
* Copyright (C) 2005 Team MediaPortal
* http://www.team-mediaportal.com
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This Program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
using System;
using System.Collections;
using System.Windows.Forms;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Diagnostics;
using MediaPortal.TagReader;
using MediaPortal.Util;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using Microsoft.Win32;
using Direct3D = Microsoft.DirectX.Direct3D;



using MediaPortal.GUI.Library;
using DirectShowLib;
namespace MediaPortal.Player
{
public class AudioPlayerWMP9 : IPlayer
{
private const int SW_SHOW = 5;
private const int SW_RESTORE = 9;
public const Int32 TOGGLE_HIDEWINDOW = 0x080;
public const Int32 TOGGLE_UNHIDEWINDOW = 0x040;
public const Int32 HWND_TOPMOST = -1;
public const Int32 HWND_NOTOPMOST = -2;

[DllImport("User32")]
private static extern int SetForegroundWindow(IntPtr hwnd);

// Activates a window
[DllImportAttribute("User32.DLL")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();

public enum PlayState
{
Init,
Playing,
Paused,
Ended
}
string _currentFile = "";
PlayState _graphState = PlayState.Init;
bool _isFullScreen = false;
int _positionX = 10, _positionY = 10, _videoWidth = 100, _videoHeight = 100;
static AxWMPLib.AxWindowsMediaPlayer _wmp10Player = null;
bool _needUpdate = true;
bool _notifyPlaying = true;

public AudioPlayerWMP9()
{
}


static void CreateInstance()
{
// disable auto windows mediaplayer auto cd-play
if (_wmp10Player != null) return;
try
{
UInt32 dwValue = (UInt32)0;
RegistryKey hkcu = Registry.CurrentUser;
RegistryKey subkey = hkcu.OpenSubKey(@"Software\Microsoft\MediaPlayer\P references", true);

subkey.SetValue("CDAutoPlay", (Int32)dwValue);

// enable metadata lookup for CD's
dwValue = (UInt32)Convert.ToInt32(subkey.GetValue("MetadataR etrieval"));
dwValue |= 1;
subkey.SetValue("MetadataRetrieval", (Int32)dwValue);
subkey.Close();
hkcu.Close();
}
catch (Exception) { }

_wmp10Player = new AxWMPLib.AxWindowsMediaPlayer();


_wmp10Player.BeginInit();
GUIGraphicsContext.form.SuspendLayout();
_wmp10Player.Enabled = true;

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typ eof(Resource1));
_wmp10Player.Location = new System.Drawing.Point(8, 16);
_wmp10Player.Name = "axWindowsMediaPlayer1";
_wmp10Player.OcxState = ((System.Windows.Forms.AxHost.State)(resources.Get Object("axWindowsMediaPlayer1.OcxState")));
_wmp10Player.Size = new System.Drawing.Size(264, 240);
_wmp10Player.TabIndex = 0;
GUIGraphicsContext.form.Controls.Add(_wmp10Player) ;


try
{
_wmp10Player.EndInit();
}
catch (COMException)
{
}

_wmp10Player.uiMode = "none";
_wmp10Player.windowlessVideo = true;

_wmp10Player.enableContextMenu = false;
_wmp10Player.Ctlenabled = false;
_wmp10Player.Visible = false;
GUIGraphicsContext.form.ResumeLayout(false);


}

static public ArrayList GetCDTracks()
{
GUIListItem item;
ArrayList list = new ArrayList();
item = new GUIListItem();
item.IsFolder = true;
item.Label = "..";
item.Label2 = "";
item.Path = "";
Utils.SetDefaultIcons(item);
Utils.SetThumbnails(ref item);
list.Add(item);

CreateInstance();
if (_wmp10Player.cdromCollection.count <= 0) return list;
if (_wmp10Player.cdromCollection.count <= 0) return list;


WMPLib.IWMPCdrom cdrom = _wmp10Player.cdromCollection.Item(0);

if (cdrom == null) return list;
if (cdrom.Playlist == null) return list;


for (int iTrack = 0; iTrack < cdrom.Playlist.count; iTrack++)
{
try
{
MusicTag tag = new MusicTag();
WMPLib.IWMPMedia media = cdrom.Playlist.get_Item(iTrack);
item = new GUIListItem();
item.IsFolder = false;
item.Label = media.name;
item.Label2 = "";
item.Path = String.Format("cdda:{0}", iTrack);
item.FileInfo = null;

for (int i = 0; i < media.attributeCount; ++i)
{
string strAttr = media.getAttributeName(i);
string strValue = media.getItemInfo(strAttr);
if (String.Compare("album", strAttr, true) == 0) tag.Album = strValue;
if (String.Compare("actor", strAttr, true) == 0) tag.Artist = strValue;
if (String.Compare("artist", strAttr, true) == 0) tag.Artist = strValue;
if (String.Compare("style", strAttr, true) == 0) tag.Genre = strValue;
if (String.Compare("releasedate", strAttr, true) == 0)
{
try
{
tag.Year = Convert.ToInt32(strValue.Substring(0, 4));
}
catch (Exception)
{
}
}
}
tag.Title = media.name;
tag.Duration = (int)media.duration;
tag.Track = iTrack + 1;
//tag.Comment =
//tag.Year =
//tag.Genre =
item.MusicTag = tag;
list.Add(item);
}
catch (Exception)
{
}
}
return list;
}

public override bool Play(string strFile)
{
_graphState = PlayState.Init;
_currentFile = strFile;

_notifyPlaying = true;
GC.Collect();
CreateInstance();

if (_wmp10Player == null) return false;
if (_wmp10Player.cdromCollection == null) return false;

_wmp10Player.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler (OnPlayStateChange);

//_wmp10Player.enableContextMenu = false;
//_wmp10Player.Ctlenabled = false;
if (strFile.IndexOf("cdda:") >= 0)
{
string strTrack = strFile.Substring(5);
int iTrack = Convert.ToInt32(strTrack);
if (_wmp10Player.cdromCollection.count <= 0) return false;
if (_wmp10Player.cdromCollection.Item(0).Playlist == null) return false;
if (iTrack > _wmp10Player.cdromCollection.Item(0).Playlist.coun t) return false;
_wmp10Player.currentMedia = _wmp10Player.cdromCollection.Item(0).Playlist.get_ Item(iTrack - 1);
if (_wmp10Player.currentMedia == null) return false;

Log.Write("Audioplayer:play track:{0}/{1}", iTrack, _wmp10Player.cdromCollection.Item(0).Playlist.coun t);
}
else if (strFile.IndexOf(".cda") >= 0)
{
string strTrack = "";
int pos = strFile.IndexOf(".cda");
if (pos >= 0)
{
pos--;
while (Char.IsDigit(strFile[pos]) && pos > 0)
{
strTrack = strFile[pos] + strTrack;
pos--;
}
}

if (_wmp10Player.cdromCollection.count <= 0) return false;
string strDrive = strFile.Substring(0, 1);
strDrive += ":";
int iCdRomDriveNr = 0;
while ((_wmp10Player.cdromCollection.Item(iCdRomDriveNr) .driveSpecifier != strDrive) && (iCdRomDriveNr < _wmp10Player.cdromCollection.count))
{
iCdRomDriveNr++;
}

int iTrack = Convert.ToInt32(strTrack);
if (_wmp10Player.cdromCollection.Item(iCdRomDriveNr). Playlist == null) return false;
int tracks = _wmp10Player.cdromCollection.Item(iCdRomDriveNr).P laylist.count;
if (iTrack > tracks) return false;
_wmp10Player.currentMedia = _wmp10Player.cdromCollection.Item(iCdRomDriveNr).P laylist.get_Item(iTrack - 1);
if (_wmp10Player.currentMedia == null) return false;
/*
string strStart=strFile.Substring(0,2)+@"\";
int ipos=strFile.LastIndexOf("+");
if (ipos >0) strStart += strFile.Substring(ipos+1);
strFile=strStart;
_currentFile=strFile;
Log.Write("Audioplayer:play {0}", strFile);*/
//_wmp10Player.URL=strFile;
_currentFile = strFile;
}
else
{
Log.Write("Audioplayer:play {0}", strFile);
_wmp10Player.URL = strFile;
}
_wmp10Player.Ctlcontrols.play();
_wmp10Player.Visible = false;


GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_PLAYBACK _STARTED, 0, 0, 0, 0, 0, null);
msg.Label = strFile;

GUIWindowManager.SendThreadMessage(msg);
_graphState = PlayState.Playing;
GC.Collect();
_needUpdate = true;
_isFullScreen = GUIGraphicsContext.IsFullScreenVideo;
_positionX = GUIGraphicsContext.VideoWindow.Left;
_positionY = GUIGraphicsContext.VideoWindow.Top;
_videoWidth = GUIGraphicsContext.VideoWindow.Width;
_videoHeight = GUIGraphicsContext.VideoWindow.Height;

SetVideoWindow();

return true;
}

private void OnPlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (_wmp10Player == null) return;
switch (_wmp10Player.playState)
{
case WMPLib.WMPPlayState.wmppsStopped:
SongEnded(false);
break;
}
}

void SongEnded(bool bManualStop)
{
// this is triggered only if movie has ended
// ifso, stop the movie which will trigger MovieStopped

if (!Utils.IsAudio(_currentFile))
GUIGraphicsContext.IsFullScreenVideo = false;
Log.Write("Audioplayer:ended {0} {1}", _currentFile, bManualStop);
_currentFile = "";
if (_wmp10Player != null)
{
_wmp10Player.Visible = false;
_wmp10Player.PlayStateChange -= new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler (OnPlayStateChange);
}
//GUIGraphicsContext.IsFullScreenVideo=false;
GUIGraphicsContext.IsPlaying = false;
if (!bManualStop)
{
_graphState = PlayState.Ended;
}
else
{
_graphState = PlayState.Init;
}
GC.Collect();
}


public override bool Ended
{
get { return _graphState == PlayState.Ended; }
}

public override double Duration
{
get
{
if (_graphState != PlayState.Init && _wmp10Player != null)
{
try
{
return _wmp10Player.currentMedia.duration;
}
catch (Exception)
{
}
}
return 0.0d;
}
}

public override double CurrentPosition
{
get
{
try
{
return _wmp10Player.Ctlcontrols.currentPosition;
}
catch (Exception)
{
}
return 0.0d;
}
}

public override void Pause()
{
if (_wmp10Player == null) return;
if (_graphState == PlayState.Paused)
{
_graphState = PlayState.Playing;
_wmp10Player.Ctlcontrols.play();
}
else if (_graphState == PlayState.Playing)
{
_wmp10Player.Ctlcontrols.pause();
if (_wmp10Player.playState == WMPLib.WMPPlayState.wmppsPaused)
_graphState = PlayState.Paused;
}
}

public override bool Paused
{
get
{
return (_graphState == PlayState.Paused);
}
}

public override bool Playing
{
get
{
return (_graphState == PlayState.Playing || _graphState == PlayState.Paused);
}
}

public override bool Stopped
{
get
{
return (_graphState == PlayState.Init);
}
}

public override string CurrentFile
{
get { return _currentFile; }
}

public override void Stop()
{
if (_wmp10Player == null) return;
if (_graphState != PlayState.Init)
{
_wmp10Player.Ctlcontrols.stop();
_wmp10Player.Visible = false;
SongEnded(true);
}
}

public override int Volume
{
get
{

if (_wmp10Player == null) return 100;
return _wmp10Player.settings.volume;
}
set
{

if (_wmp10Player == null) return;
if (_wmp10Player.settings.volume != value)
{
_wmp10Player.settings.volume = value;
}
}
}


public override bool HasVideo
{
get { return true; }
}


#region IDisposable Members

public override void Release()
{
/*
if (_wmp10Player == null) return;
_wmp10Player.Visible = false;

try
{
GUIGraphicsContext.form.Controls.Remove(_wmp10Play er);
}
catch (Exception) { }
_wmp10Player.Dispose();
_wmp10Player = null;
* */
}
#endregion

public override bool FullScreen
{
get
{
return GUIGraphicsContext.IsFullScreenVideo;
}
set
{
if (value != _isFullScreen)
{
_isFullScreen = value;
_needUpdate = true;
}
}
}
public override int PositionX
{
get { return _positionX; }
set
{
if (value != _positionX)
{
_positionX = value;
_needUpdate = true;
}
}
}

public override int PositionY
{
get { return _positionY; }
set
{
if (value != _positionY)
{
_positionY = value;
_needUpdate = true;
}
}
}

public override int RenderWidth
{
get { return _videoWidth; }
set
{
if (value != _videoWidth)
{
_videoWidth = value;
_needUpdate = true;
}
}
}
public override int RenderHeight
{
get { return _videoHeight; }
set
{
if (value != _videoHeight)
{
_videoHeight = value;
_needUpdate = true;
}
}
}

public override void Process()
{
if (!Playing) return;
if (_wmp10Player == null) return;
if (GUIGraphicsContext.BlankScreen || (GUIGraphicsContext.Overlay == false && GUIGraphicsContext.IsFullScreenVideo == false))
{
if (_wmp10Player.Visible)
{
_wmp10Player.ClientSize = new Size(0, 0);
_wmp10Player.Visible = false;
//_wmp10Player.uiMode = "invisible";
}
}
else if (!_wmp10Player.Visible)
{
_needUpdate = true;
SetVideoWindow();
//_wmp10Player.uiMode = "none";
_wmp10Player.Visible = true;
}


if (CurrentPosition >= 10.0)
{
if (_notifyPlaying)
{
_notifyPlaying = false;
GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_PLAYING_ 10SEC, 0, 0, 0, 0, 0, null);
msg.Label = CurrentFile;
GUIWindowManager.SendThreadMessage(msg);
}
}
}

public override void SetVideoWindow()
{

if (_wmp10Player == null) return;
if (GUIGraphicsContext.IsFullScreenVideo != _isFullScreen)
{
_isFullScreen = GUIGraphicsContext.IsFullScreenVideo;
_needUpdate = true;
}
if (!_needUpdate) return;
_needUpdate = false;


if (_isFullScreen)
{
Log.Write("AudioPlayer:Fullscreen");

IntPtr mpHwnd = GetActiveWindow();

_positionX = GUIGraphicsContext.OverScanLeft;
_positionY = GUIGraphicsContext.OverScanTop;
_videoWidth = GUIGraphicsContext.OverScanWidth;
_videoHeight = GUIGraphicsContext.OverScanHeight;

_wmp10Player.Location = new Point(0, 0);
_wmp10Player.ClientSize = new System.Drawing.Size(GUIGraphicsContext.Width, GUIGraphicsContext.Height);
_wmp10Player.Size = new System.Drawing.Size(GUIGraphicsContext.Width, GUIGraphicsContext.Height);

_videoRectangle = new Rectangle(0, 0, _wmp10Player.ClientSize.Width, _wmp10Player.ClientSize.Height);
_sourceRectangle = _videoRectangle;

// If MediaPortal app is fullscreen then go true fullscreen
Rectangle scr = Screen.PrimaryScreen.WorkingArea;
bool bMPIsFullscreen =
(GUIGraphicsContext.Width == scr.Width) &&
(GUIGraphicsContext.Height == scr.Height);

Log.Write("Screen is {0}x{1}, GUIGraphicsContext is {2}x{3} => {4}",
scr.Width, scr.Height, GUIGraphicsContext.Width, GUIGraphicsContext.Height,
bMPIsFullscreen?"Effectively fullscreen":"Treat as windowed");

if (bMPIsFullscreen)
{
Log.Write("AudioPlayerwitching wmp10Player fullscreen");
_wmp10Player.fullScreen = true;
_wmp10Player.stretchToFit = false;
}
// else go stretchy
else
{
Log.Write("AudioPlayerwitching wmp10Player non-fullscreen, stretchToFit");
_wmp10Player.stretchToFit = true;
}

// Restore original focus
ShowWindow(mpHwnd, SW_RESTORE);
SetForegroundWindow(mpHwnd);

Log.Write("AudioPlayer:done");

return;
}
else
{

_wmp10Player.ClientSize = new System.Drawing.Size(_videoWidth, _videoHeight);
_wmp10Player.Location = new Point(_positionX, _positionY);

_videoRectangle = new Rectangle(_positionX, _positionY, _wmp10Player.ClientSize.Width, _wmp10Player.ClientSize.Height);
_sourceRectangle = _videoRectangle;
//Log.Write("AudioPlayer:set window{0},{1})-({2},{3})",_positionX,_positionY,_positionX+_wmp10 Player.ClientSize.Width,_positionY+_wmp10Player.Cl ientSize.Height);

Log.Write("AudioPlayer:Not fullscreen");
_wmp10Player.fullScreen = false;
_wmp10Player.stretchToFit = true;
}
//_wmp10Player.uiMode = "none";
//_wmp10Player.windowlessVideo = true;
//_wmp10Player.enableContextMenu = false;
//_wmp10Player.Ctlenabled = false;
GUIGraphicsContext.form.Controls[0].Enabled = false;
}
/*
public override int AudioStreams
{
get { return _wmp10Player.Ctlcontrols.audioLanguageCount;}
}
public override int CurrentAudioStream
{
get { return _wmp10Player.Ctlcontrols.currentAudioLanguage;}
set { _wmp10Player.Ctlcontrols.currentAudioLanguage=valu e;}
}
public override string AudioLanguage(int iStream)
{
return _wmp10Player.controls.getLanguageName(iStream);
}
*/
public override void SeekRelative(double dTime)
{
if (_wmp10Player == null) return;
if (_graphState != PlayState.Init)
{

double dCurTime = CurrentPosition;
dTime = dCurTime + dTime;
if (dTime < 0.0d) dTime = 0.0d;
if (dTime < Duration)
{
_wmp10Player.Ctlcontrols.currentPosition = dTime;
}
}
}

public override void SeekAbsolute(double dTime)
{
if (_wmp10Player == null) return;
if (_graphState != PlayState.Init)
{
if (dTime < 0.0d) dTime = 0.0d;
if (dTime < Duration)
{
_wmp10Player.Ctlcontrols.currentPosition = dTime;
}
}
}

public override void SeekRelativePercentage(int iPercentage)
{
if (_wmp10Player == null) return;
if (_graphState != PlayState.Init)
{
double dCurrentPos = CurrentPosition;
double dDuration = Duration;

double fCurPercent = (dCurrentPos / Duration) * 100.0d;
double fOnePercent = Duration / 100.0d;
fCurPercent = fCurPercent + (double)iPercentage;
fCurPercent *= fOnePercent;
if (fCurPercent < 0.0d) fCurPercent = 0.0d;
if (fCurPercent < Duration)
{
_wmp10Player.Ctlcontrols.currentPosition = fCurPercent;
}
}
}


public override void SeekAsolutePercentage(int iPercentage)
{
if (_wmp10Player == null) return;
if (_graphState != PlayState.Init)
{
if (iPercentage < 0) iPercentage = 0;
if (iPercentage >= 100) iPercentage = 100;
double fPercent = Duration / 100.0f;
fPercent *= (double)iPercentage;
_wmp10Player.Ctlcontrols.currentPosition = fPercent;
}
}
public override int Speed
{
get
{
if (_graphState == PlayState.Init) return 1;
if (_wmp10Player == null) return 1;
return (int)_wmp10Player.settings.rate;
}
set
{
if (_wmp10Player == null) return;
if (_graphState != PlayState.Init)
{
try
{
_wmp10Player.settings.rate = (double)value;
}
catch (Exception)
{
}
}
}
}

}
}
bigj is offline   Reply With Quote
Old 2006-01-21, 02:53   #5 (permalink)
Portal Member
 
thechad's Avatar
 
Join Date: Feb 2005
Location: Geelong, Australia
Age: 27
Posts: 187
Thanks: 1
Thanked 0 Times in 0 Posts

Country:

My System

Default

You should submit the patch to sourceforge so that it an be merged in from their. May be missed in here as threads title does not mention a patch.
__________________
thechad is offline   Reply With Quote
Old 2006-01-21, 15:28   #6 (permalink)
Portal Member
 
Join Date: Jan 2005
Posts: 239
Thanks: 5
Thanked 1 Time in 1 Post


Default

Quote:
Originally Posted by thechad
You should submit the patch to sourceforge so that it an be merged in from their. May be missed in here as threads title does not mention a patch.
Ok - I worked out how the patching/sf submissions work; I think.
"1411517 WMP Audio Visualisations : Enable true fullscreen""
bigj is offline   Reply With Quote
Reply

Bookmarks

Tags
slow, visualisations

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Slow Video, LOW FPS!!!! Leadtek WinFast TV 2000 Expert dewmaster07 General Support 8 2007-03-15 17:16
MP very slow after upgrading from0.1.3 to 0.2 RC2 (latest) smithft Installation, configuration support 0 2006-01-11 19:12
How to: Remove visualisations & display Album Art only Confusedpenguin Tips and Tricks 0 2005-12-20 18:40
Running slow... Jittering jasontkennedy General Support 1 2005-12-04 05:11
Slow Music Visualisation - A Clue pcr Tips and Tricks 3 2005-08-05 00:09


All times are GMT +1. The time now is 14:02.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 Protected by Akismet Blog with WordPress
Advertisement System V2.6 By   Branden