Advertisement
Guest User

RecTask bug fix patch

a guest
Jun 22nd, 2012
3,851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 10.27 KB | None | 0 0
  1. diff -ur RecTask_0.1.4_Src/BonTsEngine/BufferedFileWriter.cpp RecTask/BonTsEngine/BufferedFileWriter.cpp
  2. --- RecTask_0.1.4_Src/BonTsEngine/BufferedFileWriter.cpp    2011-09-22 21:28:44 +0900
  3. +++ RecTask/BonTsEngine/BufferedFileWriter.cpp  2012-06-22 01:13:14 +0900
  4. @@ -96,6 +96,7 @@
  5.  
  6.     // 一旦閉じる
  7.     CloseFile();
  8. +   ClearQueue();
  9.     m_WriteSize = 0;
  10.     m_WriteCount = 0;
  11.  
  12. diff -ur RecTask_0.1.4_Src/BonTsEngine/TsSelector.h RecTask/BonTsEngine/TsSelector.h
  13. --- RecTask_0.1.4_Src/BonTsEngine/TsSelector.h  2011-09-22 21:28:44 +0900
  14. +++ RecTask/BonTsEngine/TsSelector.h    2012-06-22 01:13:14 +0900
  15. @@ -26,7 +26,7 @@
  16.         STREAM_DATACARROUSEL    = 0x00000008UL,
  17.         STREAM_AAC              = 0x00000010UL,
  18.         STREAM_H264             = 0x00000020UL,
  19. -       STREAM_ALL              = 0xFFFFFFFFUL
  20. +       STREAM_ALL              = 0x0000FFFFUL
  21.     };
  22.     bool SetTargetServiceID(WORD ServiceID=0, DWORD Stream=STREAM_ALL);
  23.     WORD GetTargetServiceID() const { return m_TargetServiceID; }
  24. diff -ur RecTask_0.1.4_Src/Common/BasicMessage.cpp RecTask/Common/BasicMessage.cpp
  25. --- RecTask_0.1.4_Src/Common/BasicMessage.cpp   2011-09-24 22:56:00 +0900
  26. +++ RecTask/Common/BasicMessage.cpp 2012-06-22 01:13:14 +0900
  27. @@ -500,6 +500,7 @@
  28.                                              ((ULONGLONG)Info.StartTime.dwHighDateTime<<32) | (ULONGLONG)Info.StartTime.dwLowDateTime);
  29.                     pMessage->SetPropertyInt(MESSAGE_PROPERTY_StartTickCount,
  30.                                              Info.StartTickCount);
  31. +                   pMessage->SetProperty(MESSAGE_PROPERTY_FilePath,Info.FilePaths.front());
  32.                 }
  33.  
  34.                 return true;
  35. @@ -538,6 +539,9 @@
  36.                 else
  37.                     pInfo->StartTickCount=0;
  38.  
  39. +               String FilePath;
  40. +               if (pMessage->GetProperty(MESSAGE_PROPERTY_FilePath,&FilePath))
  41. +                   pInfo->FilePaths.push_back(FilePath);
  42.                 return true;
  43.             }
  44.  
  45. diff -ur RecTask_0.1.4_Src/RecTask/RecTask.cpp RecTask/RecTask/RecTask.cpp
  46. --- RecTask_0.1.4_Src/RecTask/RecTask.cpp   2011-09-27 20:17:54 +0900
  47. +++ RecTask/RecTask/RecTask.cpp 2012-06-22 01:13:14 +0900
  48. @@ -131,6 +131,24 @@
  49.         m_Core.EnableEMMProcess(m_CurSettings.General.GetEMMProcess());
  50.         m_Core.SetDescramble(m_CurSettings.General.GetDescrambleType());
  51.  
  52. +       if (!m_CommandLine.m_BonDriverFileName.empty()) {
  53. +           OutLog(LOG_VERBOSE,L"コマンドラインで指定された BonDriver \"%s\" をロードします。",
  54. +                  m_CommandLine.m_BonDriverFileName.c_str());
  55. +
  56. +           String BonDriverPath;
  57. +
  58. +           if (PathUtility::IsRelative(m_CommandLine.m_BonDriverFileName)) {
  59. +               String Dir;
  60. +               if (!m_CurSettings.BonDriver.GetLoadDirectoryAbsolute(&Dir)
  61. +                       || !PathUtility::RelativeToAbsolute(&BonDriverPath,Dir,m_CommandLine.m_BonDriverFileName))
  62. +                   BonDriverPath=m_CommandLine.m_BonDriverFileName;
  63. +           } else {
  64. +               BonDriverPath=m_CommandLine.m_BonDriverFileName;
  65. +           }
  66. +           if (m_Core.LoadBonDriver(BonDriverPath.c_str()))
  67. +               m_Core.OpenTuner();
  68. +       }
  69. +
  70.         m_RecTaskWindow.Initialize(m_hInstance);
  71.  
  72.         if (!m_TaskIdentity.Initialize(TASK_TYPE_SERVER,m_CurSettings.General.GetTaskID())) {
  73. @@ -204,83 +222,66 @@
  74.             OpenCasCard();
  75.         }
  76.  
  77. -       if (!m_CommandLine.m_BonDriverFileName.empty()) {
  78. -           OutLog(LOG_VERBOSE,L"コマンドラインで指定された BonDriver \"%s\" をロードします。",
  79. -                  m_CommandLine.m_BonDriverFileName.c_str());
  80. -
  81. -           String BonDriverPath;
  82. +       //BonDriver_PT-T.dll は OpenTuner() ~ SetChannel() が早すぎると選局失敗する(SDKのバグ?)
  83. +       if (m_Core.IsTunerOpened()) {
  84. +           if (m_CommandLine.m_Channel>=0) {
  85. +               m_Core.SetChannelByIndex(m_CommandLine.m_TuningSpace>=0?m_CommandLine.m_TuningSpace:0,
  86. +                                           m_CommandLine.m_Channel,
  87. +                                           m_CommandLine.m_ServiceID);
  88. +           } else if (m_CommandLine.m_TuningSpace>=0) {
  89. +               if (m_CommandLine.m_RemoteControlKeyID!=0
  90. +                       || m_CommandLine.m_NetworkID!=0
  91. +                       || m_CommandLine.m_TransportStreamID!=0
  92. +                       || m_CommandLine.m_ServiceID!=0) {
  93. +                   CChannelList ChannelList;
  94.  
  95. -           if (PathUtility::IsRelative(m_CommandLine.m_BonDriverFileName)) {
  96. -               String Dir;
  97. -               if (!m_CurSettings.BonDriver.GetLoadDirectoryAbsolute(&Dir)
  98. -                       || !PathUtility::RelativeToAbsolute(&BonDriverPath,Dir,m_CommandLine.m_BonDriverFileName))
  99. -                   BonDriverPath=m_CommandLine.m_BonDriverFileName;
  100. -           } else {
  101. -               BonDriverPath=m_CommandLine.m_BonDriverFileName;
  102. -           }
  103. +                   if (m_Core.GetScannedChannelList(m_CommandLine.m_TuningSpace,&ChannelList)) {
  104. +                       int Channel;
  105.  
  106. -           if (m_Core.LoadBonDriver(BonDriverPath.c_str())) {
  107. -               if (m_Core.OpenTuner()) {
  108. -                   if (m_CommandLine.m_Channel>=0) {
  109. -                       m_Core.SetChannelByIndex(m_CommandLine.m_TuningSpace>=0?m_CommandLine.m_TuningSpace:0,
  110. -                                                m_CommandLine.m_Channel,
  111. -                                                m_CommandLine.m_ServiceID);
  112. -                   } else if (m_CommandLine.m_TuningSpace>=0) {
  113. -                       if (m_CommandLine.m_RemoteControlKeyID!=0
  114. -                               || m_CommandLine.m_NetworkID!=0
  115. -                               || m_CommandLine.m_TransportStreamID!=0
  116. -                               || m_CommandLine.m_ServiceID!=0) {
  117. -                           CChannelList ChannelList;
  118. -
  119. -                           if (m_Core.GetScannedChannelList(m_CommandLine.m_TuningSpace,&ChannelList)) {
  120. -                               int Channel;
  121. -
  122. -                               if (m_CommandLine.m_RemoteControlKeyID!=0) {
  123. -                                   Channel=ChannelList.FindRemoteControlKeyID(m_CommandLine.m_RemoteControlKeyID);
  124. -                               } else {
  125. -                                   Channel=ChannelList.FindByIDs(m_CommandLine.m_NetworkID,
  126. -                                                                 m_CommandLine.m_TransportStreamID,
  127. -                                                                 m_CommandLine.m_ServiceID);
  128. -                               }
  129. -                               if (Channel>=0) {
  130. -                                   m_Core.SetChannelByScanned(m_CommandLine.m_TuningSpace,Channel);
  131. -                               } else {
  132. -                                   OutLog(LOG_ERROR,L"コマンドラインでの指定に一致するチャンネルがありません。");
  133. -                               }
  134. -                           } else {
  135. -                               OutLog(LOG_ERROR,L"コマンドラインで指定されたチューニング空間(%d)のチャンネルがありません。",
  136. -                                      m_CommandLine.m_TuningSpace);
  137. -                           }
  138. +                       if (m_CommandLine.m_RemoteControlKeyID!=0) {
  139. +                           Channel=ChannelList.FindRemoteControlKeyID(m_CommandLine.m_RemoteControlKeyID);
  140.                         } else {
  141. -                           OutLog(LOG_ERROR,L"コマンドラインでチューニング空間のみの指定はできません。");
  142. -                       }
  143. -                   } else if (m_CommandLine.m_NetworkID!=0
  144. -                           || m_CommandLine.m_TransportStreamID!=0
  145. -                           || m_CommandLine.m_ServiceID!=0) {
  146. -                       m_Core.SetChannelByIDs(m_CommandLine.m_NetworkID,
  147. -                                              m_CommandLine.m_TransportStreamID,
  148. -                                              m_CommandLine.m_ServiceID);
  149. -                   } else if (m_CommandLine.m_RemoteControlKeyID!=0) {
  150. -                       CChannelList ChannelList;
  151. -                       bool fFound=false;
  152. -
  153. -                       for (int i=0;m_Core.GetScannedChannelList(i,&ChannelList);i++) {
  154. -                           int Channel=ChannelList.FindRemoteControlKeyID(m_CommandLine.m_RemoteControlKeyID);
  155. -                           if (Channel>=0) {
  156. -                               m_Core.SetChannelByScanned(m_CommandLine.m_TuningSpace,Channel);
  157. -                               fFound=true;
  158. -                               break;
  159. -                           }
  160. +                           Channel=ChannelList.FindByIDs(m_CommandLine.m_NetworkID,
  161. +                                                           m_CommandLine.m_TransportStreamID,
  162. +                                                           m_CommandLine.m_ServiceID);
  163.                         }
  164. -                       if (!fFound) {
  165. -                           OutLog(LOG_ERROR,L"コマンドラインで指定されたリモコン番号(%d)のチャンネルがありません。",
  166. -                                  m_CommandLine.m_RemoteControlKeyID);
  167. +                       if (Channel>=0) {
  168. +                           m_Core.SetChannelByScanned(m_CommandLine.m_TuningSpace,Channel);
  169. +                       } else {
  170. +                           OutLog(LOG_ERROR,L"コマンドラインでの指定に一致するチャンネルがありません。");
  171.                         }
  172. +                   } else {
  173. +                       OutLog(LOG_ERROR,L"コマンドラインで指定されたチューニング空間(%d)のチャンネルがありません。",
  174. +                               m_CommandLine.m_TuningSpace);
  175.                     }
  176.                 } else {
  177. -                   //m_Core.UnloadBonDriver();
  178. +                   OutLog(LOG_ERROR,L"コマンドラインでチューニング空間のみの指定はできません。");
  179. +               }
  180. +           } else if (m_CommandLine.m_NetworkID!=0
  181. +                   || m_CommandLine.m_TransportStreamID!=0
  182. +                   || m_CommandLine.m_ServiceID!=0) {
  183. +               m_Core.SetChannelByIDs(m_CommandLine.m_NetworkID,
  184. +                                       m_CommandLine.m_TransportStreamID,
  185. +                                       m_CommandLine.m_ServiceID);
  186. +           } else if (m_CommandLine.m_RemoteControlKeyID!=0) {
  187. +               CChannelList ChannelList;
  188. +               bool fFound=false;
  189. +
  190. +               for (int i=0;m_Core.GetScannedChannelList(i,&ChannelList);i++) {
  191. +                   int Channel=ChannelList.FindRemoteControlKeyID(m_CommandLine.m_RemoteControlKeyID);
  192. +                   if (Channel>=0) {
  193. +                       m_Core.SetChannelByScanned(m_CommandLine.m_TuningSpace,Channel);
  194. +                       fFound=true;
  195. +                       break;
  196. +                   }
  197. +               }
  198. +               if (!fFound) {
  199. +                   OutLog(LOG_ERROR,L"コマンドラインで指定されたリモコン番号(%d)のチャンネルがありません。",
  200. +                           m_CommandLine.m_RemoteControlKeyID);
  201.                 }
  202.             }
  203. +       } else {
  204. +           //m_Core.UnloadBonDriver();
  205.         }
  206.  
  207.         if (m_CommandLine.m_fRecord) {
  208. diff -ur RecTask_0.1.4_Src/RecTask/RecTaskCore.cpp RecTask/RecTask/RecTaskCore.cpp
  209. --- RecTask_0.1.4_Src/RecTask/RecTaskCore.cpp   2011-09-27 20:56:34 +0900
  210. +++ RecTask/RecTask/RecTaskCore.cpp 2012-06-22 01:13:14 +0900
  211. @@ -1424,11 +1424,7 @@
  212.         if ((Info.Streams & STREAM_1SEG)!=0) {
  213.             OutLog(LOG_VERBOSE,L"ワンセグサービスを送信対象に設定します。");
  214.             m_DtvEngine.SetSendCurServiceOnly(false, Info.Streams & STREAM_ALL);
  215. -           if (!m_DtvEngine.SetSendStream(::CDtvEngine::SID_1SEG,Info.Streams & STREAM_ALL)) {
  216. -               OutLog(LOG_ERROR,L"ワンセグサービスを選択できません。");
  217. -               m_StreamingMutex.Close();
  218. -               return false;
  219. -           }
  220. +           m_DtvEngine.SetSendStream(::CDtvEngine::SID_1SEG,Info.Streams & STREAM_ALL);
  221.         } else {
  222.             OutLog(LOG_VERBOSE,L"%sサービスを送信対象に設定します。",
  223.                    fCurServiceOnly?L"指定":L"全ての");
  224. diff -ur RecTask_0.1.4_Src/RecTaskCentre/RecTaskCentreCore.cpp RecTask/RecTaskCentre/RecTaskCentreCore.cpp
  225. --- RecTask_0.1.4_Src/RecTaskCentre/RecTaskCentreCore.cpp   2011-09-27 22:37:40 +0900
  226. +++ RecTask/RecTaskCentre/RecTaskCentreCore.cpp 2012-06-22 01:13:14 +0900
  227. @@ -223,7 +223,8 @@
  228.             bool GetRecordingInfo()
  229.             {
  230.                 if (m_RecordingInfoStatus==INFO_STATUS_NOT_READY) {
  231. -                   if (m_Core.GetRecTaskManager().GetRecordingInfo(m_TaskID,&m_RecordingInfo))
  232. +                   m_Core.GetRecTaskManager().GetRecordingInfo(m_TaskID,&m_RecordingInfo);
  233. +                   if (m_RecordingInfo.State)
  234.                         m_RecordingInfoStatus=INFO_STATUS_SUCCEEDED;
  235.                     else
  236.                         m_RecordingInfoStatus=INFO_STATUS_FAILED;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement