Re: [vdr] vdr and aac support
El Martes, 18 de Mayo de 2010, Jose Alberto Reguero escribió: > El Martes, 18 de Mayo de 2010, Luca Olivetti escribió: > > Al 18/05/10 21:43, En/na Luca Olivetti ha escrit: > > > (i.e. it only adds SI::AACDescriptorTag) > > > > > > I must have missed some patch along the way :-/ > > > > Ok, they were in the "Recording DVB-T HD infrance" (sic). > > It appears that spain is using the same standard. > > > > Bye > > Here is a patch based in Klaus aac pacth that add support for eac3 sound in > vdr. > > Jose Alberto Patch for xineliboutput to support eac3. With this patch you don't need to patch the latest xine-lib-1.2. Jose Alberto Index: xine/ts2es.c === RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/xine/ts2es.c,v retrieving revision 1.11 diff -r1.11 ts2es.c 33a34 > intnumpreview; 78a80,85 > if (this->stream_type == STREAM_AUDIO_EAC3) { > this->xine_buf_type |= BUF_AUDIO_EAC3; > this->buf->type = this->xine_buf_type; > return; > } > 163c170,177 < this->buf->decoder_flags |= BUF_FLAG_FRAME_END; --- > if (this->numpreview<5) > this->numpreview++; > if (this->numpreview == 1) > this->buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_FRAME_END; > else if (this->numpreview < 5) > this->buf->decoder_flags = BUF_FLAG_PREVIEW; > else > this->buf->decoder_flags |= BUF_FLAG_FRAME_END; 310a325,326 > data->numpreview=0; > ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
El Viernes, 21 de Mayo de 2010, Eric Valette escribió: > On 18/05/2010 22:00, Jose Alberto Reguero wrote: > > Here is a patch based in Klaus aac pacth that add support for eac3 sound > > in vdr. > > Hi, > > I applied manually your patch on my own vdr-1.7.14 source tree. It seems > to work as far as vdr is concerened but it breaks other plugin such as > vdr live and vdr streamdev. > > Did I miss something (I will double check, as for some reason I had some > rejecst ad had to apply part of it manually). > > --eric > > I have the attached patch for streamdev. Jose Alberto Index: server/livestreamer.c === RCS file: /var/cvsroot/streamdev/server/livestreamer.c,v retrieving revision 1.29 diff -r1.29 livestreamer.c 174a175 > case SI::EnhancedAC3DescriptorTag: ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
On 18/05/2010 22:00, Jose Alberto Reguero wrote: Here is a patch based in Klaus aac pacth that add support for eac3 sound in vdr. Hi, I applied manually your patch on my own vdr-1.7.14 source tree. It seems to work as far as vdr is concerened but it breaks other plugin such as vdr live and vdr streamdev. Did I miss something (I will double check, as for some reason I had some rejecst ad had to apply part of it manually). --eric ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
El Martes, 18 de Mayo de 2010, Luca Olivetti escribió: > Al 18/05/10 21:43, En/na Luca Olivetti ha escrit: > > (i.e. it only adds SI::AACDescriptorTag) > > > > I must have missed some patch along the way :-/ > > Ok, they were in the "Recording DVB-T HD infrance" (sic). > It appears that spain is using the same standard. > > Bye Here is a patch based in Klaus aac pacth that add support for eac3 sound in vdr. Jose Alberto Sólo en vdr-1.7.14.new/: audio.o diff -ur vdr-1.7.14/channels.c vdr-1.7.14.new/channels.c --- vdr-1.7.14/channels.c 2010-02-21 14:36:04.0 +0100 +++ vdr-1.7.14.new/channels.c 2010-05-18 18:54:57.0 +0200 @@ -12,6 +12,7 @@ #include "device.h" #include "epg.h" #include "timers.h" +#include "libsi/si.h" // IMPORTANT NOTE: in the 'sscanf()' calls there is a blank after the '%d' // format characters in order to allow any number of blanks after a numeric @@ -270,14 +271,21 @@ return result; } -static int IntArrayToString(char *s, const int *a, int Base = 10, const char n[][MAXLANGCODE2] = NULL) +static int IntArrayToString(char *s, const int *a, int Base = 10, const char n[][MAXLANGCODE2] = NULL, const int *t = NULL) { char *q = s; int i = 0; while (a[i] || i == 0) { q += sprintf(q, Base == 16 ? "%s%X" : "%s%d", i ? "," : "", a[i]); -if (a[i] && n && *n[i]) - q += sprintf(q, "=%s", n[i]); +const char *Delim = "="; +if (a[i]) { + if (n && *n[i]) { + q += sprintf(q, "%s%s", Delim, n[i]); + Delim = ""; + } + if (t && t[i]) + q += sprintf(q, "%...@%d", Delim, t[i]); + } if (!a[i]) break; i++; @@ -286,32 +294,32 @@ return q - s; } -void cChannel::SetPids(int Vpid, int Ppid, int Vtype, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid) +void cChannel::SetPids(int Vpid, int Ppid, int Vtype, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, int *Dtypes, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid) { int mod = CHANNELMOD_NONE; if (vpid != Vpid || ppid != Ppid || vtype != Vtype || tpid != Tpid) mod |= CHANNELMOD_PIDS; - int m = IntArraysDiffer(apids, Apids, alangs, ALangs) | IntArraysDiffer(dpids, Dpids, dlangs, DLangs) | IntArraysDiffer(spids, Spids, slangs, SLangs); + int m = IntArraysDiffer(apids, Apids, alangs, ALangs) | IntArraysDiffer(dpids, Dpids, dlangs, DLangs) | IntArraysDiffer(dtypes, Dtypes) | IntArraysDiffer(spids, Spids, slangs, SLangs); if (m & STRDIFF) mod |= CHANNELMOD_LANGS; if (m & VALDIFF) mod |= CHANNELMOD_PIDS; if (mod) { - const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+cod', +10: paranoia + const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2 + 5) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+...@type', +10: paranoia char OldApidsBuf[BufferSize]; char NewApidsBuf[BufferSize]; char *q = OldApidsBuf; q += IntArrayToString(q, apids, 10, alangs); if (dpids[0]) { *q++ = ';'; -q += IntArrayToString(q, dpids, 10, dlangs); +q += IntArrayToString(q, dpids, 10, dlangs, dtypes); } *q = 0; q = NewApidsBuf; q += IntArrayToString(q, Apids, 10, ALangs); if (Dpids[0]) { *q++ = ';'; -q += IntArrayToString(q, Dpids, 10, DLangs); +q += IntArrayToString(q, Dpids, 10, DLangs, Dtypes); } *q = 0; const int SBufferSize = MAXSPIDS * (5 + 1 + MAXLANGCODE2) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod', +10: paranoia @@ -335,6 +343,7 @@ apids[MAXAPIDS] = 0; for (int i = 0; i < MAXDPIDS; i++) { dpids[i] = Dpids[i]; + dtypes[i] = Dtypes[i]; strn0cpy(dlangs[i], DLangs[i], MAXLANGCODE2); } dpids[MAXDPIDS] = 0; @@ -484,13 +493,13 @@ if (Channel->vpid && Channel->vtype) q += snprintf(q, sizeof(vpidbuf) - (q - vpidbuf), "=%d", Channel->vtype); *q = 0; - const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+cod', +10: paranoia + const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2 + 5) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+...@type', +10: paranoia char apidbuf[BufferSize]; q = apidbuf; q += IntArrayToString(q, Channel->apids, 10, Channel->alangs); if (Channel->dpids[0]) { *q++ = ';'; -q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs); +q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs, Channel->dtypes); } *q = 0; char caidbuf[MAXCAIDS * 5 + 10]; // 5: 4 digits plus delimiting ',', 10: para
Re: [vdr] vdr and aac support
Al 18/05/10 21:43, En/na Luca Olivetti ha escrit: (i.e. it only adds SI::AACDescriptorTag) I must have missed some patch along the way :-/ Ok, they were in the "Recording DVB-T HD infrance" (sic). It appears that spain is using the same standard. Bye -- Luca ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
Al 18/05/10 21:20, En/na Luca Olivetti ha escrit: Al 16/05/10 14:28, En/na Klaus Schmidinger ha escrit: Ok, here's a complete patch that attempts to handle audio types. It is untested, so please use it with care. Please let me know whether this works with your audio types in live mode and with replaying recordings. As of yesterday I can tune to a dvb-t hd channel where vdr doesn't pick the audio pid, my tv picks it and identifies it as "dolby digital plus". I tried this patch but vdr still doesn't pick the audio pid. Unsurprising, since in pat.c it doesn't check for SI::EnhancedAC3DescriptorTag while it should according to your patch posted on 14-05-2010: --- pat.c 2010/03/27 15:17:46 2.9 +++ pat.c 2010/05/14 14:12:31 @@ -401,6 +401,7 @@ switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag: case SI::EnhancedAC3DescriptorTag: +case SI::AACDescriptorTag: dpid = esPid; ProcessCaDescriptors = true; break; (i.e. it only adds SI::AACDescriptorTag) I must have missed some patch along the way :-/ Bye -- Luca ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
Al 16/05/10 14:28, En/na Klaus Schmidinger ha escrit: Ok, here's a complete patch that attempts to handle audio types. It is untested, so please use it with care. Please let me know whether this works with your audio types in live mode and with replaying recordings. As of yesterday I can tune to a dvb-t hd channel where vdr doesn't pick the audio pid, my tv picks it and identifies it as "dolby digital plus". I tried this patch but vdr still doesn't pick the audio pid. If I disable channel updating and manually introduce the pid, I cannot decode the audio with xine. vlc (through streamdev) doesn't decode it either but it tells me that it's of type eac3. This is the output of dvbsnoop: $ dvbsnoop -adapter 1 0 dvbsnoop V1.4.00 -- http://dvbsnoop.sourceforge.net/ SECT-Packet: 0001 PID: 0 (0x), Length: 36 (0x0024) Time received: Tue 2010-05-18 21:17:20.758 : 00 b0 21 9c 40 cd 00 00 00 00 e0 10 9c 41 e3 e8 @a.. 0010: 9c 42 e7 d0 9c 43 eb b8 9c 45 e7 e4 9c 46 eb cc .B...C...E...F.. 0020: 9e 44 56 b1.DV. PID: 0 (0x) [= assigned for: ISO 13818-1 Program Association Table (PAT)] Guess table from table id... PAT-decoding Table_ID: 0 (0x00) [= Program Association Table (PAT)] section_syntax_indicator: 1 (0x01) (fixed): 0 (0x00) reserved_1: 3 (0x03) Section_length: 33 (0x0021) Transport_Stream_ID: 4 (0x9c40) reserved_2: 3 (0x03) Version_number: 6 (0x06) current_next_indicator: 1 (0x01) [= valid now] Section_number: 0 (0x00) Last_Section_number: 0 (0x00) Program_number: 0 (0x) reserved: 7 (0x07) Network_PID: 16 (0x0010) Program_number: 40001 (0x9c41) reserved: 7 (0x07) Program_map_PID: 1000 (0x03e8) Program_number: 40002 (0x9c42) reserved: 7 (0x07) Program_map_PID: 2000 (0x07d0) Program_number: 40003 (0x9c43) reserved: 7 (0x07) Program_map_PID: 3000 (0x0bb8) Program_number: 40005 (0x9c45) reserved: 7 (0x07) Program_map_PID: 2020 (0x07e4) Program_number: 40006 (0x9c46) reserved: 7 (0x07) Program_map_PID: 3020 (0x0bcc) CRC: 2655278769 (0x9e4456b1) == The channel is the one with pmt pid 1000 $ dvbsnoop -adapter 1 1000 dvbsnoop V1.4.00 -- http://dvbsnoop.sourceforge.net/ SECT-Packet: 0001 PID: 1000 (0x03e8), Length: 46 (0x002e) Time received: Tue 2010-05-18 21:18:11.126 : 02 b0 2b 9c 41 d7 00 00 e3 e9 f0 00 1b e3 e9 f0 ..+.A... 0010: 0a 28 04 64 00 28 3f 2a 02 fe ef 06 e4 4c f0 0a .(.d.(?*.L.. 0020: 7a 02 80 c2 0a 04 73 70 61 00 e4 8e 54 ed z.spa...T. PID: 1000 (0x03e8) Guess table from table id... PMT-decoding Table_ID: 2 (0x02) [= Program Map Table (PMT)] section_syntax_indicator: 1 (0x01) (fixed '0'): 0 (0x00) reserved_1: 3 (0x03) Section_length: 43 (0x002b) Program_number: 40001 (0x9c41) reserved_2: 3 (0x03) Version_number: 11 (0x0b) current_next_indicator: 1 (0x01) [= valid now] Section_number: 0 (0x00) Last_Section_number: 0 (0x00) reserved_3: 7 (0x07) PCR PID: 1001 (0x03e9) reserved_4: 15 (0x0f) Program_info_length: 0 (0x) Stream_type loop: Stream_type: 27 (0x1b) [= AVC video stream as defined in ITU-T Rec. H.264 | ISO/IEC 14496-10 Video] reserved_1: 7 (0x07) Elementary_PID: 1001 (0x03e9) reserved_2: 15 (0x0f) ES_info_length: 10 (0x000a) MPEG-DescriptorTag: 40 (0x28) [= AVC_video_descriptor] Descriptor_length: 4 (0x04) : 64 00 28 3f d.(? MPEG-DescriptorTag: 42 (0x2a) [= AVC_timing_and_HRD_descriptor] Descriptor_length: 2 (0x02) : fe ef .. Stream_type: 6 (0x06) [= ITU-T Rec. H.222.0 | ISO/IEC 13818-1 PES packets containing private data] reserved_1: 7 (0x07) Elementary_PID: 1100 (0x044c) reserved_2: 15 (0x0f) ES_info_length: 10 (0x000a) DVB-DescriptorTag: 122 (0x7a) [= reserved_descriptor] Descriptor_length: 2 (0x02) > ERROR: unimplemented descriptor (dvb context), Report! Descriptor-data: : 80 c2 .. MPEG-DescriptorTag: 10 (0x0a) [= ISO_639_language_descriptor] Descriptor_length: 4 (0x04) ISO639_language_code: spa Audio_type: 0 (0x00) [= undefined] CRC: 3834533101 (0xe48e54ed) == Bye -- Luca ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
Only to report, the patch works well in both live TV and recordings with xineliboutput. This patch is expected to: * DVB-T in Norway * DVB-T in New Zealand * DVB-T and DVBS2 in Portugal Thank you very much Klaus 2010/5/17 Newsy Paper : > funny, today sound works with xine, yesterday it didn't although I had sound > on all other channels with mpeg2 audio. Even recorings work fine, so aac > support is perfect here :) > > > kind regards > > Newspaperman > > --- Newsy Paper schrieb am So, 16.5.2010: > >> Von: Newsy Paper >> Betreff: Re: [vdr] vdr and aac support >> An: "VDR Mailing List" >> Datum: Sonntag, 16. Mai, 2010 23:52 Uhr >> Hi Klaus, >> >> just tested your aac patch. I would say your patch is >> working fine. AAC pid is found + added automatically, femon >> plugin shows HE-AAC as codec. If I connect to xineliboutput >> with vlc I get correct audio, but with xine there's no >> audio, perhaps there are some more modifications necessary >> in xine but your part is complete. Thank you very much for >> that. >> >> kind regards >> >> >> Newspaperman >> >> --- Klaus Schmidinger >> schrieb am So, 16.5.2010: >> >> > Von: Klaus Schmidinger >> > Betreff: Re: [vdr] vdr and aac support >> > An: vdr@linuxtv.org >> > Datum: Sonntag, 16. Mai, 2010 14:28 Uhr >> > On 16.05.2010 12:55, Klaus >> > Schmidinger wrote: >> > > On 15.05.2010 20:00, Newsy Paper wrote: >> > >> hi Luis, >> > >> >> > >> seems like an ugly hack. Channel I'm >> receiving >> > here has: >> > >> Stream_type: 15 (0x0f) [= ISO/IEC 13818-7 >> > Audio with ADTS transport sytax] >> > > >> > > If you do this instead: >> > > >> > > --- pat.c 2010/03/27 >> > 15:17:46 2.9 >> > > +++ pat.c 2010/05/16 >> > 10:53:46 >> > > @@ -358,6 +358,8 @@ >> > > >> > break; >> > > >> > case 3: // STREAMTYPE_11172_AUDIO >> > > >> > case 4: // STREAMTYPE_13818_AUDIO >> > > + case >> > 0x0F: // ISO/IEC 13818-7 Audio with ADTS transport >> sytax >> > > + case >> > 0x11: // ISO/IEC 14496-3 Audio with LATM transport >> syntax >> > > >> > { >> > > >> > if (NumApids < MAXAPIDS) { >> > > >> > >> > Apids[NumApids] = esPid; >> > > >> > > >> > > does this put the proper PID into the APID >> section? >> > > This may still not work with recordings, but I >> first >> > want to know >> > > whether a proper PID is detected that way. >> > >> > Ok, here's a complete patch that attempts to handle >> audio >> > types. >> > It is untested, so please use it with care. >> > Please let me know whether this works with your audio >> types >> > in >> > live mode and with replaying recordings. >> > >> > Klaus >> > >> > -Integrierter Anhang folgt- >> > >> > >> > -Integrierter Anhang folgt- >> > >> > ___ >> > 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 >> > > > > ___ > 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
Re: [vdr] vdr and aac support
funny, today sound works with xine, yesterday it didn't although I had sound on all other channels with mpeg2 audio. Even recorings work fine, so aac support is perfect here :) kind regards Newspaperman --- Newsy Paper schrieb am So, 16.5.2010: > Von: Newsy Paper > Betreff: Re: [vdr] vdr and aac support > An: "VDR Mailing List" > Datum: Sonntag, 16. Mai, 2010 23:52 Uhr > Hi Klaus, > > just tested your aac patch. I would say your patch is > working fine. AAC pid is found + added automatically, femon > plugin shows HE-AAC as codec. If I connect to xineliboutput > with vlc I get correct audio, but with xine there's no > audio, perhaps there are some more modifications necessary > in xine but your part is complete. Thank you very much for > that. > > kind regards > > > Newspaperman > > --- Klaus Schmidinger > schrieb am So, 16.5.2010: > > > Von: Klaus Schmidinger > > Betreff: Re: [vdr] vdr and aac support > > An: vdr@linuxtv.org > > Datum: Sonntag, 16. Mai, 2010 14:28 Uhr > > On 16.05.2010 12:55, Klaus > > Schmidinger wrote: > > > On 15.05.2010 20:00, Newsy Paper wrote: > > >> hi Luis, > > >> > > >> seems like an ugly hack. Channel I'm > receiving > > here has: > > >> Stream_type: 15 (0x0f) [= ISO/IEC 13818-7 > > Audio with ADTS transport sytax] > > > > > > If you do this instead: > > > > > > --- pat.c 2010/03/27 > > 15:17:46 2.9 > > > +++ pat.c 2010/05/16 > > 10:53:46 > > > @@ -358,6 +358,8 @@ > > > > > break; > > > > > case 3: // STREAMTYPE_11172_AUDIO > > > > > case 4: // STREAMTYPE_13818_AUDIO > > > + case > > 0x0F: // ISO/IEC 13818-7 Audio with ADTS transport > sytax > > > + case > > 0x11: // ISO/IEC 14496-3 Audio with LATM transport > syntax > > > > > { > > > > > if (NumApids < MAXAPIDS) { > > > > > > > Apids[NumApids] = esPid; > > > > > > > > > does this put the proper PID into the APID > section? > > > This may still not work with recordings, but I > first > > want to know > > > whether a proper PID is detected that way. > > > > Ok, here's a complete patch that attempts to handle > audio > > types. > > It is untested, so please use it with care. > > Please let me know whether this works with your audio > types > > in > > live mode and with replaying recordings. > > > > Klaus > > > > -Integrierter Anhang folgt- > > > > > > -Integrierter Anhang folgt- > > > > ___ > > 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 > ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
Hi Klaus, just tested your aac patch. I would say your patch is working fine. AAC pid is found + added automatically, femon plugin shows HE-AAC as codec. If I connect to xineliboutput with vlc I get correct audio, but with xine there's no audio, perhaps there are some more modifications necessary in xine but your part is complete. Thank you very much for that. kind regards Newspaperman --- Klaus Schmidinger schrieb am So, 16.5.2010: > Von: Klaus Schmidinger > Betreff: Re: [vdr] vdr and aac support > An: vdr@linuxtv.org > Datum: Sonntag, 16. Mai, 2010 14:28 Uhr > On 16.05.2010 12:55, Klaus > Schmidinger wrote: > > On 15.05.2010 20:00, Newsy Paper wrote: > >> hi Luis, > >> > >> seems like an ugly hack. Channel I'm receiving > here has: > >> Stream_type: 15 (0x0f) [= ISO/IEC 13818-7 > Audio with ADTS transport sytax] > > > > If you do this instead: > > > > --- pat.c 2010/03/27 > 15:17:46 2.9 > > +++ pat.c 2010/05/16 > 10:53:46 > > @@ -358,6 +358,8 @@ > > > break; > > > case 3: // STREAMTYPE_11172_AUDIO > > > case 4: // STREAMTYPE_13818_AUDIO > > + case > 0x0F: // ISO/IEC 13818-7 Audio with ADTS transport sytax > > + case > 0x11: // ISO/IEC 14496-3 Audio with LATM transport syntax > > > { > > > if (NumApids < MAXAPIDS) { > > > > Apids[NumApids] = esPid; > > > > > > does this put the proper PID into the APID section? > > This may still not work with recordings, but I first > want to know > > whether a proper PID is detected that way. > > Ok, here's a complete patch that attempts to handle audio > types. > It is untested, so please use it with care. > Please let me know whether this works with your audio types > in > live mode and with replaying recordings. > > Klaus > > -Integrierter Anhang folgt- > > > -Integrierter Anhang folgt- > > ___ > 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
Re: [vdr] vdr and aac support
On 16.05.2010 12:55, Klaus Schmidinger wrote: > On 15.05.2010 20:00, Newsy Paper wrote: >> hi Luis, >> >> seems like an ugly hack. Channel I'm receiving here has: >> Stream_type: 15 (0x0f) [= ISO/IEC 13818-7 Audio with ADTS transport sytax] > > If you do this instead: > > --- pat.c 2010/03/27 15:17:46 2.9 > +++ pat.c 2010/05/16 10:53:46 > @@ -358,6 +358,8 @@ >break; >case 3: // STREAMTYPE_11172_AUDIO >case 4: // STREAMTYPE_13818_AUDIO > + case 0x0F: // ISO/IEC 13818-7 Audio with ADTS transport sytax > + case 0x11: // ISO/IEC 14496-3 Audio with LATM transport syntax >{ >if (NumApids < MAXAPIDS) { > Apids[NumApids] = esPid; > > > does this put the proper PID into the APID section? > This may still not work with recordings, but I first want to know > whether a proper PID is detected that way. Ok, here's a complete patch that attempts to handle audio types. It is untested, so please use it with care. Please let me know whether this works with your audio types in live mode and with replaying recordings. Klaus --- ./channels.c 2010/05/02 15:07:38 2.14 +++ ./channels.c 2010/05/16 11:44:31 @@ -271,14 +271,21 @@ return result; } -static int IntArrayToString(char *s, const int *a, int Base = 10, const char n[][MAXLANGCODE2] = NULL) +static int IntArrayToString(char *s, const int *a, int Base = 10, const char n[][MAXLANGCODE2] = NULL, const int *t = NULL) { char *q = s; int i = 0; while (a[i] || i == 0) { q += sprintf(q, Base == 16 ? "%s%X" : "%s%d", i ? "," : "", a[i]); -if (a[i] && n && *n[i]) - q += sprintf(q, "=%s", n[i]); +const char *Delim = "="; +if (a[i]) { + if (n && *n[i]) { + q += sprintf(q, "%s%s", Delim, n[i]); + Delim = ""; + } + if (t && t[i]) + q += sprintf(q, "%...@%d", Delim, t[i]); + } if (!a[i]) break; i++; @@ -287,29 +294,29 @@ return q - s; } -void cChannel::SetPids(int Vpid, int Ppid, int Vtype, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid) +void cChannel::SetPids(int Vpid, int Ppid, int Vtype, int *Apids, int *Atypes, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid) { int mod = CHANNELMOD_NONE; if (vpid != Vpid || ppid != Ppid || vtype != Vtype || tpid != Tpid) mod |= CHANNELMOD_PIDS; - int m = IntArraysDiffer(apids, Apids, alangs, ALangs) | IntArraysDiffer(dpids, Dpids, dlangs, DLangs) | IntArraysDiffer(spids, Spids, slangs, SLangs); + int m = IntArraysDiffer(apids, Apids, alangs, ALangs) | IntArraysDiffer(atypes, Atypes) | IntArraysDiffer(dpids, Dpids, dlangs, DLangs) | IntArraysDiffer(spids, Spids, slangs, SLangs); if (m & STRDIFF) mod |= CHANNELMOD_LANGS; if (m & VALDIFF) mod |= CHANNELMOD_PIDS; if (mod) { - const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+cod', +10: paranoia + const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2 + 5) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+...@type', +10: paranoia char OldApidsBuf[BufferSize]; char NewApidsBuf[BufferSize]; char *q = OldApidsBuf; - q += IntArrayToString(q, apids, 10, alangs); + q += IntArrayToString(q, apids, 10, alangs, atypes); if (dpids[0]) { *q++ = ';'; q += IntArrayToString(q, dpids, 10, dlangs); } *q = 0; q = NewApidsBuf; - q += IntArrayToString(q, Apids, 10, ALangs); + q += IntArrayToString(q, Apids, 10, ALangs, Atypes); if (Dpids[0]) { *q++ = ';'; q += IntArrayToString(q, Dpids, 10, DLangs); @@ -331,6 +338,7 @@ vtype = Vtype; for (int i = 0; i < MAXAPIDS; i++) { apids[i] = Apids[i]; + atypes[i] = Atypes[i]; strn0cpy(alangs[i], ALangs[i], MAXLANGCODE2); } apids[MAXAPIDS] = 0; @@ -485,10 +493,10 @@ if (Channel->vpid && Channel->vtype) q += snprintf(q, sizeof(vpidbuf) - (q - vpidbuf), "=%d", Channel->vtype); *q = 0; - const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+cod', +10: paranoia + const int BufferSize = (MAXAPIDS + MAXDPIDS) * (5 + 1 + MAXLANGCODE2 + 5) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+...@type', +10: paranoia char apidbuf[BufferSize]; q = apidbuf; - q += IntArrayToString(q, Channel->apids, 10, Channel->alangs); + q += IntArrayToString(q, Channel->apids, 10, Channel->alangs, Channel->atypes); if (Channel->dpids[0]) { *q+
Re: [vdr] vdr and aac support
On 15.05.2010 20:00, Newsy Paper wrote: > hi Luis, > > seems like an ugly hack. Channel I'm receiving here has: > Stream_type: 15 (0x0f) [= ISO/IEC 13818-7 Audio with ADTS transport sytax] If you do this instead: --- pat.c 2010/03/27 15:17:46 2.9 +++ pat.c 2010/05/16 10:53:46 @@ -358,6 +358,8 @@ break; case 3: // STREAMTYPE_11172_AUDIO case 4: // STREAMTYPE_13818_AUDIO + case 0x0F: // ISO/IEC 13818-7 Audio with ADTS transport sytax + case 0x11: // ISO/IEC 14496-3 Audio with LATM transport syntax { if (NumApids < MAXAPIDS) { Apids[NumApids] = esPid; does this put the proper PID into the APID section? This may still not work with recordings, but I first want to know whether a proper PID is detected that way. Klaus > --- Luis Fernandes schrieb am Sa, 15.5.2010: > >> Von: Luis Fernandes >> Betreff: Re: [vdr] vdr and aac support >> An: "VDR Mailing List" >> Datum: Samstag, 15. Mai, 2010 17:40 Uhr >> hello everybody, in my case of he-aac >> streamtype 0x11 coming in, if >> you want to record or listen to xineliboutput i have to >> change in >> remux.c and pat.c in the following lines, >> >> pat.c >> >> case 0x04: / / STREAMTYPE_13818_AUDIO >> + case 0x11: / / ISO/IEC 14496-3 Audio with LATM transport >> syntax >> >> >> thus adds the audio pid correctly >> >> remux.c >> >> for (int n = 0; Channel->Apid(n); n++) { >> - i += MakeStream(buf >> + i, 0x04, Channel->Apid(n)); >> + i += MakeStream(buf + i, >> 0x11, Channel->Apid(n)); >> const char *Alang = >> Channel->Alang(n); >> >> case 0x04: / / STREAMTYPE_13818_AUDIO >> + case 0x11: / / ISO/IEC 14496-3 Audio with LATM transport >> syntax >> >> >> but this way I can not hear sound from other channels, only >> the >> channels with streamtype 0x11 >> is there any way to identify the audio streamtype in this >> line so that >> the MakeStream (buf + i, streamaudiotype, Channel-> APID >> (n)); >> >> Excuse my English >> Best regards >> >> 2010/5/15 Newsy Paper : >>> thx Klaus for your patch, but seems like there's >> something missing. Perhaps in remux.c? >>> DDpid and Apid are both 0 >>> If I enter aac pid in ddpid field it's set back to 0 >> again. >>> kind regards >>> >>> Newspaperman >>> >>> --- Klaus Schmidinger >> schrieb am Fr, 14.5.2010: >>>> Von: Klaus Schmidinger >>>> Betreff: Re: [vdr] vdr and aac support >>>> An: vdr@linuxtv.org >>>> Datum: Freitag, 14. Mai, 2010 16:13 Uhr >>>> On 07.05.2010 09:53, Newsy Paper >>>> wrote: >>>>> Hi! >>>>> >>>>> there are some channels using aac for audio. >> I.e. >>>> SABC1 at 23.5°East 10758 V 22000 8/9 DVB-S2 >>>>> Seems vdr doesn't support aac as no pid is >> entered >>>> neither for apid nor for ddpid. I think xine >> should support >>>> acc or doesn't it? So it should be no big deal do >> extend vdr >>>> to support aac. >>>> >>>> Please try this and see if it makes any >> difference: >>>> --- pat.c 2010/03/27 >>>> 15:17:46 2.9 >>>> +++ pat.c 2010/05/14 >>>> 14:12:31 >>>> @@ -401,6 +401,7 @@ >>>> >>>>switch >>>> (d->getDescriptorTag()) { >>>> >>>> case >>>> SI::AC3DescriptorTag: >>>> >>>> case >>>> SI::EnhancedAC3DescriptorTag: >>>> + >>>> case >>>> SI::AACDescriptorTag: >>>> >>>> >>>> dpid = esPid; >>>> >>>> >>>> ProcessCaDescriptors = true; >>>> >>>> >>>> break; >>>> >>>> --- eit.c 2010/01/08 >>>> 15:17:09 2.11 >>>> +++ eit.c 2010/05/14 >>>> 14:06:55 >>>> @@ -257,7 +257,7 @@ >>>> >>>> SI::ComponentDescriptor *cd = >>>> (SI::ComponentDescriptor *)d; >>>> >>>> uchar Stream = cd->getStreamContent(); >>>> >>>> uchar Type = cd->getComponentType(); >>>> - >>>>if (1 <= Stream && Stream <= >>>> 4 && Type != 0) { // 1=video, 2=audio, >> 3=subtitles, >>>> 4=AC3 >>>> + >>>>if (1 <= Stream && Stream <= >>>> 6 && Type != 0) { // 1=MPEG2-video, >> 2=MPEG1-audio, >>>> 3=subtitles, 4=AC3-audio, 5=H.264-video, >> 6=HEAAC-audio >>>> if (!Components) >>>> >>>> Components = new cComponents; >>>> >>>> char buffer[Utf8BufSize(256)]; >>>> >>>> >>>> Klaus ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
hi Luis, seems like an ugly hack. Channel I'm receiving here has: Stream_type: 15 (0x0f) [= ISO/IEC 13818-7 Audio with ADTS transport sytax] kind regards Newspaperman --- Luis Fernandes schrieb am Sa, 15.5.2010: > Von: Luis Fernandes > Betreff: Re: [vdr] vdr and aac support > An: "VDR Mailing List" > Datum: Samstag, 15. Mai, 2010 17:40 Uhr > hello everybody, in my case of he-aac > streamtype 0x11 coming in, if > you want to record or listen to xineliboutput i have to > change in > remux.c and pat.c in the following lines, > > pat.c > > case 0x04: / / STREAMTYPE_13818_AUDIO > + case 0x11: / / ISO/IEC 14496-3 Audio with LATM transport > syntax > > > thus adds the audio pid correctly > > remux.c > > for (int n = 0; Channel->Apid(n); n++) { > - i += MakeStream(buf > + i, 0x04, Channel->Apid(n)); > + i += MakeStream(buf + i, > 0x11, Channel->Apid(n)); > const char *Alang = > Channel->Alang(n); > > case 0x04: / / STREAMTYPE_13818_AUDIO > + case 0x11: / / ISO/IEC 14496-3 Audio with LATM transport > syntax > > > but this way I can not hear sound from other channels, only > the > channels with streamtype 0x11 > is there any way to identify the audio streamtype in this > line so that > the MakeStream (buf + i, streamaudiotype, Channel-> APID > (n)); > > Excuse my English > Best regards > > 2010/5/15 Newsy Paper : > > thx Klaus for your patch, but seems like there's > something missing. Perhaps in remux.c? > > > > DDpid and Apid are both 0 > > If I enter aac pid in ddpid field it's set back to 0 > again. > > > > kind regards > > > > Newspaperman > > > > --- Klaus Schmidinger > schrieb am Fr, 14.5.2010: > > > >> Von: Klaus Schmidinger > >> Betreff: Re: [vdr] vdr and aac support > >> An: vdr@linuxtv.org > >> Datum: Freitag, 14. Mai, 2010 16:13 Uhr > >> On 07.05.2010 09:53, Newsy Paper > >> wrote: > >> > Hi! > >> > > >> > there are some channels using aac for audio. > I.e. > >> SABC1 at 23.5°East 10758 V 22000 8/9 DVB-S2 > >> > Seems vdr doesn't support aac as no pid is > entered > >> neither for apid nor for ddpid. I think xine > should support > >> acc or doesn't it? So it should be no big deal do > extend vdr > >> to support aac. > >> > >> Please try this and see if it makes any > difference: > >> > >> --- pat.c 2010/03/27 > >> 15:17:46 2.9 > >> +++ pat.c 2010/05/14 > >> 14:12:31 > >> @@ -401,6 +401,7 @@ > >> > >> switch > >> (d->getDescriptorTag()) { > >> > >> case > >> SI::AC3DescriptorTag: > >> > >> case > >> SI::EnhancedAC3DescriptorTag: > >> + > >> case > >> SI::AACDescriptorTag: > >> > >> > >> dpid = esPid; > >> > >> > >> ProcessCaDescriptors = true; > >> > >> > >> break; > >> > >> --- eit.c 2010/01/08 > >> 15:17:09 2.11 > >> +++ eit.c 2010/05/14 > >> 14:06:55 > >> @@ -257,7 +257,7 @@ > >> > >> SI::ComponentDescriptor *cd = > >> (SI::ComponentDescriptor *)d; > >> > >> uchar Stream = cd->getStreamContent(); > >> > >> uchar Type = cd->getComponentType(); > >> - > >> if (1 <= Stream && Stream <= > >> 4 && Type != 0) { // 1=video, 2=audio, > 3=subtitles, > >> 4=AC3 > >> + > >> if (1 <= Stream && Stream <= > >> 6 && Type != 0) { // 1=MPEG2-video, > 2=MPEG1-audio, > >> 3=subtitles, 4=AC3-audio, 5=H.264-video, > 6=HEAAC-audio > >> > >> if (!Components) > >> > >> Components = new cComponents; > >> > >> char buffer[Utf8BufSize(256)]; > >> > >> > >> Klaus > >> > >> ___ > >> 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 > > > > ___ > 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
Re: [vdr] vdr and aac support
hello everybody, in my case of he-aac streamtype 0x11 coming in, if you want to record or listen to xineliboutput i have to change in remux.c and pat.c in the following lines, pat.c case 0x04: / / STREAMTYPE_13818_AUDIO + case 0x11: / / ISO/IEC 14496-3 Audio with LATM transport syntax thus adds the audio pid correctly remux.c for (int n = 0; Channel->Apid(n); n++) { - i += MakeStream(buf + i, 0x04, Channel->Apid(n)); + i += MakeStream(buf + i, 0x11, Channel->Apid(n)); const char *Alang = Channel->Alang(n); case 0x04: / / STREAMTYPE_13818_AUDIO + case 0x11: / / ISO/IEC 14496-3 Audio with LATM transport syntax but this way I can not hear sound from other channels, only the channels with streamtype 0x11 is there any way to identify the audio streamtype in this line so that the MakeStream (buf + i, streamaudiotype, Channel-> APID (n)); Excuse my English Best regards 2010/5/15 Newsy Paper : > thx Klaus for your patch, but seems like there's something missing. Perhaps > in remux.c? > > DDpid and Apid are both 0 > If I enter aac pid in ddpid field it's set back to 0 again. > > kind regards > > Newspaperman > > --- Klaus Schmidinger schrieb am Fr, 14.5.2010: > >> Von: Klaus Schmidinger >> Betreff: Re: [vdr] vdr and aac support >> An: vdr@linuxtv.org >> Datum: Freitag, 14. Mai, 2010 16:13 Uhr >> On 07.05.2010 09:53, Newsy Paper >> wrote: >> > Hi! >> > >> > there are some channels using aac for audio. I.e. >> SABC1 at 23.5°East 10758 V 22000 8/9 DVB-S2 >> > Seems vdr doesn't support aac as no pid is entered >> neither for apid nor for ddpid. I think xine should support >> acc or doesn't it? So it should be no big deal do extend vdr >> to support aac. >> >> Please try this and see if it makes any difference: >> >> --- pat.c 2010/03/27 >> 15:17:46 2.9 >> +++ pat.c 2010/05/14 >> 14:12:31 >> @@ -401,6 +401,7 @@ >> >> switch >> (d->getDescriptorTag()) { >> >> case >> SI::AC3DescriptorTag: >> >> case >> SI::EnhancedAC3DescriptorTag: >> + >> case >> SI::AACDescriptorTag: >> >> >> dpid = esPid; >> >> >> ProcessCaDescriptors = true; >> >> >> break; >> >> --- eit.c 2010/01/08 >> 15:17:09 2.11 >> +++ eit.c 2010/05/14 >> 14:06:55 >> @@ -257,7 +257,7 @@ >> >> SI::ComponentDescriptor *cd = >> (SI::ComponentDescriptor *)d; >> >> uchar Stream = cd->getStreamContent(); >> >> uchar Type = cd->getComponentType(); >> - >> if (1 <= Stream && Stream <= >> 4 && Type != 0) { // 1=video, 2=audio, 3=subtitles, >> 4=AC3 >> + >> if (1 <= Stream && Stream <= >> 6 && Type != 0) { // 1=MPEG2-video, 2=MPEG1-audio, >> 3=subtitles, 4=AC3-audio, 5=H.264-video, 6=HEAAC-audio >> >> if (!Components) >> >> Components = new cComponents; >> >> char buffer[Utf8BufSize(256)]; >> >> >> Klaus >> >> ___ >> 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 > ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
On Fri, 14 May 2010 16:13:36 +0200 Klaus Schmidinger wrote: > On 07.05.2010 09:53, Newsy Paper wrote: > > Hi! > > > > there are some channels using aac for audio. I.e. SABC1 at > > 23.5°East 10758 V 22000 8/9 DVB-S2 Seems vdr doesn't support aac as > > no pid is entered neither for apid nor for ddpid. I think xine > > should support acc or doesn't it? So it should be no big deal do > > extend vdr to support aac. > > Please try this and see if it makes any difference: > > --- pat.c 2010/03/27 15:17:46 2.9 > +++ pat.c 2010/05/14 14:12:31 > @@ -401,6 +401,7 @@ >switch (d->getDescriptorTag()) { > case SI::AC3DescriptorTag: > case SI::EnhancedAC3DescriptorTag: > +case SI::AACDescriptorTag: > dpid = esPid; > ProcessCaDescriptors = true; > break; > > --- eit.c 2010/01/08 15:17:09 2.11 > +++ eit.c 2010/05/14 14:06:55 > @@ -257,7 +257,7 @@ > SI::ComponentDescriptor *cd = > (SI::ComponentDescriptor *)d; uchar Stream = cd->getStreamContent(); > uchar Type = cd->getComponentType(); > - if (1 <= Stream && Stream <= 4 && Type != 0) { // > 1=video, 2=audio, 3=subtitles, 4=AC3 > + if (1 <= Stream && Stream <= 6 && Type != 0) { // > 1=MPEG2-video, 2=MPEG1-audio, 3=subtitles, 4=AC3-audio, > 5=H.264-video, 6=HEAAC-audio if (!Components) Components = new > cComponents; char buffer[Utf8BufSize(256)]; > The second change marks at least the HD Recordings as such - usefull for applications needing to know this w/o analyzing files :) Thanks ! ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] vdr and aac support
thx Klaus for your patch, but seems like there's something missing. Perhaps in remux.c? DDpid and Apid are both 0 If I enter aac pid in ddpid field it's set back to 0 again. kind regards Newspaperman --- Klaus Schmidinger schrieb am Fr, 14.5.2010: > Von: Klaus Schmidinger > Betreff: Re: [vdr] vdr and aac support > An: vdr@linuxtv.org > Datum: Freitag, 14. Mai, 2010 16:13 Uhr > On 07.05.2010 09:53, Newsy Paper > wrote: > > Hi! > > > > there are some channels using aac for audio. I.e. > SABC1 at 23.5°East 10758 V 22000 8/9 DVB-S2 > > Seems vdr doesn't support aac as no pid is entered > neither for apid nor for ddpid. I think xine should support > acc or doesn't it? So it should be no big deal do extend vdr > to support aac. > > Please try this and see if it makes any difference: > > --- pat.c 2010/03/27 > 15:17:46 2.9 > +++ pat.c 2010/05/14 > 14:12:31 > @@ -401,6 +401,7 @@ > > switch > (d->getDescriptorTag()) { > > case > SI::AC3DescriptorTag: > > case > SI::EnhancedAC3DescriptorTag: > + > case > SI::AACDescriptorTag: > > > dpid = esPid; > > > ProcessCaDescriptors = true; > > > break; > > --- eit.c 2010/01/08 > 15:17:09 2.11 > +++ eit.c 2010/05/14 > 14:06:55 > @@ -257,7 +257,7 @@ > > SI::ComponentDescriptor *cd = > (SI::ComponentDescriptor *)d; > > uchar Stream = cd->getStreamContent(); > > uchar Type = cd->getComponentType(); > - > if (1 <= Stream && Stream <= > 4 && Type != 0) { // 1=video, 2=audio, 3=subtitles, > 4=AC3 > + > if (1 <= Stream && Stream <= > 6 && Type != 0) { // 1=MPEG2-video, 2=MPEG1-audio, > 3=subtitles, 4=AC3-audio, 5=H.264-video, 6=HEAAC-audio > > if (!Components) > > Components = new cComponents; > > char buffer[Utf8BufSize(256)]; > > > Klaus > > ___ > 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
Re: [vdr] vdr and aac support
On 07.05.2010 09:53, Newsy Paper wrote: > Hi! > > there are some channels using aac for audio. I.e. SABC1 at 23.5°East 10758 V > 22000 8/9 DVB-S2 > Seems vdr doesn't support aac as no pid is entered neither for apid nor for > ddpid. I think xine should support acc or doesn't it? So it should be no big > deal do extend vdr to support aac. Please try this and see if it makes any difference: --- pat.c 2010/03/27 15:17:46 2.9 +++ pat.c 2010/05/14 14:12:31 @@ -401,6 +401,7 @@ switch (d->getDescriptorTag()) { case SI::AC3DescriptorTag: case SI::EnhancedAC3DescriptorTag: +case SI::AACDescriptorTag: dpid = esPid; ProcessCaDescriptors = true; break; --- eit.c 2010/01/08 15:17:09 2.11 +++ eit.c 2010/05/14 14:06:55 @@ -257,7 +257,7 @@ SI::ComponentDescriptor *cd = (SI::ComponentDescriptor *)d; uchar Stream = cd->getStreamContent(); uchar Type = cd->getComponentType(); - if (1 <= Stream && Stream <= 4 && Type != 0) { // 1=video, 2=audio, 3=subtitles, 4=AC3 + if (1 <= Stream && Stream <= 6 && Type != 0) { // 1=MPEG2-video, 2=MPEG1-audio, 3=subtitles, 4=AC3-audio, 5=H.264-video, 6=HEAAC-audio if (!Components) Components = new cComponents; char buffer[Utf8BufSize(256)]; Klaus ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr