Jump to content

DVBViewer GE 3.1.2 bug on HD channels with ffdshow


hugh2

Recommended Posts

Posted (edited)

I'm in Melbourne Australia running DVBViewer GE 3.1.2 on Windows XP SP3 32-bit using ffdshow to decode everything.

 

A new bug in version 3.1.2 is that when I try to view channel 7mate, GEM, ONE or ABC News 24 (all the "high def" channels except SBS), DVBViewer plays a "default beep" sound and the status bar says "standby" (there is no picture or sound). If I then switch to a standard-def channel it plays OK but there is an extra ffdshow icon in the tray. Under some circumstances DVBViewer locks up and I have to kill the process.

 

These channels work fine with DVBViewer GE 3.0.3 or DVBViewer Pro (latest version).

 

I'm using "ffdshow tryouts" rev3966_20110809 - the latest stable release 4422_20120409 causes problems during channel switch so don't use that.

 

Tuner = VideoMate TV SAA7133/35, Hybrid Capture Device; driver version 1.3.7.8 dated 1/09/2008

Mainboard = Intel DG965WH with chipset G965 Express (but DXVA is not enabled in ffdshow)

"graphics card" = integrated Intel GMA X3000; driver version 6.14.10.5016 dated 12/12/2008

 

support.zip

Edited by hugh2
Posted (edited)
DVBViewer plays a "default beep" sound and the status bar says "standby"

...due to an exception, most likely caused by this ffdshow version.

 

Is it reproducable with file playback? Try a recording of the affected channels.

 

Does it happen with other decoders? You may want to try the DivX H.264 decoder, that is part of the DivX Codec Pack. Take care to untick everything that you don't want on installation (toolbars etc.). It may be necessary to tick Options -> DirectShow -> DVBViewer Filter -> TV/Radio Pre-Format Detection -> Video for this decoder.

 

the latest stable release 4422_20120409 causes problems during channel switch so don't use that.

Which problems? I've tried it - no problems whatsoever.

 

P.S.

 

I'm using "ffdshow tryouts" rev3966_20110809

I've tried it (downloaded from here) as H.264 decoder under XP. Doesn't happen here with the HD channels that I can receive.

Edited by Griga
Posted

All our channels here are MPEG not H.264 unfortunately.

 

I've just done some more experimenting and realized that it actually *is* a problem with switching channels - when viewing an HD channel, I had actually been switching from an SD channel to an HD channel. Unfortunately I think this means it can't be demonstrated with a recording?

 

I don't think there's very much difference between the two ffdshow versions. I get a beep and no playback in DVBViewer GE 3.1.2, video corruption in DVBViewer Pro, and correct operation in DVBViewer GE 3.0.3. It can be worked around by closing the graph (Playback Off) between channels. Is there an option somewhere to do this automatically?

Posted
It can be worked around by closing the graph (Playback Off) between channels. Is there an option somewhere to do this automatically?

Yes. For DVBViewer GE 3.1.2, launch Tweaker.exe, look for the "Rebuild playback on channel switching" checkbox, tick it and save.

 

Have you already tried Options -> DirectShow -> DVBViewer Filter -> TV/Radio Pre-Format Detection -> Video?

Posted

Have you already tried Options -> DirectShow -> DVBViewer Filter -> TV/Radio Pre-Format Detection -> Video?

Yes I had tried that in GE 3.1.2 with no luck. Now I've discovered that it was set in 3.0.3 - I didn't realize that different versions could have different options set!

 

So pre-format detection fixes the problem in GE 3.0.3 and in Pro but not in GE 3.1.2. This must be the real issue - 3.1.2 is ignoring this option?

 

(also 3.1.2 behaves differently in that it gives a beep and no playback and a "leaked" ffdshow tray icon whereas 3.0.3 and Pro give video corruption, which is easier to recover from)

 

Yes. For DVBViewer GE 3.1.2, launch Tweaker.exe, look for the "Rebuild playback on channel switching" checkbox, tick it and save.

That fixes it and might be necessary until the next version of GE. I wonder if it makes channel switching any slower than pre-format detection?

Posted

This must be the real issue - 3.1.2 is ignoring this option?

Replying to myself, it seems it's not completely ignoring the pre-format detection option because it does make channel switch slower. It just doesn't fix the problem with switching to a channel with a different resolution but same mpeg2 video codec.

Posted

Have you already tried to change the MPEG2 library used by ffdshow (Codecs -> MPEG2 -> libavcodec / libmpeg2)?

 

Anyway - I think ffdshow is no good choice for MPEG2 HD because it doesn't use the graphics card for hardware acceleration. A commercial one (e.g. Cyberlink from PowerDVD) would be better.

 

Another free option is the MPC MPEG2 decoder that is available here. However, since there is no installer, it has to be registered manually in the system, e.g. with the Radlight Filter Manager. Store the file Mpeg2DecFilter.ax somewhere in the program files directory (e.g. in DVBViewer\Filters), launch the Filter Manager with admin rights (!), click Register, select Mpeg2DecFilter.ax, launch DVBViewer, select the decoder on Options -> DirectShow.

 

That fixes it and might be necessary until the next version of GE

Don't pin your hopes on it. I can't reproduce it, I don't know what causes this issue, so I can't fix it. Most likely it is a ffdshow bug that shows up or not depending on random circumstances like the memory layout.

Posted

Have you already tried to change the MPEG2 library used by ffdshow (Codecs -> MPEG2 -> libavcodec / libmpeg2)?

I tried that and it didn't help.

Anyway - I think ffdshow is no good choice for MPEG2 HD because it doesn't use the graphics card for hardware acceleration. A commercial one (e.g. Cyberlink from PowerDVD) would be better.

I used to assume that DXVA was a good thing, and I used the Cyberlink decoder. However I got occasional system lockups when watching high def channels. I suspect the graphics and memory controller was overheating, or otherwise buggy. I realized that I can happily watch high def channels using about 15% of my CPU capacity to decode them - why would I risk system stability to save 15% CPU usage?

Another free option is the MPC MPEG2 decoder

I tried this. It avoids video corruption under Pro and GE 3.0.3, but I still get the beep and no playback under GE 3.1.2.

Most likely it is a ffdshow bug that shows up or not depending on random circumstances like the memory layout.

I don't think so. I just reproduced it now with ffdshow uninstalled (using MPC for video and elecard for audio).

Don't pin your hopes on it. I can't reproduce it

How can I send you more data so you can try to reproduce it? There must be some way to record two channels from a transponder to a single transport stream file, so you can switch between them during playback as if changing channel?

Posted

I've figured out that there are two independent issues here.

 

1. Video corruption in ffdshow when changing MPEG2 resolution. This is fairly harmless and can be reproduced in all DVBViewer versions by unchecking "Pre-Format Detection".

 

 

2. The "default beep" accompanied by failure to play any video / audio, tray icon leaks (in the case of using ffdshow for video decoding) and possible further system crashes for me (maybe the tv card is not properly (un-)initialized).

 

It happens only in DVBViewer GE 3.1.2 when the audio decoders are set to "system default" (not to ffdshow which *is* currently my system default) and I change between channels which use different audio formats - MPEG versus AC3. (it just so happens that all the "HD" channels except SBS here use AC3, and all other channels use MPEG)

 

I've noticed an option in DVBViewer to "include all audio tracks in MPG/TS" - maybe there's a channel here which has both AC3 and MPEG audio which I could record. How would I find out if a channel had both? And would you be able to switch between them when playing back?

Posted
It happens only in DVBViewer GE 3.1.2 when the audio decoders are set to "system default" (not to ffdshow which *is* currently my system default) and I change between channels which use different audio formats - MPEG versus AC3.

Well observed. I can reproduce it now. However, DVBViewer GE 3.0.3 is affected here too. DVBViewer Pro is not affected, because it doesn't really perform "System Default", as far as I can see. It's cheating.

 

The whole thing crashes deep down in the MS DirectShow libraries when one of the MS functions (IGraphBuilder.Render) is called, though up to this point everything seems to be ok. All values in DVBViewer GE are as they should be. Somehow it is related to the built-in DVBViewer Audio Callback filter (not to ffdshow), maybe because it is a built-in filter, which is not the normal case. It doesn't happen without it. That's all I know up to now, and I've found no fix for it yet.

Posted

Well observed. I can reproduce it now.

That's great!

However, DVBViewer GE 3.0.3 is affected here too.

Are you sure? I just tried 3.0.3 again and could not reproduce it. Perhaps some setting is preventing it? 3.0.3 doesn't seem to come with a "tweaker.exe".

The whole thing crashes deep down in the MS DirectShow libraries

When you say "crashes" what exactly do you mean? Is it the sort of exception that you could catch and report to the user? (which would be preferable to just a beep) Or is this in a thread created by foreign code that you have no control over?

Posted
When you say "crashes" what exactly do you mean?

Access violation. It's in your DVBViewer.log (see configuration folder). However, the location changes. Looks like some pointer is running amok, but I don't get it. In my code they are all ok.

Posted

Ok, I think I've found it. Wrong interface declaration in the Audio Callback filter. A really tricky one. It doesn't take effect until the filter is removed from the graph. I don't understand completely how and why, but now it works.

 

Thanks for feedback and being so perseverant.

Posted

Ok, I think I've found it. Wrong interface declaration in the Audio Callback filter.

Great. So is the same callback filter in DVBViewer Pro? (or GE 3.0.3?)

Posted

In GE 3.0.3 the same, in DVBViewer Pro different. Bugs causing memory corruption may or may not take effect, or differently in different situations, depending on the memory layout. That's why it is so hard to pinpoint them.

Posted
In GE 3.0.3 the same

No, sorry, I've overlooked something. My 3.0.3 installation loads the Audiorecorder Plugin, that is configured for inserting another "internal" filter that also causes the problem. Without it 3.0.3 is ok.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...