diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2006-06-04 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2006-06-04 18:00:00 +0200 |
commit | 21f3eaf6c98751cc5931ccfd7bc123f7b7ac38f8 (patch) | |
tree | c04b9188a9dbc13033c630b68d72712eff900bed /libsi | |
parent | 177b875945e5898ebc07d79527e0ddc5e4e0f93d (diff) | |
download | vdr-patch-lnbsharing-21f3eaf6c98751cc5931ccfd7bc123f7b7ac38f8.tar.gz vdr-patch-lnbsharing-21f3eaf6c98751cc5931ccfd7bc123f7b7ac38f8.tar.bz2 |
Version 1.4.0-3vdr-1.4.0-3
- Fixed the PremiereContentTransmissionDescriptor in 'libsi' (thanks to Stefan
Huelswitt).
- Removed all the compatibility '#if APIVERSNUM...' stuff and instead increased
the API version number - plugins will have to be recompiled.
- Removed the call to pthread_setschedparam(childTid, SCHED_RR, 0) in thread.c,
because it caused a compiler warning with post-2.4 glibc (reported by Ville Skyttä).
Since the third parameter has to be non-null to have any effect, the call was
presumably a NOP, anyway.
- Fixed the 'clean-plugins' target in the Makefile to also remove additional
plugin libraries (thanks to Wayne Keer).
- Applied the fixes to moving and deleting channels from version 1.4.0-2 to the
SVDRP commands MOVC and DELC as well.
- Fixed handling the display of the '*' indicator in the "What's on now/next?"
menu, so that events that haven't been "seen" in the data stream within 30
seconds won't be shown as "running".
- Fixed handling tabbed item display in 'skincurses'.
- Increased the column spacing in the "Recordings" menu (was too small for the
'skincurses' plugin).
- When the 'skincurses' plugin is loaded, it automatically sets the 'curses'
skin as the current one. This doesn't modify the Setup.OSDSkin parameter, so
that after using 'skincurses' (for instance for debugging) the previously
selected skin will be used again.
- Added some log messages when setting the current skin.
- Only making a second attempt to set the current skin at startup if the first
attempt has failed.
- Now switching to non-VPS timers' channels 60 seconds before the timer starts
(if a free device is available), to allow for the updating of EPG data and CA
descriptors before the actual recording starts.
Diffstat (limited to 'libsi')
-rw-r--r-- | libsi/descriptor.c | 29 | ||||
-rw-r--r-- | libsi/descriptor.h | 24 | ||||
-rw-r--r-- | libsi/headers.h | 13 |
3 files changed, 47 insertions, 19 deletions
diff --git a/libsi/descriptor.c b/libsi/descriptor.c index 57a9248..1654a33 100644 --- a/libsi/descriptor.c +++ b/libsi/descriptor.c @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: descriptor.c 1.20 2006/04/17 12:19:15 kls Exp $ + * $Id: descriptor.c 1.21 2006/05/28 14:25:30 kls Exp $ * * ***************************************************************************/ @@ -806,21 +806,34 @@ int PremiereContentTransmissionDescriptor::getServiceId() const { return HILO(s->service_id); } -int PremiereContentTransmissionDescriptor::getMJD() const { +void PremiereContentTransmissionDescriptor::Parse() { + s=data.getData<const descr_premiere_content_transmission>(); + startDayLoop.setData(data+sizeof(descr_premiere_content_transmission), getLength()-sizeof(descr_premiere_content_transmission)); +} + +int PremiereContentTransmissionDescriptor::StartDayEntry::getMJD() const { return HILO(s->mjd); } -void PremiereContentTransmissionDescriptor::Parse() { - s=data.getData<const descr_premiere_content_transmission>(); - startTimeLoop.setData(data+sizeof(descr_premiere_content_transmission), getLength()-sizeof(descr_premiere_content_transmission)); +int PremiereContentTransmissionDescriptor::StartDayEntry::getLoopLength() const { + return s->start_time_loop; +} + +int PremiereContentTransmissionDescriptor::StartDayEntry::getLength() { + return sizeof(item_premiere_content_transmission_day)+getLoopLength(); +} + +void PremiereContentTransmissionDescriptor::StartDayEntry::Parse() { + s=data.getData<const item_premiere_content_transmission_day>(); + startTimeLoop.setData(data+sizeof(item_premiere_content_transmission_day), getLoopLength()); } -time_t PremiereContentTransmissionDescriptor::StartTimeEntry::getStartTime(int mjd) const { +time_t PremiereContentTransmissionDescriptor::StartDayEntry::StartTimeEntry::getStartTime(int mjd) const { return DVBTime::getTime(mjd >> 8, mjd & 0xff, s->start_time_h, s->start_time_m, s->start_time_s); } -void PremiereContentTransmissionDescriptor::StartTimeEntry::Parse() { - s=data.getData<const item_premiere_content_transmission_reference>(); +void PremiereContentTransmissionDescriptor::StartDayEntry::StartTimeEntry::Parse() { + s=data.getData<const item_premiere_content_transmission_time>(); } void ApplicationSignallingDescriptor::Parse() { diff --git a/libsi/descriptor.h b/libsi/descriptor.h index 338a1fd..c0c884f 100644 --- a/libsi/descriptor.h +++ b/libsi/descriptor.h @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: descriptor.h 1.14 2006/04/14 10:53:44 kls Exp $ + * $Id: descriptor.h 1.15 2006/05/28 14:25:30 kls Exp $ * * ***************************************************************************/ @@ -490,20 +490,30 @@ private: class PremiereContentTransmissionDescriptor : public Descriptor { public: - class StartTimeEntry : public LoopElement { + class StartDayEntry : public LoopElement { public: - virtual int getLength() { return sizeof(item_premiere_content_transmission_reference); } - time_t getStartTime(int mjd) const; //UTC + class StartTimeEntry : public LoopElement { + public: + virtual int getLength() { return sizeof(item_premiere_content_transmission_time); } + time_t getStartTime(int mjd) const; //UTC + protected: + virtual void Parse(); + private: + const item_premiere_content_transmission_time *s; + }; + StructureLoop<StartTimeEntry> startTimeLoop; + virtual int getLength(); + int getMJD() const; + int getLoopLength() const; protected: virtual void Parse(); private: - const item_premiere_content_transmission_reference *s; + const item_premiere_content_transmission_day *s; }; - StructureLoop<StartTimeEntry> startTimeLoop; + StructureLoop<StartDayEntry> startDayLoop; int getOriginalNetworkId() const; int getTransportStreamId() const; int getServiceId() const; - int getMJD() const; protected: virtual void Parse(); private: diff --git a/libsi/headers.h b/libsi/headers.h index a238ca6..afa3106 100644 --- a/libsi/headers.h +++ b/libsi/headers.h @@ -10,7 +10,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: headers.h 1.6 2006/04/14 10:53:44 kls Exp $ + * $Id: headers.h 1.7 2006/05/28 14:25:30 kls Exp $ * * ***************************************************************************/ @@ -1790,7 +1790,7 @@ struct descr_application_icons_descriptor_end { // 0xF2 Content Transmission Descriptor // http://dvbsnoop.sourceforge.net/examples/example-private-section.html -#define DESCR_PREMIERE_CONTENT_TRANSMISSION_LEN 11 +#define DESCR_PREMIERE_CONTENT_TRANSMISSION_LEN 8 struct descr_premiere_content_transmission { u_char descriptor_tag :8; @@ -1801,14 +1801,19 @@ struct descr_premiere_content_transmission { u_char original_network_id_lo :8; u_char service_id_hi :8; u_char service_id_lo :8; +}; + +#define ITEM_PREMIERE_CONTENT_TRANSMISSION_DAY_LEN 3 + +struct item_premiere_content_transmission_day { u_char mjd_hi :8; u_char mjd_lo :8; u_char start_time_loop :8; }; -#define ITEM_PREMIERE_CONTENT_TRANSMISSION_LEN 3 +#define ITEM_PREMIERE_CONTENT_TRANSMISSION_TIME_LEN 3 -struct item_premiere_content_transmission_reference { +struct item_premiere_content_transmission_time { u_char start_time_h :8; u_char start_time_m :8; u_char start_time_s :8; |