IPB

Welcome Guest ( Log In | Register )

8 Pages V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Programming to the Microsoft TV Technologies interface
Guest_JoeyBloggs_*
post Apr 15 2004, 02:11 PM
Post #81





Guests






Excuse me sir. May I be excused. My brain is full laugh.gif laugh.gif
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 16 2004, 08:42 AM
Post #82


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


OK, I had some free time last night so started playing with this, I
installed the drivers, all worked fine, drivers installed and I could
then see the Spectrum options in GraphEdit.

Started playing with GraphEdit and all is working great, I can now
watch TV without having to touch the TwinHan drivers/software at all
:-)

I started modifying the BDA example app that comes with the DirectX
SDK and got it working with DVB-T tune requests and DVB-T Tune Spaces.
I did not get a lot of time to play with the app last night, I will
play a bit more this weekend. There are one or two small issues I did
not get a chance to investigate but it is working and I can
use it to watch TV and change channels etc.

One thing I did notice is that it does not matter what Bandwidth you
submit in your DVBT Tune Request it always works, Spectrum are you
hard coding any of the tune option in the tuner driver?

So last night I got the driver installed and used GraphEdit to watch
TV and then capture the Transport Stream to Disk which I then demuxed
using ProjectX and remuxed just the streams I wanted. All worked fine
but much more testing needs to be done. And all of this without having
to touch the buggy TwinHan SDK at all :-)
Go to the top of the page
 
+Quote Post
Guest_Spectrum_*
post Apr 16 2004, 01:12 PM
Post #83





Guests






:oops: Yes the bandwidth is hard coded. If you see the need I can put some code in to allow it to be manually set.

Spectrum
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Apr 16 2004, 01:15 PM
Post #84





Guests






Good work biggrin.gif

Now you need to run up two (2) GraphEdits and see if that will work :wink:
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 16 2004, 01:44 PM
Post #85


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


It would probably be better to not hard code the options, this card is available in other counrties so it might be a good idea to try to support as many of the tune options that the DVB-T Locator and Base Locator can supply. Following is a list of the Locator interface settings.

ILocator Interface:
put_CarrierFrequency - Sets the frequency of the RF signal.
put_InnerFEC - Sets the type of inner forward error correction that is used.
put_InnerFECRate - Sets the inner FEC rate.
put_Modulation - Sets the modulation type.
put_OuterFEC - Sets the type of inner forward error correction that is used.
put_OuterFECRate - Sets the outer FEC rate.
put_SymbolRate - Sets the QPSK symbol rate.

And for the DVB-T specifice Locator Interface:

put_Bandwidth - Sets the bandwidth of the frequency in megahertz, usually 7 or 8.
put_Guard - Sets the guard interval.
put_HAlpha - Sets the hierarchy alpha.
put_LPInnerFEC - Sets the inner FEC type of the low-priority stream.
put_LPInnerFECRate - Sets the inner FEC rate of the low-priority stream.
put_Mode - Sets the transmission mode.
put_OtherFrequencyInUse - Specifies whether the frequency is being used by another DVB-T broadcaster.

Having said that the driver should try to support most of the above, I do not even know what half of them are so that might be a bit hard :-)

Also I could not see anywhere in the Graphedit interface for submitting tune requests where you could specify the DVBT locator options (bandwidth), I could only see the Base Locator interface settings, so if you do implement this your driver my not work with Graphedit any more.

I hope to finish modifying the BDA sample app for DVB-T on the weekend and will make the source available as well as an exe so people can use your driver etc. I will then start thinking about a Tune Request Factory DLL.
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 16 2004, 01:46 PM
Post #86


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


QUOTE
Good work  biggrin.gif 

Now you need to run up two (2) GraphEdits and see if that will work  :wink:


At the moment I do not have two cards in the same machine, I will try this once I have some working code to throw at two cards but for now I am just trying to get my head around how to drive this driver and tuner etc.
Go to the top of the page
 
+Quote Post
Guest_Spectrum_*
post Apr 16 2004, 01:54 PM
Post #87





Guests






Actually out of all the functions listed for the interfaces above, the VisionPlus card only supports carrier frequency and bandwidth. It determines the rest automatically from the signal.

I had noticed that the bandwidth was not being passed to the driver (probably when using GraphEdit as you pointed out above) - I think that's why I hard coded "7" in the first place. I'll do some more investigation over the weekend.

If it turns out that the bandwidth is not always passed, I will still need to use some default value. I was thinking maybe I could ask the user at installation time what country they were in and write a bandwith value to the registry that the driver can read later on. It may be possible to just get the computer location setting and work from that too.

Spectrum
Go to the top of the page
 
+Quote Post
Guest_Spectrum_*
post Apr 16 2004, 01:59 PM
Post #88





Guests






It will be great to have null_pointer and anyone else who want to join in writing applications. The more the better.

Spectrum
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 16 2004, 02:11 PM
Post #89


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


You could add auto detection of the bandwidth based on the location id from the system settings, i.e. location 61 (Aust) would default to 7 etc but if a bandwidth was passed in then that is what it would use regardless.

When you are creating an app you will always be adding a DVBTLocator to your Tune Requesty so you will always be setting the bandwidth.

My intention is to create a BDA DLL plugin for Web Scheduler, it will capture the complete Transport Stream initially but there are other filters that hopfully will allow individual demuxed A/V streams to be muxed and saved as a program stream MPG file.
Go to the top of the page
 
+Quote Post
Guest_JoeyBloggs_*
post Apr 16 2004, 02:17 PM
Post #90





Guests






Trying hard not to get distracted... but I might get another VP and put it in my secondary machine smile.gif

Well I would suggest an open source (MIT) test bed in c++ that we could all work with to start off with. You, Shaun, Nate, Myself... It's a bit pointless all four of us adapting the BDA sample ?
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 16 2004, 02:27 PM
Post #91


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


QUOTE
It's a bit pointless all four of us adapting the BDA sample ?


Yep, agreed, once I have made a few more changed I will upload the
source and exe to my server, it will be a starting point for people to
look at or use as a base to create TV apps etc.

It is much easier to understand how this works when you have a working
c++ code sample in from of your.

The main problem is understanding the Microsoft Unified Tuning Model,
it is quite different to the old WDM tuning interface that are
available for the old analog cards.
Go to the top of the page
 
+Quote Post
Guest_Spectrum_*
post Apr 16 2004, 07:39 PM
Post #92





Guests






null_pointer, I've updated the drivers to allow the setting/getting of bandwidth and frequency multiplier. As I can't test bandwidth with GraphEdit could you give it a go please? GraphEdit uses a frequency multiplier of 1000 by default it seems.

Hopefully you'll fail to tune any channels with bandwidth values other than 7.

http://home.swiftdsl.com.au/~spectrum/drivers.zip

Spectrum
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 17 2004, 05:12 PM
Post #93


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


frequency multiplier?

Where is this set? I can not find any reference to it in the Locator Interfaces.

I have had a little bit of a play and can not get it to use the custom bandwidth. Also the version number in one of the INF file is still showing 1.1.0.0 instead of 1.2.0.0

I have finished modifying the BDA sample, it is available in source and binary format from the following URL:

http://www.digtv.ws/files/dvb/BDA/
Go to the top of the page
 
+Quote Post
Guest_Spectrum_*
post Apr 19 2004, 02:51 PM
Post #94





Guests






null_pointer, I'm not sure if this explains it, but if so, it appears put_Bandwidth is not implemented. I suspect we'll just have to wait for a DirectX update to fix it:
http://groups.google.com.au/groups?hl=en&l...bda%2Bbandwidth

Either that or the wrong interface is being used. My DirectShow is a little rusty but would the http://msdn.microsoft.com/library/en-us/di...erinterface.asp IBDA_FrequencyFilter interface work? It defines get/put_Bandwidth as well as get/put_FrequencyMultiplier.

Spectrum
Go to the top of the page
 
+Quote Post
Guest_ngoodchild_*
post Apr 19 2004, 03:43 PM
Post #95





Guests






A working BDA sample, I'd like to see that!
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 19 2004, 06:33 PM
Post #96


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


QUOTE
A working BDA sample, I'd like to see that!


So are you saying the sample availabel from the above link works or does not work on your system?
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 19 2004, 06:35 PM
Post #97


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


QUOTE
null_pointer, I'm not sure if this explains it, but if so, it appears put_Bandwidth is not implemented. I suspect we'll just have to wait for a DirectX update to fix it:

Either that or the wrong interface is being used. My DirectShow is a little rusty but would the IBDA_FrequencyFilter interface work? It defines get/put_Bandwidth as well as get/put_FrequencyMultiplier.

Spectrum


It looks like the DVB-T network provider filter does not support the bandwidth option then.
Go to the top of the page
 
+Quote Post
Guest_bionicdonkey_*
post Apr 19 2004, 07:05 PM
Post #98





Guests






QUOTE
QUOTE
null_pointer, I'm not sure if this explains it, but if so, it appears put_Bandwidth is not implemented. I suspect we'll just have to wait for a DirectX update to fix it:

Either that or the wrong interface is being used. My DirectShow is a little rusty but would the IBDA_FrequencyFilter interface work? It defines get/put_Bandwidth as well as get/put_FrequencyMultiplier.

Spectrum


It looks like the DVB-T network provider filter does not support the bandwidth option then.


I'm not sure i quite follow what your saying as i'm still trying to figure dba and c++ all at once which is very hard on the brain, but isn't the bandwidth set in the IDVBTLocator??
Go to the top of the page
 
+Quote Post
null_pointer
post Apr 19 2004, 07:23 PM
Post #99


Web Scheduler Developer


Group: Developers
Posts: 4,495
Joined: 9-July 03
From: Melb
Member No.: 9
Card: None


QUOTE
I'm not sure i quite follow what your saying as i'm still trying to figure dba and c++ all at once which is very hard on the brain, but isn't the bandwidth set in the IDVBTLocator??


Yep, sure is, you set the bandwidth in the locator, add the locator to the Tune Request and then put the Tune Request to the iTune interface on the Network Provider. It is the network provider that does all the actual interface calls to all the device filters to set them up etc.

Check out the following links, they have some very good info:

http://msdn.microsoft.com/library/en-us/di...ningprocess.asp

http://msdn.microsoft.com/library/en-us/di...pplications.asp

Check out the CreateDVBTTuneRequest method in the sample I uploaded.
Go to the top of the page
 
+Quote Post
Guest_bionicdonkey_*
post Apr 19 2004, 07:40 PM
Post #100





Guests






does the tune request go to the video control before going to the network provider?
Go to the top of the page
 
+Quote Post

8 Pages V  « < 3 4 5 6 7 > » 
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: 20th June 2013 - 11:50 AM