nate
May 10 2004, 03:15 PM
I've noticed that by default the audio pin on the demux gets assigned as an mpeg2 audio type. AFAIK there's no MPEG2 audio being broadcast in australia, it's all MPEG1 Layer-2 or AC3. So which filter is it that adds the 5 default pins to the demux filter? Is it getting it wrong, or does it just always create those 5 pins no matter what is in the stream? Is there a way to stop it creating the 5 pins so that I can create only the one's I want and can at least get the stream type correct?
I can successfully add an extra pin with the correct stream type and it works fine, but for some reason when i try to remove it an exception is thrown. I suspect it's something to do with the other 5 pins getting removed first, but i have to play a little more to see what's really going on.
When exactly does the tuner card actually tune to whatever frequency you specify in the tune request? I'm assuming it's when the tune request is submitted, but i'm just guessing.
More questions to come when i get home and can post some code.
null_pointer
May 10 2004, 04:00 PM
The default components are used if there are no preferred component types set in the Tuning Space:
http://msdn.microsoft.com/library/en-us/di...mcomponents.asp
On the above page is info on how to over ride the defult component types.
JoeyBloggs
May 10 2004, 04:12 PM
Are you now creating component's in the initial DVBTuneRequest ?
ie is it possible to tune directly to an explicit PS ?
JoeyBloggs
May 10 2004, 04:16 PM
Nate, read though this
http://msdn.microsoft.com/library/default....tuningmodel.asp
It's a sequence between the NetworkProvider, Demux and TransportInformation filters
nate
May 10 2004, 04:23 PM
Thanks guys. No i havn't done anything special in the initial tune request. At least i've got some decent material to read through now. Not that i looked all that hard before, but everything i had read was video control based and very vague.
nate
May 11 2004, 09:36 AM
QUOTE
Do not use the IMPEG2PIDMap interface on the MPEG-2 Demultiplexer, because the Network Provider must be notified of all PID mappings in a BDA graph. It forwards the call to the demux.)
That's fine if you're creating a filter because you will have a IPin to pass to the RegisterTIFEx method, but what about when we're just mapping pids from the application? How do we get the IMPEG2PIDMap interface for output pins of the demux from the network provider?
JoeyBloggs
May 11 2004, 10:19 AM
You don't. You retrieve the current TuneRequest, fill in the components and activate the one/s you want. The filter set then does the rest internally ~ That's the theory anyway
further down the page
http://msdn.microsoft.com/library/default....mcomponents.asp
and apparently
Default Preferred Component Types
A tuning space can have a list of preferred component types. If so, the Network Provider uses the list to configure the output pins on the MPEG-2 Demultiplexer filter. Otherwise, the Network Provider creates a default set of output pins:
nate
May 11 2004, 11:12 AM
Yes. Sounds good in theory. But there doesn't appear to be a way to assign a PID to a component. You can set the media types by assigning an IComponentType to an IComponent, but how do you tell it which PID to use?
EDIT: Ok, i think i found it. IMPEG2Component.
JoeyBloggs
May 11 2004, 11:53 AM
nate
May 11 2004, 12:43 PM
There's no ITuneRequest::put_Components so am i right in assuming that adding a component to the IComponents pointer returned by ITuneRequest::get_Components updates the tune request directly?
JoeyBloggs
May 11 2004, 01:05 PM
Well this is where we are into unknown territory :wink: Unless Shaun has some idea
null_pointer
May 11 2004, 01:19 PM
From my understanding this is what happens when you submit a tune request.
You create a tune request and submit it to the Network Provider
You then create the graph and run it
The network provider works with the TIF filter to set up the Demux
Ok at this point you should have a working graph, to see what Components are available you need to then request the current tune request from the network provider as the origianl one is just copied into a new one inside the Network provider.
Once you have a pointer to the actual Tune Request that is being used you can query for the Components that are currently available and enable or disable them, this will cause the Network Provider and the TIF filter to remap the Demux filter etc.
If you want to change to a different program you need to get a tune request for that program, you can do this by gettting the services from the TIF filter etc.
I have not tired this yet, this is what should happen :-)
In WS I insert an Infinte Tee and a new Demux filtet that I control manually. I also remove all the pins except for pin 1 from the Demux connected to the TIF filter, run WS and connect to it using Graphedit to see what I mean.
This effectivly allows the Network Provider and the TIF filter to do its thing and allows me control over what PIDS I want in the output stream etc from the second demux filter.
JoeyBloggs
May 11 2004, 04:50 PM
QUOTE
There's no ITuneRequest::put_Components so am i right in assuming that adding a component to the IComponents pointer returned by ITuneRequest::get_Components updates the tune request directly?
I'm thinking (and I haven't tried it yet) that puting the appropriate IMpeg2Components into the PreferedComponents of the initial TuneRequest might go straight there. Otherwise you really will have to wait for a ServiceChanged notification from the TIF and then go though the component activation sequence as outlined above ~
null_pointer
May 11 2004, 04:56 PM
When you are setting up the prefered component list you only set component types not full conponent details so you can only set what type of components should be used as the prefered.
If you want to change components or change programs you will have to do it via the Tuner Request and Network Provider.
JoeyBloggs
May 11 2004, 04:59 PM
Oh well, I guess it gives you a chance to match by name if the PID's change ~
nate
May 11 2004, 05:06 PM
Maybe i might have to settle for IMPEG2TuneRequest::put_ProgNo
It should work fine most of the time, but i still probably won't work for AC3.
JoeyBloggs
May 11 2004, 05:23 PM
Well the question is, does one of these correspond to the AC3 stream in a reliable way ?
CODE
typedef V1_ENUM enum MPEG2StreamType {
BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
Reserved1 = 0x0,
ISO_IEC_11172_2_VIDEO = Reserved1 + 1,
ISO_IEC_13818_2_VIDEO = ISO_IEC_11172_2_VIDEO + 1,
ISO_IEC_11172_3_AUDIO = ISO_IEC_13818_2_VIDEO + 1,
ISO_IEC_13818_3_AUDIO = ISO_IEC_11172_3_AUDIO + 1,
ISO_IEC_13818_1_PRIVATE_SECTION = ISO_IEC_13818_3_AUDIO + 1,
ISO_IEC_13818_1_PES = ISO_IEC_13818_1_PRIVATE_SECTION + 1,
ISO_IEC_13522_MHEG = ISO_IEC_13818_1_PES + 1,
ANNEX_A_DSM_CC = ISO_IEC_13522_MHEG + 1,
ITU_T_REC_H_222_1 = ANNEX_A_DSM_CC + 1,
ISO_IEC_13818_6_TYPE_A = ITU_T_REC_H_222_1 + 1,
ISO_IEC_13818_6_TYPE_B = ISO_IEC_13818_6_TYPE_A + 1,
ISO_IEC_13818_6_TYPE_C = ISO_IEC_13818_6_TYPE_B + 1,
ISO_IEC_13818_6_TYPE_D = ISO_IEC_13818_6_TYPE_C + 1,
ISO_IEC_13818_1_AUXILIARY = ISO_IEC_13818_6_TYPE_D + 1,
ISO_IEC_13818_1_RESERVED = ISO_IEC_13818_1_AUXILIARY + 1,
USER_PRIVATE = ISO_IEC_13818_1_RESERVED + 1
} MPEG2StreamType;
nate
May 11 2004, 05:43 PM
From the little bit of playing i did with the PsiParser the AC3 is always of type ISO_IEC_13818_1_PRIVATE_SECTION but so is teletext or subtitle data.
JoeyBloggs
May 11 2004, 06:20 PM
Well here is a scan of Sydney channels, nothing conclusive that I can see ~
CODE
################################################################################
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4112:545:544
Service Property Description.Name = ABC HDTV
Service Property Provider.Name = ABC
Service Property Provider.NetworkName =
ONID = 4112 : SID = 544 : TSID = 545 : ProgPID = 544 : PID = 2309 : pcrPID = 2 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4112 : SID = 544 : TSID = 545 : ProgPID = 544 : PID = 2310 : pcrPID = 2 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4112 : SID = 544 : TSID = 545 : ProgPID = 544 : PID = 2311 : pcrPID = 2 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4112:545:545
Service Property Description.Name = ABC TV Sydney
Service Property Provider.Name = ABC
Service Property Provider.NetworkName =
ONID = 4112 : SID = 545 : TSID = 545 : ProgPID = 545 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4112 : SID = 545 : TSID = 545 : ProgPID = 545 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4112 : SID = 545 : TSID = 545 : ProgPID = 545 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4112 : SID = 545 : TSID = 545 : ProgPID = 545 : PID = 660 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4112:545:546
Service Property Description.Name = ABC TV 2
Service Property Provider.Name = ABC
Service Property Provider.NetworkName =
ONID = 4112 : SID = 546 : TSID = 545 : ProgPID = 546 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4112 : SID = 546 : TSID = 545 : ProgPID = 546 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4112 : SID = 546 : TSID = 545 : ProgPID = 546 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4112:545:547
Service Property Description.Name = ABC TV 3
Service Property Provider.Name = ABC
Service Property Provider.NetworkName =
ONID = 4112 : SID = 547 : TSID = 545 : ProgPID = 547 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4112 : SID = 547 : TSID = 545 : ProgPID = 547 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4112 : SID = 547 : TSID = 545 : ProgPID = 547 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4112 : SID = 547 : TSID = 545 : ProgPID = 547 : PID = 2048 : pcrPID = 128 : CAT = Other : MPEG2StreamType = ISO_IEC_13818_6_TYPE_B
ONID = 4112 : SID = 547 : TSID = 545 : ProgPID = 547 : PID = 2049 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PRIVATE_SECTION
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4112:545:548
Service Property Description.Name = ABC TV 4
Service Property Provider.Name = ABC
Service Property Provider.NetworkName =
ONID = 4112 : SID = 548 : TSID = 545 : ProgPID = 548 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4112 : SID = 548 : TSID = 545 : ProgPID = 548 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4112 : SID = 548 : TSID = 545 : ProgPID = 548 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4112:545:549
Service Property Description.Name = Test.
Service Property Provider.Name = ABC
Service Property Provider.NetworkName =
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4112:545:550
Service Property Description.Name = ABC DiG Radio
Service Property Provider.Name = ABC
Service Property Provider.NetworkName =
ONID = 4112 : SID = 550 : TSID = 545 : ProgPID = 550 : PID = 2312 : pcrPID = 1 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
################################################################################
################################################################################
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4115:1282:1312
Service Property Description.Name = 7 Digital
Service Property Provider.Name = Seven Network
Service Property Provider.NetworkName =
ONID = 4115 : SID = 1312 : TSID = 1282 : ProgPID = 1312 : PID = 513 : pcrPID = 1 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4115 : SID = 1312 : TSID = 1282 : ProgPID = 1312 : PID = 514 : pcrPID = 1 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
ONID = 4115 : SID = 1312 : TSID = 1282 : ProgPID = 1312 : PID = 516 : pcrPID = 1 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4115:1282:1313
Service Property Description.Name = 7 Digital 1
Service Property Provider.Name = Seven Network
Service Property Provider.NetworkName =
ONID = 4115 : SID = 1313 : TSID = 1282 : ProgPID = 1313 : PID = 513 : pcrPID = 1 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4115 : SID = 1313 : TSID = 1282 : ProgPID = 1313 : PID = 514 : pcrPID = 1 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
ONID = 4115 : SID = 1313 : TSID = 1282 : ProgPID = 1313 : PID = 516 : pcrPID = 1 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4115:1282:1314
Service Property Description.Name = 7 Digital 2
Service Property Provider.Name = Seven Network
Service Property Provider.NetworkName =
ONID = 4115 : SID = 1314 : TSID = 1282 : ProgPID = 1314 : PID = 513 : pcrPID = 1 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4115 : SID = 1314 : TSID = 1282 : ProgPID = 1314 : PID = 514 : pcrPID = 1 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
ONID = 4115 : SID = 1314 : TSID = 1282 : ProgPID = 1314 : PID = 516 : pcrPID = 1 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4115:1282:1315
Service Property Description.Name = 7 Digital 3
Service Property Provider.Name = Seven Network
Service Property Provider.NetworkName =
ONID = 4115 : SID = 1315 : TSID = 1282 : ProgPID = 1315 : PID = 513 : pcrPID = 1 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4115 : SID = 1315 : TSID = 1282 : ProgPID = 1315 : PID = 514 : pcrPID = 1 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
ONID = 4115 : SID = 1315 : TSID = 1282 : ProgPID = 1315 : PID = 516 : pcrPID = 1 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4115:1282:1316
Service Property Description.Name = 7 HD Digital
Service Property Provider.Name = Seven Network
Service Property Provider.NetworkName =
ONID = 4115 : SID = 1316 : TSID = 1282 : ProgPID = 1316 : PID = 516 : pcrPID = 65 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4115 : SID = 1316 : TSID = 1282 : ProgPID = 1316 : PID = 577 : pcrPID = 65 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4115 : SID = 1316 : TSID = 1282 : ProgPID = 1316 : PID = 578 : pcrPID = 65 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4115:1282:1318
Service Property Description.Name = Program Guide
Service Property Provider.Name = Seven Network
Service Property Provider.NetworkName =
ONID = 4115 : SID = 1318 : TSID = 1282 : ProgPID = 1318 : PID = 609 : pcrPID = 97 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4115 : SID = 1318 : TSID = 1282 : ProgPID = 1318 : PID = 610 : pcrPID = 97 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
################################################################################
################################################################################
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4114:1:1
Service Property Description.Name = NINE DIGITAL
Service Property Provider.Name = Nine Network Australia
Service Property Provider.NetworkName =
ONID = 4114 : SID = 1 : TSID = 1 : ProgPID = 1 : PID = 519 : pcrPID = 135 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4114 : SID = 1 : TSID = 1 : ProgPID = 1 : PID = 583 : pcrPID = 135 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4114 : SID = 1 : TSID = 1 : ProgPID = 1 : PID = 720 : pcrPID = 135 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4114 : SID = 1 : TSID = 1 : ProgPID = 1 : PID = 721 : pcrPID = 135 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4114 : SID = 1 : TSID = 1 : ProgPID = 1 : PID = 2306 : pcrPID = 135 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PRIVATE_SECTION
ONID = 4114 : SID = 1 : TSID = 1 : ProgPID = 1 : PID = 2307 : pcrPID = 135 : CAT = Other : MPEG2StreamType = ISO_IEC_13818_6_TYPE_B
ONID = 4114 : SID = 1 : TSID = 1 : ProgPID = 1 : PID = 2308 : pcrPID = 135 : CAT = Other : MPEG2StreamType = ISO_IEC_13818_6_TYPE_C
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4114:1:5
Service Property Description.Name = NINE HD
Service Property Provider.Name = Nine Network Australia
Service Property Provider.NetworkName =
ONID = 4114 : SID = 5 : TSID = 1 : ProgPID = 5 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4114 : SID = 5 : TSID = 1 : ProgPID = 5 : PID = 650 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4114:1:6
Service Property Description.Name = NINE GUIDE
Service Property Provider.Name = Nine Network Australia
Service Property Provider.NetworkName =
ONID = 4114 : SID = 6 : TSID = 1 : ProgPID = 6 : PID = 517 : pcrPID = 133 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4114 : SID = 6 : TSID = 1 : ProgPID = 6 : PID = 583 : pcrPID = 133 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4114 : SID = 6 : TSID = 1 : ProgPID = 6 : PID = 720 : pcrPID = 133 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
################################################################################
################################################################################
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1569
Service Property Description.Name = TEN Digital
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1569 : TSID = 1538 : ProgPID = 1569 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1569 : TSID = 1538 : ProgPID = 1569 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1569 : TSID = 1538 : ProgPID = 1569 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1569 : TSID = 1538 : ProgPID = 1569 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1570
Service Property Description.Name = TEN Digital 1
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1570 : TSID = 1538 : ProgPID = 1570 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1570 : TSID = 1538 : ProgPID = 1570 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1570 : TSID = 1538 : ProgPID = 1570 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1570 : TSID = 1538 : ProgPID = 1570 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1571
Service Property Description.Name = TEN Digital 2
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1571 : TSID = 1538 : ProgPID = 1571 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1571 : TSID = 1538 : ProgPID = 1571 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1571 : TSID = 1538 : ProgPID = 1571 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1571 : TSID = 1538 : ProgPID = 1571 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1572
Service Property Description.Name = TEN Digital 3
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1572 : TSID = 1538 : ProgPID = 1572 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1572 : TSID = 1538 : ProgPID = 1572 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1572 : TSID = 1538 : ProgPID = 1572 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1572 : TSID = 1538 : ProgPID = 1572 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1573
Service Property Description.Name = TEN Digital
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1573 : TSID = 1538 : ProgPID = 1573 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1573 : TSID = 1538 : ProgPID = 1573 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1573 : TSID = 1538 : ProgPID = 1573 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1573 : TSID = 1538 : ProgPID = 1573 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1574
Service Property Description.Name = TEN Digital 4
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1574 : TSID = 1538 : ProgPID = 1574 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1574 : TSID = 1538 : ProgPID = 1574 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1574 : TSID = 1538 : ProgPID = 1574 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1574 : TSID = 1538 : ProgPID = 1574 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1575
Service Property Description.Name = TEN Digital
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1575 : TSID = 1538 : ProgPID = 1575 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1575 : TSID = 1538 : ProgPID = 1575 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1575 : TSID = 1538 : ProgPID = 1575 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1575 : TSID = 1538 : ProgPID = 1575 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1576
Service Property Description.Name = TEN HD
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1576 : TSID = 1538 : ProgPID = 1576 : PID = 514 : pcrPID = 130 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1576 : TSID = 1538 : ProgPID = 1576 : PID = 576 : pcrPID = 130 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1576 : TSID = 1538 : ProgPID = 1576 : PID = 672 : pcrPID = 130 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 4116:1538:1577
Service Property Description.Name = Ten Digital
Service Property Provider.Name = Ten Sydney
Service Property Provider.NetworkName =
ONID = 4116 : SID = 1577 : TSID = 1538 : ProgPID = 1577 : PID = 512 : pcrPID = 128 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 4116 : SID = 1577 : TSID = 1538 : ProgPID = 1577 : PID = 576 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 4116 : SID = 1577 : TSID = 1538 : ProgPID = 1577 : PID = 650 : pcrPID = 128 : CAT = Audio : MPEG2StreamType = ISO_IEC_13818_3_AUDIO
ONID = 4116 : SID = 1577 : TSID = 1538 : ProgPID = 1577 : PID = 651 : pcrPID = 128 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
################################################################################
################################################################################
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 12802:768:768
Service Property Description.Name = SBS HD
Service Property Provider.Name = SBS
Service Property Provider.NetworkName = SBS NETWORK
ONID = 12802 : SID = 768 : TSID = 768 : ProgPID = 768 : PID = 102 : pcrPID = 102 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
ONID = 12802 : SID = 768 : TSID = 768 : ProgPID = 768 : PID = 103 : pcrPID = 102 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 12802:768:769
Service Property Description.Name = SBS DIGITAL 1
Service Property Provider.Name = SBS
Service Property Provider.NetworkName = SBS NETWORK
ONID = 12802 : SID = 769 : TSID = 768 : ProgPID = 769 : PID = 41 : pcrPID = 161 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 12802 : SID = 769 : TSID = 768 : ProgPID = 769 : PID = 81 : pcrPID = 161 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
ONID = 12802 : SID = 769 : TSID = 768 : ProgPID = 769 : PID = 161 : pcrPID = 161 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 12802:768:770
Service Property Description.Name = SBS DIGITAL 2
Service Property Provider.Name = SBS
Service Property Provider.NetworkName = SBS NETWORK
ONID = 12802 : SID = 770 : TSID = 768 : ProgPID = 770 : PID = 42 : pcrPID = 162 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 12802 : SID = 770 : TSID = 768 : ProgPID = 770 : PID = 83 : pcrPID = 162 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
ONID = 12802 : SID = 770 : TSID = 768 : ProgPID = 770 : PID = 162 : pcrPID = 162 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 12802:768:772
Service Property Description.Name = SBS EPG
Service Property Provider.Name = SBS
Service Property Provider.NetworkName = SBS NETWORK
ONID = 12802 : SID = 772 : TSID = 768 : ProgPID = 772 : PID = 43 : pcrPID = 163 : CAT = Data : MPEG2StreamType = ISO_IEC_13818_1_PES
ONID = 12802 : SID = 772 : TSID = 768 : ProgPID = 772 : PID = 85 : pcrPID = 163 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
ONID = 12802 : SID = 772 : TSID = 768 : ProgPID = 772 : PID = 163 : pcrPID = 163 : CAT = Video : MPEG2StreamType = ISO_IEC_13818_2_VIDEO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 12802:768:782
Service Property Description.Name = SBS RADIO 1
Service Property Provider.Name = SBS
Service Property Provider.NetworkName = SBS NETWORK
ONID = 12802 : SID = 782 : TSID = 768 : ProgPID = 782 : PID = 201 : pcrPID = 201 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
m_piGuideData->GetServiceProperties()
Service Property Description.ID = 12802:768:783
Service Property Description.Name = SBS RADIO 2
Service Property Provider.Name = SBS
Service Property Provider.NetworkName = SBS NETWORK
ONID = 12802 : SID = 783 : TSID = 768 : ProgPID = 783 : PID = 202 : pcrPID = 202 : CAT = Audio : MPEG2StreamType = ISO_IEC_11172_3_AUDIO
################################################################################
################################################################################
nate
May 11 2004, 10:27 PM
Null, Joey
Just in case you havn't figured it out yet, you don't need to have a tuning space in the registry. You can just load up the DVB-T tuning space directly.
CODE
m_pTuningSpace.CoCreateInstance(CLSID_DVBTuningSpace);
CComQIPtr <IDVBTuningSpace2> piDVBTuningSpace(m_pTuningSpace);
if (!piDVBTuningSpace)
{
m_pTuningSpace.Release();
return E_FAIL;
}
if (FAILED(hr = piDVBTuningSpace->put_SystemType(DVB_Terrestrial)))
{
piDVBTuningSpace.Release();
m_pTuningSpace.Release();
return E_FAIL;
}
CComBSTR bstrNetworkType = "{216C62DF-6D7F-4E9A-8571-05F14EDB766A}";
if (FAILED(hr = piDVBTuningSpace->put_NetworkType(bstrNetworkType)))
{
piDVBTuningSpace.Release();
m_pTuningSpace.Release();
return E_FAIL;
}
piDVBTuningSpace.Release();
Null, i noticed in the
BDA Web Sheduler thread that what you've done works with the Nova-T BDA drivers. At the moment i'm loading spectrum's Tuner and Capture filter by name which obviously isn't going to work for other cards. Are you just adding the first filter in the KSCATEGORY_BDA_NETWORK_TUNER and KSCATEGORY_BDA_RECEIVER_COMPONENT Device class? or have you done it some other way?
Finally, i've been working on setting a new DefaultPreferredComponentTypes by following the example
here but i can't figure out how to create a ComponentType for the TIF filter or MPEG-2 Sections and Tables filter. The types that IComponentType::put_Category accepts (
ComponentCategory) don't include a PSI type. Any ideas? I tried CategoryData and that didn't work.
null_pointer
May 11 2004, 10:48 PM
Yep, I am just using the same code that is in the Sample BDA app from the SDK, it just loads the first filter in the catagory, I will need to look at this later but for now it works with one card ok.
Multi card support will be a bit trickier but I am yet to start playing with that.
nate
May 11 2004, 11:17 PM
QUOTE
Yep, I am just using the same code that is in the Sample BDA app from the SDK, it just loads the first filter in the catagory, I will need to look at this later but for now it works with one card ok.
Multi card support will be a bit trickier but I am yet to start playing with that.
Yeah. I'm wondering about the best way to make it user configurable. The easiest way is probably to just let the user specify the CLSIDs of each tuner and capture filter in a file. Then later i can write a gui that lists the tuners and capture filters and updates the file with whichever they choose.
nate
May 11 2004, 11:50 PM
QUOTE
The easiest way is probably to just let the user specify the CLSIDs of each tuner and capture filter in a file.
Or even better. Perhaps we should all decide on a registry structure where we can store infomation about tuners.
Hows this for a first draft.
[list]HKLMSoftwareDTV TunersTuner 1
[list]TunerFilterCLSID
[*]CaptureFilterCLSID
[*]DefaultTuningSpace (might come in handy if we want support satelite or something later)
[*]InUseByPID (pid of process using tuner, -1 if free)
[*]InUseByFriendlyName
[list]HKLMSoftwareDTV TunersTuner 2
[list]...
[list]HKLMSoftwareDTV TunersTuner n
[list]
[list]What else should we include?
With InUseByPID being the pid of the process using it then you can get around the problem of applications not releasing a tuner if they crash by checking if the pid still exists. Might need to make sure it's set back to -1 after a reboot though because you might get a different process startup with the same pid.
I went for the term tuner instead of card incase we get cards with multiple tuners.
What do people think? Good idea? I've only put about 15 minutes worth of thought into it so it probably needs some impoving, but it seems like a good start to me.
null_pointer
May 12 2004, 08:23 AM
The main problem with using the reg is that what happens if the app crashes, you can leave the reg in a state that effectivly disables a card.
This is the approch the TwinHan used with its multicard support and it just does not work from what I can see.
We may be able to use the Registry to list available cards etc but system mutexes or counters may be a better way of detecting if a card is in use.
nate
May 12 2004, 09:03 AM
QUOTE
The main problem with using the reg is that what happens if the app crashes, you can leave the reg in a state that effectivly disables a card.
Did you read what i wrote in my last post about storing the pid?
null_pointer
May 12 2004, 09:29 AM
So if your app tires to get a card it looks in the InUseBy and if there is a PID in there it checks to see if the PID is still active, if it is it assumes it is still running and tryes the next card?
What happens if anther process start up and is assigned the PID of the just crashed app, your app would think the card is still in use, this is a long shot I know but could happen, you would have to make a design call, is the likely hood of this occuring small enough to ignore.
nate
May 12 2004, 10:02 AM
QUOTE
What happens if anther process start up and is assigned the PID of the just crashed app, your app would think the card is still in use, this is a long shot I know but could happen, you would have to make a design call, is the likely hood of this occuring small enough to ignore.
AFAIK pid's are assigned consecutively so once a pid has been used it shouldn't be used again unless the os is rebooted, although i havn't been able to find any documentation to prove that yet.
We will need to have something that runs on startup that resets all the InUseByPID's to -1, but aside from that i think it should work pretty well.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.