Fixed a wrong alignment in cCiDateTime::SendDateTime()

This commit is contained in:
Klaus Schmidinger 2014-01-22 09:44:30 +01:00
parent bc89bda239
commit c7316989f5
2 changed files with 4 additions and 1 deletions

View File

@ -7876,3 +7876,4 @@ Video Disk Recorder Revision History
- Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 10 in order to be able to record
channels that need more than 5 TS packets for detecting frame borders (reported by
Eike Sauer).
- Fixed a wrong alignment in cCiDateTime::SendDateTime().

4
ci.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: ci.c 2.12 2013/02/17 13:17:28 kls Exp $
* $Id: ci.c 2.12.1.1 2014/01/22 09:43:48 kls Exp $
*/
#include "ci.h"
@ -846,7 +846,9 @@ void cCiDateTime::SendDateTime(void)
int L = (M == 1 || M == 2) ? 1 : 0;
int MJD = 14956 + D + int((Y - L) * 365.25) + int((M + 1 + L * 12) * 30.6001);
#define DEC2BCD(d) uint8_t(((d / 10) << 4) + (d % 10))
#pragma pack(1)
struct tTime { uint16_t mjd; uint8_t h, m, s; short offset; };
#pragma pack()
tTime T = { mjd : htons(MJD), h : DEC2BCD(tm_gmt.tm_hour), m : DEC2BCD(tm_gmt.tm_min), s : DEC2BCD(tm_gmt.tm_sec), offset : short(htons(tm_loc.tm_gmtoff / 60)) };
bool OldDumpTPDUDataTransfer = DumpTPDUDataTransfer;
DumpTPDUDataTransfer &= DumpDateTime;