I've just moved to the US from Europe and trying to get my head around ATSC. I have a Hauppauge HVR950q which works in Windoze and Linux (With Kaffeine) and almost with VDR (my preferred platform).
I have it normally connected to Comcast cable which should pipe through a bunch of FTV channels using QAM256. These I can see and hear in kaffeine with AC97 audio. However, in VDR it appears to change the pids automatically so that the audio stops working. If I manually change VDR to not auto update and put the APID in then it squeeks rather than works. However, streaming to mplayer using streamdev seems to work. (It does the same this with OTA channels too - although I can only get 4 with a portable antenna.)
I am using Ubuntu's VDR source 1.6.0 something or other, but patched with the ATSC patch.
I had a really hard time trying to work out the channels.conf file, and in the end settled for something like:
WIFR-Wx�;(null):495000:M256:C:0:1984:0:0:0:2:0:0:0 WQRF-DT�;(null):495000:M256:C:0:2048:0:0:0:3:0:0:0 WIFR-HD�;(null):495000:M256:C:0:2112:0:0:0:1:0:0:0
This is after VDR has eaten the audio pid away. Normally this is one number higher than the vpid. So for WIFR 1985, WQRF 2049 etc.
I'm willing to believe I've cocked it up as nothing I had would automatically scan the QAM channels. In the end I used scan and it added "VDR Doesn't support ATSC yet" instead of M256:C:0.
Thanks guys... Fairly soon my shipping will arrive from Italy with my main server, sat cards and Hauppauge MVP's to stick around the house. I wonder what could possibly go wrong?
Rob Davis wrote:
I have it normally connected to Comcast cable which should pipe through a bunch of FTV channels using QAM256. These I can see and hear in kaffeine with AC97 audio. However, in VDR it appears to change the pids automatically so that the audio stops working. If I manually change VDR to not auto update and put the APID in then it squeeks rather than works. However, streaming to mplayer using streamdev seems to work. (It does the same this with OTA channels too - although I can only get 4 with a portable antenna.)
ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid needs to be set appropriately. Since the sound squeaks, whatever value you have set for the Apid should be the Dpid.
For example,
WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0
Alex Lasnier wrote:
Rob Davis wrote:
I have it normally connected to Comcast cable which should pipe through a bunch of FTV channels using QAM256. These I can see and hear in kaffeine with AC97 audio. However, in VDR it appears to change the pids automatically so that the audio stops working. If I manually change VDR to not auto update and put the APID in then it squeeks rather than works. However, streaming to mplayer using streamdev seems to work. (It does the same this with OTA channels too - although I can only get 4 with a portable antenna.)
ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid needs to be set appropriately. Since the sound squeaks, whatever value you have set for the Apid should be the Dpid.
For example,
WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0
Perfect... Thanks
Is there a way to keep auto update on, but stop Comcast from sending wrong pids? It keeps settings all audio options to 0 and some vpids too?
On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info wrote:
Alex Lasnier wrote:
Rob Davis wrote:
I have it normally connected to Comcast cable which should pipe through a bunch of FTV channels using QAM256. These I can see and hear in kaffeine with AC97 audio. However, in VDR it appears to change the pids automatically so that the audio stops working. If I manually change VDR to not auto update and put the APID in then it squeeks rather than works. However, streaming to mplayer using streamdev seems to work. (It does the same this with OTA channels too - although I can only get 4 with a portable antenna.)
ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid needs to be set appropriately. Since the sound squeaks, whatever value you have set for the Apid should be the Dpid.
For example,
WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0
Perfect... Thanks
Is there a way to keep auto update on, but stop Comcast from sending wrong pids? It keeps settings all audio options to 0 and some vpids too?
The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will add the digital PIDs correctly.
--- pat.c~ 2009-06-22 12:28:08.000000000 -0400 +++ pat.c 2009-06-22 13:32:48.461538560 -0400 @@ -432,6 +432,9 @@ } } break; + case 0x81: // AC3 DPIDs + Dpids[NumDpids++] = stream.getPid(); + break; //default: printf("PID: %5d %5d %2d %3d %3d\n", pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
Stile wrote:
On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info wrote:
Alex Lasnier wrote:
Rob Davis wrote:
I have it normally connected to Comcast cable which should pipe through a bunch of FTV channels using QAM256. These I can see and hear in kaffeine with AC97 audio. However, in VDR it appears to change the pids automatically so that the audio stops working. If I manually change VDR to not auto update and put the APID in then it squeeks rather than works. However, streaming to mplayer using streamdev seems to work. (It does the same this with OTA channels too - although I can only get 4 with a portable antenna.)
ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid needs to be set appropriately. Since the sound squeaks, whatever value you have set for the Apid should be the Dpid.
For example,
WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0
Perfect... Thanks
Is there a way to keep auto update on, but stop Comcast from sending wrong pids? It keeps settings all audio options to 0 and some vpids too?
The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will add the digital PIDs correctly.
--- pat.c~ 2009-06-22 12:28:08.000000000 -0400 +++ pat.c 2009-06-22 13:32:48.461538560 -0400 @@ -432,6 +432,9 @@ } } break;
case 0x81: // AC3 DPIDs
Dpids[NumDpids++] = stream.getPid();
break; //default: printf("PID: %5d %5d %2d %3d %3d\n",
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Perfect. I wonder if this could go in the atscepg patch?
On 07/30/09 01:05, Rob Davis wrote:
Stile wrote:
On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info wrote:
Alex Lasnier wrote:
Rob Davis wrote:
I have it normally connected to Comcast cable which should pipe through a bunch of FTV channels using QAM256. These I can see and hear in kaffeine with AC97 audio. However, in VDR it appears to change the pids automatically so that the audio stops working. If I manually change VDR to not auto update and put the APID in then it squeeks rather than works. However, streaming to mplayer using streamdev seems to work. (It does the same this with OTA channels too - although I can only get 4 with a portable antenna.)
ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid needs to be set appropriately. Since the sound squeaks, whatever value you have set for the Apid should be the Dpid.
For example,
WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0
Perfect... Thanks
Is there a way to keep auto update on, but stop Comcast from sending wrong pids? It keeps settings all audio options to 0 and some vpids too?
The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will add the digital PIDs correctly.
--- pat.c~ 2009-06-22 12:28:08.000000000 -0400 +++ pat.c 2009-06-22 13:32:48.461538560 -0400 @@ -432,6 +432,9 @@ } } break;
case 0x81: // AC3 DPIDs
Dpids[NumDpids++] = stream.getPid();
break; //default: printf("PID: %5d %5d %2d %3d %3d\n",
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
Perfect. I wonder if this could go in the atscepg patch?
Can you try if this also works if you insert the line
case 0x81: // AC3 DPIDs
after the line
//XXX case 8: // STREAMTYPE_13818_DSMCC
instead? I'm asking because I'd like to see whether there are also language descriptors available...
Klaus
Klaus Schmidinger wrote:
On 07/30/09 01:05, Rob Davis wrote:
Stile wrote:
On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info wrote:
Alex Lasnier wrote:
Rob Davis wrote:
I have it normally connected to Comcast cable which should pipe through a bunch of FTV channels using QAM256. These I can see and hear in kaffeine with AC97 audio. However, in VDR it appears to change the pids automatically so that the audio stops working. If I manually change VDR to not auto update and put the APID in then it squeeks rather than works. However, streaming to mplayer using streamdev seems to work. (It does the same this with OTA channels too - although I can only get 4 with a portable antenna.)
ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid needs to be set appropriately. Since the sound squeaks, whatever value you have set for the Apid should be the Dpid.
For example,
WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0
Perfect... Thanks
Is there a way to keep auto update on, but stop Comcast from sending wrong pids? It keeps settings all audio options to 0 and some vpids too?
The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will add the digital PIDs correctly.
--- pat.c~ 2009-06-22 12:28:08.000000000 -0400 +++ pat.c 2009-06-22 13:32:48.461538560 -0400 @@ -432,6 +432,9 @@ } } break;
case 0x81: // AC3 DPIDs
Dpids[NumDpids++] = stream.getPid();
break; //default: printf("PID: %5d %5d %2d %3d %3d\n",
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
Perfect. I wonder if this could go in the atscepg patch?
Can you try if this also works if you insert the line
case 0x81: // AC3 DPIDs
after the line
//XXX case 8: // STREAMTYPE_13818_DSMCC
instead? I'm asking because I'd like to see whether there are also language descriptors available...
Klaus
Yes, language descriptors are present. However, ATSC also uses 0x81 as the AC3 descriptor tag. So we need another
case 0x81:
after
case SI::AC3DescriptorTag:
On 02.08.2009 19:22, Alex Lasnier wrote:
Klaus Schmidinger wrote:
On 07/30/09 01:05, Rob Davis wrote:
Stile wrote:
On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info wrote:
Alex Lasnier wrote:
Rob Davis wrote:
> I have it normally connected to Comcast cable which should pipe > through > a bunch of FTV channels using QAM256. These I can see and hear in > kaffeine with AC97 audio. However, in VDR it appears to change the > pids > automatically so that the audio stops working. If I manually change > VDR > to not auto update and put the APID in then it squeeks rather than > works. However, streaming to mplayer using streamdev seems to work. > (It > does the same this with OTA channels too - although I can only get 4 > with a portable antenna.) > > ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid needs to be set appropriately. Since the sound squeaks, whatever value you have set for the Apid should be the Dpid.
For example,
WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0
Perfect... Thanks
Is there a way to keep auto update on, but stop Comcast from sending wrong pids? It keeps settings all audio options to 0 and some vpids too?
The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will add the digital PIDs correctly.
--- pat.c~ 2009-06-22 12:28:08.000000000 -0400 +++ pat.c 2009-06-22 13:32:48.461538560 -0400 @@ -432,6 +432,9 @@ } } break;
case 0x81: // AC3 DPIDs
Dpids[NumDpids++] = stream.getPid();
break; //default: printf("PID: %5d %5d %2d %3d %3d\n",
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
Perfect. I wonder if this could go in the atscepg patch?
Can you try if this also works if you insert the line
case 0x81: // AC3 DPIDs
after the line
//XXX case 8: // STREAMTYPE_13818_DSMCC
instead? I'm asking because I'd like to see whether there are also language descriptors available...
Klaus
Yes, language descriptors are present. However, ATSC also uses 0x81 as the AC3 descriptor tag. So we need another
case 0x81:
after
case SI::AC3DescriptorTag:
In case this is still current, can you please send me a (tested) patch?
Klaus
Klaus Schmidinger wrote:
On 02.08.2009 19:22, Alex Lasnier wrote:
Klaus Schmidinger wrote:
On 07/30/09 01:05, Rob Davis wrote:
Stile wrote:
On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info wrote:
Alex Lasnier wrote:
> Rob Davis wrote: > > >> I have it normally connected to Comcast cable which should pipe >> through >> a bunch of FTV channels using QAM256. These I can see and hear in >> kaffeine with AC97 audio. However, in VDR it appears to change the >> pids >> automatically so that the audio stops working. If I manually change >> VDR >> to not auto update and put the APID in then it squeeks rather than >> works. However, streaming to mplayer using streamdev seems to work. >> (It >> does the same this with OTA channels too - although I can only get 4 >> with a portable antenna.) >> >> > ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid > needs to > be set appropriately. Since the sound squeaks, whatever value you > have > set for the Apid should be the Dpid. > > For example, > > WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0 > > > Perfect... Thanks
Is there a way to keep auto update on, but stop Comcast from sending wrong pids? It keeps settings all audio options to 0 and some vpids too?
The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will add the digital PIDs correctly.
--- pat.c~ 2009-06-22 12:28:08.000000000 -0400 +++ pat.c 2009-06-22 13:32:48.461538560 -0400 @@ -432,6 +432,9 @@ } } break;
case 0x81: // AC3 DPIDs
Dpids[NumDpids++] = stream.getPid();
break; //default: printf("PID: %5d %5d %2d %3d %3d\n",
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
Perfect. I wonder if this could go in the atscepg patch?
Can you try if this also works if you insert the line
case 0x81: // AC3 DPIDs
after the line
//XXX case 8: // STREAMTYPE_13818_DSMCC
instead? I'm asking because I'd like to see whether there are also language descriptors available...
Klaus
Yes, language descriptors are present. However, ATSC also uses 0x81 as the AC3 descriptor tag. So we need another
case 0x81:
after
case SI::AC3DescriptorTag:
In case this is still current, can you please send me a (tested) patch?
Klaus
Sure, please see the attached patch.
diff -ur vdr-1.7.10.orig/dvbdevice.c vdr-1.7.10/dvbdevice.c --- vdr-1.7.10.orig/dvbdevice.c 2009-06-06 07:17:20.000000000 -0400 +++ vdr-1.7.10/dvbdevice.c 2009-11-22 13:26:57.000000000 -0500 @@ -319,6 +319,16 @@ tuneTimeout = DVBT_TUNE_TIMEOUT; lockTimeout = DVBT_LOCK_TIMEOUT; } + else if (frontendType == SYS_ATSC) { + // ATSC + SETCMD(DTV_DELIVERY_SYSTEM, frontendType); + SETCMD(DTV_FREQUENCY, FrequencyToHz(channel.Frequency())); + SETCMD(DTV_INVERSION, channel.Inversion()); + SETCMD(DTV_MODULATION, channel.Modulation()); + + tuneTimeout = DVBT_TUNE_TIMEOUT; + lockTimeout = DVBT_LOCK_TIMEOUT; + } else { esyslog("ERROR: attempt to set channel with unknown DVB frontend type"); return false; @@ -904,7 +914,7 @@ return type == cSource::stNone || type == cSource::stCable && (frontendType == SYS_DVBC_ANNEX_AC || frontendType == SYS_DVBC_ANNEX_B) || type == cSource::stSat && (frontendType == SYS_DVBS || frontendType == SYS_DVBS2) - || type == cSource::stTerr && (frontendType == SYS_DVBT); + || type == cSource::stTerr && (frontendType == SYS_DVBT || frontendType == SYS_ATSC); }
bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const diff -ur vdr-1.7.10.orig/pat.c vdr-1.7.10/pat.c --- vdr-1.7.10.orig/pat.c 2009-08-16 11:01:03.000000000 -0400 +++ vdr-1.7.10/pat.c 2009-11-22 13:31:37.000000000 -0500 @@ -389,6 +389,7 @@ break; case 5: // STREAMTYPE_13818_PRIVATE case 6: // STREAMTYPE_13818_PES_PRIVATE + case 0x81: // ATSC AC-3 //XXX case 8: // STREAMTYPE_13818_DSMCC { int dpid = 0; @@ -397,6 +398,7 @@ for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag: + case 0x81: // ATSC AC-3 descriptor tag dpid = esPid; break; case SI::SubtitlingDescriptorTag: diff -ur vdr-1.7.10.orig/remux.c vdr-1.7.10/remux.c --- vdr-1.7.10.orig/remux.c 2009-11-22 06:23:27.000000000 -0500 +++ vdr-1.7.10/remux.c 2009-11-22 13:31:28.000000000 -0500 @@ -532,6 +532,7 @@ } break; case 0x06: // STREAMTYPE_13818_PES_PRIVATE + case 0x81: // ATSC AC-3 { int dpid = 0; char lang[MAXLANGCODE1] = ""; @@ -539,6 +540,7 @@ for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag: + case 0x81: // ATSC AC-3 descriptor tag dbgpatpmt(" AC3"); dpid = stream.getPid(); break;
My Cable provider or VDR seems to mess up the audio pid regularly for various channels. Is there a way (or patch) that I can keep the update pids on, except for the apids? They move the vpids around about once a month, so keeping vpid updating depending on sid is worthwhile, otherwise I would turn off the updatepids line.
On Mon, 2009-12-14 at 00:03 -0500, Alex Lasnier wrote:
Klaus Schmidinger wrote:
On 02.08.2009 19:22, Alex Lasnier wrote:
Klaus Schmidinger wrote:
On 07/30/09 01:05, Rob Davis wrote:
Stile wrote:
On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info wrote:
> Alex Lasnier wrote: > >> Rob Davis wrote: >> >> >>> I have it normally connected to Comcast cable which should pipe >>> through >>> a bunch of FTV channels using QAM256. These I can see and hear in >>> kaffeine with AC97 audio. However, in VDR it appears to change the >>> pids >>> automatically so that the audio stops working. If I manually change >>> VDR >>> to not auto update and put the APID in then it squeeks rather than >>> works. However, streaming to mplayer using streamdev seems to work. >>> (It >>> does the same this with OTA channels too - although I can only get 4 >>> with a portable antenna.) >>> >>> >> ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid >> needs to >> be set appropriately. Since the sound squeaks, whatever value you >> have >> set for the Apid should be the Dpid. >> >> For example, >> >> WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0 >> >> >> > Perfect... Thanks > > Is there a way to keep auto update on, but stop Comcast from sending > wrong pids? It keeps settings all audio options to 0 and some vpids > too? > > The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will add the digital PIDs correctly.
--- pat.c~ 2009-06-22 12:28:08.000000000 -0400 +++ pat.c 2009-06-22 13:32:48.461538560 -0400 @@ -432,6 +432,9 @@ } } break;
case 0x81: // AC3 DPIDs
Dpids[NumDpids++] = stream.getPid();
break; //default: printf("PID: %5d %5d %2d %3d %3d\n",
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
Perfect. I wonder if this could go in the atscepg patch?
Can you try if this also works if you insert the line
case 0x81: // AC3 DPIDs
after the line
//XXX case 8: // STREAMTYPE_13818_DSMCC
instead? I'm asking because I'd like to see whether there are also language descriptors available...
Klaus
Yes, language descriptors are present. However, ATSC also uses 0x81 as the AC3 descriptor tag. So we need another
case 0x81:
after
case SI::AC3DescriptorTag:
In case this is still current, can you please send me a (tested) patch?
Klaus
Sure, please see the attached patch.
plain text document attachment (vdr-1.7.10-atsc.diff) diff -ur vdr-1.7.10.orig/dvbdevice.c vdr-1.7.10/dvbdevice.c --- vdr-1.7.10.orig/dvbdevice.c 2009-06-06 07:17:20.000000000 -0400 +++ vdr-1.7.10/dvbdevice.c 2009-11-22 13:26:57.000000000 -0500 @@ -319,6 +319,16 @@ tuneTimeout = DVBT_TUNE_TIMEOUT; lockTimeout = DVBT_LOCK_TIMEOUT; }
- else if (frontendType == SYS_ATSC) {
// ATSC
SETCMD(DTV_DELIVERY_SYSTEM, frontendType);
SETCMD(DTV_FREQUENCY, FrequencyToHz(channel.Frequency()));
SETCMD(DTV_INVERSION, channel.Inversion());
SETCMD(DTV_MODULATION, channel.Modulation());
tuneTimeout = DVBT_TUNE_TIMEOUT;
lockTimeout = DVBT_LOCK_TIMEOUT;
else { esyslog("ERROR: attempt to set channel with unknown DVB frontend type"); return false;}
@@ -904,7 +914,7 @@ return type == cSource::stNone || type == cSource::stCable && (frontendType == SYS_DVBC_ANNEX_AC || frontendType == SYS_DVBC_ANNEX_B) || type == cSource::stSat && (frontendType == SYS_DVBS || frontendType == SYS_DVBS2)
|| type == cSource::stTerr && (frontendType == SYS_DVBT);
|| type == cSource::stTerr && (frontendType == SYS_DVBT || frontendType == SYS_ATSC);
}
bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const diff -ur vdr-1.7.10.orig/pat.c vdr-1.7.10/pat.c --- vdr-1.7.10.orig/pat.c 2009-08-16 11:01:03.000000000 -0400 +++ vdr-1.7.10/pat.c 2009-11-22 13:31:37.000000000 -0500 @@ -389,6 +389,7 @@ break; case 5: // STREAMTYPE_13818_PRIVATE case 6: // STREAMTYPE_13818_PES_PRIVATE
case 0x81: // ATSC AC-3 //XXX case 8: // STREAMTYPE_13818_DSMCC { int dpid = 0;
@@ -397,6 +398,7 @@ for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag:
case 0x81: // ATSC AC-3 descriptor tag dpid = esPid; break; case SI::SubtitlingDescriptorTag:
diff -ur vdr-1.7.10.orig/remux.c vdr-1.7.10/remux.c --- vdr-1.7.10.orig/remux.c 2009-11-22 06:23:27.000000000 -0500 +++ vdr-1.7.10/remux.c 2009-11-22 13:31:28.000000000 -0500 @@ -532,6 +532,7 @@ } break; case 0x06: // STREAMTYPE_13818_PES_PRIVATE
case 0x81: // ATSC AC-3 { int dpid = 0; char lang[MAXLANGCODE1] = "";
@@ -539,6 +540,7 @@ for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag:
case 0x81: // ATSC AC-3 descriptor tag dbgpatpmt(" AC3"); dpid = stream.getPid(); break;
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
You can just turn off updates in vdr setup menu. Then it shouldn't change anything and you can do it manually
On 2/15/2010 11:07 AM, Rob Davis wrote:
My Cable provider or VDR seems to mess up the audio pid regularly for various channels. Is there a way (or patch) that I can keep the update pids on, except for the apids? They move the vpids around about once a month, so keeping vpid updating depending on sid is worthwhile, otherwise I would turn off the updatepids line.
On Mon, 2009-12-14 at 00:03 -0500, Alex Lasnier wrote:
Klaus Schmidinger wrote:
On 02.08.2009 19:22, Alex Lasnier wrote:
Klaus Schmidinger wrote:
On 07/30/09 01:05, Rob Davis wrote:
Stile wrote: > On Tue, Jun 23, 2009 at 12:43 PM, Rob Davisrob@davis-family.info > wrote: > >> Alex Lasnier wrote: >> >>> Rob Davis wrote: >>> >>> >>>> I have it normally connected to Comcast cable which should pipe >>>> through >>>> a bunch of FTV channels using QAM256. These I can see and hear in >>>> kaffeine with AC97 audio. However, in VDR it appears to change the >>>> pids >>>> automatically so that the audio stops working. If I manually change >>>> VDR >>>> to not auto update and put the APID in then it squeeks rather than >>>> works. However, streaming to mplayer using streamdev seems to work. >>>> (It >>>> does the same this with OTA channels too - although I can only get 4 >>>> with a portable antenna.) >>>> >>>> >>> ATSC uses only AC-3 audio, so the Apid should be 0 and the Dpid >>> needs to >>> be set appropriately. Since the sound squeaks, whatever value you >>> have >>> set for the Apid should be the Dpid. >>> >>> For example, >>> >>> WIFR-Wx:495000:M256:C:0:1984:0;Dpid:0:0:2:0:0:0 >>> >>> >>> >> Perfect... Thanks >> >> Is there a way to keep auto update on, but stop Comcast from sending >> wrong pids? It keeps settings all audio options to 0 and some vpids >> too? >> >> > The streamtype for those AC3 PIDs is 0x81. Adding this to pat.c will > add the digital PIDs correctly. > > --- pat.c~ 2009-06-22 12:28:08.000000000 -0400 > +++ pat.c 2009-06-22 13:32:48.461538560 -0400 > @@ -432,6 +432,9 @@ > } > } > break; > + case 0x81: // AC3 DPIDs > + Dpids[NumDpids++] = stream.getPid(); > + break; > //default: printf("PID: %5d %5d %2d %3d %3d\n", > pmt.getServiceId(), stream.getPid(), stream.getStreamType(), > pmt.getVersionNumber(), Channel->Number());//XXX > } > for (SI::Loop::Iterator it; (d = > (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, > SI::CaDescriptorTag)); ) { > > Perfect. I wonder if this could go in the atscepg patch?
Can you try if this also works if you insert the line
case 0x81: // AC3 DPIDs
after the line
//XXX case 8: // STREAMTYPE_13818_DSMCC
instead? I'm asking because I'd like to see whether there are also language descriptors available...
Klaus
Yes, language descriptors are present. However, ATSC also uses 0x81 as the AC3 descriptor tag. So we need another
case 0x81:
after
case SI::AC3DescriptorTag:
In case this is still current, can you please send me a (tested) patch?
Klaus
Sure, please see the attached patch.
plain text document attachment (vdr-1.7.10-atsc.diff) diff -ur vdr-1.7.10.orig/dvbdevice.c vdr-1.7.10/dvbdevice.c --- vdr-1.7.10.orig/dvbdevice.c 2009-06-06 07:17:20.000000000 -0400 +++ vdr-1.7.10/dvbdevice.c 2009-11-22 13:26:57.000000000 -0500 @@ -319,6 +319,16 @@ tuneTimeout = DVBT_TUNE_TIMEOUT; lockTimeout = DVBT_LOCK_TIMEOUT; }
- else if (frontendType == SYS_ATSC) {
// ATSC
SETCMD(DTV_DELIVERY_SYSTEM, frontendType);
SETCMD(DTV_FREQUENCY, FrequencyToHz(channel.Frequency()));
SETCMD(DTV_INVERSION, channel.Inversion());
SETCMD(DTV_MODULATION, channel.Modulation());
tuneTimeout = DVBT_TUNE_TIMEOUT;
lockTimeout = DVBT_LOCK_TIMEOUT;
else { esyslog("ERROR: attempt to set channel with unknown DVB frontend type"); return false;}
@@ -904,7 +914,7 @@ return type == cSource::stNone || type == cSource::stCable&& (frontendType == SYS_DVBC_ANNEX_AC || frontendType == SYS_DVBC_ANNEX_B) || type == cSource::stSat&& (frontendType == SYS_DVBS || frontendType == SYS_DVBS2)
|| type == cSource::stTerr&& (frontendType == SYS_DVBT);
|| type == cSource::stTerr&& (frontendType == SYS_DVBT || frontendType == SYS_ATSC);
}
bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
diff -ur vdr-1.7.10.orig/pat.c vdr-1.7.10/pat.c --- vdr-1.7.10.orig/pat.c 2009-08-16 11:01:03.000000000 -0400 +++ vdr-1.7.10/pat.c 2009-11-22 13:31:37.000000000 -0500 @@ -389,6 +389,7 @@ break; case 5: // STREAMTYPE_13818_PRIVATE case 6: // STREAMTYPE_13818_PES_PRIVATE
case 0x81: // ATSC AC-3 //XXX case 8: // STREAMTYPE_13818_DSMCC { int dpid = 0;
@@ -397,6 +398,7 @@ for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag:
case 0x81: // ATSC AC-3 descriptor tag dpid = esPid; break; case SI::SubtitlingDescriptorTag:
diff -ur vdr-1.7.10.orig/remux.c vdr-1.7.10/remux.c --- vdr-1.7.10.orig/remux.c 2009-11-22 06:23:27.000000000 -0500 +++ vdr-1.7.10/remux.c 2009-11-22 13:31:28.000000000 -0500 @@ -532,6 +532,7 @@ } break; case 0x06: // STREAMTYPE_13818_PES_PRIVATE
case 0x81: // ATSC AC-3 { int dpid = 0; char lang[MAXLANGCODE1] = "";
@@ -539,6 +540,7 @@ for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag:
case 0x81: // ATSC AC-3 descriptor tag dbgpatpmt(" AC3"); dpid = stream.getPid(); break;
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr