summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2008-05-01 15:41:04 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2008-05-01 15:41:04 +0200
commit7d1b84a997b29f032132957b5b411c15accb2dcf (patch)
treec294f3f42429a19711691b009fab36679a51c0c8
parentdf12c00ff8699f23cb9176b3261ccf505633c434 (diff)
downloadvdr-7d1b84a997b29f032132957b5b411c15accb2dcf.tar.gz
vdr-7d1b84a997b29f032132957b5b411c15accb2dcf.tar.bz2
Implemented handling the standard component descriptor for AC3
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY7
-rw-r--r--eit.c4
-rw-r--r--epg.c8
-rw-r--r--menu.c4
-rw-r--r--recording.c6
-rw-r--r--vdr.54
7 files changed, 24 insertions, 11 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 6da4a699..f4e2b6a5 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1329,6 +1329,8 @@ Marc Hoppe <MarcHoppe@gmx.de>
Michael Pennewiß <M.Pennewiss@ARD-Digital.de>
for pointing out that an empty EPG event means there is currently no running event
+ for advance information about the use of the standard component descriptor for AC3
+ (stream=4) on the German ARD channels
Marcus Mönnig <minibbjd@gmx.de>
for adding some 3-letter language codes
diff --git a/HISTORY b/HISTORY
index ba7318d3..e8ece147 100644
--- a/HISTORY
+++ b/HISTORY
@@ -5762,12 +5762,17 @@ Video Disk Recorder Revision History
- Increased the time between checking the CAM status to 500ms to avoid problems
with some CAMs (reported by Arthur Konovalov).
-2008-04-19: Version 1.7.1
+2008-05-01: Version 1.7.1
- Adapted the tuning code to the new DVBFE_SET_DELSYS API (thanks to Reinhard Nissl).
VDR now uses the driver from http://jusst.de/hg/multiproto_plus.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Removed obsolete $(NCURSESLIB) from the Makefile.
+- Implemented handling the standard component descriptor for AC3 (stream=4), as it
+ will soon be used by the German ARD channels (thanks to Michael Pennewiß for
+ advance information about this change). The previously used "Premiere pseudo
+ standard" (stream=2, type=5) still works, but has apparently been wrongfully used
+ by broadcasters from the beginning.
2008-04-19: Version 1.6.0-2
diff --git a/eit.c b/eit.c
index d32629ef..774b6671 100644
--- a/eit.c
+++ b/eit.c
@@ -8,7 +8,7 @@
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
*
- * $Id: eit.c 2.1 2008/04/13 11:27:06 kls Exp $
+ * $Id: eit.c 2.2 2008/05/01 15:33:27 kls Exp $
*/
#include "eit.h"
@@ -219,7 +219,7 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bo
SI::ComponentDescriptor *cd = (SI::ComponentDescriptor *)d;
uchar Stream = cd->getStreamContent();
uchar Type = cd->getComponentType();
- if (1 <= Stream && Stream <= 3 && Type != 0) { // 1=video, 2=audio, 3=subtitles
+ if (1 <= Stream && Stream <= 4 && Type != 0) { // 1=video, 2=audio, 3=subtitles, 4=AC3
if (!Components)
Components = new cComponents;
char buffer[Utf8BufSize(256)];
diff --git a/epg.c b/epg.c
index e01a7827..0c52a0c8 100644
--- a/epg.c
+++ b/epg.c
@@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
- * $Id: epg.c 1.83 2008/02/16 16:09:12 kls Exp $
+ * $Id: epg.c 2.1 2008/05/01 14:53:55 kls Exp $
*/
#include "epg.h"
@@ -88,8 +88,10 @@ void cComponents::SetComponent(int Index, uchar Stream, uchar Type, const char *
tComponent *cComponents::GetComponent(int Index, uchar Stream, uchar Type)
{
for (int i = 0; i < numComponents; i++) {
- // In case of an audio stream the 'type' check actually just distinguishes between "normal" and "Dolby Digital":
- if (components[i].stream == Stream && (Stream != 2 || (components[i].type < 5) == (Type < 5))) {
+ if (components[i].stream == Stream && (
+ Type == 0 || // don't care about the actual Type
+ Stream == 2 && (components[i].type < 5) == (Type < 5) // fallback "Dolby" component according to the "Premiere pseudo standard"
+ )) {
if (!Index--)
return &components[i];
}
diff --git a/menu.c b/menu.c
index da90018b..7fa1e3f1 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 2.1 2008/04/12 11:37:17 kls Exp $
+ * $Id: menu.c 2.2 2008/05/01 14:37:24 kls Exp $
*/
#include "menu.h"
@@ -3147,6 +3147,8 @@ static void SetTrackDescriptions(int LiveChannel)
break;
case 3: cDevice::PrimaryDevice()->SetAvailableTrack(ttSubtitle, indexSubtitle++, 0, LiveChannel ? NULL : p->language, p->description);
break;
+ case 4: cDevice::PrimaryDevice()->SetAvailableTrack(ttDolby, indexDolby++, 0, LiveChannel ? NULL : p->language, p->description);
+ break;
}
}
}
diff --git a/recording.c b/recording.c
index 1535b46b..e0172ed7 100644
--- a/recording.c
+++ b/recording.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.c 1.162 2008/02/24 10:28:53 kls Exp $
+ * $Id: recording.c 2.1 2008/05/01 15:33:39 kls Exp $
*/
#include "recording.h"
@@ -297,7 +297,9 @@ cRecordingInfo::cRecordingInfo(const cChannel *Channel, const cEvent *Event)
for (int i = 0; i < MAXDPIDS; i++) {
const char *s = Channel->Dlang(i);
if (*s) {
- tComponent *Component = Components->GetComponent(i, 2, 5);
+ tComponent *Component = Components->GetComponent(i, 4, 0); // AC3 component according to the DVB standard
+ if (!Component)
+ Component = Components->GetComponent(i, 2, 5); // fallback "Dolby" component according to the "Premiere pseudo standard"
if (!Component)
Components->SetComponent(Components->NumComponents(), 2, 5, s, NULL);
else if (strlen(s) > strlen(Component->language))
diff --git a/vdr.5 b/vdr.5
index 6f35e86a..de1a369a 100644
--- a/vdr.5
+++ b/vdr.5
@@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the
.\" vdr distribution.
.\"
-.\" $Id: vdr.5 2.1 2008/04/12 10:46:32 kls Exp $
+.\" $Id: vdr.5 2.2 2008/05/01 15:33:49 kls Exp $
.\"
.TH vdr 5 "10 Feb 2008" "1.6" "Video Disk Recorder Files"
.SH NAME
@@ -652,7 +652,7 @@ l l.
<title> @is the title of the event
<short text> @is the short text of the event (typically the name of the episode etc.)
<description> @is the description of the event (any '|' characters will be interpreted as newlines)
-<stream> @is the stream content (1 = video, 2 = audio, 3 = subtitles)
+<stream> @is the stream content (1 = video, 2 = audio, 3 = subtitles, 4 = AC3)
<type> @is the stream type according to ETSI EN 300 468
<language> @is the three letter language code (optionally two codes, separated by '+')
<descr> @is the description of this stream component