Kodi Community Forum
[WINDOWS] Internal Directshow Based Player [NO LONGER DEVELOPED] - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: General Support (https://forum.kodi.tv/forumdisplay.php?fid=111)
+---- Forum: Windows (https://forum.kodi.tv/forumdisplay.php?fid=59)
+---- Thread: [WINDOWS] Internal Directshow Based Player [NO LONGER DEVELOPED] (/showthread.php?tid=61355)



- hsinchu308 - 2010-05-23

Hi Seb,

It seems that the font size problem in dsplayer is not completely fixed yet..LOL

Although in r30385 font sizes are the same between dsplayer and dvdplayer for plain text subtitles, they are still much bigger in dsplayer for subtitles in ASS format (in dvdplayer the font sizes are same between those two subtitle formats). Any ideas on where I should look for the font size calculation for the SSA/ASS formats in dsplayer?


- zilexa - 2010-05-23

blinkseb Wrote:Well, I don't have windows XP, so I can't test, but it's because of auo refresh-rate turned on. Try with the option turned off please Smile


It is NOT a bug! Read the above line and you'll see :
Code:
#
00:07:50 T:3372 M:2365435904    INFO: The video filters encountered an error so dsplayer changed the filters currently used.
The video filter refused the connection : we let DirectShow chose the best filter, and it's ffdshow which won the battle, that's all.


There was an exception on the render thread, meaning you can't do anything. I'll investigate, but without XP, it's not really easy. I will try a virtual marchine!

To prevent this from hapenning, use a fake fullscreen window. You'll be able to kill xbmc without being stick in fullscreen!

OK I have some new info now Smile

1. Arcsoft didn't work because it's a 30-trial! Didn't know that. Stupid! Let's quickly forget about it.

2. Disabling "Vertical Blank Sync" (that's what everyone means when they talk about "Auto Refresh" right?) plays my movies fine using the default DSfilterconfig.xml supplied with rev30385 (stating it should use mpcvideo, but see #3).
But I have always had this option to "always enabled". In rev29443 it was no problem for me. It did not actually work since I had tearing. But the option was enabled.
Perhaps in rev30385 this switch actually works, but since auto refresh doesn't work its giving me problems. In rev29443 the switch didn't had a function so no matter if it was enabled or disabled it couldnt give problems? Just a theory.

3. ALL my movies play with FFDShow video decoder. Since the video filter (MPCvideo) rejects the video stream. I understand why this happened with Arcsoft since the trial period expired. But why is this happening with mpcvideodec?

4. As suggested, I tried mpcvideodec.ax from rev29443. Same result. Video is played by ffdshow because mpcvideodec doesn't work. Weeeeird.

The only other error I have is a popup about recentlyadded.py, a minute or so after starting XBMC. But I suppose everyone has that. Is not dsplayer related.

New debug log (using rev30385 mpcvideodec, disabled Vertical Blank Sync, playing SD video file called ...Bones...avi): http://pastebin.com/nFMZQVi8
Should use mpcvideo but is using ffdshow.
This also happens when playing videos that would normally support DXVA. The ffdshow non-dxva video filter is selected instead of mpc.

dsfilterconfig (didn't change it for these tests):http://pastebin.com/ycRFVzfW


- blinkseb - 2010-05-23

hsinchu308 Wrote:Hi Seb,

It seems that the font size problem in dsplayer is not completely fixed yet..LOL

Although in r30385 font sizes are the same between dsplayer and dvdplayer for plain text subtitles, they are still much bigger in dsplayer for subtitles in ASS format (in dvdplayer the font sizes are same between those two subtitle formats). Any ideas on where I should look for the font size calculation for the SSA/ASS formats in dsplayer?

Well, there's no font size calculation for ASS/SSA subtitles. Font-size in point is specified directly in the file, and used without changes. (See line 1410 in STS.cpp (project 'subtitles'). I'll look at it tuesday!

EDIT: I had a look, and it seems that's subtitles font size didn't match between dsplayer and dvdplayer. I've tried with an old south park episode, and dsplayer was too small. Damn! If you want to test it more, you're more than welcome :p

zilexa Wrote:OK I have some new info now Smile

1. Arcsoft didn't work because it's a 30-trial! Didn't know that. Stupid! Let's quickly forget about it.

2. Disabling "Vertical Blank Sync" (that's what everyone means when they talk about "Auto Refresh" right?) plays my movies fine using the default DSfilterconfig.xml supplied with rev30385 (stating it should use mpcvideo, but see #3).
But I have always had this option to "always enabled". In rev29443 it was no problem for me. It did not actually work since I had tearing. But the option was enabled.
Perhaps in rev30385 this switch actually works, but since auto refresh doesn't work its giving me problems. In rev29443 the switch didn't had a function so no matter if it was enabled or disabled it couldnt give problems? Just a theory.

3. ALL my movies play with FFDShow video decoder. Since the video filter (MPCvideo) rejects the video stream. I understand why this happened with Arcsoft since the trial period expired. But why is this happening with mpcvideodec?

4. As suggested, I tried mpcvideodec.ax from rev29443. Same result. Video is played by ffdshow because mpcvideodec doesn't work. Weeeeird.

The only other error I have is a popup about recentlyadded.py, a minute or so after starting XBMC. But I suppose everyone has that. Is not dsplayer related.

New debug log (using rev30385 mpcvideodec, disabled Vertical Blank Sync, playing SD video file called ...Bones...avi): http://pastebin.com/nFMZQVi8
Should use mpcvideo but is using ffdshow.
This also happens when playing videos that would normally support DXVA. The ffdshow non-dxva video filter is selected instead of mpc.

dsfilterconfig (didn't change it for these tests):http://pastebin.com/ycRFVzfW

It seems that there're some issues with mpc video dec.

The auto refresh rate is labeled 'Adjust display refresh rate to match video'. It works fine on Vista+, but apparently not on XP. Please disable it if it's activated!


- zilexa - 2010-05-23

"Adjust display refresh rate to match video" is disabled. That always caused issues.
disabling Vertical blank sync at least lets me play video again.

I'll try to find an old mpcvideodec on the sourceforge svn and test.


- blinkseb - 2010-05-23

zilexa Wrote:"Adjust display refresh rate to match video" is disabled. That always caused issues.
disabling Vertical blank sync at least lets me play video again.

I'll try to find an old mpcvideodec on the sourceforge svn and test.

I've never tried the vertical sync. Maybe it's time to try it :p I add this on my todo list!


- zilexa - 2010-05-23

I copied the mpcvideodec.ax file from the MPC-Standalone Filters.1.3.1249.0.(x86) zip from sourceforge. Unfortunately same result. The ffdshow video filter is used. Same result for the mpc decoder copied from rev29443 so it's not dependent on the version of this file..

about vertical sync: I believe there was a discussion perhaps in the user thread that it works for people. Its hardware dependant. It seems Vsync works crappy on 780G/ Ati HD 3200 chipsets, has nothing to do with xbmc.
But the option in XBMC enabled didn't effect video playback in a bad way until now. Could be its not dsplayer related.


- blinkseb - 2010-05-23

zilexa Wrote:I copied the mpcvideodec.ax file from the MPC-Standalone Filters.1.3.1249.0.(x86) zip from sourceforge. Unfortunately same result. The ffdshow video filter is used. Same result for the mpc decoder copied from rev29443 so it's not dependent on the version of this file..

about vertical sync: I believe there was a discussion perhaps in the user thread that it works for people. Its hardware dependant. It seems Vsync works crappy on 780G/ Ati HD 3200 chipsets, has nothing to do with xbmc.
But the option in XBMC enabled didn't effect video playback in a bad way until now. Could be its not dsplayer related.

It's surely related to dsplayer. There're some options to control vsync, not yet on the gui (soon Wink) and activated by default on this release (were off before). I think it affects people on differents ways.

You can try that :
Create a file named "dsconfig.xml" on your userdata folder, and put that into it
Code:
<dsplayersettings>
  <VMR9VSync>true</VRM9VSync>
  <VMR9VSyncAccurate>true</VMR9VSyncAccurate>
  <VMRFlushGPUBeforeVSync>true</VMRFlushGPUBeforeVSync>
</dsplayersettings>

You can set the options true or false.


- Slipx - 2010-05-24

I cant seem to make this work. Using the latest build and having a problem loading the ffdshow audio and video filters. I've checked the clsid and even tried to add a path and explicitly allow XBMC as an application. Any ideas? See output of debug log below

ffdshow audio decoder failing
Quote:23:54:50 T:4272 M:2690957312 DEBUG: CFGFilterVideoRenderer::Create Allocator presenter successfully created
23:54:50 T:4272 M:2690957312 DEBUG: CFGLoader::InsertVideoRenderer Allocator presenter successfully added to the graph (Renderer: Enhanced Video Renderer)
23:54:50 T:4272 M:2690957312 DEBUG: CFilterSelectionRule::GetFilters: adding filter: avisource for rule: un-named
23:54:50 T:4272 M:2690543616 INFO: DShowUtil::LoadExternalObject DllGetClassObject fails for IID {56A86895-0AD4-11CE-B03A-0020AF0BA770}. Trying IClassFactory instead (hr = 0x80004002)
23:54:50 T:4272 M:2690510848 DEBUG: CFGFilterFile::Create Successfully loaded external filter (clsid:{CEA8DEFF-0AF7-4DB9-9A38-FB3C3AEFC0DE} path:C:\Program Files (x86)\XBMC\system\players\dsplayer\AviSplitter.ax)
23:54:50 T:4272 M:2690506752 NOTICE: CFGLoader::InsertFilter Successfully added "AVI Source" to the graph
23:54:50 T:4272 M:2687623168 NOTICE: CFGLoader::InsertSourceFilter Successfully loaded file in the splitter
23:54:50 T:4272 M:2687602688 INFO: Video stream fourcc : XVID
23:54:50 T:4272 M:2687602688 DEBUG: CFilterSelectionRule::GetFilters: adding filter: mpcvideodec for rule: un-named
23:54:50 T:4272 M:2687139840 INFO: DShowUtil::LoadExternalObject DllGetClassObject fails for IID {56A86895-0AD4-11CE-B03A-0020AF0BA770}. Trying IClassFactory instead (hr = 0x80004002)
23:54:50 T:4272 M:2686910464 DEBUG: CFGFilterFile::Create Successfully loaded external filter (clsid:{008BAC12-FBAF-497B-9670-BC6F6FBAE2C4} path:C:\Program Files (x86)\XBMC\system\players\dsplayer\MPCVideoDec.ax)
23:54:50 T:4272 M:2686910464 NOTICE: CFGLoader::InsertFilter Successfully added "MPC Video Decoder" to the graph
23:54:50 T:4272 M:2686910464 DEBUG: CFilterSelectionRule::GetFilters: adding filter: ffdaudiodec for rule: un-named
23:54:50 T:4272 M:2686906368 DEBUG: DShowUtil::LoadExternalObject CoLoadLibrary fails : 0
23:54:50 T:4272 M:2686906368 INFO: CFGFilterFile::Create Failed to load external filter (clsid:{0F40E1E5-4F79-4988-B1A9-CC98794E6B55} pathSmile. Trying with CoCreateInstance
23:54:50 T:4272 M:2686853120 FATAL: CFGFilterFile::Create CoCreateInstance failed!
23:54:50 T:4272 M:2686853120 ERROR: CFGLoader::InsertFilter Failed to create filter "ffdaudiodec"
23:54:50 T:4272 M:2686853120 ERROR: CFGManager::RenderFileXbmc Failed to load filters rules

ffdshow video decoder failing

Quote:00:23:19 T:4796 M:2753810432 DEBUG: CFGFilterVideoRenderer::Create Allocator presenter successfully created
00:23:19 T:4796 M:2753810432 DEBUG: CFGLoader::InsertVideoRenderer Allocator presenter successfully added to the graph (Renderer: Enhanced Video Renderer)
00:23:19 T:4796 M:2753806336 DEBUG: CFilterSelectionRule::GetFilters: adding filter: mpegsource for rule: un-named
00:23:19 T:4796 M:2753392640 INFO: DShowUtil::LoadExternalObject DllGetClassObject fails for IID {56A86895-0AD4-11CE-B03A-0020AF0BA770}. Trying IClassFactory instead (hr = 0x80004002)
00:23:19 T:4796 M:2753351680 DEBUG: CFGFilterFile::Create Successfully loaded external filter (clsid:{1365BE7A-C86A-473C-9A41-C0A6E82C9FA3} path:C:\Program Files (x86)\XBMC\system\players\dsplayer\MpegSplitter.ax)
00:23:19 T:4796 M:2753351680 NOTICE: CFGLoader::InsertFilter Successfully added "Mpeg Source" to the graph
00:23:19 T:4796 M:2752020480 NOTICE: CFGLoader::InsertSourceFilter Successfully loaded file in the splitter
00:23:19 T:4796 M:2752000000 INFO: Video stream fourcc : AVC1
00:23:19 T:4796 M:2752000000 DEBUG: CFilterSelectionRule::GetFilters: adding filter: ffdvideodec for rule: un-named
00:23:19 T:4796 M:2751983616 DEBUG: DShowUtil::LoadExternalObject CoLoadLibrary fails : 0
00:23:19 T:4796 M:2751983616 INFO: CFGFilterFile::Create Failed to load external filter (clsid:{04FE9017-F873-410E-871E-AB91661A4EF7} pathSmile. Trying with CoCreateInstance
00:23:19 T:4796 M:2751983616 FATAL: CFGFilterFile::Create CoCreateInstance failed!
00:23:19 T:4796 M:2751983616 ERROR: CFGLoader::InsertFilter Failed to create filter "ffdvideodec"
00:23:19 T:4796 M:2751983616 ERROR: CFGManager::RenderFileXbmc Failed to load filters rules

Using 64bit version of ffdshow revision 3439

FIXED: Had to install the version of ffdshow distributed with xbmc. Must be a bug with the latest ffdshow build


- blinkseb - 2010-05-24

Slipx Wrote:I cant seem to make this work. Using the latest build and having a problem loading the ffdshow audio and video filters. I've checked the clsid and even tried to add a path and explicitly allow XBMC as an application. Any ideas? See output of debug log below

ffdshow audio decoder failing


ffdshow video decoder failing



Using 64bit version of ffdshow revision 3439

FIXED: Had to install the version of ffdshow distributed with xbmc. Must be a bug with the latest ffdshow build

1) Use pastebin PLEASE!
2) XBMC is a 32bit software, you need to use ffdshow x86, no matter you are on Windows x64 or not!


- offline_thk - 2010-05-25

offline_thk Wrote:Just a bit curious about why these are not present in DSPlayer builds and when you think we can expect them? Is this version not stable enough?

No idea? Huh


- christoofar - 2010-05-25

offline_thk Wrote:Just a bit curious about why these are not present in DSPlayer builds and when you think we can expect them? Is this version not stable enough?

These have nothing to do with DSPlayer. They have to do with the current trunk builds.
May have to wait for the new main release for these to be working again.


- zilexa - 2010-05-25

blinkseb Wrote:It's surely related to dsplayer. There're some options to control vsync, not yet on the gui (soon Wink) and activated by default on this release (were off before). I think it affects people on differents ways.

You can try that :
Create a file named "dsconfig.xml" on your userdata folder, and put that into it
Code:
<dsplayersettings>
  <VMR9VSync>true</VRM9VSync>
  <VMR9VSyncAccurate>true</VMR9VSyncAccurate>
  <VMRFlushGPUBeforeVSync>true</VMRFlushGPUBeforeVSync>
</dsplayersettings>

You can set the options true or false.

Thanks! I tried the following:
Auto refresh: Disabled
Auto sync playback: Disabled
(I have always had these options disabled, also when using older revs).

Vsync: Enabled During Video Playback.

In the dsconfig.xml file I have set all three options to false.
Now the video plays with black screen. No error pops up. I cannot stop the video normally by pressing STOP on remote or via OSD. Have to exit XBMC via taskbar.
http://pastebin.com/ne7pcUb4

Now I try same settings but VMR9Sync set to TRUE, same behaviour:
http://pastebin.com/5rX6ecrb

Now same settings but both VMR9Sync and Flushbefore.. set to TRUE, same behaviour:
http://pastebin.com/43SPF44f

I also tried all three options set to TRUE, no difference.
Hope this helps a little bit.

And ofcourse FFDShow video is always being used... against my wish Wink


- blinkseb - 2010-05-26

zilexa Wrote:Thanks! I tried the following:
Auto refresh: Disabled
Auto sync playback: Disabled
(I have always had these options disabled, also when using older revs).

Vsync: Enabled During Video Playback.

In the dsconfig.xml file I have set all three options to false.
Now the video plays with black screen. No error pops up. I cannot stop the video normally by pressing STOP on remote or via OSD. Have to exit XBMC via taskbar.
http://pastebin.com/ne7pcUb4

Now I try same settings but VMR9Sync set to TRUE, same behaviour:
http://pastebin.com/5rX6ecrb

Now same settings but both VMR9Sync and Flushbefore.. set to TRUE, same behaviour:
http://pastebin.com/43SPF44f

I also tried all three options set to TRUE, no difference.
Hope this helps a little bit.

And ofcourse FFDShow video is always being used... against my wish Wink

You have something causing a device reset. As it's buggy on WinXP, there's an exception, so everything is crashed!

Are you using reclock or something like that?


- zilexa - 2010-05-26

Nope, I don't. But I can try again later this morning, closing all apps and stopping all unnecessary processes. Also I should have set Vsync to Always On in Ati Catalyst Control Center just to be sure (now it's set to "Off unless application specifies" or something like that).


- blinkseb - 2010-05-26

zilexa Wrote:Nope, I don't. But I can try again later this morning, closing all apps and stopping all unnecessary processes. Also I should have set Vsync to Always On in Ati Catalyst Control Center just to be sure (now it's set to "Off unless application specifies" or something like that).

That's very very odd. Maybe I've done something wrong, I'll check out later, now, it's time to sleep Smile