1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Implemented handling the standard component descriptor for AC3

This commit is contained in:
Klaus Schmidinger 2008-05-01 15:41:04 +02:00
parent df12c00ff8
commit 7d1b84a997
7 changed files with 24 additions and 11 deletions

View File

@ -1329,6 +1329,8 @@ Marc Hoppe <MarcHoppe@gmx.de>
Michael Pennewiß <M.Pennewiss@ARD-Digital.de> Michael Pennewiß <M.Pennewiss@ARD-Digital.de>
for pointing out that an empty EPG event means there is currently no running event 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> Marcus Mönnig <minibbjd@gmx.de>
for adding some 3-letter language codes for adding some 3-letter language codes

View File

@ -5762,12 +5762,17 @@ Video Disk Recorder Revision History
- Increased the time between checking the CAM status to 500ms to avoid problems - Increased the time between checking the CAM status to 500ms to avoid problems
with some CAMs (reported by Arthur Konovalov). 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). - 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. VDR now uses the driver from http://jusst.de/hg/multiproto_plus.
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Updated the Italian OSD texts (thanks to Diego Pierotto).
- Removed obsolete $(NCURSESLIB) from the Makefile. - 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 2008-04-19: Version 1.6.0-2

4
eit.c
View File

@ -8,7 +8,7 @@
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * 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>. * 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" #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; SI::ComponentDescriptor *cd = (SI::ComponentDescriptor *)d;
uchar Stream = cd->getStreamContent(); uchar Stream = cd->getStreamContent();
uchar Type = cd->getComponentType(); 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) if (!Components)
Components = new cComponents; Components = new cComponents;
char buffer[Utf8BufSize(256)]; char buffer[Utf8BufSize(256)];

8
epg.c
View File

@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by * Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * 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" #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) tComponent *cComponents::GetComponent(int Index, uchar Stream, uchar Type)
{ {
for (int i = 0; i < numComponents; i++) { 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 && (
if (components[i].stream == Stream && (Stream != 2 || (components[i].type < 5) == (Type < 5))) { 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--) if (!Index--)
return &components[i]; return &components[i];
} }

4
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "menu.h"
@ -3147,6 +3147,8 @@ static void SetTrackDescriptions(int LiveChannel)
break; break;
case 3: cDevice::PrimaryDevice()->SetAvailableTrack(ttSubtitle, indexSubtitle++, 0, LiveChannel ? NULL : p->language, p->description); case 3: cDevice::PrimaryDevice()->SetAvailableTrack(ttSubtitle, indexSubtitle++, 0, LiveChannel ? NULL : p->language, p->description);
break; break;
case 4: cDevice::PrimaryDevice()->SetAvailableTrack(ttDolby, indexDolby++, 0, LiveChannel ? NULL : p->language, p->description);
break;
} }
} }
} }

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "recording.h"
@ -297,7 +297,9 @@ cRecordingInfo::cRecordingInfo(const cChannel *Channel, const cEvent *Event)
for (int i = 0; i < MAXDPIDS; i++) { for (int i = 0; i < MAXDPIDS; i++) {
const char *s = Channel->Dlang(i); const char *s = Channel->Dlang(i);
if (*s) { 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) if (!Component)
Components->SetComponent(Components->NumComponents(), 2, 5, s, NULL); Components->SetComponent(Components->NumComponents(), 2, 5, s, NULL);
else if (strlen(s) > strlen(Component->language)) else if (strlen(s) > strlen(Component->language))

4
vdr.5
View File

@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the .\" License as specified in the file COPYING that comes with the
.\" vdr distribution. .\" 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" .TH vdr 5 "10 Feb 2008" "1.6" "Video Disk Recorder Files"
.SH NAME .SH NAME
@ -652,7 +652,7 @@ l l.
<title> @is the title of the event <title> @is the title of the event
<short text> @is the short text of the event (typically the name of the episode etc.) <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) <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 <type> @is the stream type according to ETSI EN 300 468
<language> @is the three letter language code (optionally two codes, separated by '+') <language> @is the three letter language code (optionally two codes, separated by '+')
<descr> @is the description of this stream component <descr> @is the description of this stream component