PDA

View Full Version : Media Player Classic 6.4.8.9/6.4.9.0 Internal MPEG/TS/PVA Splitter Bug


Airw0lf
25th March 2006, 01:28
I'm writing to report a bug that I've found in versions 6.4.8.9 of MPC and above. 6.4.8.7 is not affected.

I use the NVIDIA PureVideo decoders to play High-Def ATSC transport streams. The PureVideo codecs also come with a special high performance .ts splitter called "NVIDIA Transport Demux". So whenever I play a .ts file, I disable the internal MPEG PS/TS/PVA splitter in MPC. When I do this in MPC 6.4.8.7 and earlier versions, this forces MPC to select the NVIDIA Splitter, and all is well.

But in the latest versions, the NVIDIA splitter is NOT selected, even if the internal MPEG splitter is disabled, and the NVIDIA Transport Demux is set to "prefer" or a high merit under external filters.

Basically, no matter what I do, the internal splitter takes over. When the file is playing, I can look under Filters and see that the internal splitter is marked as "(low merit)", but for some reason it still takes precedence over everything else!

Can anybody confirm this, or similar behavior?

emmel
25th March 2006, 10:09
Well, 6.4.8.9 seems to work fine with dvb ts and the Elecard MPEG demuxer overriding the internal splitter. Can't say anything about the Nvidia splitter, though.

bond
25th March 2006, 10:39
maybe your nvidia trial period has expired and you cant use the nvidia ts parser anymore?

Airw0lf
25th March 2006, 11:36
maybe your nvidia trial period has expired and you cant use the nvidia ts parser anymore?

That is not the issue because everything works fine if I go back to using 6.4.8.7. Simply replacing the 6.4.8.9 executable with the 6.4.8.7 executable does the trick. And in any case, even though MPC 6.4.8.9 is using its internal splitter, the NVIDIA audio/video codecs are still used to decode.

Well, 6.4.8.9 seems to work fine with dvb ts and the Elecard MPEG demuxer overriding the internal splitter. Can't say anything about the Nvidia splitter, though.

That's interesting to hear. All I can suggest is that your Elecard is a MPEG/TS/PVA splitter (from what I know), whilst the NVIDIA splitter basically only exists to demux TS files (although I might be wrong about that too).

Airw0lf
1st April 2006, 02:51
This is what Pin Info in MPC says when I am playing a .ts. (These are ATSC transport streams by the way, not DVB or anything like that). The NVIDIA Transport Demux is selected in my external filters list. It is set to "prefer" and the majortype of that filter is MEDIATYPE_Stream. The internal MPEG Splitter is of course disabled under internal filters.

However I cannot find a subtype called TIME_FORMAT_NONE. The default subtype there is called MEDIASUBTYPE_MPEG2_TRANSPORT.

But all these problems go away when I downgrade to 6.4.8.7. The NVIDIA Transport Demux is chosen as expected. But I have no way to find out about what media/subtypes are detected because 6.4.8.7 has no Pin Info option.

So my guess is the new MPC (6.4.9.0) doesn't pick up the right subtype and is therefore unable to connect to the NVIDIA filter and ends up trying to do everything itself. This is in spite of the fact that the internal filter is *explicitly disabled*. In such a situation it should really throw an error saying that it couldn't find a matching filter.

So it all adds up to: :confused: :(

- Connected to:

CLSID: {DC257063-045F-4BE2-BD5B-E12279C464F0}
Filter: Mpeg Splitter (low merit)
Pin: Input

- Connection media type:

Unknown

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0

- Enumerated media type 0:

Set as the current media type

- Enumerated media type 1:

Set as the current media type