QueryMediaListByURLResult.cc 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  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/QueryMediaListByURLResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Mts;
  19. using namespace AlibabaCloud::Mts::Model;
  20. QueryMediaListByURLResult::QueryMediaListByURLResult() :
  21. ServiceResult()
  22. {}
  23. QueryMediaListByURLResult::QueryMediaListByURLResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. QueryMediaListByURLResult::~QueryMediaListByURLResult()
  29. {}
  30. void QueryMediaListByURLResult::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 allMediaListNode = value["MediaList"]["Media"];
  37. for (auto valueMediaListMedia : allMediaListNode)
  38. {
  39. Media mediaListObject;
  40. if(!valueMediaListMedia["MediaId"].isNull())
  41. mediaListObject.mediaId = valueMediaListMedia["MediaId"].asString();
  42. if(!valueMediaListMedia["Title"].isNull())
  43. mediaListObject.title = valueMediaListMedia["Title"].asString();
  44. if(!valueMediaListMedia["Description"].isNull())
  45. mediaListObject.description = valueMediaListMedia["Description"].asString();
  46. if(!valueMediaListMedia["CoverURL"].isNull())
  47. mediaListObject.coverURL = valueMediaListMedia["CoverURL"].asString();
  48. if(!valueMediaListMedia["CateId"].isNull())
  49. mediaListObject.cateId = std::stol(valueMediaListMedia["CateId"].asString());
  50. if(!valueMediaListMedia["Duration"].isNull())
  51. mediaListObject.duration = valueMediaListMedia["Duration"].asString();
  52. if(!valueMediaListMedia["Format"].isNull())
  53. mediaListObject.format = valueMediaListMedia["Format"].asString();
  54. if(!valueMediaListMedia["Size"].isNull())
  55. mediaListObject.size = valueMediaListMedia["Size"].asString();
  56. if(!valueMediaListMedia["Bitrate"].isNull())
  57. mediaListObject.bitrate = valueMediaListMedia["Bitrate"].asString();
  58. if(!valueMediaListMedia["Width"].isNull())
  59. mediaListObject.width = valueMediaListMedia["Width"].asString();
  60. if(!valueMediaListMedia["Height"].isNull())
  61. mediaListObject.height = valueMediaListMedia["Height"].asString();
  62. if(!valueMediaListMedia["Fps"].isNull())
  63. mediaListObject.fps = valueMediaListMedia["Fps"].asString();
  64. if(!valueMediaListMedia["PublishState"].isNull())
  65. mediaListObject.publishState = valueMediaListMedia["PublishState"].asString();
  66. if(!valueMediaListMedia["CensorState"].isNull())
  67. mediaListObject.censorState = valueMediaListMedia["CensorState"].asString();
  68. if(!valueMediaListMedia["CreationTime"].isNull())
  69. mediaListObject.creationTime = valueMediaListMedia["CreationTime"].asString();
  70. auto allPlayListNode = allMediaListNode["PlayList"]["Play"];
  71. for (auto allMediaListNodePlayListPlay : allPlayListNode)
  72. {
  73. Media::Play playListObject;
  74. if(!allMediaListNodePlayListPlay["ActivityName"].isNull())
  75. playListObject.activityName = allMediaListNodePlayListPlay["ActivityName"].asString();
  76. if(!allMediaListNodePlayListPlay["MediaWorkflowId"].isNull())
  77. playListObject.mediaWorkflowId = allMediaListNodePlayListPlay["MediaWorkflowId"].asString();
  78. if(!allMediaListNodePlayListPlay["MediaWorkflowName"].isNull())
  79. playListObject.mediaWorkflowName = allMediaListNodePlayListPlay["MediaWorkflowName"].asString();
  80. if(!allMediaListNodePlayListPlay["Duration"].isNull())
  81. playListObject.duration = allMediaListNodePlayListPlay["Duration"].asString();
  82. if(!allMediaListNodePlayListPlay["Format"].isNull())
  83. playListObject.format = allMediaListNodePlayListPlay["Format"].asString();
  84. if(!allMediaListNodePlayListPlay["Size"].isNull())
  85. playListObject.size = allMediaListNodePlayListPlay["Size"].asString();
  86. if(!allMediaListNodePlayListPlay["Bitrate"].isNull())
  87. playListObject.bitrate = allMediaListNodePlayListPlay["Bitrate"].asString();
  88. if(!allMediaListNodePlayListPlay["Width"].isNull())
  89. playListObject.width = allMediaListNodePlayListPlay["Width"].asString();
  90. if(!allMediaListNodePlayListPlay["Height"].isNull())
  91. playListObject.height = allMediaListNodePlayListPlay["Height"].asString();
  92. if(!allMediaListNodePlayListPlay["Fps"].isNull())
  93. playListObject.fps = allMediaListNodePlayListPlay["Fps"].asString();
  94. if(!allMediaListNodePlayListPlay["Encryption"].isNull())
  95. playListObject.encryption = allMediaListNodePlayListPlay["Encryption"].asString();
  96. auto file1Node = value["File"];
  97. if(!file1Node["URL"].isNull())
  98. playListObject.file1.uRL = file1Node["URL"].asString();
  99. if(!file1Node["State"].isNull())
  100. playListObject.file1.state = file1Node["State"].asString();
  101. mediaListObject.playList.push_back(playListObject);
  102. }
  103. auto allSnapshotListNode = allMediaListNode["SnapshotList"]["Snapshot"];
  104. for (auto allMediaListNodeSnapshotListSnapshot : allSnapshotListNode)
  105. {
  106. Media::Snapshot snapshotListObject;
  107. if(!allMediaListNodeSnapshotListSnapshot["Type"].isNull())
  108. snapshotListObject.type = allMediaListNodeSnapshotListSnapshot["Type"].asString();
  109. if(!allMediaListNodeSnapshotListSnapshot["MediaWorkflowId"].isNull())
  110. snapshotListObject.mediaWorkflowId = allMediaListNodeSnapshotListSnapshot["MediaWorkflowId"].asString();
  111. if(!allMediaListNodeSnapshotListSnapshot["MediaWorkflowName"].isNull())
  112. snapshotListObject.mediaWorkflowName = allMediaListNodeSnapshotListSnapshot["MediaWorkflowName"].asString();
  113. if(!allMediaListNodeSnapshotListSnapshot["ActivityName"].isNull())
  114. snapshotListObject.activityName = allMediaListNodeSnapshotListSnapshot["ActivityName"].asString();
  115. if(!allMediaListNodeSnapshotListSnapshot["Count"].isNull())
  116. snapshotListObject.count = allMediaListNodeSnapshotListSnapshot["Count"].asString();
  117. auto file2Node = value["File"];
  118. if(!file2Node["URL"].isNull())
  119. snapshotListObject.file2.uRL = file2Node["URL"].asString();
  120. if(!file2Node["State"].isNull())
  121. snapshotListObject.file2.state = file2Node["State"].asString();
  122. mediaListObject.snapshotList.push_back(snapshotListObject);
  123. }
  124. auto allSummaryListNode = allMediaListNode["SummaryList"]["Summary"];
  125. for (auto allMediaListNodeSummaryListSummary : allSummaryListNode)
  126. {
  127. Media::Summary summaryListObject;
  128. if(!allMediaListNodeSummaryListSummary["Type"].isNull())
  129. summaryListObject.type = allMediaListNodeSummaryListSummary["Type"].asString();
  130. if(!allMediaListNodeSummaryListSummary["MediaWorkflowId"].isNull())
  131. summaryListObject.mediaWorkflowId = allMediaListNodeSummaryListSummary["MediaWorkflowId"].asString();
  132. if(!allMediaListNodeSummaryListSummary["MediaWorkflowName"].isNull())
  133. summaryListObject.mediaWorkflowName = allMediaListNodeSummaryListSummary["MediaWorkflowName"].asString();
  134. if(!allMediaListNodeSummaryListSummary["ActivityName"].isNull())
  135. summaryListObject.activityName = allMediaListNodeSummaryListSummary["ActivityName"].asString();
  136. auto file3Node = value["File"];
  137. if(!file3Node["URL"].isNull())
  138. summaryListObject.file3.uRL = file3Node["URL"].asString();
  139. if(!file3Node["State"].isNull())
  140. summaryListObject.file3.state = file3Node["State"].asString();
  141. mediaListObject.summaryList.push_back(summaryListObject);
  142. }
  143. auto fileNode = value["File"];
  144. if(!fileNode["URL"].isNull())
  145. mediaListObject.file.uRL = fileNode["URL"].asString();
  146. if(!fileNode["State"].isNull())
  147. mediaListObject.file.state = fileNode["State"].asString();
  148. auto mediaInfoNode = value["MediaInfo"];
  149. auto streamsNode = mediaInfoNode["Streams"];
  150. auto allVideoStreamListNode = streamsNode["VideoStreamList"]["VideoStream"];
  151. for (auto streamsNodeVideoStreamListVideoStream : allVideoStreamListNode)
  152. {
  153. Media::MediaInfo::Streams::VideoStream videoStreamObject;
  154. if(!streamsNodeVideoStreamListVideoStream["Index"].isNull())
  155. videoStreamObject.index = streamsNodeVideoStreamListVideoStream["Index"].asString();
  156. if(!streamsNodeVideoStreamListVideoStream["CodecName"].isNull())
  157. videoStreamObject.codecName = streamsNodeVideoStreamListVideoStream["CodecName"].asString();
  158. if(!streamsNodeVideoStreamListVideoStream["CodecLongName"].isNull())
  159. videoStreamObject.codecLongName = streamsNodeVideoStreamListVideoStream["CodecLongName"].asString();
  160. if(!streamsNodeVideoStreamListVideoStream["Profile"].isNull())
  161. videoStreamObject.profile = streamsNodeVideoStreamListVideoStream["Profile"].asString();
  162. if(!streamsNodeVideoStreamListVideoStream["CodecTimeBase"].isNull())
  163. videoStreamObject.codecTimeBase = streamsNodeVideoStreamListVideoStream["CodecTimeBase"].asString();
  164. if(!streamsNodeVideoStreamListVideoStream["CodecTagString"].isNull())
  165. videoStreamObject.codecTagString = streamsNodeVideoStreamListVideoStream["CodecTagString"].asString();
  166. if(!streamsNodeVideoStreamListVideoStream["CodecTag"].isNull())
  167. videoStreamObject.codecTag = streamsNodeVideoStreamListVideoStream["CodecTag"].asString();
  168. if(!streamsNodeVideoStreamListVideoStream["Width"].isNull())
  169. videoStreamObject.width = streamsNodeVideoStreamListVideoStream["Width"].asString();
  170. if(!streamsNodeVideoStreamListVideoStream["Height"].isNull())
  171. videoStreamObject.height = streamsNodeVideoStreamListVideoStream["Height"].asString();
  172. if(!streamsNodeVideoStreamListVideoStream["HasBFrames"].isNull())
  173. videoStreamObject.hasBFrames = streamsNodeVideoStreamListVideoStream["HasBFrames"].asString();
  174. if(!streamsNodeVideoStreamListVideoStream["Sar"].isNull())
  175. videoStreamObject.sar = streamsNodeVideoStreamListVideoStream["Sar"].asString();
  176. if(!streamsNodeVideoStreamListVideoStream["Dar"].isNull())
  177. videoStreamObject.dar = streamsNodeVideoStreamListVideoStream["Dar"].asString();
  178. if(!streamsNodeVideoStreamListVideoStream["PixFmt"].isNull())
  179. videoStreamObject.pixFmt = streamsNodeVideoStreamListVideoStream["PixFmt"].asString();
  180. if(!streamsNodeVideoStreamListVideoStream["Level"].isNull())
  181. videoStreamObject.level = streamsNodeVideoStreamListVideoStream["Level"].asString();
  182. if(!streamsNodeVideoStreamListVideoStream["Fps"].isNull())
  183. videoStreamObject.fps = streamsNodeVideoStreamListVideoStream["Fps"].asString();
  184. if(!streamsNodeVideoStreamListVideoStream["AvgFPS"].isNull())
  185. videoStreamObject.avgFPS = streamsNodeVideoStreamListVideoStream["AvgFPS"].asString();
  186. if(!streamsNodeVideoStreamListVideoStream["Timebase"].isNull())
  187. videoStreamObject.timebase = streamsNodeVideoStreamListVideoStream["Timebase"].asString();
  188. if(!streamsNodeVideoStreamListVideoStream["StartTime"].isNull())
  189. videoStreamObject.startTime = streamsNodeVideoStreamListVideoStream["StartTime"].asString();
  190. if(!streamsNodeVideoStreamListVideoStream["Duration"].isNull())
  191. videoStreamObject.duration = streamsNodeVideoStreamListVideoStream["Duration"].asString();
  192. if(!streamsNodeVideoStreamListVideoStream["Bitrate"].isNull())
  193. videoStreamObject.bitrate = streamsNodeVideoStreamListVideoStream["Bitrate"].asString();
  194. if(!streamsNodeVideoStreamListVideoStream["NumFrames"].isNull())
  195. videoStreamObject.numFrames = streamsNodeVideoStreamListVideoStream["NumFrames"].asString();
  196. if(!streamsNodeVideoStreamListVideoStream["Lang"].isNull())
  197. videoStreamObject.lang = streamsNodeVideoStreamListVideoStream["Lang"].asString();
  198. if(!streamsNodeVideoStreamListVideoStream["Rotate"].isNull())
  199. videoStreamObject.rotate = streamsNodeVideoStreamListVideoStream["Rotate"].asString();
  200. auto networkCostNode = value["NetworkCost"];
  201. if(!networkCostNode["PreloadTime"].isNull())
  202. videoStreamObject.networkCost.preloadTime = networkCostNode["PreloadTime"].asString();
  203. if(!networkCostNode["CostBandwidth"].isNull())
  204. videoStreamObject.networkCost.costBandwidth = networkCostNode["CostBandwidth"].asString();
  205. if(!networkCostNode["AvgBitrate"].isNull())
  206. videoStreamObject.networkCost.avgBitrate = networkCostNode["AvgBitrate"].asString();
  207. mediaListObject.mediaInfo.streams.videoStreamList.push_back(videoStreamObject);
  208. }
  209. auto allAudioStreamListNode = streamsNode["AudioStreamList"]["AudioStream"];
  210. for (auto streamsNodeAudioStreamListAudioStream : allAudioStreamListNode)
  211. {
  212. Media::MediaInfo::Streams::AudioStream audioStreamObject;
  213. if(!streamsNodeAudioStreamListAudioStream["Index"].isNull())
  214. audioStreamObject.index = streamsNodeAudioStreamListAudioStream["Index"].asString();
  215. if(!streamsNodeAudioStreamListAudioStream["CodecName"].isNull())
  216. audioStreamObject.codecName = streamsNodeAudioStreamListAudioStream["CodecName"].asString();
  217. if(!streamsNodeAudioStreamListAudioStream["CodecTimeBase"].isNull())
  218. audioStreamObject.codecTimeBase = streamsNodeAudioStreamListAudioStream["CodecTimeBase"].asString();
  219. if(!streamsNodeAudioStreamListAudioStream["CodecLongName"].isNull())
  220. audioStreamObject.codecLongName = streamsNodeAudioStreamListAudioStream["CodecLongName"].asString();
  221. if(!streamsNodeAudioStreamListAudioStream["CodecTagString"].isNull())
  222. audioStreamObject.codecTagString = streamsNodeAudioStreamListAudioStream["CodecTagString"].asString();
  223. if(!streamsNodeAudioStreamListAudioStream["CodecTag"].isNull())
  224. audioStreamObject.codecTag = streamsNodeAudioStreamListAudioStream["CodecTag"].asString();
  225. if(!streamsNodeAudioStreamListAudioStream["SampleFmt"].isNull())
  226. audioStreamObject.sampleFmt = streamsNodeAudioStreamListAudioStream["SampleFmt"].asString();
  227. if(!streamsNodeAudioStreamListAudioStream["Samplerate"].isNull())
  228. audioStreamObject.samplerate = streamsNodeAudioStreamListAudioStream["Samplerate"].asString();
  229. if(!streamsNodeAudioStreamListAudioStream["Channels"].isNull())
  230. audioStreamObject.channels = streamsNodeAudioStreamListAudioStream["Channels"].asString();
  231. if(!streamsNodeAudioStreamListAudioStream["ChannelLayout"].isNull())
  232. audioStreamObject.channelLayout = streamsNodeAudioStreamListAudioStream["ChannelLayout"].asString();
  233. if(!streamsNodeAudioStreamListAudioStream["Timebase"].isNull())
  234. audioStreamObject.timebase = streamsNodeAudioStreamListAudioStream["Timebase"].asString();
  235. if(!streamsNodeAudioStreamListAudioStream["StartTime"].isNull())
  236. audioStreamObject.startTime = streamsNodeAudioStreamListAudioStream["StartTime"].asString();
  237. if(!streamsNodeAudioStreamListAudioStream["Duration"].isNull())
  238. audioStreamObject.duration = streamsNodeAudioStreamListAudioStream["Duration"].asString();
  239. if(!streamsNodeAudioStreamListAudioStream["Bitrate"].isNull())
  240. audioStreamObject.bitrate = streamsNodeAudioStreamListAudioStream["Bitrate"].asString();
  241. if(!streamsNodeAudioStreamListAudioStream["NumFrames"].isNull())
  242. audioStreamObject.numFrames = streamsNodeAudioStreamListAudioStream["NumFrames"].asString();
  243. if(!streamsNodeAudioStreamListAudioStream["Lang"].isNull())
  244. audioStreamObject.lang = streamsNodeAudioStreamListAudioStream["Lang"].asString();
  245. mediaListObject.mediaInfo.streams.audioStreamList.push_back(audioStreamObject);
  246. }
  247. auto allSubtitleStreamListNode = streamsNode["SubtitleStreamList"]["SubtitleStream"];
  248. for (auto streamsNodeSubtitleStreamListSubtitleStream : allSubtitleStreamListNode)
  249. {
  250. Media::MediaInfo::Streams::SubtitleStream subtitleStreamObject;
  251. if(!streamsNodeSubtitleStreamListSubtitleStream["Index"].isNull())
  252. subtitleStreamObject.index = streamsNodeSubtitleStreamListSubtitleStream["Index"].asString();
  253. if(!streamsNodeSubtitleStreamListSubtitleStream["Lang"].isNull())
  254. subtitleStreamObject.lang = streamsNodeSubtitleStreamListSubtitleStream["Lang"].asString();
  255. mediaListObject.mediaInfo.streams.subtitleStreamList.push_back(subtitleStreamObject);
  256. }
  257. auto formatNode = mediaInfoNode["Format"];
  258. if(!formatNode["NumStreams"].isNull())
  259. mediaListObject.mediaInfo.format.numStreams = formatNode["NumStreams"].asString();
  260. if(!formatNode["NumPrograms"].isNull())
  261. mediaListObject.mediaInfo.format.numPrograms = formatNode["NumPrograms"].asString();
  262. if(!formatNode["FormatName"].isNull())
  263. mediaListObject.mediaInfo.format.formatName = formatNode["FormatName"].asString();
  264. if(!formatNode["FormatLongName"].isNull())
  265. mediaListObject.mediaInfo.format.formatLongName = formatNode["FormatLongName"].asString();
  266. if(!formatNode["StartTime"].isNull())
  267. mediaListObject.mediaInfo.format.startTime = formatNode["StartTime"].asString();
  268. if(!formatNode["Duration"].isNull())
  269. mediaListObject.mediaInfo.format.duration = formatNode["Duration"].asString();
  270. if(!formatNode["Size"].isNull())
  271. mediaListObject.mediaInfo.format.size = formatNode["Size"].asString();
  272. if(!formatNode["Bitrate"].isNull())
  273. mediaListObject.mediaInfo.format.bitrate = formatNode["Bitrate"].asString();
  274. auto allTags = value["Tags"]["Tag"];
  275. for (auto value : allTags)
  276. mediaListObject.tags.push_back(value.asString());
  277. auto allRunIdList = value["RunIdList"]["RunId"];
  278. for (auto value : allRunIdList)
  279. mediaListObject.runIdList.push_back(value.asString());
  280. mediaList_.push_back(mediaListObject);
  281. }
  282. auto allNonExistFileURLs = value["NonExistFileURLs"]["FileURL"];
  283. for (const auto &item : allNonExistFileURLs)
  284. nonExistFileURLs_.push_back(item.asString());
  285. }
  286. std::vector<QueryMediaListByURLResult::Media> QueryMediaListByURLResult::getMediaList()const
  287. {
  288. return mediaList_;
  289. }
  290. std::vector<std::string> QueryMediaListByURLResult::getNonExistFileURLs()const
  291. {
  292. return nonExistFileURLs_;
  293. }