Fixed handling language codes and descriptions of recorded audio tracks

This commit is contained in:
Klaus Schmidinger 2006-10-07 13:59:21 +02:00
parent 09c6bced8d
commit 29c0f9e1e0
4 changed files with 10 additions and 3 deletions

View File

@ -2013,3 +2013,5 @@ Boguslaw Juza <bogdan@uci.agh.edu.pl>
for reporting that events without an ExtendedEventDescriptor may get duplicate for reporting that events without an ExtendedEventDescriptor may get duplicate
information in their ShortText through the EPG bugfixes in case they are received information in their ShortText through the EPG bugfixes in case they are received
again again
for reporting a problem with language codes of recorded audio tracks on channels with
multiple tracks

View File

@ -4945,3 +4945,6 @@ Video Disk Recorder Revision History
are received again). are received again).
- Fixed handling video directory updates in case an other process has touched the - Fixed handling video directory updates in case an other process has touched the
.update file after the last NeedsUpdate() check (thanks to Petri Hintukainen). .update file after the last NeedsUpdate() check (thanks to Petri Hintukainen).
- Fixed handling language codes and descriptions of recorded audio tracks on channels
with multiple tracks where not all of them appear in the event data (reported by
Boguslaw Juza).

5
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.79 2006/08/05 10:04:17 kls Exp $ * $Id: epg.c 1.80 2006/10/07 13:47:28 kls Exp $
*/ */
#include "epg.h" #include "epg.h"
@ -87,7 +87,8 @@ 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++) {
if (components[i].stream == Stream && components[i].type == Type) { // 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 (!Index--) if (!Index--)
return &components[i]; return &components[i];
} }

3
epg.h
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.h 1.34 2006/03/25 12:39:39 kls Exp $ * $Id: epg.h 1.35 2006/10/07 13:47:19 kls Exp $
*/ */
#ifndef __EPG_H #ifndef __EPG_H
@ -43,6 +43,7 @@ public:
void SetComponent(int Index, uchar Stream, uchar Type, const char *Language, const char *Description); void SetComponent(int Index, uchar Stream, uchar Type, const char *Language, const char *Description);
tComponent *Component(int Index) const { return (Index < numComponents) ? &components[Index] : NULL; } tComponent *Component(int Index) const { return (Index < numComponents) ? &components[Index] : NULL; }
tComponent *GetComponent(int Index, uchar Stream, uchar Type); // Gets the Index'th component of Stream and Type, skipping other components tComponent *GetComponent(int Index, uchar Stream, uchar Type); // Gets the Index'th component of Stream and Type, skipping other components
// In case of an audio stream the 'type' check actually just distinguishes between "normal" and "Dolby Digital"
}; };
class cSchedule; class cSchedule;