Opened 7 years ago

Closed 5 years ago

Last modified 5 years ago

#281 closed Bug (fixed)

[CAPTURE] No video decoding when capturing from DVB-T card with internal MPEG2 DVXA Decoder enabled

Reported by: underground78 Owned by:
Priority: normal Milestone: 1.4
Component: General Version: nightly, specify
Severity: major Keywords: capture, dxva, dvb-t, mpeg2, bda
Cc: underground78, visitory, xpc1000 Evaluation:

Description

In capture mode I have to disable the internal MPEG2 DVXA Decoder to have a video output. When playing a file recorded from DVB-T so with the same characteristics, DVXA decoding seems to be automatically not used.

Here are the filters used in the different cases :

The filters used in capture mode seems quite strange, it looks like if two video decoders were connected ...

This was tested with revision 1650. I will be happy to provide more information if needed.

Change History (20)

comment:1 Changed 7 years ago by visitory

I can confirm this behavior. No video with the internal mpeg2 dxva decoder enabled. I too see two MPC Video Decoders are active when the dxva decorder is enabled:

- Connected to:

CLSID: {AFB6C280-2C41-11D3-8A60-0000F81E0E4A}
Filter: MPEG-2 Demultiplexer
Pin: mpv
- Connected to:

CLSID: {AFB6C280-2C41-11D3-8A60-0000F81E0E4A}
Filter: MPEG-2 Demultiplexer
Pin: h264

With the mpeg2 dxva decoder disabled only the upper is present, which makes sense as my dvb-t source does not broadcast h264 video. It seems the stream is incorrectly identified as h264 at some point?

I used revision 1764.

comment:2 Changed 7 years ago by visitory

  • Cc visitory added

comment:3 Changed 7 years ago by visitory

  • Keywords bda added

comment:4 Changed 7 years ago by visitory

  • Keywords dxva added; dvxa removed

comment:5 Changed 7 years ago by underground78

Thanks for confirming visitory ! No dev wants (has time / knows how) to try to fix this problem ?

comment:6 in reply to: ↑ description ; follow-up: Changed 6 years ago by xpc1000

Replying to underground78:

In capture mode I have to disable the internal MPEG2 DVXA Decoder to have a video output. When playing a file recorded from DVB-T so with the same characteristics, DVXA decoding seems to be automatically not used.

Here are the filters used in the different cases :

Looking at the 3 filter lists, everything looks normal, except that the MPEG2 DXVA (MPC Video decoder - CLSID : {008BAC12-FBAF-497B-9670-BC6F6FBAE2C4}) doesn't connect to the overlay renderer in all cases:

Case 1: the MPC video decoder is not connected to any renderer so no video at all.

Case 2: the MPEG-2 video decoder (CLSID : {39F498AF-1A09-4275-B193-673B0BA3D478}) is connected to the overlay mixer renderer and video is OK.

Case 3: the MPEG2 DXVA decoder (MPC Video decoder - CLSID : {008BAC12-FBAF-497B-9670-BC6F6FBAE2C4}) fails to connect with the renderer and defaults to MPEG-2 video decoder (CLSID : {39F498AF-1A09-4275-B193-673B0BA3D478}). This connection is OK and video works as in case 2.

The filters used in capture mode seems quite strange, it looks like if two video decoders were connected ...

The filter list includes two video decoders due to the fact that the demultiplexer has one output for MPEG-2 video and another one for H264. Both video decoders are connected to the demux, but only one is connected to the video renderer at a given time depending on the video format of the selected channel.

The final conclusion is that MPEG2 DXVA decoder is not working properly with Overlay mixer renderer. I tried with EVR and it worked properly. Could you use EVR or EVR CP instead of Overlay Mixer?

comment:7 Changed 6 years ago by xpc1000

  • Cc xpc1000 added

comment:8 in reply to: ↑ 6 Changed 6 years ago by underground78

Replying to xpc1000:

The final conclusion is that MPEG2 DXVA decoder is not working properly with Overlay mixer renderer. I tried with EVR and it worked properly. Could you use EVR or EVR CP instead of Overlay Mixer?

Hi,

I tried VMR-9 (renderless) and EVR and no change. I still have to disable explicitly internal MPEG2 DXVA filter to have capture working.

Thanks for looking at this bug !

comment:9 Changed 6 years ago by visitory

Although I didn't mention it I was using EVR-CP in my original confirmation so that's not the cause for me either.

I did spot some changes in the svn changelog that may have an impact so I upgraded to build 2305 just now and checked again using overlay, EVR-CP and EVR but the issue remains.

comment:10 Changed 6 years ago by xpc1000

I tested on a different computer and I had a different result. In this case, EVR and EVR CP were not connecting to the MPEG2 DXVA decoder. The only diference between the two PCs is that the first one (the one that works) is using an Intel G45 card and the second an nVidia GTS250.

From the computer that works, I have the following connection details:

- Connected to:

CLSID: {FA10746C-9B63-4B6C-BC49-FC300EA5F256}
Filter: Enhanced Video Renderer (custom presenter)
Pin: EVR Input0

- Connection media type:

Video: DXVA 0x576 (16:9)

AM_MEDIA_TYPE: 
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_NV12 {3231564E-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}

The one that doesn't work is identical except for the subtype:

subtype: Unknown GUID Name {EE27417F-5E28-4E65-BEEA-1D26B508ADC9}

Any ideas?

comment:11 follow-up: Changed 6 years ago by xpc1000

Hi,
I compiled a test version with some changes in the Filter Graph building behavior for life TV. Now this behavior should be identical to a recorded file, except for the fact that some more filters are needed.

http://www.mediafire.com/download.php?5jamgotxh86z953

Could you please test and report the results?

comment:12 in reply to: ↑ 11 Changed 6 years ago by visitory

Your test version seems to work just fine xpc1000, thanks for looking into this!

comment:13 Changed 6 years ago by xpc1000

  • Resolution set to fixed
  • Status changed from new to closed

comment:14 Changed 6 years ago by underground78

It does not work for me ... Now MPC-HC crashes when I click on "Open device".

I made a debug build to see what was going on and the error seems to happen line 7103 of MainFrm.cpp "pMC->Stop();":

else if(GetPlaybackMode() == PM_CAPTURE)
{
>   pMC->Stop(); // audio preview won't be in sync if we run it from paused state
    pMC->Run();
    [...]

comment:15 Changed 6 years ago by xpc1000

OK. I'll take a look...

comment:16 follow-up: Changed 6 years ago by xpc1000

Could you try with any release between 2448 and 2467? I want to make sure that changes made at 2448 are not producing this problem.

comment:17 in reply to: ↑ 16 Changed 6 years ago by underground78

Replying to xpc1000:

Could you try with any release between 2448 and 2467? I want to make sure that changes made at 2448 are not producing this problem.

You are right, same problem so it seems in fact that revision 2448 introduces the problem.

comment:18 follow-up: Changed 5 years ago by thevbm

  • Resolution fixed deleted
  • Status changed from closed to reopened

underground78 and xpc1000 does this still occur ? Or not ? .. if no please close the ticket or if there's no answer for next 2 months i'll close it again.

comment:19 in reply to: ↑ 18 Changed 5 years ago by underground78

  • Component changed from MPC_HC_CODECS to Solved
  • Resolution set to fixed
  • Status changed from reopened to closed

It doesn't seem to occur anymore so I guess this ticket can be closed.

comment:20 Changed 5 years ago by thevbm

  • Milestone set to 1.4
Note: See TracTickets for help on using tickets.