QueryEditingJobListResult.cc 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <alibabacloud/mts/model/QueryEditingJobListResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Mts;
  19. using namespace AlibabaCloud::Mts::Model;
  20. QueryEditingJobListResult::QueryEditingJobListResult() :
  21. ServiceResult()
  22. {}
  23. QueryEditingJobListResult::QueryEditingJobListResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. QueryEditingJobListResult::~QueryEditingJobListResult()
  29. {}
  30. void QueryEditingJobListResult::parse(const std::string &payload)
  31. {
  32. Json::Reader reader;
  33. Json::Value value;
  34. reader.parse(payload, value);
  35. setRequestId(value["RequestId"].asString());
  36. auto allJobListNode = value["JobList"]["Job"];
  37. for (auto valueJobListJob : allJobListNode)
  38. {
  39. Job jobListObject;
  40. if(!valueJobListJob["JobId"].isNull())
  41. jobListObject.jobId = valueJobListJob["JobId"].asString();
  42. if(!valueJobListJob["State"].isNull())
  43. jobListObject.state = valueJobListJob["State"].asString();
  44. if(!valueJobListJob["Code"].isNull())
  45. jobListObject.code = valueJobListJob["Code"].asString();
  46. if(!valueJobListJob["Message"].isNull())
  47. jobListObject.message = valueJobListJob["Message"].asString();
  48. if(!valueJobListJob["Percent"].isNull())
  49. jobListObject.percent = std::stol(valueJobListJob["Percent"].asString());
  50. if(!valueJobListJob["PipelineId"].isNull())
  51. jobListObject.pipelineId = valueJobListJob["PipelineId"].asString();
  52. if(!valueJobListJob["CreationTime"].isNull())
  53. jobListObject.creationTime = valueJobListJob["CreationTime"].asString();
  54. if(!valueJobListJob["FinishTime"].isNull())
  55. jobListObject.finishTime = valueJobListJob["FinishTime"].asString();
  56. auto allEditingInputsNode = allJobListNode["EditingInputs"]["EditingInput"];
  57. for (auto allJobListNodeEditingInputsEditingInput : allEditingInputsNode)
  58. {
  59. Job::EditingInput editingInputsObject;
  60. if(!allJobListNodeEditingInputsEditingInput["Id"].isNull())
  61. editingInputsObject.id = allJobListNodeEditingInputsEditingInput["Id"].asString();
  62. auto inputFileNode = value["InputFile"];
  63. if(!inputFileNode["Bucket"].isNull())
  64. editingInputsObject.inputFile.bucket = inputFileNode["Bucket"].asString();
  65. if(!inputFileNode["Location"].isNull())
  66. editingInputsObject.inputFile.location = inputFileNode["Location"].asString();
  67. if(!inputFileNode["Object"].isNull())
  68. editingInputsObject.inputFile.object = inputFileNode["Object"].asString();
  69. auto inputConfigNode = value["InputConfig"];
  70. if(!inputConfigNode["DeinterlaceMethod"].isNull())
  71. editingInputsObject.inputConfig.deinterlaceMethod = inputConfigNode["DeinterlaceMethod"].asString();
  72. if(!inputConfigNode["IsNormalSar"].isNull())
  73. editingInputsObject.inputConfig.isNormalSar = inputConfigNode["IsNormalSar"].asString();
  74. jobListObject.editingInputs.push_back(editingInputsObject);
  75. }
  76. auto editingConfigNode = value["EditingConfig"];
  77. if(!editingConfigNode["TemplateId"].isNull())
  78. jobListObject.editingConfig.templateId = editingConfigNode["TemplateId"].asString();
  79. if(!editingConfigNode["UserData"].isNull())
  80. jobListObject.editingConfig.userData = editingConfigNode["UserData"].asString();
  81. if(!editingConfigNode["Rotate"].isNull())
  82. jobListObject.editingConfig.rotate = editingConfigNode["Rotate"].asString();
  83. if(!editingConfigNode["VideoStreamMap"].isNull())
  84. jobListObject.editingConfig.videoStreamMap = editingConfigNode["VideoStreamMap"].asString();
  85. if(!editingConfigNode["AudioStreamMap"].isNull())
  86. jobListObject.editingConfig.audioStreamMap = editingConfigNode["AudioStreamMap"].asString();
  87. if(!editingConfigNode["DeWatermark"].isNull())
  88. jobListObject.editingConfig.deWatermark = editingConfigNode["DeWatermark"].asString();
  89. if(!editingConfigNode["Priority"].isNull())
  90. jobListObject.editingConfig.priority = editingConfigNode["Priority"].asString();
  91. if(!editingConfigNode["WaterMarkConfigUrl"].isNull())
  92. jobListObject.editingConfig.waterMarkConfigUrl = editingConfigNode["WaterMarkConfigUrl"].asString();
  93. if(!editingConfigNode["MergeConfigUrl"].isNull())
  94. jobListObject.editingConfig.mergeConfigUrl = editingConfigNode["MergeConfigUrl"].asString();
  95. auto allWaterMarkListNode = editingConfigNode["WaterMarkList"]["WaterMark"];
  96. for (auto editingConfigNodeWaterMarkListWaterMark : allWaterMarkListNode)
  97. {
  98. Job::EditingConfig::WaterMark waterMarkObject;
  99. if(!editingConfigNodeWaterMarkListWaterMark["WaterMarkTemplateId"].isNull())
  100. waterMarkObject.waterMarkTemplateId = editingConfigNodeWaterMarkListWaterMark["WaterMarkTemplateId"].asString();
  101. if(!editingConfigNodeWaterMarkListWaterMark["Width"].isNull())
  102. waterMarkObject.width = editingConfigNodeWaterMarkListWaterMark["Width"].asString();
  103. if(!editingConfigNodeWaterMarkListWaterMark["Height"].isNull())
  104. waterMarkObject.height = editingConfigNodeWaterMarkListWaterMark["Height"].asString();
  105. if(!editingConfigNodeWaterMarkListWaterMark["Dx"].isNull())
  106. waterMarkObject.dx = editingConfigNodeWaterMarkListWaterMark["Dx"].asString();
  107. if(!editingConfigNodeWaterMarkListWaterMark["Dy"].isNull())
  108. waterMarkObject.dy = editingConfigNodeWaterMarkListWaterMark["Dy"].asString();
  109. if(!editingConfigNodeWaterMarkListWaterMark["ReferPos"].isNull())
  110. waterMarkObject.referPos = editingConfigNodeWaterMarkListWaterMark["ReferPos"].asString();
  111. if(!editingConfigNodeWaterMarkListWaterMark["Type"].isNull())
  112. waterMarkObject.type = editingConfigNodeWaterMarkListWaterMark["Type"].asString();
  113. auto inputFile1Node = value["InputFile"];
  114. if(!inputFile1Node["Bucket"].isNull())
  115. waterMarkObject.inputFile1.bucket = inputFile1Node["Bucket"].asString();
  116. if(!inputFile1Node["Location"].isNull())
  117. waterMarkObject.inputFile1.location = inputFile1Node["Location"].asString();
  118. if(!inputFile1Node["Object"].isNull())
  119. waterMarkObject.inputFile1.object = inputFile1Node["Object"].asString();
  120. jobListObject.editingConfig.waterMarkList.push_back(waterMarkObject);
  121. }
  122. auto allMergeListNode = editingConfigNode["MergeList"]["Merge"];
  123. for (auto editingConfigNodeMergeListMerge : allMergeListNode)
  124. {
  125. Job::EditingConfig::Merge mergeObject;
  126. if(!editingConfigNodeMergeListMerge["MergeURL"].isNull())
  127. mergeObject.mergeURL = editingConfigNodeMergeListMerge["MergeURL"].asString();
  128. if(!editingConfigNodeMergeListMerge["Start"].isNull())
  129. mergeObject.start = editingConfigNodeMergeListMerge["Start"].asString();
  130. if(!editingConfigNodeMergeListMerge["Duration"].isNull())
  131. mergeObject.duration = editingConfigNodeMergeListMerge["Duration"].asString();
  132. if(!editingConfigNodeMergeListMerge["RoleArn"].isNull())
  133. mergeObject.roleArn = editingConfigNodeMergeListMerge["RoleArn"].asString();
  134. jobListObject.editingConfig.mergeList.push_back(mergeObject);
  135. }
  136. auto digiWaterMarkNode = editingConfigNode["DigiWaterMark"];
  137. if(!digiWaterMarkNode["Type"].isNull())
  138. jobListObject.editingConfig.digiWaterMark.type = digiWaterMarkNode["Type"].asString();
  139. if(!digiWaterMarkNode["Alpha"].isNull())
  140. jobListObject.editingConfig.digiWaterMark.alpha = digiWaterMarkNode["Alpha"].asString();
  141. auto inputFile2Node = digiWaterMarkNode["InputFile"];
  142. if(!inputFile2Node["Bucket"].isNull())
  143. jobListObject.editingConfig.digiWaterMark.inputFile2.bucket = inputFile2Node["Bucket"].asString();
  144. if(!inputFile2Node["Location"].isNull())
  145. jobListObject.editingConfig.digiWaterMark.inputFile2.location = inputFile2Node["Location"].asString();
  146. if(!inputFile2Node["Object"].isNull())
  147. jobListObject.editingConfig.digiWaterMark.inputFile2.object = inputFile2Node["Object"].asString();
  148. auto outputFileNode = editingConfigNode["OutputFile"];
  149. if(!outputFileNode["Bucket"].isNull())
  150. jobListObject.editingConfig.outputFile.bucket = outputFileNode["Bucket"].asString();
  151. if(!outputFileNode["Location"].isNull())
  152. jobListObject.editingConfig.outputFile.location = outputFileNode["Location"].asString();
  153. if(!outputFileNode["Object"].isNull())
  154. jobListObject.editingConfig.outputFile.object = outputFileNode["Object"].asString();
  155. if(!outputFileNode["RoleArn"].isNull())
  156. jobListObject.editingConfig.outputFile.roleArn = outputFileNode["RoleArn"].asString();
  157. auto m3U8NonStandardSupportNode = editingConfigNode["M3U8NonStandardSupport"];
  158. auto tSNode = m3U8NonStandardSupportNode["TS"];
  159. if(!tSNode["Md5Support"].isNull())
  160. jobListObject.editingConfig.m3U8NonStandardSupport.tS.md5Support = tSNode["Md5Support"].asString() == "true";
  161. if(!tSNode["SizeSupport"].isNull())
  162. jobListObject.editingConfig.m3U8NonStandardSupport.tS.sizeSupport = tSNode["SizeSupport"].asString() == "true";
  163. auto propertiesNode = editingConfigNode["Properties"];
  164. if(!propertiesNode["Width"].isNull())
  165. jobListObject.editingConfig.properties.width = propertiesNode["Width"].asString();
  166. if(!propertiesNode["Height"].isNull())
  167. jobListObject.editingConfig.properties.height = propertiesNode["Height"].asString();
  168. if(!propertiesNode["Bitrate"].isNull())
  169. jobListObject.editingConfig.properties.bitrate = propertiesNode["Bitrate"].asString();
  170. if(!propertiesNode["Duration"].isNull())
  171. jobListObject.editingConfig.properties.duration = propertiesNode["Duration"].asString();
  172. if(!propertiesNode["Fps"].isNull())
  173. jobListObject.editingConfig.properties.fps = propertiesNode["Fps"].asString();
  174. if(!propertiesNode["FileSize"].isNull())
  175. jobListObject.editingConfig.properties.fileSize = propertiesNode["FileSize"].asString();
  176. if(!propertiesNode["FileFormat"].isNull())
  177. jobListObject.editingConfig.properties.fileFormat = propertiesNode["FileFormat"].asString();
  178. auto streamsNode = propertiesNode["Streams"];
  179. auto allVideoStreamListNode = streamsNode["VideoStreamList"]["VideoStream"];
  180. for (auto streamsNodeVideoStreamListVideoStream : allVideoStreamListNode)
  181. {
  182. Job::EditingConfig::Properties::Streams::VideoStream videoStreamObject;
  183. if(!streamsNodeVideoStreamListVideoStream["Index"].isNull())
  184. videoStreamObject.index = streamsNodeVideoStreamListVideoStream["Index"].asString();
  185. if(!streamsNodeVideoStreamListVideoStream["CodecName"].isNull())
  186. videoStreamObject.codecName = streamsNodeVideoStreamListVideoStream["CodecName"].asString();
  187. if(!streamsNodeVideoStreamListVideoStream["CodecLongName"].isNull())
  188. videoStreamObject.codecLongName = streamsNodeVideoStreamListVideoStream["CodecLongName"].asString();
  189. if(!streamsNodeVideoStreamListVideoStream["Profile"].isNull())
  190. videoStreamObject.profile = streamsNodeVideoStreamListVideoStream["Profile"].asString();
  191. if(!streamsNodeVideoStreamListVideoStream["CodecTimeBase"].isNull())
  192. videoStreamObject.codecTimeBase = streamsNodeVideoStreamListVideoStream["CodecTimeBase"].asString();
  193. if(!streamsNodeVideoStreamListVideoStream["CodecTagString"].isNull())
  194. videoStreamObject.codecTagString = streamsNodeVideoStreamListVideoStream["CodecTagString"].asString();
  195. if(!streamsNodeVideoStreamListVideoStream["CodecTag"].isNull())
  196. videoStreamObject.codecTag = streamsNodeVideoStreamListVideoStream["CodecTag"].asString();
  197. if(!streamsNodeVideoStreamListVideoStream["Width"].isNull())
  198. videoStreamObject.width = streamsNodeVideoStreamListVideoStream["Width"].asString();
  199. if(!streamsNodeVideoStreamListVideoStream["Height"].isNull())
  200. videoStreamObject.height = streamsNodeVideoStreamListVideoStream["Height"].asString();
  201. if(!streamsNodeVideoStreamListVideoStream["HasBFrames"].isNull())
  202. videoStreamObject.hasBFrames = streamsNodeVideoStreamListVideoStream["HasBFrames"].asString();
  203. if(!streamsNodeVideoStreamListVideoStream["Sar"].isNull())
  204. videoStreamObject.sar = streamsNodeVideoStreamListVideoStream["Sar"].asString();
  205. if(!streamsNodeVideoStreamListVideoStream["Dar"].isNull())
  206. videoStreamObject.dar = streamsNodeVideoStreamListVideoStream["Dar"].asString();
  207. if(!streamsNodeVideoStreamListVideoStream["PixFmt"].isNull())
  208. videoStreamObject.pixFmt = streamsNodeVideoStreamListVideoStream["PixFmt"].asString();
  209. if(!streamsNodeVideoStreamListVideoStream["Level"].isNull())
  210. videoStreamObject.level = streamsNodeVideoStreamListVideoStream["Level"].asString();
  211. if(!streamsNodeVideoStreamListVideoStream["Fps"].isNull())
  212. videoStreamObject.fps = streamsNodeVideoStreamListVideoStream["Fps"].asString();
  213. if(!streamsNodeVideoStreamListVideoStream["AvgFPS"].isNull())
  214. videoStreamObject.avgFPS = streamsNodeVideoStreamListVideoStream["AvgFPS"].asString();
  215. if(!streamsNodeVideoStreamListVideoStream["Timebase"].isNull())
  216. videoStreamObject.timebase = streamsNodeVideoStreamListVideoStream["Timebase"].asString();
  217. if(!streamsNodeVideoStreamListVideoStream["StartTime"].isNull())
  218. videoStreamObject.startTime = streamsNodeVideoStreamListVideoStream["StartTime"].asString();
  219. if(!streamsNodeVideoStreamListVideoStream["Duration"].isNull())
  220. videoStreamObject.duration = streamsNodeVideoStreamListVideoStream["Duration"].asString();
  221. if(!streamsNodeVideoStreamListVideoStream["Bitrate"].isNull())
  222. videoStreamObject.bitrate = streamsNodeVideoStreamListVideoStream["Bitrate"].asString();
  223. if(!streamsNodeVideoStreamListVideoStream["NumFrames"].isNull())
  224. videoStreamObject.numFrames = streamsNodeVideoStreamListVideoStream["NumFrames"].asString();
  225. if(!streamsNodeVideoStreamListVideoStream["Lang"].isNull())
  226. videoStreamObject.lang = streamsNodeVideoStreamListVideoStream["Lang"].asString();
  227. auto networkCostNode = value["NetworkCost"];
  228. if(!networkCostNode["PreloadTime"].isNull())
  229. videoStreamObject.networkCost.preloadTime = networkCostNode["PreloadTime"].asString();
  230. if(!networkCostNode["CostBandwidth"].isNull())
  231. videoStreamObject.networkCost.costBandwidth = networkCostNode["CostBandwidth"].asString();
  232. if(!networkCostNode["AvgBitrate"].isNull())
  233. videoStreamObject.networkCost.avgBitrate = networkCostNode["AvgBitrate"].asString();
  234. jobListObject.editingConfig.properties.streams.videoStreamList.push_back(videoStreamObject);
  235. }
  236. auto allAudioStreamListNode = streamsNode["AudioStreamList"]["AudioStream"];
  237. for (auto streamsNodeAudioStreamListAudioStream : allAudioStreamListNode)
  238. {
  239. Job::EditingConfig::Properties::Streams::AudioStream audioStreamObject;
  240. if(!streamsNodeAudioStreamListAudioStream["Index"].isNull())
  241. audioStreamObject.index = streamsNodeAudioStreamListAudioStream["Index"].asString();
  242. if(!streamsNodeAudioStreamListAudioStream["CodecName"].isNull())
  243. audioStreamObject.codecName = streamsNodeAudioStreamListAudioStream["CodecName"].asString();
  244. if(!streamsNodeAudioStreamListAudioStream["CodecTimeBase"].isNull())
  245. audioStreamObject.codecTimeBase = streamsNodeAudioStreamListAudioStream["CodecTimeBase"].asString();
  246. if(!streamsNodeAudioStreamListAudioStream["CodecLongName"].isNull())
  247. audioStreamObject.codecLongName = streamsNodeAudioStreamListAudioStream["CodecLongName"].asString();
  248. if(!streamsNodeAudioStreamListAudioStream["CodecTagString"].isNull())
  249. audioStreamObject.codecTagString = streamsNodeAudioStreamListAudioStream["CodecTagString"].asString();
  250. if(!streamsNodeAudioStreamListAudioStream["CodecTag"].isNull())
  251. audioStreamObject.codecTag = streamsNodeAudioStreamListAudioStream["CodecTag"].asString();
  252. if(!streamsNodeAudioStreamListAudioStream["SampleFmt"].isNull())
  253. audioStreamObject.sampleFmt = streamsNodeAudioStreamListAudioStream["SampleFmt"].asString();
  254. if(!streamsNodeAudioStreamListAudioStream["Samplerate"].isNull())
  255. audioStreamObject.samplerate = streamsNodeAudioStreamListAudioStream["Samplerate"].asString();
  256. if(!streamsNodeAudioStreamListAudioStream["Channels"].isNull())
  257. audioStreamObject.channels = streamsNodeAudioStreamListAudioStream["Channels"].asString();
  258. if(!streamsNodeAudioStreamListAudioStream["ChannelLayout"].isNull())
  259. audioStreamObject.channelLayout = streamsNodeAudioStreamListAudioStream["ChannelLayout"].asString();
  260. if(!streamsNodeAudioStreamListAudioStream["Timebase"].isNull())
  261. audioStreamObject.timebase = streamsNodeAudioStreamListAudioStream["Timebase"].asString();
  262. if(!streamsNodeAudioStreamListAudioStream["StartTime"].isNull())
  263. audioStreamObject.startTime = streamsNodeAudioStreamListAudioStream["StartTime"].asString();
  264. if(!streamsNodeAudioStreamListAudioStream["Duration"].isNull())
  265. audioStreamObject.duration = streamsNodeAudioStreamListAudioStream["Duration"].asString();
  266. if(!streamsNodeAudioStreamListAudioStream["Bitrate"].isNull())
  267. audioStreamObject.bitrate = streamsNodeAudioStreamListAudioStream["Bitrate"].asString();
  268. if(!streamsNodeAudioStreamListAudioStream["NumFrames"].isNull())
  269. audioStreamObject.numFrames = streamsNodeAudioStreamListAudioStream["NumFrames"].asString();
  270. if(!streamsNodeAudioStreamListAudioStream["Lang"].isNull())
  271. audioStreamObject.lang = streamsNodeAudioStreamListAudioStream["Lang"].asString();
  272. jobListObject.editingConfig.properties.streams.audioStreamList.push_back(audioStreamObject);
  273. }
  274. auto allSubtitleStreamListNode = streamsNode["SubtitleStreamList"]["SubtitleStream"];
  275. for (auto streamsNodeSubtitleStreamListSubtitleStream : allSubtitleStreamListNode)
  276. {
  277. Job::EditingConfig::Properties::Streams::SubtitleStream subtitleStreamObject;
  278. if(!streamsNodeSubtitleStreamListSubtitleStream["Index"].isNull())
  279. subtitleStreamObject.index = streamsNodeSubtitleStreamListSubtitleStream["Index"].asString();
  280. if(!streamsNodeSubtitleStreamListSubtitleStream["Lang"].isNull())
  281. subtitleStreamObject.lang = streamsNodeSubtitleStreamListSubtitleStream["Lang"].asString();
  282. jobListObject.editingConfig.properties.streams.subtitleStreamList.push_back(subtitleStreamObject);
  283. }
  284. auto formatNode = propertiesNode["Format"];
  285. if(!formatNode["NumStreams"].isNull())
  286. jobListObject.editingConfig.properties.format.numStreams = formatNode["NumStreams"].asString();
  287. if(!formatNode["NumPrograms"].isNull())
  288. jobListObject.editingConfig.properties.format.numPrograms = formatNode["NumPrograms"].asString();
  289. if(!formatNode["FormatName"].isNull())
  290. jobListObject.editingConfig.properties.format.formatName = formatNode["FormatName"].asString();
  291. if(!formatNode["FormatLongName"].isNull())
  292. jobListObject.editingConfig.properties.format.formatLongName = formatNode["FormatLongName"].asString();
  293. if(!formatNode["StartTime"].isNull())
  294. jobListObject.editingConfig.properties.format.startTime = formatNode["StartTime"].asString();
  295. if(!formatNode["Duration"].isNull())
  296. jobListObject.editingConfig.properties.format.duration = formatNode["Duration"].asString();
  297. if(!formatNode["Size"].isNull())
  298. jobListObject.editingConfig.properties.format.size = formatNode["Size"].asString();
  299. if(!formatNode["Bitrate"].isNull())
  300. jobListObject.editingConfig.properties.format.bitrate = formatNode["Bitrate"].asString();
  301. auto clipNode = editingConfigNode["Clip"];
  302. auto timeSpanNode = clipNode["TimeSpan"];
  303. if(!timeSpanNode["Seek"].isNull())
  304. jobListObject.editingConfig.clip.timeSpan.seek = timeSpanNode["Seek"].asString();
  305. if(!timeSpanNode["Duration"].isNull())
  306. jobListObject.editingConfig.clip.timeSpan.duration = timeSpanNode["Duration"].asString();
  307. auto superResoNode = editingConfigNode["SuperReso"];
  308. if(!superResoNode["IsHalfSample"].isNull())
  309. jobListObject.editingConfig.superReso.isHalfSample = superResoNode["IsHalfSample"].asString();
  310. auto subtitleConfigNode = editingConfigNode["SubtitleConfig"];
  311. auto allSubtitleListNode = subtitleConfigNode["SubtitleList"]["Subtitle"];
  312. for (auto subtitleConfigNodeSubtitleListSubtitle : allSubtitleListNode)
  313. {
  314. Job::EditingConfig::SubtitleConfig::Subtitle subtitleObject;
  315. if(!subtitleConfigNodeSubtitleListSubtitle["Map"].isNull())
  316. subtitleObject.map = subtitleConfigNodeSubtitleListSubtitle["Map"].asString();
  317. jobListObject.editingConfig.subtitleConfig.subtitleList.push_back(subtitleObject);
  318. }
  319. auto allExtSubtitleListNode = subtitleConfigNode["ExtSubtitleList"]["ExtSubtitle"];
  320. for (auto subtitleConfigNodeExtSubtitleListExtSubtitle : allExtSubtitleListNode)
  321. {
  322. Job::EditingConfig::SubtitleConfig::ExtSubtitle extSubtitleObject;
  323. if(!subtitleConfigNodeExtSubtitleListExtSubtitle["FontName"].isNull())
  324. extSubtitleObject.fontName = subtitleConfigNodeExtSubtitleListExtSubtitle["FontName"].asString();
  325. if(!subtitleConfigNodeExtSubtitleListExtSubtitle["CharEnc"].isNull())
  326. extSubtitleObject.charEnc = subtitleConfigNodeExtSubtitleListExtSubtitle["CharEnc"].asString();
  327. auto inputNode = value["Input"];
  328. if(!inputNode["Bucket"].isNull())
  329. extSubtitleObject.input.bucket = inputNode["Bucket"].asString();
  330. if(!inputNode["Location"].isNull())
  331. extSubtitleObject.input.location = inputNode["Location"].asString();
  332. if(!inputNode["Object"].isNull())
  333. extSubtitleObject.input.object = inputNode["Object"].asString();
  334. jobListObject.editingConfig.subtitleConfig.extSubtitleList.push_back(extSubtitleObject);
  335. }
  336. auto transConfigNode = editingConfigNode["TransConfig"];
  337. if(!transConfigNode["TransMode"].isNull())
  338. jobListObject.editingConfig.transConfig.transMode = transConfigNode["TransMode"].asString();
  339. if(!transConfigNode["IsCheckReso"].isNull())
  340. jobListObject.editingConfig.transConfig.isCheckReso = transConfigNode["IsCheckReso"].asString();
  341. if(!transConfigNode["IsCheckResoFail"].isNull())
  342. jobListObject.editingConfig.transConfig.isCheckResoFail = transConfigNode["IsCheckResoFail"].asString();
  343. if(!transConfigNode["IsCheckVideoBitrate"].isNull())
  344. jobListObject.editingConfig.transConfig.isCheckVideoBitrate = transConfigNode["IsCheckVideoBitrate"].asString();
  345. if(!transConfigNode["IsCheckAudioBitrate"].isNull())
  346. jobListObject.editingConfig.transConfig.isCheckAudioBitrate = transConfigNode["IsCheckAudioBitrate"].asString();
  347. if(!transConfigNode["AdjDarMethod"].isNull())
  348. jobListObject.editingConfig.transConfig.adjDarMethod = transConfigNode["AdjDarMethod"].asString();
  349. if(!transConfigNode["IsCheckVideoBitrateFail"].isNull())
  350. jobListObject.editingConfig.transConfig.isCheckVideoBitrateFail = transConfigNode["IsCheckVideoBitrateFail"].asString();
  351. if(!transConfigNode["IsCheckAudioBitrateFail"].isNull())
  352. jobListObject.editingConfig.transConfig.isCheckAudioBitrateFail = transConfigNode["IsCheckAudioBitrateFail"].asString();
  353. if(!transConfigNode["Duration"].isNull())
  354. jobListObject.editingConfig.transConfig.duration = transConfigNode["Duration"].asString();
  355. auto muxConfigNode = editingConfigNode["MuxConfig"];
  356. auto segmentNode = muxConfigNode["Segment"];
  357. if(!segmentNode["Duration"].isNull())
  358. jobListObject.editingConfig.muxConfig.segment.duration = segmentNode["Duration"].asString();
  359. auto gifNode = muxConfigNode["Gif"];
  360. if(!gifNode["Loop"].isNull())
  361. jobListObject.editingConfig.muxConfig.gif.loop = gifNode["Loop"].asString();
  362. if(!gifNode["FinalDelay"].isNull())
  363. jobListObject.editingConfig.muxConfig.gif.finalDelay = gifNode["FinalDelay"].asString();
  364. if(!gifNode["IsCustomPalette"].isNull())
  365. jobListObject.editingConfig.muxConfig.gif.isCustomPalette = gifNode["IsCustomPalette"].asString();
  366. if(!gifNode["DitherMode"].isNull())
  367. jobListObject.editingConfig.muxConfig.gif.ditherMode = gifNode["DitherMode"].asString();
  368. auto audioNode = editingConfigNode["Audio"];
  369. if(!audioNode["Codec"].isNull())
  370. jobListObject.editingConfig.audio.codec = audioNode["Codec"].asString();
  371. if(!audioNode["Profile"].isNull())
  372. jobListObject.editingConfig.audio.profile = audioNode["Profile"].asString();
  373. if(!audioNode["Samplerate"].isNull())
  374. jobListObject.editingConfig.audio.samplerate = audioNode["Samplerate"].asString();
  375. if(!audioNode["Bitrate"].isNull())
  376. jobListObject.editingConfig.audio.bitrate = audioNode["Bitrate"].asString();
  377. if(!audioNode["Channels"].isNull())
  378. jobListObject.editingConfig.audio.channels = audioNode["Channels"].asString();
  379. if(!audioNode["Qscale"].isNull())
  380. jobListObject.editingConfig.audio.qscale = audioNode["Qscale"].asString();
  381. auto volumeNode = audioNode["Volume"];
  382. if(!volumeNode["Level"].isNull())
  383. jobListObject.editingConfig.audio.volume.level = volumeNode["Level"].asString();
  384. if(!volumeNode["Method"].isNull())
  385. jobListObject.editingConfig.audio.volume.method = volumeNode["Method"].asString();
  386. auto videoNode = editingConfigNode["Video"];
  387. if(!videoNode["Codec"].isNull())
  388. jobListObject.editingConfig.video.codec = videoNode["Codec"].asString();
  389. if(!videoNode["Profile"].isNull())
  390. jobListObject.editingConfig.video.profile = videoNode["Profile"].asString();
  391. if(!videoNode["Bitrate"].isNull())
  392. jobListObject.editingConfig.video.bitrate = videoNode["Bitrate"].asString();
  393. if(!videoNode["Crf"].isNull())
  394. jobListObject.editingConfig.video.crf = videoNode["Crf"].asString();
  395. if(!videoNode["Width"].isNull())
  396. jobListObject.editingConfig.video.width = videoNode["Width"].asString();
  397. if(!videoNode["Height"].isNull())
  398. jobListObject.editingConfig.video.height = videoNode["Height"].asString();
  399. if(!videoNode["Fps"].isNull())
  400. jobListObject.editingConfig.video.fps = videoNode["Fps"].asString();
  401. if(!videoNode["Gop"].isNull())
  402. jobListObject.editingConfig.video.gop = videoNode["Gop"].asString();
  403. if(!videoNode["Preset"].isNull())
  404. jobListObject.editingConfig.video.preset = videoNode["Preset"].asString();
  405. if(!videoNode["ScanMode"].isNull())
  406. jobListObject.editingConfig.video.scanMode = videoNode["ScanMode"].asString();
  407. if(!videoNode["Bufsize"].isNull())
  408. jobListObject.editingConfig.video.bufsize = videoNode["Bufsize"].asString();
  409. if(!videoNode["Maxrate"].isNull())
  410. jobListObject.editingConfig.video.maxrate = videoNode["Maxrate"].asString();
  411. if(!videoNode["PixFmt"].isNull())
  412. jobListObject.editingConfig.video.pixFmt = videoNode["PixFmt"].asString();
  413. if(!videoNode["Degrain"].isNull())
  414. jobListObject.editingConfig.video.degrain = videoNode["Degrain"].asString();
  415. if(!videoNode["Qscale"].isNull())
  416. jobListObject.editingConfig.video.qscale = videoNode["Qscale"].asString();
  417. if(!videoNode["Crop"].isNull())
  418. jobListObject.editingConfig.video.crop = videoNode["Crop"].asString();
  419. if(!videoNode["Pad"].isNull())
  420. jobListObject.editingConfig.video.pad = videoNode["Pad"].asString();
  421. if(!videoNode["MaxFps"].isNull())
  422. jobListObject.editingConfig.video.maxFps = videoNode["MaxFps"].asString();
  423. auto bitrateBndNode = videoNode["BitrateBnd"];
  424. if(!bitrateBndNode["Max"].isNull())
  425. jobListObject.editingConfig.video.bitrateBnd.max = bitrateBndNode["Max"].asString();
  426. if(!bitrateBndNode["Min"].isNull())
  427. jobListObject.editingConfig.video.bitrateBnd.min = bitrateBndNode["Min"].asString();
  428. auto containerNode = editingConfigNode["Container"];
  429. if(!containerNode["Format"].isNull())
  430. jobListObject.editingConfig.container.format = containerNode["Format"].asString();
  431. auto encryptionNode = editingConfigNode["Encryption"];
  432. if(!encryptionNode["Type"].isNull())
  433. jobListObject.editingConfig.encryption.type = encryptionNode["Type"].asString();
  434. if(!encryptionNode["Id"].isNull())
  435. jobListObject.editingConfig.encryption.id = encryptionNode["Id"].asString();
  436. if(!encryptionNode["Key"].isNull())
  437. jobListObject.editingConfig.encryption.key = encryptionNode["Key"].asString();
  438. if(!encryptionNode["KeyUri"].isNull())
  439. jobListObject.editingConfig.encryption.keyUri = encryptionNode["KeyUri"].asString();
  440. if(!encryptionNode["KeyType"].isNull())
  441. jobListObject.editingConfig.encryption.keyType = encryptionNode["KeyType"].asString();
  442. if(!encryptionNode["SkipCnt"].isNull())
  443. jobListObject.editingConfig.encryption.skipCnt = encryptionNode["SkipCnt"].asString();
  444. auto editingNode = editingConfigNode["Editing"];
  445. auto allClipListNode = editingNode["ClipList"]["Clip"];
  446. for (auto editingNodeClipListClip : allClipListNode)
  447. {
  448. Job::EditingConfig::Editing::Clip3 clip3Object;
  449. if(!editingNodeClipListClip["Id"].isNull())
  450. clip3Object.id = editingNodeClipListClip["Id"].asString();
  451. if(!editingNodeClipListClip["Type"].isNull())
  452. clip3Object.type = editingNodeClipListClip["Type"].asString();
  453. if(!editingNodeClipListClip["SourceType"].isNull())
  454. clip3Object.sourceType = editingNodeClipListClip["SourceType"].asString();
  455. if(!editingNodeClipListClip["SourceID"].isNull())
  456. clip3Object.sourceID = editingNodeClipListClip["SourceID"].asString();
  457. if(!editingNodeClipListClip["SourceStrmMap"].isNull())
  458. clip3Object.sourceStrmMap = editingNodeClipListClip["SourceStrmMap"].asString();
  459. if(!editingNodeClipListClip["In"].isNull())
  460. clip3Object.in = editingNodeClipListClip["In"].asString();
  461. if(!editingNodeClipListClip["Out"].isNull())
  462. clip3Object.out = editingNodeClipListClip["Out"].asString();
  463. auto allEffectsNode = allClipListNode["Effects"]["Effect"];
  464. for (auto allClipListNodeEffectsEffect : allEffectsNode)
  465. {
  466. Job::EditingConfig::Editing::Clip3::Effect effectsObject;
  467. if(!allClipListNodeEffectsEffect["Effect"].isNull())
  468. effectsObject.effect = allClipListNodeEffectsEffect["Effect"].asString();
  469. if(!allClipListNodeEffectsEffect["EffectConfig"].isNull())
  470. effectsObject.effectConfig = allClipListNodeEffectsEffect["EffectConfig"].asString();
  471. clip3Object.effects.push_back(effectsObject);
  472. }
  473. jobListObject.editingConfig.editing.clipList.push_back(clip3Object);
  474. }
  475. auto timelineNode = editingNode["Timeline"];
  476. auto allTrackListNode = timelineNode["TrackList"]["Track"];
  477. for (auto timelineNodeTrackListTrack : allTrackListNode)
  478. {
  479. Job::EditingConfig::Editing::Timeline::Track trackObject;
  480. if(!timelineNodeTrackListTrack["Id"].isNull())
  481. trackObject.id = timelineNodeTrackListTrack["Id"].asString();
  482. if(!timelineNodeTrackListTrack["Type"].isNull())
  483. trackObject.type = timelineNodeTrackListTrack["Type"].asString();
  484. if(!timelineNodeTrackListTrack["Order"].isNull())
  485. trackObject.order = timelineNodeTrackListTrack["Order"].asString();
  486. auto allClipsNode = allTrackListNode["Clips"]["Clip"];
  487. for (auto allTrackListNodeClipsClip : allClipsNode)
  488. {
  489. Job::EditingConfig::Editing::Timeline::Track::Clip4 clipsObject;
  490. if(!allTrackListNodeClipsClip["clipID"].isNull())
  491. clipsObject.clipID = allTrackListNodeClipsClip["clipID"].asString();
  492. if(!allTrackListNodeClipsClip["In"].isNull())
  493. clipsObject.in = allTrackListNodeClipsClip["In"].asString();
  494. if(!allTrackListNodeClipsClip["Out"].isNull())
  495. clipsObject.out = allTrackListNodeClipsClip["Out"].asString();
  496. auto clipsConfigNode = value["ClipsConfig"];
  497. auto clipsConfigVideoNode = clipsConfigNode["ClipsConfigVideo"];
  498. if(!clipsConfigVideoNode["L"].isNull())
  499. clipsObject.clipsConfig.clipsConfigVideo.l = clipsConfigVideoNode["L"].asString();
  500. if(!clipsConfigVideoNode["T"].isNull())
  501. clipsObject.clipsConfig.clipsConfigVideo.t = clipsConfigVideoNode["T"].asString();
  502. trackObject.clips.push_back(clipsObject);
  503. }
  504. jobListObject.editingConfig.editing.timeline.trackList.push_back(trackObject);
  505. }
  506. auto timelineConfigNode = timelineNode["TimelineConfig"];
  507. auto timelineConfigVideoNode = timelineConfigNode["TimelineConfigVideo"];
  508. if(!timelineConfigVideoNode["Width"].isNull())
  509. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.width = timelineConfigVideoNode["Width"].asString();
  510. if(!timelineConfigVideoNode["Height"].isNull())
  511. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.height = timelineConfigVideoNode["Height"].asString();
  512. if(!timelineConfigVideoNode["BgColor"].isNull())
  513. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.bgColor = timelineConfigVideoNode["BgColor"].asString();
  514. if(!timelineConfigVideoNode["Fps"].isNull())
  515. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.fps = timelineConfigVideoNode["Fps"].asString();
  516. if(!timelineConfigVideoNode["RenderRatio"].isNull())
  517. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.renderRatio = timelineConfigVideoNode["RenderRatio"].asString();
  518. if(!timelineConfigVideoNode["ReclosePrec"].isNull())
  519. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.reclosePrec = timelineConfigVideoNode["ReclosePrec"].asString();
  520. if(!timelineConfigVideoNode["IsGpuData"].isNull())
  521. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.isGpuData = timelineConfigVideoNode["IsGpuData"].asString();
  522. if(!timelineConfigVideoNode["IsOneTrackData"].isNull())
  523. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigVideo.isOneTrackData = timelineConfigVideoNode["IsOneTrackData"].asString();
  524. auto timelineConfigAudioNode = timelineConfigNode["TimelineConfigAudio"];
  525. if(!timelineConfigAudioNode["Samplerate"].isNull())
  526. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigAudio.samplerate = timelineConfigAudioNode["Samplerate"].asString();
  527. if(!timelineConfigAudioNode["ChannelLayout"].isNull())
  528. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigAudio.channelLayout = timelineConfigAudioNode["ChannelLayout"].asString();
  529. if(!timelineConfigAudioNode["Channels"].isNull())
  530. jobListObject.editingConfig.editing.timeline.timelineConfig.timelineConfigAudio.channels = timelineConfigAudioNode["Channels"].asString();
  531. auto mNSMessageResultNode = value["MNSMessageResult"];
  532. if(!mNSMessageResultNode["MessageId"].isNull())
  533. jobListObject.mNSMessageResult.messageId = mNSMessageResultNode["MessageId"].asString();
  534. if(!mNSMessageResultNode["ErrorMessage"].isNull())
  535. jobListObject.mNSMessageResult.errorMessage = mNSMessageResultNode["ErrorMessage"].asString();
  536. if(!mNSMessageResultNode["ErrorCode"].isNull())
  537. jobListObject.mNSMessageResult.errorCode = mNSMessageResultNode["ErrorCode"].asString();
  538. jobList_.push_back(jobListObject);
  539. }
  540. auto allNonExistJobIds = value["NonExistJobIds"]["String"];
  541. for (const auto &item : allNonExistJobIds)
  542. nonExistJobIds_.push_back(item.asString());
  543. }
  544. std::vector<std::string> QueryEditingJobListResult::getNonExistJobIds()const
  545. {
  546. return nonExistJobIds_;
  547. }
  548. std::vector<QueryEditingJobListResult::Job> QueryEditingJobListResult::getJobList()const
  549. {
  550. return jobList_;
  551. }