Skip to content
Browse files

Merge remote-tracking branch 'remotes/origin/master' into FEAT-3687-R…

…ework_of_SQLite_implementation
  • Loading branch information...
2 parents b707992 + 4e1d6f6 commit af88bd022b13dcdada6c9d21fa2333fb5ba4c5aa @Sebastiii Sebastiii committed May 11, 2012
Showing with 15,004 additions and 3,122 deletions.
  1. +2 −2 Common-MP-TVE3/DirectShowLib/DirectShowLib.csproj
  2. +1 −1 Common-MP-TVE3/External/Gentle.NET/Source/SolutionInfo.cs
  3. BIN DirectShowFilters/TsReader/bin/Debug/TsReader.ax
  4. BIN DirectShowFilters/TsReader/bin/Debug/TsReader.pdb
  5. BIN DirectShowFilters/TsReader/bin/Release/TsReader.ax
  6. +234 −72 DirectShowFilters/TsReader/source/DeMultiplexer.cpp
  7. +11 −0 DirectShowFilters/TsReader/source/DeMultiplexer.h
  8. +47 −20 DirectShowFilters/TsReader/source/FrameHeaderParser.cpp
  9. +13 −11 DirectShowFilters/TsReader/source/FrameHeaderParser.h
  10. +6 −6 DirectShowFilters/TsReader/source/MpegPesParser.cpp
  11. +4 −2 DirectShowFilters/TsReader/source/MpegPesParser.h
  12. +11 −1 DirectShowFilters/TsReader/source/TsReader.cpp
  13. +2 −0 DirectShowFilters/TsReader/source/TsReader.h
  14. BIN DirectShowFilters/TsWriter/bin/Debug/TsWriter.ax
  15. BIN DirectShowFilters/TsWriter/bin/Debug/TsWriter.pdb
  16. BIN DirectShowFilters/TsWriter/bin/Debug/vc100.pdb
  17. BIN DirectShowFilters/TsWriter/bin/Release/TsWriter.ax
  18. +2 −1 DirectShowFilters/TsWriter/source/DiskRecorder.cpp
  19. +4 −1 DirectShowFilters/TsWriter/source/PmtGrabber.cpp
  20. +1 −1 DirectShowFilters/TsWriter/source/PmtParser.cpp
  21. +1 −1 DirectShowFilters/TsWriter/source/PmtParser.h
  22. +1 −0 DirectShowFilters/TsWriter/source/TsWriter.cpp
  23. +21 −5 DirectShowFilters/TsWriter/source/epgDecoder.cpp
  24. +2 −1 DirectShowFilters/TsWriter/source/epgDecoder.h
  25. +1 −1 Tools/InstallationScripts/include/ProcessMacros.nsh
  26. +24 −0 TvEngine3/TVLibrary/SetupTv/App.config
  27. +0 −1 TvEngine3/TVLibrary/SetupTv/Sections/CardAtsc.Designer.cs
  28. +0 −2 TvEngine3/TVLibrary/SetupTv/Sections/CardDvbIP.Designer.cs
  29. +1 −1 TvEngine3/TVLibrary/SetupTv/Sections/Epg.Designer.cs
  30. +2 −2 TvEngine3/TVLibrary/TVDatabase/TVDatabase.csproj
  31. +2 −2 TvEngine3/TVLibrary/TVDatabase/TvBusinessLayer/TvBusinessLayer.csproj
  32. BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Common.dll
  33. BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Framework.dll
  34. BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Provider.MySQL.dll
  35. BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Provider.SQLServer.dll
  36. +9 −3 TvEngine3/TVLibrary/TVLibrary/Implementations/DVB/ConditionalAccess/ConditionalAccess.cs
  37. +8 −0 .../TVLibrary/TVLibrary/Implementations/DVB/ConditionalAccess/DigitalEverywhere/DigitalEveryWhere.cs
  38. +2 −2 TvEngine3/TVLibrary/TVLibrary/TVLibrary.csproj
  39. +55 −155 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Austria.KufNet.xml
  40. +13 −3 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Austria.Salzburg Elsnet.xml
  41. +9 −9 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Denmark.Stofa Aarhus.xml
  42. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Denmark.Stofa Sonderborg.xml
  43. +16 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Denmark.YouSee Nordjylland.xml
  44. +63 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Denmark.waoo.xml
  45. +0 −93 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Finland.Lappeenranta.xml
  46. +63 −24 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Finland.Oulu-DNA.xml
  47. +10 −5 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Finland.Rauma-DNA.xml
  48. +36 −46 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbc/{Switzerland.cablecom.xml → Finland.Sonera.xml}
  49. +52 −2 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Germany.Kabel Deutschland (KDG) Berlin.xml
  50. +47 −2 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Germany.Kabel Deutschland (KDG).xml
  51. +10 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Germany.KabelBW.xml
  52. +5 −10 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Germany.Unitymedia NRW.xml
  53. +203 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Russia.Rico-TV (SPb).xml
  54. +55 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Spain.Euskaltel.xml
  55. +238 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Sweden.Comhem Jonkoping.xml
  56. +0 −123 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Sweden.Comhem Stockholm NEW.xml
  57. +3 −18 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Sweden.Comhem Stockholm.xml
  58. +1,508 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Switzerland.FULL [SR6900_256QAM].xml
  59. +3,013 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Switzerland.FULL [SR6900_64+256QAM].xml
  60. +1,508 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Switzerland.FULL [SR6900_64QAM].xml
  61. +153 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Switzerland.TeleZug.585.xml
  62. +218 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Switzerland.UPC Cablecom [DE-FR].xml
  63. +33 −48 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Switzerland.interGGA-GGAPratteln-EBM.xml
  64. +31 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Switzerland.sasag.xml
  65. +274 −0 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Aalsmeer-Uithoorn (ID 2257).xml
  66. +274 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW (ID 2249).xml
  67. +94 −0 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Basic-pakket (ID 2250).xml
  68. +274 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Doorn (ID 3667).xml
  69. +250 −0 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Hilvarenbeek (ID 4458).xml
  70. +274 −0 ...ine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_IJsselstein (ID 7224).xml
  71. +220 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Loenen (ID 5636).xml
  72. +274 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Maassluis (ID 6227).xml
  73. +244 −0 ...3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Midden-Holland (ID 4683).xml
  74. +274 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Schiedam (ID 7244).xml
  75. +298 −0 ...ine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.CAIW_Test_intern (ID 8378).xml
  76. +88 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Caiway_RTV (ID 2222).xml
  77. +274 −0 ...e3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Capelle_a-d_IJssel (ID 2273).xml
  78. +244 −0 .../TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Kabel_Midden-Holland (ID 4683).xml
  79. +274 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Oudenbosch (ID 6536).xml
  80. +52 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.REKAM (ID 777).xml
  81. +14 −14 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 1111.xml
  82. +13 −13 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 5555.xml
  83. +35 −35 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 7271.xml
  84. +15 −20 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 7800.xml
  85. +15 −15 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 7900.xml
  86. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 8400.xml
  87. +17 −17 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 8600.xml
  88. +13 −13 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 8888.xml
  89. +21 −21 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 9001.xml
  90. +19 −19 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 9003.xml
  91. +34 −34 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 9004.xml
  92. +12 −12 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 9600.xml
  93. +20 −20 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/The Netherlands.Ziggo NID 9700.xml
  94. +7 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbip/ImagenioTest.m3u
  95. +17 −33 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbip/Norway.TelenorFiber.m3u
  96. +318 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Brazil.All Regions.xml
  97. +75 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Catalunya.Barcelona - Collserola.xml
  98. +198 −202 ...rver.Base/TuningParameters/dvbt/{UK.Anglia.xml → Catalunya.Catalunya - Totes les frequencies.xml}
  99. +39 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Catalunya.Girona - Rocacorba.xml
  100. +39 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Catalunya.Lleida - Alpicat.xml
  101. +51 −0 ...rary/TVServer.Base/TuningParameters/dvbt/Catalunya.Tarragona i Camp de Tarragona - La Mussara.xml
  102. +39 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Catalunya.Terres de l'Ebre - Collredo.xml
  103. +6 −6 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/France.Nantes.xml
  104. +33 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Germany.Hannover.xml
  105. +2 −2 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Germany.Rhein_Main.xml
  106. +17 −17 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{UK.Dover B.xml → Hungary.Budapest.xml}
  107. +6 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Auckland - Infill.xml
  108. +11 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Auckland - Waiatarua.xml
  109. +12 −2 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Christchurch - Sugarloaf.xml
  110. +4 −9 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Dunedin - Mt Cargill.xml
  111. +4 −4 ...TuningParameters/dvbt/{New Zealand.Nelson - Gramians.xml → New Zealand.Gisborne - Parikanapa.xml}
  112. +5 −5 ...ngParameters/dvbt/{New Zealand.Dunedin - Infill.xml → New Zealand.Gisborne - Wheatstone Road.xml}
  113. +4 −4 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Hawkes Bay - Mt Erin.xml
  114. +4 −4 ...ters/dvbt/{New Zealand.Gisbourne - Whakapunake.xml → New Zealand.Hawkes Bay - Napier Airport.xml}
  115. +3 −8 ...arameters/dvbt/{New Zealand.Taupo - Tuhingamata.xml → New Zealand.Invercargill - Forest Hill.xml}
  116. +4 −9 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Kapiti - Ngarara.xml
  117. +4 −9 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Manawatu - Wharite.xml
  118. +10 −5 ...uningParameters/dvbt/{New Zealand.Southland - Hedgehope.xml → New Zealand.Nelson - Kaka Hill.xml}
  119. +33 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Nelson - Mt Campbell.xml
  120. +4 −4 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Rotorua - Pukepoto.xml
  121. +3 −13 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Taranaki - Mt Taranaki.xml
  122. +18 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Taupo - Whakaroa.xml
  123. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Tauranga - Kopukairoa.xml
  124. +0 −23 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Tauranga - Kopukairua.xml
  125. +4 −4 ...Parameters/dvbt/{New Zealand.Hawkes Bay - Hospital Hill.xml → New Zealand.Timaru - Cave Hill.xml}
  126. +16 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Waikato - Hamilton.xml
  127. +20 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Waikato - Te Aroha.xml
  128. +18 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Wairarapa - Popoiti.xml
  129. +3 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Wanganui - Mt Jowett.xml
  130. +11 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Wellington - Infill.xml
  131. +12 −2 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Wellington - Mt Kaukau.xml
  132. +0 −23 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Whangarei - Horokaka.xml
  133. +3 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/New Zealand.Whangarei - Parahaki.xml
  134. +10 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Norway.Buskerud - Ringerike.xml
  135. +7 −7 ...Base/TuningParameters/dvbt/{New Zealand.Christchurch - Infill.xml → Norway.Vestfold - Larvik.xml}
  136. +35 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Spain.Baleares.xml
  137. +8 −8 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Adolfström.xml → Sweden.Adolfstrom.xml}
  138. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Flyggsjö.xml → Sweden.Agnas.xml}
  139. +8 −8 ...brary/TVServer.Base/TuningParameters/dvbt/{Sweden.Björkliden Tornehamn.xml → Sweden.Akersjon.xml}
  140. +10 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Alafors.xml
  141. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Borgafjäll.xml → Sweden.Algsjo.xml}
  142. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Alingsas Mariedal.xml
  143. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Alingsås Mariedal.xml
  144. +0 −10 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.All Regions.xml
  145. +28 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Kungälv.xml → Sweden.Alvangen.xml}
  146. +8 −8 ...brary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hedenäset.xml → Sweden.Alvdalen Brunnsberg.xml}
  147. +8 −8 ...ine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Fullsjön.xml → Sweden.Alvdalsasen.xml}
  148. +8 −8 ...brary/TVServer.Base/TuningParameters/dvbt/{Sweden.Bjurberget Hemtjärn.xml → Sweden.Alvsbacka.xml}
  149. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Alvsbyn.xml
  150. +8 −8 ...Server.Base/TuningParameters/dvbt/{Sweden.Ammarnäs Ribovardo.xml → Sweden.Ammarnas Ribovardo.xml}
  151. +8 −8 ...TVServer.Base/TuningParameters/dvbt/{Sweden.Näverede Öberget.xml → Sweden.Ammarnas Tjultrask.xml}
  152. +8 −8 .../TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Ekshärad Ekesberget.xml → Sweden.Amot.xml}
  153. +8 −8 ...Server.Base/TuningParameters/dvbt/{Sweden.Åmotfors Kroppstad.xml → Sweden.Amotfors Kroppstad.xml}
  154. +8 −8 ...Library/TVServer.Base/TuningParameters/dvbt/{Sweden.Junsele Hamptjärnsberget.xml → Sweden.An.xml}
  155. +1 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Andersvattnet Ersmyrberget.xml
  156. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Ange Snoberg.xml
  157. +8 −8 ...gine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hjo Grevbäck.xml → Sweden.Angebo.xml}
  158. +38 −38 ...y/TVServer.Base/TuningParameters/dvbt/{Sweden.Hörby Sallerup.xml → Sweden.Angelholm Vegeholm.xml}
  159. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Håkafot.xml → Sweden.Angersjo.xml}
  160. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Are.xml
  161. +28 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Töcksfors.xml → Sweden.Arjang.xml}
  162. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Färila.xml → Sweden.Arosjokk.xml}
  163. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Arvidsjaur Jultrask.xml
  164. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Arvidsjaur Julträsk.xml
  165. +8 −8 ....Base/TuningParameters/dvbt/{Sweden.Arvika Örshultaberget.xml → Sweden.Arvika Orshultaberget.xml}
  166. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Storfjäten.xml → Sweden.As.xml}
  167. +8 −8 ...Server.Base/TuningParameters/dvbt/{Sweden.Frankrikegården Frankrike.xml → Sweden.Asele Aslia.xml}
  168. +8 −8 .../TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Bjurträsk.xml → Sweden.Asmon Sormoflo.xml}
  169. +28 −28 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Åtvidaberg.xml → Sweden.Atvidaberg.xml}
  170. +33 −28 ...gine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Bäckefors.xml → Sweden.Backefors.xml}
  171. +8 −8 ...rver.Base/TuningParameters/dvbt/{Sweden.Bergsjö Bålleberget.xml → Sweden.Bergsjo Balleberget.xml}
  172. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Billsjö.xml → Sweden.Billsjo.xml}
  173. +8 −8 ...ary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hålaforsen.xml → Sweden.Bjorkliden Tornehamn.xml}
  174. +8 −8 ...gine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Björksele.xml → Sweden.Bjorksele.xml}
  175. +8 −8 ...TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Björkvattnet.xml → Sweden.Bjorkvattnet.xml}
  176. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Björna.xml → Sweden.Bjorna.xml}
  177. +8 −8 ...brary/TVServer.Base/TuningParameters/dvbt/{Sweden.Häljeboda.xml → Sweden.Bjurberget Hemtjarn.xml}
  178. +8 −8 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Rörbäcksnäs.xml → Sweden.Bjurtrask.xml}
  179. +8 −8 ...TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Boden Skogså.xml → Sweden.Boden Skogsa.xml}
  180. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Bollnas.xml
  181. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Bollnäs.xml
  182. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Bönhamn.xml → Sweden.Bonhamn.xml}
  183. +38 −38 ...y/TVServer.Base/TuningParameters/dvbt/{Sweden.Borås Dalsjöfors.xml → Sweden.Boras Dalsjofors.xml}
  184. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Boras Sjobo.xml
  185. +8 −8 ...ine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hädanberg.xml → Sweden.Borgafjall.xml}
  186. +28 −28 ...rary/TVServer.Base/TuningParameters/dvbt/{Sweden.Brömsebro.xml → Sweden.Borgholm Ramsattra 2.xml}
  187. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Borgholm Ramsättra 2.xml
  188. +8 −8 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Borgsjöbyn.xml → Sweden.Borgsjobyn.xml}
  189. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Borlange Idkerberget.xml
  190. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Borlange Nygardarna.xml
  191. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Borlänge Idkerberget.xml
  192. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Borlänge Nygårdarna.xml
  193. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Borås Sjöbo.xml
  194. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Bredåker.xml → Sweden.Bredaker.xml}
  195. +8 −8 ....Base/TuningParameters/dvbt/{Sweden.Bredbyn Västerfannbyn.xml → Sweden.Bredbyn Vasterfannbyn.xml}
  196. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Bredsjön.xml → Sweden.Bredsjon.xml}
  197. +28 −28 ...Library/TVServer.Base/TuningParameters/dvbt/{Sweden.Emmaboda Bälshult.xml → Sweden.Bromsebro.xml}
  198. +8 −8 ...Server.Base/TuningParameters/dvbt/{Sweden.Bydalen Hovdehögen.xml → Sweden.Bydalen Hovdehogen.xml}
  199. +8 −8 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Bygdeträsk.xml → Sweden.Bygdetrask.xml}
  200. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Dådran.xml → Sweden.Dadran.xml}
  201. +8 −8 ...3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Dals Långed.xml → Sweden.Dals Langed.xml}
  202. +11 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Degerfors.xml
  203. +8 −8 ...TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Duvnäs Bäsna.xml → Sweden.Duvnas Basna.xml}
  204. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Duvnäs.xml → Sweden.Duvnas.xml}
  205. +8 −8 ...Server.Base/TuningParameters/dvbt/{Sweden.Edsleskog Högheden.xml → Sweden.Edsleskog Hogheden.xml}
  206. +8 −8 ...ibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Harrsjön.xml → Sweden.Eksharad Ekesberget.xml}
  207. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Ellös.xml → Sweden.Ellos.xml}
  208. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Emmaboda Balshult.xml
  209. +10 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Enviken.xml
  210. +8 −8 ...Server.Base/TuningParameters/dvbt/{Sweden.Erikslund Bergåsen.xml → Sweden.Erikslund Bergasen.xml}
  211. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Fagersta Jattasen.xml
  212. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Fagersta Jättåsen.xml
  213. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Falträsk.xml → Sweden.Faltrask.xml}
  214. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Falun Lovberget.xml
  215. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Falun Lövberget.xml
  216. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Gargnäs.xml → Sweden.Farila.xml}
  217. +28 −28 ...ary/TVServer.Base/TuningParameters/dvbt/{Sweden.Fårö Ajkesträsk.xml → Sweden.Faro Ajkestrask.xml}
  218. +28 −28 ...brary/TVServer.Base/TuningParameters/dvbt/{Sweden.Fårösund Bunge.xml → Sweden.Farosund Bunge.xml}
  219. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Filipstad Klockarhojden.xml
  220. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Filipstad Klockarhöjden.xml
  221. +10 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Finnveden.xml
  222. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Fjäl.xml → Sweden.Fjal.xml}
  223. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Fjällsta.xml → Sweden.Fjallsta.xml}
  224. +8 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Flarke.xml
  225. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Agnäs.xml → Sweden.Flyggsjo.xml}
  226. +0 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Flärke.xml
  227. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Fölsbyn.xml → Sweden.Folsbyn.xml}
  228. +8 −8 ...gine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Forsnäset.xml → Sweden.Forsnaset.xml}
  229. +8 −8 .../TVServer.Base/TuningParameters/dvbt/{Sweden.Glimåkra.xml → Sweden.Frankrikegarden Frankrike.xml}
  230. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Fränsta.xml → Sweden.Fransta.xml}
  231. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hållan.xml → Sweden.Fullsjon.xml}
  232. +28 −28 ...ngParameters/dvbt/{Sweden.Funäsdalen Funäsdalsberget.xml → Sweden.Funasdalen Funasdalsberget.xml}
  233. +8 −8 ...ase/TuningParameters/dvbt/{Sweden.Funäsdalen Telestation.xml → Sweden.Funasdalen Telestation.xml}
  234. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Gäddede.xml → Sweden.Gaddede.xml}
  235. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Gallivare.xml
  236. +8 −8 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Gallsätter.xml → Sweden.Gallsatter.xml}
  237. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Järnforsen.xml → Sweden.Gargnas.xml}
  238. +8 −8 ....Base/TuningParameters/dvbt/{Sweden.Garpenberg Kuppgården.xml → Sweden.Garpenberg Kuppgarden.xml}
  239. +38 −38 ...Library/TVServer.Base/TuningParameters/dvbt/{Sweden.Gävle Skogmur.xml → Sweden.Gavle Skogmur.xml}
  240. +1 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Gillhov.xml
  241. +8 −8 .../TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Kågeröd Möllarp.xml → Sweden.Glimakra.xml}
  242. +8 −8 ...y/TVServer.Base/TuningParameters/dvbt/{Sweden.Gnosjö Marieholm.xml → Sweden.Gnosjo Marieholm.xml}
  243. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Gördalen.xml → Sweden.Gordalen.xml}
  244. +38 −38 ...ase/TuningParameters/dvbt/{Sweden.Göteborg Brudaremossen.xml → Sweden.Goteborg Brudaremossen.xml}
  245. +33 −33 ...ver.Base/TuningParameters/dvbt/{Sweden.Mölndal Västerberget.xml → Sweden.Goteborg Slattadamm.xml}
  246. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Gräsmark.xml → Sweden.Grasmark.xml}
  247. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Gräsmyr.xml → Sweden.Grasmyr.xml}
  248. +11 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Grebbestad.xml
  249. +8 −8 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Grövelsjön.xml → Sweden.Grovelsjon.xml}
  250. +8 −8 ....Base/TuningParameters/dvbt/{Sweden.Guliksberg Rödvattnet.xml → Sweden.Guliksberg Rodvattnet.xml}
  251. +8 −8 ...gine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Gumhöjden.xml → Sweden.Gumhojden.xml}
  252. +28 −28 ...rver.Base/TuningParameters/dvbt/{Sweden.Gunnarn Sörsjöliden.xml → Sweden.Gunnarn Sorsjoliden.xml}
  253. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Gällivare.xml
  254. +8 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Hadanberg.xml
  255. +28 −28 ...er.Base/TuningParameters/dvbt/{Sweden.Hagfors Värmullsåsen.xml → Sweden.Hagfors Varmullsasen.xml}
  256. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Sågmyra.xml → Sweden.Hakafot.xml}
  257. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Kårböle.xml → Sweden.Halaforsen.xml}
  258. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Högvålen.xml → Sweden.Haljeboda.xml}
  259. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Laxsjö.xml → Sweden.Hallan.xml}
  260. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hornön.xml → Sweden.Hallastrom.xml}
  261. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hällaström.xml → Sweden.Hallbo.xml}
  262. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hälle.xml → Sweden.Halle.xml}
  263. +8 −8 ....Base/TuningParameters/dvbt/{Sweden.Hällesåker Skåregärde.xml → Sweden.Hallesaker Skaregarde.xml}
  264. +8 −8 ...ibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hestra Äspås.xml → Sweden.Halleviksstrand.xml}
  265. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hällsjö.xml → Sweden.Hallsjo.xml}
  266. +38 −38 ...rver.Base/TuningParameters/dvbt/{Sweden.Halmstad Oskarström.xml → Sweden.Halmstad Oskarstrom.xml}
  267. +38 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Harnosand Harnon.xml
  268. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hörken.xml → Sweden.Harrsjon.xml}
  269. +8 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Hedenaset.xml
  270. +8 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Hemson.xml
  271. +0 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Hemsön.xml
  272. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Henån.xml → Sweden.Henan.xml}
  273. +8 −8 ...ibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hälleviksstrand.xml → Sweden.Hestra Aspas.xml}
  274. +8 −8 ...gine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Ängebo.xml → Sweden.Hjo Grevback.xml}
  275. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Högfors.xml → Sweden.Hogfors.xml}
  276. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Höglunda.xml → Sweden.Hoglunda.xml}
  277. +28 −28 ...brary/TVServer.Base/TuningParameters/dvbt/{Sweden.Högsby Virstad.xml → Sweden.Hogsby Virstad.xml}
  278. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Klövsjö.xml → Sweden.Hogvalen.xml}
  279. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hovfjället.xml → Sweden.Holjes.xml}
  280. +38 −38 ...y/TVServer.Base/TuningParameters/dvbt/{Sweden.Ängelholm Vegeholm.xml → Sweden.Horby Sallerup.xml}
  281. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Lillögda.xml → Sweden.Horken.xml}
  282. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Hällbo.xml → Sweden.Hornon.xml}
  283. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Höljes.xml → Sweden.Hovfjallet.xml}
  284. +10 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Hudiksvall Forsa.xml
  285. +0 −28 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Härnösand Härnön.xml
  286. +31 −1 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Idre.xml
  287. +8 −8 ...rver.Base/TuningParameters/dvbt/{Sweden.Jäkkvik Fräkenmyren.xml → Sweden.Jakkvik Frakenmyren.xml}
  288. +8 −8 ...ne3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Järkvissle.xml → Sweden.Jarkvissle.xml}
  289. +8 −8 ...ine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Korsträsk.xml → Sweden.Jarnforsen.xml}
  290. +8 −8 ...TuningParameters/dvbt/{Sweden.Järpen Mellangårdsberget.xml → Sweden.Jarpen Mellangardsberget.xml}
  291. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Järvsö.xml → Sweden.Jarvso.xml}
  292. +8 −8 ...gine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Järvträsk.xml → Sweden.Jarvtrask.xml}
  293. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Joeström.xml → Sweden.Joestrom.xml}
  294. +38 −38 ...er.Base/TuningParameters/dvbt/{Sweden.Jönköping Bondberget.xml → Sweden.Jonkoping Bondberget.xml}
  295. +8 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Junsele Hamptjarnsberget.xml
  296. +8 −8 .../TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Köttsjön.xml → Sweden.Kagerod Mollarp.xml}
  297. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Malå.xml → Sweden.Kalarne.xml}
  298. +8 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Kalen.xml
  299. +8 −8 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/{Sweden.Kållered.xml → Sweden.Kallered.xml}
  300. +10 −0 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbt/Sweden.Kallinge Kalleberga.xml
Sorry, we could not display the entire diff because too many files (885) changed.
View
4 Common-MP-TVE3/DirectShowLib/DirectShowLib.csproj
@@ -68,7 +68,7 @@
<DefineConstants>DEBUG;TRACE;ALLOW_UNTESTED_STRUCTS;ALLOW_UNTESTED_INTERFACES</DefineConstants>
<BaseAddress>285212672</BaseAddress>
<DebugType>full</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<Optimize>false</Optimize>
</PropertyGroup>
@@ -79,7 +79,7 @@
<Optimize>true</Optimize>
<DebugType>
</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
View
2 Common-MP-TVE3/External/Gentle.NET/Source/SolutionInfo.cs
@@ -21,7 +21,7 @@
[assembly: AssemblyCopyright( "Morten Mertner" )]
[assembly: AssemblyTrademark( "" )]
[assembly: AssemblyCulture( "" )]
-[assembly: AssemblyVersion( "1.5.0.29111" )]
+[assembly: AssemblyVersion( "1.5.0.29112" )]
[assembly: CLSCompliant( true )]
[assembly: ComVisible( false )]
View
BIN DirectShowFilters/TsReader/bin/Debug/TsReader.ax
Binary file not shown.
View
BIN DirectShowFilters/TsReader/bin/Debug/TsReader.pdb
Binary file not shown.
View
BIN DirectShowFilters/TsReader/bin/Release/TsReader.ax
Binary file not shown.
View
306 DirectShowFilters/TsReader/source/DeMultiplexer.cpp
@@ -47,13 +47,14 @@
#define READ_SIZE (1316*30)
#define INITIAL_READ_SIZE (READ_SIZE * 1024)
+#define AUDIO_CHANGE 0x1
+#define VIDEO_CHANGE 0x2
+
extern void LogDebug(const char *fmt, ...);
// *** UNCOMMENT THE NEXT LINE TO ENABLE DYNAMIC VIDEO PIN HANDLING!!!! ******
#define USE_DYNAMIC_PINS
-extern int ShowBuffer;
-
CDeMultiplexer::CDeMultiplexer(CTsDuration& duration,CTsReaderFilter& filter)
:m_duration(duration)
@@ -76,6 +77,7 @@ CDeMultiplexer::CDeMultiplexer(CTsDuration& duration,CTsReaderFilter& filter)
m_iAudioIdx = -1;
m_iPatVersion = -1;
m_ReqPatVersion = -1;
+ m_bWaitGoodPat = false;
m_receivedPackets = 0;
m_bSetAudioDiscontinuity = false;
m_bSetVideoDiscontinuity = false;
@@ -88,6 +90,9 @@ CDeMultiplexer::CDeMultiplexer(CTsDuration& duration,CTsReaderFilter& filter)
m_lastVideoPTS.IsValid = false;
m_lastAudioPTS.IsValid = false;
m_mpegParserTriggerFormatChange = false;
+ m_mpegParserReset = true;
+ m_videoChanged=false;
+ m_audioChanged=false;
SetMediaChanging(false);
SetAudioChanging(false);
m_DisableDiscontinuitiesFiltering = false;
@@ -100,6 +105,9 @@ CDeMultiplexer::CDeMultiplexer(CTsDuration& duration,CTsReaderFilter& filter)
m_VideoPrevCC = -1;
m_bFirstGopFound = false;
m_bFrame0Found = false;
+ m_bFirstGopParsed = false;
+ m_lastVidResX = -1;
+ m_lastVidResY = -1;
m_FirstVideoSample = 0x7FFFFFFF00000000LL;
m_LastVideoSample = 0;
m_LastDataFromRtsp = GetTickCount();
@@ -172,14 +180,17 @@ bool CDeMultiplexer::SetAudioStream(int stream)
// here, stream is not parsed yet
if (!IsMediaChanging())
{
- LogDebug("SetAudioStream : OnMediaTypeChanged(1)");
+ LogDebug("SetAudioStream : OnMediaTypeChanged(AUDIO_CHANGE)");
Flush() ;
- m_filter.OnMediaTypeChanged(1);
+ m_filter.OnMediaTypeChanged(AUDIO_CHANGE);
SetMediaChanging(true);
m_filter.m_bForceSeekOnStop=true; // Force stream to be resumed after
}
else // Mpeg parser info is required or audio graph is already rebuilding.
+ {
LogDebug("SetAudioStream : Media already changing"); // just wait 1st GOP
+ m_audioChanged = true;
+ }
}
}
else
@@ -359,6 +370,7 @@ void CDeMultiplexer::GetVideoStreamType(CMediaType &pmt)
{
if( m_pids.videoPids.size() != 0 && m_mpegPesParser != NULL)
{
+ CAutoLock lock (&m_mpegPesParser->m_sectionVideoPmt);
pmt = m_mpegPesParser->pmt;
}
}
@@ -394,6 +406,7 @@ void CDeMultiplexer::FlushVideo()
m_VideoPrevCC = -1;
m_bFirstGopFound = false;
m_bFrame0Found = false;
+ m_mpegParserReset = true;
m_FirstVideoSample = 0x7FFFFFFF00000000LL;
m_LastVideoSample = 0;
m_lastVideoPTS.IsValid = false;
@@ -620,25 +633,34 @@ void CDeMultiplexer::Start()
m_bStarting=true ;
m_receivedPackets=0;
m_mpegParserTriggerFormatChange=false;
+ m_mpegParserReset = true;
+ m_mpegPesParser->basicVideoInfo.isValid = false;
+ m_bFirstGopParsed = false;
+ m_videoChanged=false;
+ m_audioChanged=false;
m_bEndOfFile=false;
m_bHoldAudio=false;
m_bHoldVideo=false;
m_iPatVersion=-1;
m_ReqPatVersion=-1;
+ m_bWaitGoodPat = false;
m_bSetAudioDiscontinuity=false;
m_bSetVideoDiscontinuity=false;
- DWORD dwBytesProcessed=0;
+ int dwBytesProcessed=0;
DWORD m_Time = GetTickCount();
while((GetTickCount() - m_Time) < 5000)
{
- int BytesRead =ReadFromFile(false,false);
+ int BytesRead = ReadFromFile(false,false);
if (BytesRead==0) Sleep(10);
if (dwBytesProcessed>INITIAL_READ_SIZE || GetAudioStreamCount()>0)
{
#ifdef USE_DYNAMIC_PINS
- if ((!m_mpegPesParser->basicVideoInfo.isValid && m_pids.videoPids.size() > 0 &&
- m_pids.videoPids[0].Pid>1) && dwBytesProcessed<INITIAL_READ_SIZE)
+ if ((m_pids.videoPids.size() > 0 && m_pids.videoPids[0].Pid > 1) && //There is a video stream.....
+ (!m_mpegPesParser->basicVideoInfo.isValid || !m_bFirstGopParsed) && //and the first GOP header is not parsed....
+ dwBytesProcessed<INITIAL_READ_SIZE) //and we have not reached the data limit
{
+ //We are waiting for the first video GOP header to be parsed
+ //so that OnVideoFormatChanged() can be triggered if necessary
dwBytesProcessed+=BytesRead;
continue;
}
@@ -647,6 +669,7 @@ void CDeMultiplexer::Start()
Flush();
m_streamPcr.Reset();
m_bStarting=false;
+ LogDebug("demux:Start() end1 BytesProcessed:%d", dwBytesProcessed);
return;
}
dwBytesProcessed+=BytesRead;
@@ -777,9 +800,9 @@ void CDeMultiplexer::OnTsPacket(byte* tsPacket)
m_patParser.OnTsPacket(tsPacket);
- if (m_iPatVersion==-1)
+ if ((m_iPatVersion==-1) || m_bWaitGoodPat)
{
- // First Pat not found
+ // First PAT not found or waiting for correct PAT
return;
}
@@ -1253,10 +1276,20 @@ void CDeMultiplexer::FillVideoH264(CTsHeader& header, byte* tsPacket)
}
// LogDebug("frame len %d decoded PTS %f p timestamp %f", p->GetCount(), pts.ToClock(), timestamp.ToClock());
- int lastVidResX=m_mpegPesParser->basicVideoInfo.width;
- int lastVidResY=m_mpegPesParser->basicVideoInfo.height;
-
- bool Gop = m_mpegPesParser->OnTsPacket(p->GetData(), p->GetCount(), false);
+ bool Gop = m_mpegPesParser->OnTsPacket(p->GetData(), p->GetCount(), false, m_mpegParserReset);
+ if (Gop)
+ {
+ m_mpegParserReset = true; //Reset next time around (so that it always searches for a full 'Gop' header)
+ if (!m_bFirstGopParsed)
+ {
+ m_bFirstGopParsed = true;
+ LogDebug("DeMultiplexer: First Gop parsed after new PAT: res=%dx%d AR=%d:%d fps=%d isInterlaced=%d",m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,m_mpegPesParser->basicVideoInfo.fps,m_mpegPesParser->basicVideoInfo.isInterlaced);
+ }
+ }
+ else
+ {
+ m_mpegParserReset = false;
+ }
if ((Gop || m_bFirstGopFound) && m_filter.GetVideoPin()->IsConnected())
{
@@ -1318,31 +1351,59 @@ void CDeMultiplexer::FillVideoH264(CTsHeader& header, byte* tsPacket)
m_vecVideoBuffers.push_back(pCurrentVideoBuffer);
}
- if (lastVidResX!=m_mpegPesParser->basicVideoInfo.width || lastVidResY!=m_mpegPesParser->basicVideoInfo.height)
+ if (Gop)
{
- LogDebug("DeMultiplexer: %x video format changed: res=%dx%d aspectRatio=%d:%d fps=%d isInterlaced=%d",header.Pid,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,m_mpegPesParser->basicVideoInfo.fps,m_mpegPesParser->basicVideoInfo.isInterlaced);
- if (m_mpegParserTriggerFormatChange)
+ if (m_lastVidResX!=m_mpegPesParser->basicVideoInfo.width || m_lastVidResY!=m_mpegPesParser->basicVideoInfo.height)
{
- LogDebug("DeMultiplexer: OnMediaFormatChange triggered by mpeg2Parser");
- SetMediaChanging(true);
- m_filter.OnMediaTypeChanged(3);
- m_mpegParserTriggerFormatChange=false;
+ LogDebug("DeMultiplexer: %x video format changed: res=%dx%d aspectRatio=%d:%d fps=%d isInterlaced=%d",header.Pid,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,m_mpegPesParser->basicVideoInfo.fps,m_mpegPesParser->basicVideoInfo.isInterlaced);
+ if (m_mpegParserTriggerFormatChange && !IsAudioChanging())
+ {
+ LogDebug("DeMultiplexer: OnMediaFormatChange triggered by H264Parser, aud %d, vid 1", m_audioChanged);
+ SetMediaChanging(true);
+ if (m_audioChanged)
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE | AUDIO_CHANGE); //Video and audio
+ else
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE); //Video only
+ m_mpegParserTriggerFormatChange=false;
+ }
+ else if (m_mpegParserTriggerFormatChange)
+ {
+ m_videoChanged = true;
+ }
+ LogDebug("DeMultiplexer: triggering OnVideoFormatChanged");
+ m_filter.OnVideoFormatChanged(m_mpegPesParser->basicVideoInfo.streamType,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,15000000,m_mpegPesParser->basicVideoInfo.isInterlaced);
}
- LogDebug("DeMultiplexer: triggering OnVideoFormatChanged");
- m_filter.OnVideoFormatChanged(m_mpegPesParser->basicVideoInfo.streamType,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,15000000,m_mpegPesParser->basicVideoInfo.isInterlaced);
- }
- else
- {
- if (m_mpegParserTriggerFormatChange && Gop)
+ else //video resolution is the unchanged, but there may be other format changes
{
- LogDebug("DeMultiplexer: Got GOP after the channel change was detected without correct mpeg header parsing, so we trigger the format change now.");
- m_filter.OnMediaTypeChanged(3);
- m_mpegParserTriggerFormatChange=false;
+ if (m_mpegParserTriggerFormatChange && !IsAudioChanging())
+ {
+ if (m_audioChanged || m_videoChanged)
+ {
+ SetMediaChanging(true);
+ LogDebug("DeMultiplexer: Got GOP after channel change detected, trigger format change, aud %d, vid %d", m_audioChanged, m_videoChanged);
+ if (m_audioChanged && m_videoChanged)
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE | AUDIO_CHANGE);
+ else if (m_audioChanged)
+ m_filter.OnMediaTypeChanged(AUDIO_CHANGE);
+ else
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE);
+ }
+ else
+ {
+ SetMediaChanging(false);
+ }
+ m_mpegParserTriggerFormatChange=false;
+ }
}
+ m_lastVidResX=m_mpegPesParser->basicVideoInfo.width;
+ m_lastVidResY=m_mpegPesParser->basicVideoInfo.height;
}
}
else
+ {
m_bSetVideoDiscontinuity = !m_mVideoValidPES;
+ }
+
m_pl.RemoveAll();
p2->bDiscontinuity = m_p->bDiscontinuity; m_p->bDiscontinuity = FALSE;
@@ -1551,10 +1612,21 @@ void CDeMultiplexer::FillVideoMPEG2(CTsHeader& header, byte* tsPacket)
// LogDebug("frame len %d decoded PTS %f (framerate %f), %c(%d)", p->GetCount(), m_CurrentVideoPts.IsValid ? (float)m_CurrentVideoPts.ToClock() : 0.0f,(float)m_curFrameRate,frame_type,frame_count);
- int lastVidResX=m_mpegPesParser->basicVideoInfo.width;
- int lastVidResY=m_mpegPesParser->basicVideoInfo.height;
-
- bool Gop = m_mpegPesParser->OnTsPacket(p->GetData(), p->GetCount(), true);
+ bool Gop = m_mpegPesParser->OnTsPacket(p->GetData(), p->GetCount(), true, m_mpegParserReset);
+ if (Gop)
+ {
+ m_mpegParserReset = true; //Reset next time around (so that it always searches for a full 'Gop' header)
+ if (!m_bFirstGopParsed)
+ {
+ m_bFirstGopParsed = true;
+ LogDebug("DeMultiplexer: First Gop parsed after new PAT: res=%dx%d AR=%d:%d fps=%d isInterlaced=%d",m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,m_mpegPesParser->basicVideoInfo.fps,m_mpegPesParser->basicVideoInfo.isInterlaced);
+ }
+ }
+ else
+ {
+ m_mpegParserReset = false;
+ }
+
if (Gop) m_LastValidFrameCount=-1;
if ((Gop || m_bFirstGopFound) && m_filter.GetVideoPin()->IsConnected())
@@ -1630,27 +1702,52 @@ void CDeMultiplexer::FillVideoMPEG2(CTsHeader& header, byte* tsPacket)
}
m_CurrentVideoPts.IsValid=false ;
- if (lastVidResX!=m_mpegPesParser->basicVideoInfo.width || lastVidResY!=m_mpegPesParser->basicVideoInfo.height)
+ if (Gop)
{
- LogDebug("DeMultiplexer: %x video format changed: res=%dx%d aspectRatio=%d:%d fps=%d isInterlaced=%d",header.Pid,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,m_mpegPesParser->basicVideoInfo.fps,m_mpegPesParser->basicVideoInfo.isInterlaced);
- if (m_mpegParserTriggerFormatChange)
+ if (m_lastVidResX!=m_mpegPesParser->basicVideoInfo.width || m_lastVidResY!=m_mpegPesParser->basicVideoInfo.height)
{
- LogDebug("DeMultiplexer: OnMediaFormatChange triggered by mpeg2Parser");
- SetMediaChanging(true);
- m_filter.OnMediaTypeChanged(3);
- m_mpegParserTriggerFormatChange=false;
+ LogDebug("DeMultiplexer: %x video format changed: res=%dx%d aspectRatio=%d:%d fps=%d isInterlaced=%d",header.Pid,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,m_mpegPesParser->basicVideoInfo.fps,m_mpegPesParser->basicVideoInfo.isInterlaced);
+ if (m_mpegParserTriggerFormatChange && !IsAudioChanging())
+ {
+ LogDebug("DeMultiplexer: OnMediaFormatChange triggered by mpeg2Parser, aud %d, vid 1", m_audioChanged);
+ SetMediaChanging(true);
+ if (m_audioChanged)
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE | AUDIO_CHANGE); //Video and audio
+ else
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE); //Video only
+ m_mpegParserTriggerFormatChange=false;
+ }
+ else if (m_mpegParserTriggerFormatChange)
+ {
+ m_videoChanged = true;
+ }
+ LogDebug("DeMultiplexer: triggering OnVideoFormatChanged");
+ m_filter.OnVideoFormatChanged(m_mpegPesParser->basicVideoInfo.streamType,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,15000000,m_mpegPesParser->basicVideoInfo.isInterlaced);
}
- LogDebug("DeMultiplexer: triggering OnVideoFormatChanged");
- m_filter.OnVideoFormatChanged(m_mpegPesParser->basicVideoInfo.streamType,m_mpegPesParser->basicVideoInfo.width,m_mpegPesParser->basicVideoInfo.height,m_mpegPesParser->basicVideoInfo.arx,m_mpegPesParser->basicVideoInfo.ary,15000000,m_mpegPesParser->basicVideoInfo.isInterlaced);
- }
- else
- {
- if (m_mpegParserTriggerFormatChange && Gop)
+ else //video resolution is the unchanged, but there may be other format changes
{
- LogDebug("DeMultiplexer: Got GOP after the channel change was detected without correct mpeg header parsing, so we trigger the format change now.");
- m_filter.OnMediaTypeChanged(3);
- m_mpegParserTriggerFormatChange=false;
+ if (m_mpegParserTriggerFormatChange && !IsAudioChanging())
+ {
+ if (m_audioChanged || m_videoChanged)
+ {
+ SetMediaChanging(true);
+ LogDebug("DeMultiplexer: Got GOP after channel change detected, trigger format change, aud %d, vid %d", m_audioChanged, m_videoChanged);
+ if (m_audioChanged && m_videoChanged)
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE | AUDIO_CHANGE);
+ else if (m_audioChanged)
+ m_filter.OnMediaTypeChanged(AUDIO_CHANGE);
+ else
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE);
+ }
+ else
+ {
+ SetMediaChanging(false);
+ }
+ m_mpegParserTriggerFormatChange=false;
+ }
}
+ m_lastVidResX=m_mpegPesParser->basicVideoInfo.width;
+ m_lastVidResY=m_mpegPesParser->basicVideoInfo.height;
}
}
else
@@ -1773,19 +1870,59 @@ void CDeMultiplexer::OnNewChannel(CChannelInfo& info)
//CAutoLock lock (&m_section);
CPidTable pids=info.PidTable;
- if (info.PatVersion != m_iPatVersion)
+ if ((info.PatVersion != m_iPatVersion) || m_bWaitGoodPat)
{
- LogDebug("OnNewChannel pat version:%d->%d",m_iPatVersion, info.PatVersion);
- if (m_filter.m_bLiveTv && ((m_ReqPatVersion & 0x0F) != (info.PatVersion & 0x0F)) && (m_iPatVersion!=-1))
+ if (!m_bWaitGoodPat)
+ {
+ LogDebug("OnNewChannel: PAT change detected: %d->%d",m_iPatVersion, info.PatVersion);
+ }
+
+ if (m_filter.IsTimeShifting() && (m_iPatVersion!=-1)) //TimeShifting TV channel change only
{
- LogDebug("Unexpected LiveTV PAT change due to provider, update m_ReqPatVersion to new PAT version : %d",m_ReqPatVersion);
- // Unexpected LiveTV PAT change due to provider.
+ DWORD timeTemp = GetTickCount();
+ int PatReqDiff = (info.PatVersion & 0x0F) - (m_ReqPatVersion & 0x0F);
+ int PatIDiff = (info.PatVersion & 0x0F) - (m_iPatVersion & 0x0F);
+
+ if (PatIDiff < 0) //Rollover
+ {
+ PatIDiff += 16;
+ }
+
+ //if (!((PatIDiff == 1) || (PatIDiff == -15) || (PatReqDiff == 0))) //Not (PAT version incremented by 1 or expected PAT)
+ if ((PatIDiff > 7) && (PatReqDiff != 0)) //PAT version change too big/negative and it's not the requested PAT)
+ {
+ //Skipped back in timeshift file or possible RTSP seek accuracy problem ?
+ if (!m_bWaitGoodPat)
+ {
+ m_bWaitGoodPat = true;
+ m_WaitGoodPatTmo = timeTemp + ((m_filter.IsRTSP() && m_filter.IsLiveTV()) ? 2500 : 1000); // Set timeout to 1 sec (2.5 sec for live RTSP)
+ LogDebug("OnNewChannel: wait for good PAT, IDiff:%d, ReqDiff:%d ", PatIDiff, PatReqDiff);
+ return; // wait a while for correct PAT version to arrive
+ }
+ else if (timeTemp < m_WaitGoodPatTmo)
+ {
+ return; // wait for correct PAT version
+ }
+ LogDebug("OnNewChannel: 'Wait for good PAT' timeout, allow PAT update: %d->%d",m_iPatVersion, info.PatVersion);
+ }
+
m_ReqPatVersion = info.PatVersion ;
+ LogDebug("OnNewChannel: found good PAT: %d", info.PatVersion);
+ }
+
+ m_bWaitGoodPat = false;
+
+ if ((info.PatVersion == m_iPatVersion) && (m_pids == pids))
+ {
+ //Fix for RTSP 'infinite loop' channel change with multiple audio streams problem
+ LogDebug("OnNewChannel: PAT change already processed: %d", info.PatVersion);
+ return;
}
+
m_iPatVersion=info.PatVersion;
m_bSetAudioDiscontinuity=true;
m_bSetVideoDiscontinuity=true;
- Flush();
+ Flush();
// m_filter.m_bOnZap = true ;
}
else
@@ -1860,22 +1997,35 @@ void CDeMultiplexer::OnNewChannel(CChannelInfo& info)
}
bool changed=false;
- bool videoChanged=false;
+ m_videoChanged=false;
+ m_audioChanged=false;
+
+ #ifdef USE_DYNAMIC_PINS
+ //Is the video pin connected?
+ if ((m_filter.GetVideoPin()->IsConnected()) && (m_pids.videoPids.size() > 0))
+ {
+ changed=true; //force a check in the mpeg parser
+ if (oldVideoServiceType != m_pids.videoPids[0].VideoServiceType)
+ {
+ m_videoChanged=true;
+ }
+ }
+ #else
//did the video format change?
- if (m_pids.videoPids.size() > 0 && oldVideoServiceType != m_pids.videoPids[0].VideoServiceType )
+ if (m_pids.videoPids.size() > 0 && oldVideoServiceType != m_pids.videoPids[0].VideoServiceType)
{
- //yes, is the video pin connected?
+ //yes, is the audio pin connected?
if (m_filter.GetVideoPin()->IsConnected())
{
changed=true;
- videoChanged=true;
+ m_videoChanged=true;
}
}
-
+ #endif
+
m_iAudioStream = 0;
LogDebug ("Setting initial audio index to : %i", m_iAudioStream);
- bool audioChanged=false;
//get the new audio format
int newAudioStreamType=SERVICE_TYPE_AUDIO_MPEG2;
@@ -1891,21 +2041,33 @@ void CDeMultiplexer::OnNewChannel(CChannelInfo& info)
if (m_filter.GetAudioPin()->IsConnected())
{
changed=true;
- audioChanged=true;
+ m_audioChanged=true;
}
}
//did audio/video format change?
if (changed)
{
#ifdef USE_DYNAMIC_PINS
- // if we have a video stream and it's format changed, let the mpeg parser trigger the OnMediaTypeChanged
- if (m_pids.videoPids.size() > 0 && m_pids.videoPids[0].Pid>0x1 && videoChanged)
+ // if we have a video stream, let the mpeg parser trigger the OnMediaTypeChanged
+ if (m_pids.videoPids.size() > 0 && m_pids.videoPids[0].Pid>0x1)
{
- LogDebug("DeMultiplexer: We detected a new media type change which has a video stream, so we let the mpegParser trigger the event");
+ LogDebug("DeMultiplexer: We have a video stream, so we let the mpegParser check/trigger format changes");
m_receivedPackets=0;
m_mpegParserTriggerFormatChange=true;
SetMediaChanging(true);
+ m_bFirstGopParsed = false;
+ m_mpegParserReset = true;
+ m_mpegPesParser->basicVideoInfo.isValid = false;
+ if (m_audioStreams.size() == 1)
+ {
+ if ((m_AudioStreamType == SERVICE_TYPE_AUDIO_UNKNOWN) || (m_AudioStreamType != newAudioStreamType))
+ {
+ m_AudioStreamType = newAudioStreamType ;
+ m_audioChanged=true;
+ LogDebug("DeMultiplexer: Audio media types changed");
+ }
+ }
}
else
{
@@ -1916,19 +2078,19 @@ void CDeMultiplexer::OnNewChannel(CChannelInfo& info)
m_AudioStreamType = newAudioStreamType ;
// notify the ITSReaderCallback. MP will then rebuild the graph
LogDebug("DeMultiplexer: Audio media types changed. Trigger OnMediaTypeChanged()...");
- m_filter.OnMediaTypeChanged(1);
+ m_filter.OnMediaTypeChanged(AUDIO_CHANGE);
SetMediaChanging(true);
}
}
}
#else
- if (audioChanged && videoChanged)
- m_filter.OnMediaTypeChanged(3);
+ if (m_audioChanged && m_videoChanged)
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE | AUDIO_CHANGE);
else
- if (audioChanged)
- m_filter.OnMediaTypeChanged(1);
+ if (m_audioChanged)
+ m_filter.OnMediaTypeChanged(AUDIO_CHANGE);
else
- m_filter.OnMediaTypeChanged(2);
+ m_filter.OnMediaTypeChanged(VIDEO_CHANGE);
#endif
}
View
11 DirectShowFilters/TsReader/source/DeMultiplexer.h
@@ -206,6 +206,8 @@ class CDeMultiplexer : public CPacketSync, public IPatParserCallback
int m_iPatVersion;
int m_ReqPatVersion;
int m_WaitNewPatTmo;
+ DWORD m_WaitGoodPatTmo;
+ bool m_bWaitGoodPat;
int m_receivedPackets;
bool m_bFirstGopFound;
@@ -219,6 +221,8 @@ class CDeMultiplexer : public CPacketSync, public IPatParserCallback
bool m_bStarting;
bool m_mpegParserTriggerFormatChange;
+ bool m_videoChanged;
+ bool m_audioChanged;
bool m_bSetAudioDiscontinuity;
bool m_bSetVideoDiscontinuity;
CPcr m_subtitlePcr;
@@ -247,4 +251,11 @@ class CDeMultiplexer : public CPacketSync, public IPatParserCallback
float m_MinVideoDelta;
bool m_bShuttingDown;
+
+ int m_lastVidResX;
+ int m_lastVidResY;
+
+ bool m_mpegParserReset;
+ bool m_bFirstGopParsed;
+
};
View
67 DirectShowFilters/TsReader/source/FrameHeaderParser.cpp
@@ -42,8 +42,6 @@ extern void LogDebug(const char *fmt, ...) ;
#define countof(array) (sizeof(array)/sizeof(array[0]))
#define DNew new
-#define MAX_SPS 256 // Max size for a SPS packet
-
int CFrameHeaderParser::MakeAACInitData(BYTE* pData, int profile, int freq, int channels)
{
int srate_idx;
@@ -300,8 +298,15 @@ bool CFrameHeaderParser::Read(peshdr& h, BYTE code)
return(true);
}
-bool CFrameHeaderParser::Read(seqhdr& h, int len, CMediaType* pmt)
+bool CFrameHeaderParser::Read(seqhdr& h, int len, CMediaType* pmt, bool reset)
{
+ if (reset)
+ {
+ h.ifps=0;
+ h.height=0;
+ h.width=0;
+ }
+
__int64 endpos = GetPos() + len; // - sequence header length
BYTE id = 0;
@@ -1185,8 +1190,17 @@ void CFrameHeaderParser::RemoveMpegEscapeCode(BYTE* dst, BYTE* src, int length)
}
-bool CFrameHeaderParser::Read(avchdr& h, int len, CMediaType* pmt)
+bool CFrameHeaderParser::Read(avchdr& h, int len, CMediaType* pmt, bool reset)
{
+ if (reset)
+ {
+ h.spslen=0;
+ h.ppslen=0;
+ h.height=0;
+ h.width=0;
+ h.AvgTimePerFrame=0;
+ }
+
while(GetRemaining()>4 && (h.spslen==0 || h.ppslen==0 || h.height<100 || h.width<100 || h.AvgTimePerFrame<=0))
{
//// check for NALU startcode
@@ -1226,19 +1240,28 @@ bool CFrameHeaderParser::Read(avchdr& h, int len, CMediaType* pmt)
{
//LogDebug("SPS found");
- BYTE SPSTemp[MAX_SPS];
- BYTE SPSBuff[MAX_SPS];
- CGolombBuffer gb (SPSBuff, MAX_SPS);
__int64 num_units_in_tick;
__int64 time_scale;
+ __int64 pos;
long fixed_frame_rate_flag;
- h.spspos = GetPos() - 5;
- h.spslen = next_nal - h.spspos;
+ // Copy the full SPS packet in case the PPS is not found in the same packet,
+ // but make sure we don't change the current position in the buffer.
+ pos = GetPos() - 5;
+ if (h.spslen != 0)
+ {
+ free(h.sps);
+ }
+ h.spslen = next_nal - pos;
+ h.sps = (BYTE*) malloc(h.spslen - 4);
+ ByteRead(h.sps, h.spslen - 4);
+ Seek(pos + 5);
// Manage H264 escape codes (see "remove escapes (very rare 1:2^22)" in ffmpeg h264.c file)
- ByteRead((BYTE*)SPSTemp, min(MAX_SPS, GetRemaining()));
- RemoveMpegEscapeCode (SPSBuff, SPSTemp, MAX_SPS);
+ //ByteRead((BYTE*)SPSTemp, min(MAX_SPS, GetRemaining()));
+ BYTE* buff = (BYTE*) malloc(h.spslen - 4);
+ CGolombBuffer gb (buff, h.spslen - 4);
+ RemoveMpegEscapeCode (buff, h.sps, h.spslen - 4);
h.profile = (BYTE)gb.BitRead(8);
gb.BitRead(8);
@@ -1367,12 +1390,19 @@ bool CFrameHeaderParser::Read(avchdr& h, int len, CMediaType* pmt)
}
}
- Seek(h.spspos+gb.GetPos());
+ Seek(pos + gb.GetPos());
+ free(buff);
}
else if(nal_type==0x8)
{
- h.ppspos = GetPos() - 5;
- h.ppslen = next_nal - h.ppspos;
+ __int64 pos = GetPos() - 5;
+ if (h.ppslen != 0)
+ {
+ free(h.pps);
+ }
+ h.ppslen = next_nal - pos;
+ h.pps = (BYTE*) malloc(h.ppslen - 4);
+ ByteRead(h.pps, h.ppslen - 4);
}
BitByteAlign();
@@ -1445,16 +1475,15 @@ bool CFrameHeaderParser::Read(avchdr& h, int len, CMediaType* pmt)
vi->dwLevel = h.level;
vi->cbSequenceHeader = extra;
vi->dwStartTimeCode=0;
+
BYTE* p = (BYTE*)&vi->dwSequenceHeader[0];
*p++ = (h.spslen-4) >> 8;
*p++ = (h.spslen-4) & 0xff;
- Seek(h.spspos+4);
- ByteRead(p, h.spslen-4);
+ memcpy(p, h.sps, h.spslen-4);
p += h.spslen-4;
*p++ = (h.ppslen-4) >> 8;
*p++ = (h.ppslen-4) & 0xff;
- Seek(h.ppspos+4);
- ByteRead(p, h.ppslen-4);
+ memcpy(p, h.pps, h.ppslen-4);
p += h.ppslen-4;
pmt->SetFormat((BYTE*)vi, len);
}
@@ -1638,9 +1667,7 @@ void CFrameHeaderParser::DumpAvcHeader(avchdr h)
LogDebug("height: %i",h.height);
LogDebug("level: %i",h.level);
LogDebug("profile: %i",h.profile);
- LogDebug("PPS pos: %i ",h.ppspos);
LogDebug("PPS len: %i",h.ppslen);
- LogDebug("SPS pos: %i",h.spspos);
LogDebug("SPS len: %i",h.spslen);
LogDebug("=================================");
}
View
24 DirectShowFilters/TsReader/source/FrameHeaderParser.h
@@ -305,23 +305,25 @@ struct pshdr
{
BYTE profile, level;
unsigned int width, height;
- bool progressive;
- __int64 spspos, spslen;
- __int64 ppspos, ppslen;
+ bool progressive;
+ BYTE * sps;
+ BYTE * pps;
+ __int64 spslen;
+ __int64 ppslen;
__int64 AvgTimePerFrame;
int arx, ary;
BYTE ar;
avchdr()
{
- progressive = true;
- spspos = 0;
+ progressive = true;
spslen = 0;
- ppspos = 0;
ppslen = 0;
AvgTimePerFrame = 0;
- ar = 0;
- arx = 0;
- ary = 0;
+ ar = 0;
+ arx = 0;
+ ary = 0;
+ width = 0;
+ height = 0;
}
};
@@ -377,7 +379,7 @@ class CFrameHeaderParser:public CGolombBuffer
bool Read(pshdr& h);
bool Read(pssyshdr& h);
bool Read(peshdr& h, BYTE code);
- bool Read(seqhdr& h, int len, CMediaType* pmt = NULL);
+ bool Read(seqhdr& h, int len, CMediaType* pmt = NULL, bool reset = true);
bool Read(mpahdr& h, int len, bool fAllowV25, CMediaType* pmt = NULL);
bool Read(aachdr& h, int len, CMediaType* pmt = NULL);
bool Read(ac3hdr& h, int len, CMediaType* pmt = NULL);
@@ -393,7 +395,7 @@ class CFrameHeaderParser:public CGolombBuffer
bool Read(trhdr& h, bool fSync = true);
bool Read(trsechdr& h);
bool Read(pvahdr& h, bool fSync = true);
- bool Read(avchdr& h, int len, CMediaType* pmt = NULL);
+ bool Read(avchdr& h, int len, CMediaType* pmt = NULL, bool reset = true);
bool Read(vc1hdr& h, int len, CMediaType* pmt = NULL);
void RemoveMpegEscapeCode(BYTE* dst, BYTE* src, int length);
View
12 DirectShowFilters/TsReader/source/MpegPesParser.cpp
@@ -48,15 +48,15 @@ CMpegPesParser::CMpegPesParser()
}
-bool CMpegPesParser::ParseVideo(byte* tsPacket,bool isMpeg2)
+bool CMpegPesParser::ParseVideo(byte* tsPacket,bool isMpeg2,bool reset)
{
bool parsed=false;
__int64 framesize=hdrParser.GetSize();
if (isMpeg2)
{
seqhdr seq;
- if (hdrParser.Read(seq,framesize,&pmt))
+ if (hdrParser.Read(seq,framesize,&pmt,reset))
{
//hdrParser.DumpSequenceHeader(seq);
basicVideoInfo.width=seq.width;
@@ -76,8 +76,7 @@ bool CMpegPesParser::ParseVideo(byte* tsPacket,bool isMpeg2)
}
else
{
- avchdr avc;
- if (hdrParser.Read(avc,framesize,&pmt))
+ if (hdrParser.Read(avc,framesize,&pmt,reset))
{
//hdrParser.DumpAvcHeader(avc);
basicVideoInfo.width=avc.width;
@@ -98,11 +97,12 @@ bool CMpegPesParser::ParseVideo(byte* tsPacket,bool isMpeg2)
return parsed;
}
-bool CMpegPesParser::OnTsPacket(byte *Frame,int Length,bool isMpeg2)
+bool CMpegPesParser::OnTsPacket(byte *Frame,int Length,bool isMpeg2,bool reset)
{
//LogDebug("Framesize: %i",Length);
//if (Length<=100) return false ; // arbitrary for safety.
+ CAutoLock lock (&m_sectionVideoPmt);
hdrParser.Reset(Frame,Length);
- return ParseVideo(Frame,isMpeg2);
+ return ParseVideo(Frame,isMpeg2,reset);
}
View
6 DirectShowFilters/TsReader/source/MpegPesParser.h
@@ -40,12 +40,14 @@ class CMpegPesParser
{
private:
CFrameHeaderParser hdrParser;
- bool ParseVideo(byte* tsPacket,bool isMpeg2);
+ avchdr avc;
+ bool ParseVideo(byte* tsPacket,bool isMpeg2,bool reset);
public:
CMpegPesParser();
- bool OnTsPacket(byte* Frame,int Length,bool isMpeg2);
+ bool OnTsPacket(byte* Frame,int Length,bool isMpeg2,bool reset);
CMediaType pmt;
BasicVideoInfo basicVideoInfo;
+ CCritSec m_sectionVideoPmt;
};
View
12 DirectShowFilters/TsReader/source/TsReader.cpp
@@ -170,7 +170,7 @@ CTsReaderFilter::CTsReaderFilter(IUnknown *pUnk, HRESULT *phr):
TCHAR filename[1024];
GetLogFile(filename);
::DeleteFile(filename);
- LogDebug("---------- v0.4.12 -------------------");
+ LogDebug("--------------- v0.4.17a -------------------");
m_fileReader=NULL;
m_fileDuration=NULL;
@@ -508,6 +508,16 @@ bool CTsReaderFilter::IsTimeShifting()
return m_bTimeShifting;
}
+bool CTsReaderFilter::IsRTSP()
+{
+ return (m_fileDuration == NULL);
+}
+
+bool CTsReaderFilter::IsLiveTV()
+{
+ return m_bLiveTv;
+}
+
STDMETHODIMP CTsReaderFilter::Pause()
{
View
2 DirectShowFilters/TsReader/source/TsReader.h
@@ -163,6 +163,8 @@ class CTsReaderFilter : public CSource,
CSubtitlePin* GetSubtitlePin();
IDVBSubtitle* GetSubtitleFilter();
bool IsTimeShifting();
+ bool IsRTSP();
+ bool IsLiveTV();
CTsDuration& GetDuration();
FILTER_STATE State() {return m_State;};
CRefTime Compensation;
View
BIN DirectShowFilters/TsWriter/bin/Debug/TsWriter.ax
Binary file not shown.
View
BIN DirectShowFilters/TsWriter/bin/Debug/TsWriter.pdb
Binary file not shown.
View
BIN DirectShowFilters/TsWriter/bin/Debug/vc100.pdb
Binary file not shown.
View
BIN DirectShowFilters/TsWriter/bin/Release/TsWriter.ax
Binary file not shown.
View
3 DirectShowFilters/TsWriter/source/DiskRecorder.cpp
@@ -1264,7 +1264,8 @@ void CDiskRecorder::WriteFakePMT()
pmtLength+=5;
if (info.rawDescriptorData!=NULL)
{
- pmt[offset-1]=info.rawDescriptorSize;
+ pmt[offset-2]=0xF0+((info.rawDescriptorSize>>8)&0x3); //Mask to 2 bits then set 'reserved' bits
+ pmt[offset-1]=(info.rawDescriptorSize&0xFF);
memcpy(&pmt[offset],info.rawDescriptorData,info.rawDescriptorSize);
offset += info.rawDescriptorSize;
pmtLength += info.rawDescriptorSize;
View
5 DirectShowFilters/TsWriter/source/PmtGrabber.cpp
@@ -124,7 +124,10 @@ void CPmtGrabber::OnNewSection(CSection& section)
return;
}
- m_iPmtLength=section.section_length;
+ // The + 3 is because the PMT data includes the table ID, section
+ // syntax indicator, and section length bytes on the front - we're
+ // literally passing the *whole* PMT...
+ m_iPmtLength=section.section_length + 3;
// copy pmt data for passing it to tvserver
memcpy(m_pmtData,section.Data,m_iPmtLength);
View
2 DirectShowFilters/TsWriter/source/PmtParser.cpp
@@ -104,7 +104,7 @@ bool CPmtParser::DecodePmt(CSection sections, int& pcr_pid, bool& hasCaDescripto
elementary_PID = ((section[pointer+1]&0x1F)<<8)+section[pointer+2];
ES_info_length = ((section[pointer+3] & 0xF)<<8)+section[pointer+4];
- if (pointer+ES_info_length>=sectionLen)
+ if ((pointer+ES_info_length>=sectionLen) || (ES_info_length > 1023))
{
LogDebug("pmt parser check 1");
return false;
View
2 DirectShowFilters/TsWriter/source/PmtParser.h
@@ -31,7 +31,7 @@ typedef struct stPidInfo2
int fakePid;
int streamType;
int logicalStreamType;
- byte rawDescriptorData[400];
+ byte rawDescriptorData[1024];
int rawDescriptorSize;
bool seenStart;
byte TsPktQ[4][188] ;
View
1 DirectShowFilters/TsWriter/source/TsWriter.cpp
@@ -361,6 +361,7 @@ CMpTs::CMpTs(LPUNKNOWN pUnk, HRESULT *phr)
m_id=0;
LogDebug("CMpTs::ctor()");
+ LogDebug("--------------- BUG-3782 fix v2 -------------------");
b_dumpRawPakets=false;
m_pFilter = new CMpTsFilter(this, GetOwner(), &m_Lock, phr);
View
26 DirectShowFilters/TsWriter/source/epgDecoder.cpp
@@ -162,7 +162,7 @@ HRESULT CEpgDecoder::DecodeEPG(byte* buf,int len,int PID)
if (descriptor_tag ==0x4d)
{
// LogDebug("epg: short event descriptor:0x%x len:%d start:%d",descriptor_tag,descriptor_len,start+off);
- DecodeShortEventDescriptor(&buf[start+off],epgEvent,PID);
+ DecodeShortEventDescriptor(&buf[start+off],epgEvent, lNetworkId, PID);
}
else if (descriptor_tag ==0x54)
{
@@ -412,7 +412,7 @@ HRESULT CEpgDecoder::DecodePremierePrivateEPG(byte* buf,int len)
if (descriptor_tag ==0x4d)
{
// LogDebug("epg: short event descriptor:0x%x len:%d start:%d",descriptor_tag,descriptor_len,start+off);
- DecodeShortEventDescriptor( &buf[start+off],epgEvent,0);
+ DecodeShortEventDescriptor( &buf[start+off],epgEvent,0,0);
}
else if (descriptor_tag ==0x54)
{
@@ -695,7 +695,7 @@ void CEpgDecoder::DecodeExtendedEvent(byte* data, EPGEvent& epgEvent)
}
}
-void CEpgDecoder::DecodeShortEventDescriptor(byte* buf, EPGEvent& epgEvent,int PID)
+void CEpgDecoder::DecodeShortEventDescriptor(byte* buf, EPGEvent& epgEvent,int NetworkID, int PID)
{
try
{
@@ -746,7 +746,11 @@ void CEpgDecoder::DecodeShortEventDescriptor(byte* buf, EPGEvent& epgEvent,int P
return;
}
- if(buf[6]==0x1f && (PID==PID_FREESAT_EPG || PID==PID_FREESAT2_EPG))
+ // 0x1f is tag for freesat/freeview huffman encoding
+ // buf[7] - huffman table id. Including this reduces the chance of non encoded
+ // text being sent through
+
+ if(buf[6]==0x1f && CanDecodeNetworkOrPID(NetworkID, PID))
{
eventText=FreesatHuffmanToString(&buf[6],event_len);
}
@@ -788,7 +792,10 @@ void CEpgDecoder::DecodeShortEventDescriptor(byte* buf, EPGEvent& epgEvent,int P
return;
}
// Check if huffman encoded.
- if(buf[off+1]==0x1f && (PID==PID_FREESAT_EPG || PID==PID_FREESAT2_EPG))
+ // 0x1f is tag for freesat/freeview huffman encoding
+ // off+2 - huffman table id. Including this reduces the chance of non encoded
+ // text being sent through
+ if(buf[off+1]==0x1f && CanDecodeNetworkOrPID(NetworkID, PID))
{
eventDescription=FreesatHuffmanToString(&buf[off+1],text_len);
}
@@ -1149,6 +1156,15 @@ bool CEpgDecoder::IsEPGGrabbing()
{
return m_bParseEPG;
}
+
+bool CEpgDecoder::CanDecodeNetworkOrPID(int NetworkID, int PID)
+{
+ if(NetworkID == 9018 || NetworkID == 59 || PID==PID_FREESAT_EPG || PID==PID_FREESAT2_EPG)
+ {
+ return true;
+ }
+ return false;
+}
bool CEpgDecoder::IsEPGReady()
{
return m_bEpgDone;
View
3 DirectShowFilters/TsWriter/source/epgDecoder.h
@@ -89,6 +89,7 @@ class CEpgDecoder : public CDvbUtil
void GrabEPG();
bool IsEPGReady();
bool IsEPGGrabbing();
+ bool CanDecodeNetworkOrPID(int NetworkID, int PID);
ULONG GetEPGChannelCount( );
ULONG GetEPGEventCount( ULONG channel);
void GetEPGChannel( ULONG channel, WORD* networkId, WORD* transportid, WORD* service_id );
@@ -102,7 +103,7 @@ class CEpgDecoder : public CDvbUtil
bool GetChannelByindex(ULONG channel, EPGChannel& epgChannel);
void DecodeCombinedStarRating_MPAARatingDescriptor(byte* data,EPGEvent &epgEvent);
void DecodeParentalRatingDescriptor(byte* buf,EPGEvent& event);
- void DecodeShortEventDescriptor(byte* buf,EPGEvent& event,int PID);
+ void DecodeShortEventDescriptor(byte* buf,EPGEvent& event,int NetworkID,int PID);
void DecodeContentDescription(byte* buf,EPGEvent& event);
void DecodeExtendedEvent(byte* buf, EPGEvent& event);
void DecodeDishShortDescription(byte* data, EPGEvent& epgEvent, int tnum);
View
2 Tools/InstallationScripts/include/ProcessMacros.nsh
@@ -80,7 +80,7 @@
StrCpy $R0 0
${Do}
${If} $R0 > 0
- ${LOG_TEXT} "INFO" "StopService: sleeping 20ms and recheking service status..."
+ ${LOG_TEXT} "INFO" "StopService: sleeping 20ms and rechecking service status..."
Sleep 20
${EndIF}
View
24 TvEngine3/TVLibrary/SetupTv/App.config
@@ -16,6 +16,30 @@
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="plugins" />
+ <dependentAssembly>
+ <assemblyIdentity name="Gentle.Common"
+ publicKeyToken="80b5de62e27be49b"
+ culture="neutral" />
+ <bindingRedirect oldVersion="1.5.0.29053-1.5.0.29111" newVersion="1.5.0.29112" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="Gentle.FrameWork"
+ publicKeyToken="80b5de62e27be49b"
+ culture="neutral" />
+ <bindingRedirect oldVersion="1.5.0.29053-1.5.0.29111" newVersion="1.5.0.29112" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="Gentle.Provider.MySQL"
+ publicKeyToken="80b5de62e27be49b"
+ culture="neutral" />
+ <bindingRedirect oldVersion="1.5.0.29053-1.5.0.29111" newVersion="1.5.0.29112" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="Gentle.Provider.SQLServer"
+ publicKeyToken="80b5de62e27be49b"
+ culture="neutral" />
+ <bindingRedirect oldVersion="1.5.0.29053-1.5.0.29111" newVersion="1.5.0.29112" />
+ </dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
View
1 TvEngine3/TVLibrary/SetupTv/Sections/CardAtsc.Designer.cs
@@ -88,7 +88,6 @@ private void InitializeComponent()
//
// mpButtonScanTv
//
- this.mpButtonScanTv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.mpButtonScanTv.Location = new System.Drawing.Point(312, 72);
this.mpButtonScanTv.Name = "mpButtonScanTv";
this.mpButtonScanTv.Size = new System.Drawing.Size(131, 23);
View
2 TvEngine3/TVLibrary/SetupTv/Sections/CardDvbIP.Designer.cs
@@ -44,7 +44,6 @@ private void InitializeComponent()
//
// checkBoxCreateGroups
//
- this.checkBoxCreateGroups.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.checkBoxCreateGroups.AutoSize = true;
this.checkBoxCreateGroups.Location = new System.Drawing.Point(24, 52);
this.checkBoxCreateGroups.Name = "checkBoxCreateGroups";
@@ -119,7 +118,6 @@ private void InitializeComponent()
//
// mpButtonScanTv
//
- this.mpButtonScanTv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.mpButtonScanTv.Location = new System.Drawing.Point(319, 48);
this.mpButtonScanTv.Name = "mpButtonScanTv";
this.mpButtonScanTv.Size = new System.Drawing.Size(131, 23);
View
2 TvEngine3/TVLibrary/SetupTv/Sections/Epg.Designer.cs
@@ -401,7 +401,7 @@ private void InitializeComponent()
this.checkboxSameTransponder.Name = "checkboxSameTransponder";
this.checkboxSameTransponder.Size = new System.Drawing.Size(257, 17);
this.checkboxSameTransponder.TabIndex = 14;
- this.checkboxSameTransponder.Text = "Grap EPG only for channels on same transponder";
+ this.checkboxSameTransponder.Text = "Grab EPG only for channels on same transponder";
this.checkboxSameTransponder.UseVisualStyleBackColor = true;
//
// label1
View
4 TvEngine3/TVLibrary/TVDatabase/TVDatabase.csproj
@@ -40,15 +40,15 @@
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
View
4 TvEngine3/TVLibrary/TVDatabase/TvBusinessLayer/TvBusinessLayer.csproj
@@ -40,15 +40,15 @@
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
View
BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Common.dll
Binary file not shown.
View
BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Framework.dll
Binary file not shown.
View
BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Provider.MySQL.dll
Binary file not shown.
View
BIN TvEngine3/TVLibrary/TVDatabase/references/Gentle.Provider.SQLServer.dll
Binary file not shown.
View
12 TvEngine3/TVLibrary/TVLibrary/Implementations/DVB/ConditionalAccess/ConditionalAccess.cs
@@ -489,6 +489,10 @@ public void ResetCAM()
///<returns></returns>
public bool OnRunGraph(int servicedId)
{
+ if (_digitalEveryWhere != null)
+ {
+ _digitalEveryWhere.OnStartGraph();
+ }
return true;
}
@@ -580,7 +584,9 @@ public int NumberOfChannelsDecrypting
/// <returns></returns>
private static byte[] PatchPMT_AstonCrypt2(byte[] PMT, int pmtLength, out int newPmtLength)
{
- byte[] newPMT = new byte[1024]; // create a new array.
+ byte[] newPMT = new byte[pmtLength]; // create a new array.
+
+ Log.Log.Info("Conditional Access: PatchPMT_AstonCrypt2 : pmtLength {0}", pmtLength);
int ps = 0;
int pd = 0;
@@ -591,12 +597,12 @@ private static byte[] PatchPMT_AstonCrypt2(byte[] PMT, int pmtLength, out int ne
newPMT[pd++] = PMT[ps++];
// Need to patch audio AC3 channels 0x06, , , , ,0x6A in real AC3 descriptor 0x81, .... for ( at least !) ASTONCRYPT CAM module
- while ((ps + 5 < pmtLength) && (pd < 1024))
+ while ((ps + 5 < pmtLength) && (pd < pmtLength))
{
int len = PMT[ps + 4] + 5;
for (int i = 0; i < len; ++i)
{
- if (pd >= 1024)
+ if (pd >= pmtLength)
break;
if ((i == 0) && (PMT[ps] == 0x06) && (PMT[ps + 5] == 0x6A))
{
View
8 ...ry/TVLibrary/Implementations/DVB/ConditionalAccess/DigitalEverywhere/DigitalEveryWhere.cs
@@ -1115,6 +1115,14 @@ public bool ReadDiSEqCCommand(out byte[] reply)
#endregion
+ /// Start the ci handler with the graph
+
+ /// </summary>
+ internal void OnStartGraph()
+ {
+ StartCiHandlerThread();
+ }
+
/// <summary>
/// Set parameter to null when stopping the Graph.
/// </summary>
View
4 TvEngine3/TVLibrary/TVLibrary/TVLibrary.csproj
@@ -45,7 +45,7 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DocumentationFile>bin\Debug\TVLibrary.XML</DocumentationFile>
<DebugType>full</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
@@ -55,7 +55,7 @@
<DocumentationFile>bin\Release\TVLibrary.XML</DocumentationFile>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
View
210 TvEngine3/TVLibrary/TVServer.Base/TuningParameters/dvbc/Austria.KufNet.xml
@@ -1,215 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfDVBCTuning xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DVBCTuning>
- <Frequency>370000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>370000</Frequency>
- <ModulationType>Mod256Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>378000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>378000</Frequency>
+ <Frequency>394000</Frequency>
<ModulationType>Mod256Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
+ <SymbolRate>6900</SymbolRate>
</DVBCTuning>
<!-- Start of official frequencys -->
<DVBCTuning>
- <Frequency>386000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
+ <Frequency>402000</Frequency>
+ <ModulationType>Mod256Qam</ModulationType>
+ <SymbolRate>6900</SymbolRate>
</DVBCTuning>
<DVBCTuning>
- <Frequency>394000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
+ <Frequency>410000</Frequency>
+ <ModulationType>Mod256Qam</ModulationType>
+ <SymbolRate>6900</SymbolRate>
</DVBCTuning>
<DVBCTuning>
- <Frequency>410000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
+ <Frequency>418000</Frequency>
+ <ModulationType>Mod256Qam</ModulationType>
+ <SymbolRate>6900</SymbolRate>
</DVBCTuning>
<DVBCTuning>
<Frequency>426000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
+ <ModulationType>Mod256Qam</ModulationType>
+ <SymbolRate>6900</SymbolRate>
</DVBCTuning>
<DVBCTuning>
<Frequency>434000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
+ <ModulationType>Mod256Qam</ModulationType>
+ <SymbolRate>6900</SymbolRate>
</DVBCTuning>
<DVBCTuning>
<Frequency>442000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>490000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>498000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>506000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>514000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>522000</Frequency>
<ModulationType>Mod256Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
+ <SymbolRate>6900</SymbolRate>
</DVBCTuning>
<DVBCTuning>
- <Frequency>530000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>538000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </DVBCTuning>
- <DVBCTuning>
- <Frequency>546000</Frequency>
- <ModulationType>Mod64Qam</ModulationType>
- <SymbolRate>6875</SymbolRate>
- </D