Version 1.5.1

- Added cDevice::HasCi() so that devices with Common Interface can be avoided
  when tuning to an FTA channel, thus preserving the CAM resources even on budget
  DVB cards (suggested by Petri Helin).
- Fixed i18n characters for the Hungarian texts (thanks to Thomas Günther).
- Now using cPipe instead of popen() in cCommand::Execute() to avoid problems
  with open file handles when starting background commands (thanks to Reinhard
  Nissl).
- Removed 'assert(0)' from cDvbSpuDecoder::setTime() (thanks to Marco Schlüßler).
- Fixed a possible crash when loading an invalid XPM file (thanks to Martin Wache).
- Updated satellite names in 'sources.conf' (thanks to Thilo Wunderlich).
- Adapted 'libsi' to DVB-S2 (thanks to Marco Schlüßler).
- Fixed handling error status in cDvbTuner::GetFrontendStatus() (thanks to
  Reinhard Nissl).
- Shutdown handling has been rewritten (thanks to Udo Richter).
- Plugins can now implement the new function WakeupTime() to request VDR to wake
  up at a particular time (thanks to Udo Richter).
- The HUP signal now forces a restart of VDR (thanks to Udo Richter).
- cThread::EmergencyExit() has been replaced by ShutdownHandler.RequestEmergencyExit().
- Several references to "button" in a remote control context have been changed
  to "key" (based on a report from Marko Mäkelä regarding the "Menu button closes"
  text). The "MenuButtonCloses" parameter in 'setup.conf' has therefore been
  renamed to "MenuKeyCloses", accordingly. This will result in an "unknown config
  parameter: MenuButtonCloses" error message in the log file, so you may want to
  remove that entry from your 'setup.conf' file.
- Simplified the error handling in cDvbTuner::GetFrontendStatus() (based on a
  discussion with Reinhard Nissl).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Increased the maximum number of DVB devices to 8 (thanks to Rolf Ahrenberg).
- The new Setup parameter "Channel entry timeout" can be used to customize the time
  since the last keypress until a numerically entered channel number is considered
  complete, and the channel is switched (suggested by Helmut Auer). Setting this
  parameter to 0 turns off the automatic channel switching, and the user will
  have to confirm the entry by pressing the "Ok" key.
This commit is contained in:
Klaus Schmidinger
2007-02-25 18:00:00 +01:00
parent 66ab78a40f
commit 9f42c33ef6
36 changed files with 1347 additions and 340 deletions

View File

@@ -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.8 2006/09/02 20:25:16 kls Exp $
* $Id: headers.h 1.9 2007/02/03 11:45:58 kls Exp $
* *
***************************************************************************/
@@ -942,9 +942,13 @@ struct descr_satellite_delivery_system {
#if BYTE_ORDER == BIG_ENDIAN
u_char west_east_flag :1;
u_char polarization :2;
u_char modulation :5;
u_char roll_off :2;
u_char modulation_system :1;
u_char modulation_type :2;
#else
u_char modulation :5;
u_char modulation_type :2;
u_char modulation_system :1;
u_char roll_off :2;
u_char polarization :2;
u_char west_east_flag :1;
#endif
@@ -1349,9 +1353,15 @@ struct descr_terrestrial_delivery {
u_char frequency_lo_lo :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char bandwidth :3;
u_char reserved1 :5;
u_char priority :1;
u_char time_slicing_indicator :1;
u_char mpe_fec_indicator :1;
u_char reserved1 :2;
#else
u_char reserved1 :5;
u_char reserved1 :2;
u_char mpe_fec_indicator :1;
u_char time_slicing_indicator :1;
u_char priority :1;
u_char bandwidth :3;
#endif
#if BYTE_ORDER == BIG_ENDIAN
@@ -1492,10 +1502,10 @@ struct descr_data_broadcast {
/* TBD */
};
/* 0x65 ca_system_descriptor */
/* 0x65 scrambling_descriptor */
#define DESCR_CA_SYSTEM_LEN XX
struct descr_ca_system {
#define DESCR_SCRAMBLING_LEN XX
struct descr_scrambling {
u_char descriptor_tag :8;
u_char descriptor_length :8;
/* TBD */
@@ -1628,6 +1638,189 @@ struct descr_service_identifier {
u_char descriptor_length :8;
};
/* 0x72 service_availbility_descriptor */
struct descr_service_availbility {
u_char descriptor_tag :8;
u_char descriptor_length :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char availability_flag :1;
u_char reserved :7;
#else
u_char reserved :7;
u_char availability_flag :1;
#endif
};
/* 0x73 default_authority_descriptor (ETSI TS 102 323) */
struct descr_default_authority {
u_char descriptor_tag :8;
u_char descriptor_length :8;
};
/* 0x74 related_content_descriptor (ETSI TS 102 323) */
struct descr_related_content {
u_char descriptor_tag :8;
u_char descriptor_length :8;
};
/* 0x75 tva_id_descriptor (ETSI TS 102 323) */
struct descr_tva_id {
u_char descriptor_tag :8;
u_char descriptor_length :8;
};
/* 0x76 content_identifier_descriptor (ETSI TS 102 323) */
struct descr_content_identifier {
u_char descriptor_tag :8;
u_char descriptor_length :8;
};
/* 0x77 time_slice_fec_identifier_descriptor (ETSI EN 301 192) */
struct descr_time_slice_fec_identifier {
u_char descriptor_tag :8;
u_char descriptor_length :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char time_slicing :1;
u_char mpe_fec :2;
u_char reserved :2;
u_char frame_size :3;
#else
u_char frame_size :3;
u_char reserved :2;
u_char mpe_fec :2;
u_char time_slicing :1;
#endif
u_char max_burst_duration :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char max_average_rate :4;
u_char time_slice_fec_id :4;
#else
u_char time_slice_fec_id :4;
u_char max_average_rate :4;
#endif
};
/* 0x78 ecm_repetition_rate_descriptor (ETSI EN 301 192) */
struct descr_ecm_repetition_rate {
u_char descriptor_tag :8;
u_char descriptor_length :8;
u_char ca_system_id_hi :8;
u_char ca_system_id_lo :8;
u_char ecm_repetition_rate_hi :8;
u_char ecm_repetition_rate_lo :8;
};
/* 0x79 s2_satellite_delivery_system_descriptor */
struct descr_s2_satellite_delivery_system {
u_char descriptor_tag :8;
u_char descriptor_length :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char scrambling_sequence_selector :1;
u_char multiple_input_stream_flag :1;
u_char backwards_compatibility_indicator :1;
u_char reserved :5;
#else
u_char reserved :5;
u_char backwards_compatibility_indicator :1;
u_char multiple_input_stream_flag :1;
u_char scrambling_sequence_selector :1;
#endif
};
struct descr_scrambling_sequence_selector {
#if BYTE_ORDER == BIG_ENDIAN
u_char reserved :6;
u_char scrambling_sequence_index_hi_lo :2;
#else
u_char scrambling_sequence_index_hi_lo :2;
u_char reserved :6;
#endif
u_char scrambling_sequence_index_lo_hi :8;
u_char scrambling_sequence_index_lo_lo :8;
};
/* 0x7A enhanced_ac3_descriptor */
struct descr_enhanced_ac3 {
u_char descriptor_tag :8;
u_char descriptor_length :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char component_type_flag :1;
u_char bsid_flag :1;
u_char mainid_flag :1;
u_char asvc_flag :1;
u_char mixinfoexists :1;
u_char substream1_flag :1;
u_char substream2_flag :1;
u_char substream3_flag :1;
#else
u_char substream3_flag :1;
u_char substream2_flag :1;
u_char substream1_flag :1;
u_char mixinfoexists :1;
u_char asvc_flag :1;
u_char mainid_flag :1;
u_char bsid_flag :1;
u_char component_type_flag :1;
#endif
};
/* 0x7B dts_descriptor */
struct descr_dts {
u_char descriptor_tag :8;
u_char descriptor_length :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char sample_rate_code :4;
u_char bit_rate_code :6;
u_char nblks :7;
u_char fsize_hi :6;
u_char fsize_lo :8;
u_char surround_mode :6;
u_char lfe_flag :1;
u_char extended_surround_flag :2;
#else
u_char extended_surround_flag :2;
u_char lfe_flag :1;
u_char surround_mode :6;
u_char fsize_lo :8;
u_char fsize_hi :6;
u_char nblks :7;
u_char bit_rate_code :6;
u_char sample_rate_code :4;
#endif
};
/* 0x7C aac_descriptor */
struct descr_aac {
u_char descriptor_tag :8;
u_char descriptor_length :8;
u_char profile_and_level :8;
#if BYTE_ORDER == BIG_ENDIAN
u_char aac_type_flag :1;
u_char reserved :7;
#else
u_char reserved :7;
u_char aac_type_flag :1;
#endif
};
/* 0x7F extension_descriptor */
struct descr_extension {
u_char descriptor_tag :8;
u_char descriptor_length :8;
u_char descriptor_tag_extension :8;
};
/* MHP 0x00 application_descriptor */
#define DESCR_APPLICATION_LEN 3