IPB

Welcome Guest ( Log In | Register )

13 Pages V   1 2 3 > »   
Reply to this topicStart new topic
> ScanChannelsBDA 2, New and improved
nate
post Nov 14 2004, 10:20 PM
Post #1


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


Link to the Latest Release (2.0.0.41)

ScanChannelsBDA-2.0.0.0.zip (80Kb)
source code (94Kb)
  • Theoretically supports any BDA device.
    • If you have more than 1 BDA device installed then it will ask you which one to use.
  • Outputs DigitalWatch channels.ini format
  • Has a verbose mode that spits out a heap more information about what's being broadcast in the service information tables. This will mostly be of interest to developers wondering what information they can get.
  • Puts the Logical Channel Number in a comment after each program.
I've only got VP's to test with so I look forward to hearing if it works ok for people with DVICO or other BDA cards.


--------------------
Go to the top of the page
 
+Quote Post
kenneth
post Nov 14 2004, 10:38 PM
Post #2


Forum Regular


Group: Members
Posts: 645
Joined: 10-September 03
From: ACT, Australia
Member No.: 144
Card: VisionPlus DVB-t / DVICO FusionHDTV


Works with the DVICO.


--------------------
From Kenneth
AMD Athlon 2600+, 1.25GB RAM, ASUS A7N8X-E Deluxe Wireless Edition, Geforce 4 MX440SE (connected to Viewsonic E71f), DNTV Live! DVB-T, DNTV Live! DVB-T Pro, DVICO FusionHDTV , FusionHDTV USB owner, and I also have a VisionPlus DVB-S card
Go to the top of the page
 
+Quote Post
nate
post Nov 14 2004, 10:45 PM
Post #3


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


YAY!!! smile.gif


--------------------
Go to the top of the page
 
+Quote Post
bear
post Nov 14 2004, 11:08 PM
Post #4


Forum Regular


Group: Members
Posts: 3,100
Joined: 24-April 04
From: Queensland
Member No.: 808
Card: VisionPlus DVB-t


hi nate,

Very nice & well done. rolleyes.gif But it takes all the guessing out of it now. sad.gif

Works ok for my VP but noticed that I have a problem with the program exiting on my pc. Causes a windows error. Not a issue but just wondered if this is noticed on other systems. Previous version did the same if you closed the window rather than exit from the prompt.
Go to the top of the page
 
+Quote Post
kenneth
post Nov 14 2004, 11:35 PM
Post #5


Forum Regular


Group: Members
Posts: 645
Joined: 10-September 03
From: ACT, Australia
Member No.: 144
Card: VisionPlus DVB-t / DVICO FusionHDTV


QUOTE (bear @ Nov 14 2004, 11:08 PM)
hi nate,

Very nice & well done.  rolleyes.gif But it takes all the guessing out of it now. sad.gif

Works ok for my VP but noticed that I have a problem with the program exiting on my pc. Causes a windows error. Not a issue but just wondered if this is noticed on other systems. Previous version did the same if you closed the window rather than exit from the prompt.

It does a Visual C++ error on closing it without using the 10. quit option and on the 10 Quit option, it causes a windows error.


--------------------
From Kenneth
AMD Athlon 2600+, 1.25GB RAM, ASUS A7N8X-E Deluxe Wireless Edition, Geforce 4 MX440SE (connected to Viewsonic E71f), DNTV Live! DVB-T, DNTV Live! DVB-T Pro, DVICO FusionHDTV , FusionHDTV USB owner, and I also have a VisionPlus DVB-S card
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Nov 14 2004, 11:46 PM
Post #6





Guests






Seems to work fine with the VisionPlus and Fusion. Up to your usual superb standards. Kudos smile.gif Really like the AC3 and LCN detection.

Small problem with cards that require separate tuner, demod, capture filters. You basically need to add

DirectShowSystemDevice tunerDevice;
DirectShowSystemDevice demodDevice;
DirectShowSystemDevice captureDevice;

and when enum'ing the device filters in BDACardCollection look for two KSCATEGORY_BDA_RECEIVER_COMPONENT filters that will connect in sequence. If you only find one then you need mark the demodDevice as null. And obviously flow all this through to the graph building code wink.gif

Also
CODE
HRESULT AddFilterByDisplayName(IGraphBuilder* piGraphBuilder, IBaseFilter* &pFilter, LPCWSTR pDisplayName, LPCWSTR pName)
Is really by DevicePath ? And therefore should cope with multiple instances of cards using the same filter(name)s ~ ???
Go to the top of the page
 
+Quote Post
Guest_ZeB_*
post Nov 15 2004, 04:08 AM
Post #7





Guests






CODE
Found BDA device: THDTV DVB-t BDA Tuner Filter
1. Add Network
2. Generate Channels.ini
5. Scan all Australian frequencies
6. Turn Verbose output On
10.Exit

Please Select Menu(1,2,5,6,10):1
Frequency (KHz):474000
BandWidth (Mbps):8

1. Add Network
2. Generate Channels.ini
5. Scan all Australian frequencies
6. Turn Verbose output On
10.Exit

Please Select Menu(1,2,5,6,10):2

Network_1("Teracom_Halland", 530000, 8, 1)
 Program_ 1("SVT2 Võstnytt"       , 5090, 1029,  1028, 5090)    # 2
 Program_ 2("SVT2 Võstnytt AC3"   , 5090, 1029, A1027, 5090)    # 2
 Program_ 3("SVT24 Võstnytt"      , 5200, 1249,  1248, 5200)    # 99
 Program_ 4("SVT1"                , 1010, 1019,  1018, 1010)    # 1
 Program_ 5("SVT1 AC3"            , 1010, 1019, A1017, 1010)    # 1
 Program_ 6("Barn/Kunskapsk."     ,  870,  879,   878,  870)    # 98
 Program_ 7("SVT Extra"           ,  880,  889,   888,  880)    # 97


My input frequency is 474000 and my output frequenzy is 530000 smile.gif

There is a network on 530000 to:
CODE
Network_1("Teracom_Halland", 530000, 8, 1)
 Program_ 1("TV4"                 , 1040, 1049,  1048, 1040)    # 4
 Program_ 2("Mediteve"            , 1140, 1149,  1148, 1140)    # 50
 Program_ 3("TV4 Plus"            , 1150, 1159,  1158, 1150)    # 51
 Program_ 4("CNN"                 , 1160, 1169,  1168, 1160)    # 6
 Program_ 5("TV4 Film"            , 1130, 1139,  1138, 1130)    # 14


Maybe this has something to do with this:
http://forums.dvbowners.com/index.php?showtopic=1887&st=60
Go to the top of the page
 
+Quote Post
nate
post Nov 15 2004, 07:05 AM
Post #8


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


QUOTE (JoeyBloggs @ Nov 15 2004, 12:46 AM)
Small problem with cards that require separate tuner, demod, capture filters. You basically need to add

DirectShowSystemDevice tunerDevice;
DirectShowSystemDevice demodDevice;
DirectShowSystemDevice captureDevice;

and when enum'ing the device filters in BDACardCollection look for two KSCATEGORY_BDA_RECEIVER_COMPONENT filters that will connect in sequence. If you only find one then you need mark the demodDevice as null. And obviously flow all this through to the graph building code  wink.gif
So to clarify, the existing code finds the demod? Now I just need to check if any other KSCATEGORY_BDA_RECEIVER_COMPONENT devices will connect to it's output.

QUOTE
Also
CODE
HRESULT AddFilterByDisplayName(IGraphBuilder* piGraphBuilder, IBaseFilter* &pFilter, LPCWSTR pDisplayName, LPCWSTR pName)
Is really by DevicePath ? And therefore should cope with multiple instances of cards using the same filter(name)s ~ ???
Yes it's really a DevicePath. I was unsure if i should call it AddFilterByDevicePath or AddFilterByDisplayName. I think I went with DisplayName because it uses MkParseDisplayName. I might change it over to be DevicePath if it would mean less confusion.


--------------------
Go to the top of the page
 
+Quote Post
nate
post Nov 15 2004, 07:08 AM
Post #9


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


QUOTE (kenneth @ Nov 15 2004, 12:35 AM)
QUOTE (bear @ Nov 14 2004, 11:08 PM)
hi nate,

Very nice & well done.  rolleyes.gif But it takes all the guessing out of it now. sad.gif

Works ok for my VP but noticed that I have a problem with the program exiting on my pc. Causes a windows error. Not a issue but just wondered if this is noticed on other systems. Previous version did the same if you closed the window rather than exit from the prompt.

It does a Visual C++ error on closing it without using the 10. quit option and on the 10 Quit option, it causes a windows error.

What drivers are you using? I havn't experienced this problem with spectrum's 1.5.3.1 or 1.6.0 drivers with the second thbdacap.sys file. I remember this used to happen with the 1.5.3.3 drivers but i havn't tried them.

bear: If you could load it up in visual studio and debug it to find out what's causing the exception that would be good.


--------------------
Go to the top of the page
 
+Quote Post
nate
post Nov 15 2004, 07:19 AM
Post #10


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


QUOTE (ZeB @ Nov 15 2004, 05:08 AM)
My input frequency is 474000 and my output frequenzy is 530000 smile.gif
The frequency that get's output is what is read from the transport stream. I did this because here in Aus some broadcasters use a +125 offset. So for example ch9 for me is on 191625 instead of 191500.
If I want to do a full channel scan then when I tune into 191500 my signal strength is still good enough that i can read the stream, so by using the frequency specified in the transport stream I end up with the correct frequency in channels.ini.
I don't know why your transport stream frequency is wrong. Try turning on verbose output and see if you can see anything that might indicate what is happening.

QUOTE
Maybe this has something to do with this:
http://forums.dvbowners.com/index.php?showtopic=1887&st=60
That looks to be a different issue, but you never know.


--------------------
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Nov 15 2004, 08:32 AM
Post #11





Guests






[quote=nate,Nov 15 2004, 08:05 AM] [/QUOTE]So to clarify, the existing code finds the demod? Now I just need to check if any other KSCATEGORY_BDA_RECEIVER_COMPONENT devices will connect to it's output.
[/quote]
Well if you enum and load a KSCATEGORY_BDA_RECEIVER_COMPONENT filter and it connects to the tuner, then it's either the capture or demod. If you then enum and load another KSCATEGORY_BDA_RECEIVER_COMPONENT filter that will connect to the first one you've found. Then it's the capture and the first one is the demod. Clear as mud ~ cool.gif Why the hell Microsoft didn't include a KSCATEGORY_BDA_DEMOD_COMPONENT is beyond me wink.gif
Go to the top of the page
 
+Quote Post
nate
post Nov 15 2004, 09:30 AM
Post #12


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


QUOTE (JoeyBloggs @ Nov 15 2004, 09:32 AM)
QUOTE (nate @ Nov 15 2004, 08:05 AM)
So to clarify, the existing code finds the demod? Now I just need to check if any other KSCATEGORY_BDA_RECEIVER_COMPONENT devices will connect to it's output.

Well if you enum and load a KSCATEGORY_BDA_RECEIVER_COMPONENT filter and it connects to the tuner, then it's either the capture or demod. If you then enum and load another KSCATEGORY_BDA_RECEIVER_COMPONENT filter that will connect to the first one you've found. Then it's the capture and the first one is the demod. Clear as mud ~ cool.gif Why the hell Microsoft didn't include a KSCATEGORY_BDA_DEMOD_COMPONENT is beyond me wink.gif

What media type does the output pin of the demod filter have?
AFAIK the output pin of capture filters should be
majortype: MEDIATYPE_Stream
subtype: KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT

If the output pin of demod filters doesn't have the same media type then i'll be able to tell if the filter that got loaded first was a capture filter or not. That way i can avoid an extra loop of connection attempts.


--------------------
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Nov 15 2004, 09:58 AM
Post #13





Guests






I don't think that is going to work, nor that it's necessarily going to be explicitly the same for each set of filters ~

On the one set that I have. It's

majortype: MEDIATYPE_Stream
subtype: KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT

out of both

ie Tuner[IF] KSDATAFORMAT_TYPE_BDA_IF_SIGNAL [IF]Demod[MPEG2 TS] KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT [MPEG2 TS]Capture[MPEG2 TS] KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT ......

I think just use my approach. It's more than fast enough smile.gif
Go to the top of the page
 
+Quote Post
nate
post Nov 15 2004, 10:11 AM
Post #14


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


QUOTE
I think just use my approach. It's more than fast enough
Yeah. Will do. I was just curious to see if there was another (possibly better) way to do it.


--------------------
Go to the top of the page
 
+Quote Post
bear
post Nov 15 2004, 10:27 AM
Post #15


Forum Regular


Group: Members
Posts: 3,100
Joined: 24-April 04
From: Queensland
Member No.: 808
Card: VisionPlus DVB-t


nate,

These are the errors I get when using your version.

Error when closing window any time.
QUOTE
Runtime error
Program: C:\ scanChannelsBDA.exe
R6025
-Pure virtual function call
Error when exiting via the command prompt

QUOTE
AppName: scanchannelsbda.exe  AppVer: 2.0.0.0  ModName: scanchannelsbda.exe
ModVer: 2.0.0.0  Offset: 0000b7e0


I compiled your code and I do not get any errors on my compiled version so I guess this means that there maybe a SDK version difference. I'm running XP SP2 and SDK Summer edition 2003 still. I will pop my compiled version on the host site for a bit if someone wants to see if this fixes it for them.

EDIT: Zeb, can you pm me a copy of your latest WS channel scan from directshow.log if your using the latest test capture engine y+11 that is.

nate, I just noticed that I have the same problem as zeb with SBS, blink.gif I do know that SBS include a number of frequencies in their nit so that they can be use the same stream on different transmitters, you may need to cross reference these with the input tunning freq maybe. In brisy SBS 585500 is the last freq on the nit list using TS reader.

EDIT 2: nate, Would it be a good idea to include the Teletext pids after the channel number for those that need them rather than using verbrose?
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Nov 15 2004, 12:04 PM
Post #16





Guests






QUOTE (nate @ Nov 15 2004, 11:11 AM)
QUOTE
I think just use my approach. It's more than fast enough
Yeah. Will do. I was just curious to see if there was another (possibly better) way to do it.

No worries Nate "I feel the need, the need for speed" biggrin.gif

QUOTE
QUOTE (ZeB @ Nov 15 2004, 05:08 AM)
My input frequency is 474000 and my output frequenzy is 530000

My understanding is that whilst the frequency can be inserted into the TransportStream info when encoding. Once that is done it is generally not updated if for example the broadcaster retransmits the entire TS as a repeater service on another frequency...

530000 is presumably the original tranmission frequency of who ever originally encoded the TS ~ and it is being rebroadcast in your area on 474000. Whilst you have a different broadcast on 530000
Go to the top of the page
 
+Quote Post
nate
post Nov 15 2004, 01:05 PM
Post #17


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


QUOTE (bear @ Nov 15 2004, 11:27 AM)
I compiled your code and I do not get any errors on my compiled version so I guess this means that there maybe a SDK version difference. I'm running XP SP2 and SDK Summer edition 2003 still. I will pop my compiled version on the host site for a bit if someone wants to see if this fixes it for them.
I'm still using the 9b DXSDK so that's probably the reason. I was meaning to install the summer edition but i guess i never got around to it.

QUOTE
nate, I just noticed that I have the same problem as zeb with SBS, blink.gif I do know that SBS include a number of frequencies in their nit so that they can be use the same stream on different transmitters, you may need to cross reference these with the input tunning freq maybe. In brisy SBS 585500 is the last freq on the nit list using TS reader.
In verbose mode does it show these other frequencies? If there is a frequency list descriptor in the TS then it should say "Found a frequency list descriptor" and then be followed by a list of alternate frequencies. The only channel i noticed this information in here in Melb was channel 9, but i could have missed SBS. I'll have another look tonight.

I think what i'll need to do is use the manually entered frequency if it doesn't match (±1000Khz) one of the frequencies in the TS. Does 1000 sound like a good number? or should i go with 3500 (half of bandwidth)?

QUOTE
Would it be a good idea to include the Teletext pids after the channel number for those that need them rather than using verbrose?
Yep. That's very easy to do.


--------------------
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Nov 15 2004, 02:41 PM
Post #18





Guests






I would ignore the frequency in the TS and use the one you physically tuned to. I will be interested to see if your +/- 125 KHz approach helps people. Because my understanding is that the tuner hardware is meant to 'capture' a signal within this bucket automatically unsure.gif
Go to the top of the page
 
+Quote Post
nate
post Nov 15 2004, 03:39 PM
Post #19


DigitalWatch Developer
Group Icon

Group: Admin
Posts: 2,267
Joined: 30-September 03
From: Melbourne
Member No.: 169
Card: DNTV Quad


QUOTE
I would ignore the frequency in the TS and use the one you physically tuned to.
I should do that for manually entered channels, but i still want to use the frequency in the TS for scanning. Just needs some sanity checking.

QUOTE
It will be interested to see if your +/- 125 KHz approach helps people. Because my understanding is that the tuner hardware is meant to 'capture' a signal within this bucket automatically unsure.gif
I may be mistaken, but I think I remember earlier complaints about some software (can't remember which one it was) only scanning the xxx500Khz frequencies and not picking up the xxx625KHz frequencies.

Can someone with fairly low signal strength on a xxx625 frequency see if tuning into xxx500 instead works or not.


--------------------
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Nov 15 2004, 04:15 PM
Post #20





Guests






QUOTE
QUOTE
I would ignore the frequency in the TS and use the one you physically tuned to.
I should do that for manually entered channels, but i still want to use the frequency in the TS for scanning. Just needs some sanity checking.

I saw that commented out. Did you get it working ? I also tried it at one point but didn't get very far from memory. I'm not sure that all the tuner filter's even support IScanningTuner. I'll check the ones I have when I've got a moment to spare ~

QUOTE
QUOTE
It will be interested to see if your +/- 125 KHz approach helps people. Because my understanding is that the tuner hardware is meant to 'capture' a signal within this bucket automatically unsure.gif
I may be mistaken, but I think I remember earlier complaints about some software (can't remember which one it was) only scanning the xxx500Khz frequencies and not picking up the xxx625KHz frequencies.

I have a feeling it was for AverTV cool.gif And probably MCE cool.gif

QUOTE
Can someone with fairly low signal strength on a xxx625 frequency see if tuning into xxx500 instead works or not.
I see maybe 1 ~2 % difference but I'm direct line of sight to the tower.
Go to the top of the page
 
+Quote Post

13 Pages V   1 2 3 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 27th June 2019 - 09:10 PM