Spectrum
May 7 2004, 03:26 PM
I'll probably release an updated driver set over the weekend with a few bug fixes etc.
I'm also bored with the SpectrumTV name. I think it would be better to have something descriptive of the hardware. Seeing as Twinhan make the original hardware (re-sold as VisionPlus, ChainTech or others) I thought I'd rename them to "Twinhan BDA Digital Tuner" and "Twinhan BDA Digital Capture".
Any objections or better suggestions?
Spectrum
bionicdonkey
May 7 2004, 03:29 PM
Can you legally use there name?
Spectrum
May 7 2004, 03:41 PM
They don't know where I live
Spectrum
Spoonfed
May 7 2004, 03:43 PM
May i suggest "Twinham BDA DTV Driver"
Hmmmm i don't like the idea thier name is in it but. I mean while the hardware is made by them, it is the customers property after purchase,and calling it "TwinHan xxxxx" sort of gives them credit in away if only only looks a the driver name. Who knows, your driver may propergate around the world
chaumurky
May 7 2004, 04:13 PM
Could you say "BDA Digital Tuner For TwinHan" and "BDA Digital Capture For TwinHan" instead?
Edit: bold emphasis
null_pointer
May 7 2004, 04:14 PM
Cool, bug fixes are good :-)
I don't have a preference for the name but you could name it for the chipset used etc.
JoeyBloggs
May 7 2004, 04:23 PM
I would try to avoid possible naming conflicts / confusion with TwinHan sourced BDA drivers if / when they eventuate. So probably best not to use TwinHan or VisionPlus ?
Ok what about
"VisionPlus SB BDA" special build
or
"VisionPlus SP BDA" special project, and a contraction of spectrum
"VP DVBT BDA" ...
Spectrum
May 7 2004, 04:44 PM
I'm open to all of your ideas. I would like to open-source the code if there were other developers wanting to take an active role in the project. Until there is some real interest, though, I don't want the head-ache of dealing with an online CVS system.
Maybe call it some kind of "OpenTwinhan". Bwahahaha
Spectrum
nate
May 7 2004, 05:07 PM
VP SWAT BDA Tuner
VP SWAT BDA Capture
SWAT = (Sick of Waiting Around for Twinhan)
JoeyBloggs
May 7 2004, 05:10 PM
I would think that you should keep control of it. If others want to add stuff to it they should just feed stuff back to you. Doubt there will be many people capable of helping with it anyway. I don't even have the DDK installed. How much more is there to do with it anyway ? I guess someone might extend it for the DVBS cards ?
renura
May 7 2004, 05:18 PM
QUOTE
I'm also bored with the SpectrumTV name. I think it would be better to have something descriptive of the hardware. Seeing as Twinhan make the original hardware (re-sold as VisionPlus, ChainTech or others) I thought I'd rename them to "Twinhan BDA Digital Tuner" and "Twinhan BDA Digital Capture".
Hi Spectrum,
I know is none of my business, but If you really have to change the name, I would rather not use then Twinhan name at all.
They will probably take the credit (or others would give them credit) for somethig that really belongs to you people.
For whatever is worth.
Cheers
Renura
null_pointer
May 7 2004, 05:28 PM
I am all for open source, it is hard to feed back code changes when you do not have the code :-)
You do not have to set up a online CVS sup, you can just open the code and if people want to submit changes they can submit diff's to you etc or make their edited version available. Not as elegent as CVS but still work it.
After thinking about this for a while I agree we should not use the TwinHan name, just my 2c worth.
Elroy
May 7 2004, 06:33 PM
I also think that the VisionPlus or Twinham name should not be used at all. They deserve none of the credit for what you have done Spectrum. You could also be opening yourself up to a legal minefield by using their name without authorisation.
Spectrum
May 7 2004, 07:31 PM
Oh well.
New set available, same old name. Version 1.4. Mostly bug fixes.
I urge everyone to upgrade and post your feedback.
http://home.swiftdsl.com.au/~spectrum/drivers.zip
Spectrum
Roti
May 7 2004, 11:21 PM
NAHNIWT BDA DRIVERS
NAHNIWT = Non-Accredited Hack Necessitated by Impatience Waiting for Twinhan (allows a jibe at Twinhan for their lack of effort)
NAHNIWT = Twinhan backwards (so you can still mentally associate it with the hardware)
P.S. Nice work with the drivers by the way
Spectrum
May 7 2004, 11:22 PM
Ambro
May 8 2004, 12:26 AM
Name it whatever you feel is the go, don't be too vindictive though.
What about VPBDA - I'll probably rename it to this so i know what I'm dealing with :wink:
null_pointer
May 8 2004, 10:01 AM
null_pointer
May 8 2004, 10:27 AM
Get signal locked is now returning a value rather than 1 or 0.
1.4 driver:
win32-DLL-BDA : Got Signal Locked : 197
old driver:
win32-DLL-BDA : Got Signal Locked : 1
Same code.
EDIT:
QUOTE
BOOLEAN locked = FALSE;
hr2 = pSigStats->get_SignalLocked(&locked);
if (FAILED(hr2))
{
printf("win32-DLL-BDA : Error getting get_SignalLocked %xn", hr2);
return hr2;
}
printf("win32-DLL-BDA : Got Signal Locked : %dn", locked);
Does not seem to work with this new version, I just get back an integer of about 200 even if there is no lock.
Spectrum
May 8 2004, 12:57 PM
Sorry - stupid bug :cry:
http://home.swiftdsl.com.au/~spectrum/drivers.zip
Version 1.4.1 Signal Locked gives correct value again.
Spectrum
Spectrum
May 8 2004, 01:13 PM
null_pointer
May 8 2004, 01:19 PM
What is the looping bug?
Spectrum
May 8 2004, 01:22 PM
CODE
loop = 0;
do {
..........
} while (loop < 20 && other_condition);
I had left out the
CODE
loop++;
other_condition would break the loop most of the time so the error was intermittent.
This was in the code to get signal statistics which is probably why the java lock-ups were occuring in webscheduler.
Spectrum
Spectrum
May 8 2004, 11:49 PM
OK, I promise this is my last update for today, I apologise if it's a tad annoying updating drivers so often.
Version 1.4.3.
http://home.swiftdsl.com.au/~spectrum/drivers.zip
I had mentioned somewhere before that get_SignalLocked and get_SignalPresent were the same thing for this hardware. That has not been the case for a few revisions now.
This is how it works -
When you initially try to tune to a frequency, you can find out if it was successful by calling get_SignalLocked.
Thereafter, you can call get_SignalPresent to see if there is still a signal coming in.
For example, if you lock a channel (get_SignalLocked returns TRUE) and start watching a program and call get_SignalPresent you get TRUE. If you then pull the antenna cable out of the wall socket and call get_SignalPresent you'll get FALSE (unless of course you've got great reception and don't need an antenna at all

), but get_SignalLocked will still return TRUE.
So, get_SignalLocked should be called after the initial attempt to lock the channel. If it locks it stays locked. If it doesn't lock it stays unlocked - you have to try to tune that frequency again and repeat the process.
Once get_SignalLocked has returned TRUE, you don't have to call it again (unless you change frequency), you can instead call get_SignalPresent to make sure that there is still a signal available.
Once you have a signal locked and the signal is present, you can get an idea of data quality by calling get_SignalQuality. For example, on my development box with an indoor antenna, I'm getting channel 7 with a quality of 38 which locks and is present, but the data is so corrupt the TIF cannot get program information for WebScheduler.
Spectrum
Spoonfed
May 9 2004, 12:24 AM
Spectrum
Thanks for the "lay mans" terms, i understand now.
While i guess Shaun will have to perhaps implement a few changes in WS (thats if its not already there) This should be able to determine my nine issue. Ie he could have WS poll every few seconds. Ie what may be happening is WS "tunes" and gets a lock and sig strength/quality as it displays now, BUT as capture then starts something strange happens and it is no longer locked or tuned. The ability to now add a poll every "x" seconds or something would in theory then re-lock and capture some data, perhaps even if its a few kb, would then indicate its a card/driver issue, if it doesn't then its something further down the chain.?
I appreciate both yours and shauns efforts, which i could do more than simply testing.
Spectrum
May 9 2004, 12:56 AM
I think it's something further down the chain. I did a test earlier with graphedit. I inserted a tee filter after the capture driver. One output went to a file dump and the other went to the MPEG-2 demux and then on to TIF and audio/video rendering etc.
First I tuned to Ten and I could view a picture. Then I tuned to Nine and I could not view a picture. So it looked like no data was coming through. When I opened up the dump file of the TS, however, there was data inside it.
It's like I've been saying, there is data coming from the card. I really don't know what's going on beyond that though.
Spectrum
http://robdvd.radfiles.net/viewtopic.php?t...er=asc&start=75
I'm a little bit confused after reading that thread... does this driver supports other bandwidths then 7 MHz?
Spectrum
May 9 2004, 09:51 AM
The driver does, but I don't think the card we have here in Australia is capable of using a bandwidth other than 7MHz. The spec for the DVBT-6K07 tuner says 7MHz. There would have to be a different hardware module to support another bandwidth.
Also we're not sure as yet if Microsoft's BDA implementation is passing bandwidth down to the minidriver.
Spectrum
bionicdonkey
May 9 2004, 12:48 PM
From looking at the Network Provider Properties at various stages, it seems that the bandwidth does get set on the tune request, then reset after that. Is this caused by the TIF sending new info to the NP?
QUOTE
The driver does, but I don't think the card we have here in Australia is capable of using a bandwidth other than 7MHz. The spec for the DVBT-6K07 tuner says 7MHz. There would have to be a different hardware module to support another bandwidth.
Also we're not sure as yet if Microsoft's BDA implementation is passing bandwidth down to the minidriver.
Spectrum
Would it make any difference if you hard coded 8 MHz? I would be glad to test one version with it
ngoodchild
May 10 2004, 04:06 PM
This has just got me thinking...
Since installing MCE2004 I've been unable to use the BDA drivers, they don't want to lock to a frequency.
Do you (anyone) think it is possible that the MCE install has locked the architecture to use BW=8?
I know Spectrum mentioned somewhere that you have to set MCE to be German to get DTV to work, I haven't done that, AFAIK it is set to US. How would I go about changing that?
JoeyBloggs
May 10 2004, 04:23 PM
Spectrum, I've got some mini crash dump's if you want to look at them. Alternatively can you put up symbol info ?
This is from today and V1.4.2 but the basic behaviour doesn't seem to have changed ~
CODE
Microsoft (R) Windows Debugger Version 6.2.0013.1
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:WINNTMinidumpMini051004-02.dmp]
Mini Kernel Dump File: Only registers and stack trace are available
Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path. *
* Use .symfix to have the debugger choose a symbol path. *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is:
*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
* *
* The Symbol Path can be set by: *
* using the _NT_SYMBOL_PATH environment variable. *
* using the -y <symbol_path> argument when starting the debugger. *
* using .sympath and .sympath+ *
*********************************************************************
Unable to load image ntoskrnl.exe, Win32 error 2
*** WARNING: Unable to verify timestamp for ntoskrnl.exe
*** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe
Windows 2000 Kernel Version 2195 (Service Pack 4) UP Free x86 compatible
Kernel base = 0x80400000 PsLoadedModuleList = 0x8046e8f0
Debug session time: Mon May 10 14:42:52 2004
System Uptime: not available
*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
* *
* The Symbol Path can be set by: *
* using the _NT_SYMBOL_PATH environment variable. *
* using the -y <symbol_path> argument when starting the debugger. *
* using .sympath and .sympath+ *
*********************************************************************
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Bugcheck code 000000CB
Arguments bfd52341 bfd4a477 856843e8 85e0b6f4
ChildEBP RetAddr Args to Child
WARNING: Stack unwind information not available. Following frames may be wrong.
b07b3b94 00000000 bfd52341 bfd4a477 856843e8 nt+0x40665
WaitForEvent failed
Spectrum
May 10 2004, 04:32 PM
Sorry, I don't follow. What are you trying to do?
Spectrum
JoeyBloggs
May 10 2004, 04:41 PM
These are the mini crash dumps from the BSOD's
I was just going to jot the info down but they don't stay up long enough.
Not really sure whether they will have much kernel level debug info in them to sort of the driver problems ~?
Anyone got any idea's on a BSOD text saver for w2k ?
Roti
May 10 2004, 05:44 PM
QUOTE
Anyone got any idea's on a BSOD text saver for w2k ?
This worked for me when I needed it once (can't remember which OS). Can't remember where I got it from.
My Computer -> Advanced -> Performance Options -> Change
For the drive containing your OS make sure page file is at least as large as your RAM.
My Computer -> Advanced -> Startup and Recovery -> System Failure
Enable "Write event to system log" & "Automatically Reboot"
In "Write Debugging information" select "Kernel Memory Dump" and enable "Overwrite any existing file"
Reboot
Next BSOD should save all details to MEMORY.DMP (including the BSOD screen info) in the WINNT folder, then reboot.
Cheers. My token tiny contribution to your excellent effors guys.
Edit: Found it here
http://www.netop.com/tech/support/other/bl...screen_dump.htm (obviously ignore the server related stuff for a local machine)
JoeyBloggs
May 10 2004, 06:08 PM
Thanks but I don't particularly want to write 1Gb crash files :wink: Although that might slow things down enough for me the jot down the details
I'm already writing minidump's. What I can't seem to find is something to just save the BSOD onscreen text ?~
JoeyBloggs
May 10 2004, 06:15 PM
On a separate issue, What The ??? where is signal strength coming from ?
CODE
################################################################################
ExamineTuner()
2 pin types:
Pin 0 = 0
Pin 1 = 1
2 node types:
Node 0 = 0
Node 1 = 1
node interfaces:
NodeType 0 has 2 interfaces:
Found Interface {71985F47-1CA1-11D3-9CC8-00C04F7971E0} IID_IBDA_FrequencyFilter
Found Interface {1347D106-CF3A-428A-A5CB-AC0D9A2A4338} IID_IBDA_SignalStatistics
NodeType 1 has 3 interfaces:
Found Interface {DDF15B12-BD25-11D2-9CA0-00C04F7971E0} IID_IBDA_AutoDemodulate - QI FAILED !!! - hr = 0x80004002
Found Interface {1347D106-CF3A-428A-A5CB-AC0D9A2A4338} IID_IBDA_SignalStatistics
Found Interface {39101D0B-F040-4B1E-90D5-5A0CCFE577C1} Unknown Interface - QI FAILED !!! - hr = 0x80004002
################################################################################
################################################################################
ITuner Signal Strength = 82
################################################################################
Node(0,1,0) Signal Strength = 0 hr = 0x0
Node(0,1,0) Signal Quality = 0 hr = 0x80070490
Node(0,1,1) Signal Strength = 0 hr = 0x80070490
Node(0,1,1) Signal Quality = 92 hr = 0x0
################################################################################
Roti
May 10 2004, 06:33 PM
Sorry. My Bad. Digital Camera?
nate
May 12 2004, 10:23 PM
I've just got BDA working reasonably in DW tonight and i've disocovered something interesting that might be related to the nine issue that some people are having with WebSchedulerBDA, except that it's happened on channel ten for me.
It'll be playing along fine and then suddenly the video and audio both stop. What's happened is that the signal quality has dropped to 0 and stays there. The only way i've found so far to get signal quality back is to submit a new tunerequest for a different frequency to the one i'm currently tuned into.
Any ideas spectrum?
JoeyBloggs
May 12 2004, 10:24 PM
Have you got anywhere with the AC3 detection ?
I do see the audio/video freeze on occasion too. Sometimes pause / unpause free's it up. But sometimes it then starts playing a frame per second.
nate
May 13 2004, 12:33 AM
Ok. An update on the quality dropping off.
It seems that if you get the signal stats enough times that it causes the problem. I had BDAInput::GetQuality on a timer running every second and the problem would happen after about 5 minutes. When i changed the timer to 100 times per second it would happen after about five seconds.
With the three get_Signal* functions commented out the problem doesn't occur, but if i uncomment any of them then it does.
CODE
void BDAInput::GetQuality(BOOL &Lock, int &Strength, int &Quality) {
HRESULT hr = S_OK;
Lock = FALSE;
Quality = -1;
Strength = -1;
CComPtr <IBDA_Topology> bdaNetTop;
if (FAILED(hr = m_pBDATuner.QueryInterface(&bdaNetTop)))
{
ErrorMessageBox("Cannot Find IID_IBDA_Topology");
}
CComPtr <IUnknown> iNode;
CComPtr <IBDA_SignalStatistics> pSigStats;
if (FAILED(hr = bdaNetTop->GetControlNode(0, 1, BDA_TWINHAN_DEMODULATOR_NODE, &iNode)))
{
ErrorMessageBox("Cannot GetControlNode for Demodulator");
}
hr = iNode->QueryInterface(IID_IBDA_SignalStatistics, reinterpret_cast<void **>(&pSigStats));
iNode.Release();
if (FAILED(hr))
{
ErrorMessageBox("Cannot get IBDA_SignalStatistics");
}
//hr = pSigStats->get_SignalQuality(reinterpret_cast<LONG *>(&Quality));
//hr = pSigStats->get_SignalLocked(reinterpret_cast<BOOLEAN *>(&Lock));
pSigStats.Release();
if (FAILED(hr = bdaNetTop->GetControlNode(0, 1, BDA_TWINHAN_TUNER_NODE, &iNode)))
{
ErrorMessageBox("Cannot GetControlNode for Tuner");
}
hr = iNode->QueryInterface(IID_IBDA_SignalStatistics, reinterpret_cast<void **>(&pSigStats));
iNode.Release();
if (FAILED(hr))
{
ErrorMessageBox("Cannot get IBDA_SignalStatistics");
}
//pSigStats->get_SignalStrength(reinterpret_cast<LONG *>(&Strength));
pSigStats.Release();
bdaNetTop.Release();
}
null_pointer
May 13 2004, 09:09 AM
I could be wrong but this sounds a little bit like a driver resource issue, at least you can reproduce it easily :-)
Spectrum
May 13 2004, 10:07 AM
I'll have to do some tests tonight.
Spectrum
Spectrum
May 13 2004, 07:24 PM
Try this new one.
Version 1.4.4.0
http://home.swiftdsl.com.au/~spectrum/drivers.zip
Fixed problem when failing to get timely response from card.
Spectrum
Spoonfed
May 13 2004, 07:34 PM
WS is capturing, file is growing

I guess i'll know any issues after 60min capture is finished. ahh the speedy 2sec driver update/network disable (damn twinhan MS drivers) before scheduled 7:30 capture
bionicdonkey
May 13 2004, 07:40 PM
Still the same
danka
May 13 2004, 09:21 PM
Any news on using the BDA driver in 8 MHz settings? I've edited the registry entry for the tuning space to an 8 MHz bandwidth without any notable difference. Anyone else having succeeded in get the driver to work?
I run XP.
Spectrum
May 15 2004, 06:17 PM
I have found where the freezing problem is happening, but I don't know why as yet. I'm still investigating.
I've also written some code to force a bandwidth setting from the registry, but I won't release that version until I've found why this other problem occurs.
Spectrum
ZeB
May 16 2004, 12:29 AM
Nice to see some development on the 8mhz issue!

thx!!
Martin S
May 17 2004, 01:17 AM
I don't know what the deal is but I have never been able to get any version of these BDA drivers working.
In BDA DigitalWatch it fails to lock any channel and it seems a similar thing is happening with direct GraphEdit access and the modified BDA test utility.
I am surprised noone else has run into the problem, maybe I have a broken card or something (everything works fine using the normal drivers though)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.