1 | Index: libs/libmythtv/eit.h
|
---|
2 | ===================================================================
|
---|
3 | --- libs/libmythtv/eit.h (Revision 11815)
|
---|
4 | +++ libs/libmythtv/eit.h (Arbeitskopie)
|
---|
5 | @@ -133,7 +133,7 @@
|
---|
6 | uint16_t partnumber;
|
---|
7 | uint16_t parttotal;
|
---|
8 | QString syndicatedepisodenumber;
|
---|
9 | - unsigned char fixup;
|
---|
10 | + uint32_t fixup;
|
---|
11 | unsigned char flags;
|
---|
12 | unsigned char category_type;
|
---|
13 |
|
---|
14 | Index: libs/libmythtv/eitfixup.cpp
|
---|
15 | ===================================================================
|
---|
16 | --- libs/libmythtv/eitfixup.cpp (Revision 11815)
|
---|
17 | +++ libs/libmythtv/eitfixup.cpp (Arbeitskopie)
|
---|
18 | @@ -47,7 +47,8 @@
|
---|
19 | m_mcaActors("(.*\\.)\\s+([^\\.]+ [A-Z][^\\.]+)\\.\\s*"),
|
---|
20 | m_mcaActorsSeparator("(,\\s+)"),
|
---|
21 | m_mcaYear("(.*) \\((\\d{4})\\)\\s*$"),
|
---|
22 | - m_mcaCC("(.*)\\. HI Subtitles$")
|
---|
23 | + m_mcaCC("(.*)\\. HI Subtitles$"),
|
---|
24 | + m_RTLSubtitle("([^\\.]+)\\.\\s+(.+)")
|
---|
25 | {
|
---|
26 | }
|
---|
27 |
|
---|
28 | @@ -83,6 +84,9 @@
|
---|
29 | if (kFixMCA & event.fixup)
|
---|
30 | FixMCA(event);
|
---|
31 |
|
---|
32 | + if (kFixRTL & event.fixup)
|
---|
33 | + FixRTL(event);
|
---|
34 | +
|
---|
35 | if (event.fixup)
|
---|
36 | {
|
---|
37 | if (!event.title.isEmpty())
|
---|
38 | @@ -727,3 +731,40 @@
|
---|
39 | event.category_type = kCategoryMovie;
|
---|
40 | }
|
---|
41 | }
|
---|
42 | +
|
---|
43 | +/** \fn EITFixUp::FixRTL(DBEvent&) const
|
---|
44 | + * \brief Use this to standardise the RTL group guide in Germany.
|
---|
45 | + */
|
---|
46 | +void EITFixUp::FixRTL(DBEvent &event) const
|
---|
47 | +{
|
---|
48 | + const uint SUBTITLE_PCT = 35; //% of description to allow subtitle up to
|
---|
49 | + const uint SUBTITLE_MAX_LEN = 128; // max length of subtitle field in db.
|
---|
50 | + int position;
|
---|
51 | + QRegExp tmpExp1;
|
---|
52 | +
|
---|
53 | + // No need to continue without a description.
|
---|
54 | + if (event.description.length() <= 0)
|
---|
55 | + {
|
---|
56 | + return;
|
---|
57 | + }
|
---|
58 | + // Try to find subtitle in description
|
---|
59 | + tmpExp1 = m_RTLSubtitle;
|
---|
60 | + if ((position = tmpExp1.search(event.description)) != -1)
|
---|
61 | + {
|
---|
62 | + if ((tmpExp1.cap(1).length() < SUBTITLE_MAX_LEN) &&
|
---|
63 | + ((tmpExp1.cap(1).length()*100)/event.description.length() <
|
---|
64 | + SUBTITLE_PCT))
|
---|
65 | + {
|
---|
66 | + event.subtitle = tmpExp1.cap(1);
|
---|
67 | + event.description = tmpExp1.cap(2);
|
---|
68 | + }
|
---|
69 | + }
|
---|
70 | +
|
---|
71 | +}
|
---|
72 | Index: libs/libmythtv/eithelper.cpp
|
---|
73 | ===================================================================
|
---|
74 | --- libs/libmythtv/eithelper.cpp (Revision 11815)
|
---|
75 | +++ libs/libmythtv/eithelper.cpp (Arbeitskopie)
|
---|
76 | @@ -562,6 +562,10 @@
|
---|
77 | // MultiChoice Africa
|
---|
78 | fix[ 6144U << 16] = EITFixUp::kFixMCA;
|
---|
79 |
|
---|
80 | + // RTL Subtitle parsing
|
---|
81 | + fix[ 1089LL << 32 | 1 << 16] = EITFixUp::kFixRTL;// DVB-S
|
---|
82 | + fix[ 773LL << 32 | 8468U << 16] = EITFixUp::kFixRTL;// DVB-T Berlin
|
---|
83 | +
|
---|
84 | ///////////////////////////////////////////////////////////////////////////
|
---|
85 | // Special Early fixups for providers that break DVB EIT spec.
|
---|
86 | // transport_id<<32 | netword_id<<16 | service_id
|
---|
87 | Index: libs/libmythtv/eitfixup.h
|
---|
88 | ===================================================================
|
---|
89 | --- libs/libmythtv/eitfixup.h (Revision 11815)
|
---|
90 | +++ libs/libmythtv/eitfixup.h (Arbeitskopie)
|
---|
91 | @@ -28,6 +28,7 @@
|
---|
92 | kFixSubtitle = 0x0020,
|
---|
93 | kFixAUStar = 0x0040,
|
---|
94 | kFixMCA = 0x0080,
|
---|
95 | + kFixRTL = 0x0400,
|
---|
96 |
|
---|
97 | // Early fixups
|
---|
98 | kEFixForceISO8859_1 = 0x0100,
|
---|
99 | @@ -54,6 +55,7 @@
|
---|
100 | void FixComHem(DBEvent &event, bool parse_subtitle) const; // Sweden DVB-C
|
---|
101 | void FixAUStar(DBEvent &event) const; // Australia DVB-S
|
---|
102 | void FixMCA(DBEvent &event) const; // MultiChoice Africa DVB-S
|
---|
103 | + void FixRTL(DBEvent &event) const; // RTL group DVB
|
---|
104 |
|
---|
105 | const QRegExp m_bellYear;
|
---|
106 | const QRegExp m_bellActors;
|
---|
107 | @@ -92,6 +94,7 @@
|
---|
108 | const QRegExp m_mcaActorsSeparator;
|
---|
109 | const QRegExp m_mcaYear;
|
---|
110 | const QRegExp m_mcaCC;
|
---|
111 | + const QRegExp m_RTLSubtitle;
|
---|
112 | };
|
---|
113 |
|
---|
114 | #endif // EITFIXUP_H
|
---|