QueryMediaInfoJobListResult.cc 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  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/QueryMediaInfoJobListResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Mts;
  19. using namespace AlibabaCloud::Mts::Model;
  20. QueryMediaInfoJobListResult::QueryMediaInfoJobListResult() :
  21. ServiceResult()
  22. {}
  23. QueryMediaInfoJobListResult::QueryMediaInfoJobListResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. QueryMediaInfoJobListResult::~QueryMediaInfoJobListResult()
  29. {}
  30. void QueryMediaInfoJobListResult::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 allMediaInfoJobListNode = value["MediaInfoJobList"]["MediaInfoJob"];
  37. for (auto valueMediaInfoJobListMediaInfoJob : allMediaInfoJobListNode)
  38. {
  39. MediaInfoJob mediaInfoJobListObject;
  40. if(!valueMediaInfoJobListMediaInfoJob["JobId"].isNull())
  41. mediaInfoJobListObject.jobId = valueMediaInfoJobListMediaInfoJob["JobId"].asString();
  42. if(!valueMediaInfoJobListMediaInfoJob["UserData"].isNull())
  43. mediaInfoJobListObject.userData = valueMediaInfoJobListMediaInfoJob["UserData"].asString();
  44. if(!valueMediaInfoJobListMediaInfoJob["PipelineId"].isNull())
  45. mediaInfoJobListObject.pipelineId = valueMediaInfoJobListMediaInfoJob["PipelineId"].asString();
  46. if(!valueMediaInfoJobListMediaInfoJob["Async"].isNull())
  47. mediaInfoJobListObject.async = valueMediaInfoJobListMediaInfoJob["Async"].asString() == "true";
  48. if(!valueMediaInfoJobListMediaInfoJob["State"].isNull())
  49. mediaInfoJobListObject.state = valueMediaInfoJobListMediaInfoJob["State"].asString();
  50. if(!valueMediaInfoJobListMediaInfoJob["Code"].isNull())
  51. mediaInfoJobListObject.code = valueMediaInfoJobListMediaInfoJob["Code"].asString();
  52. if(!valueMediaInfoJobListMediaInfoJob["Message"].isNull())
  53. mediaInfoJobListObject.message = valueMediaInfoJobListMediaInfoJob["Message"].asString();
  54. if(!valueMediaInfoJobListMediaInfoJob["CreationTime"].isNull())
  55. mediaInfoJobListObject.creationTime = valueMediaInfoJobListMediaInfoJob["CreationTime"].asString();
  56. auto inputNode = value["Input"];
  57. if(!inputNode["Bucket"].isNull())
  58. mediaInfoJobListObject.input.bucket = inputNode["Bucket"].asString();
  59. if(!inputNode["Location"].isNull())
  60. mediaInfoJobListObject.input.location = inputNode["Location"].asString();
  61. if(!inputNode["Object"].isNull())
  62. mediaInfoJobListObject.input.object = inputNode["Object"].asString();
  63. auto propertiesNode = value["Properties"];
  64. if(!propertiesNode["Width"].isNull())
  65. mediaInfoJobListObject.properties.width = propertiesNode["Width"].asString();
  66. if(!propertiesNode["Height"].isNull())
  67. mediaInfoJobListObject.properties.height = propertiesNode["Height"].asString();
  68. if(!propertiesNode["Bitrate"].isNull())
  69. mediaInfoJobListObject.properties.bitrate = propertiesNode["Bitrate"].asString();
  70. if(!propertiesNode["Duration"].isNull())
  71. mediaInfoJobListObject.properties.duration = propertiesNode["Duration"].asString();
  72. if(!propertiesNode["Fps"].isNull())
  73. mediaInfoJobListObject.properties.fps = propertiesNode["Fps"].asString();
  74. if(!propertiesNode["FileSize"].isNull())
  75. mediaInfoJobListObject.properties.fileSize = propertiesNode["FileSize"].asString();
  76. if(!propertiesNode["FileFormat"].isNull())
  77. mediaInfoJobListObject.properties.fileFormat = propertiesNode["FileFormat"].asString();
  78. auto streamsNode = propertiesNode["Streams"];
  79. auto allVideoStreamListNode = streamsNode["VideoStreamList"]["VideoStream"];
  80. for (auto streamsNodeVideoStreamListVideoStream : allVideoStreamListNode)
  81. {
  82. MediaInfoJob::Properties::Streams::VideoStream videoStreamObject;
  83. if(!streamsNodeVideoStreamListVideoStream["Index"].isNull())
  84. videoStreamObject.index = streamsNodeVideoStreamListVideoStream["Index"].asString();
  85. if(!streamsNodeVideoStreamListVideoStream["CodecName"].isNull())
  86. videoStreamObject.codecName = streamsNodeVideoStreamListVideoStream["CodecName"].asString();
  87. if(!streamsNodeVideoStreamListVideoStream["CodecLongName"].isNull())
  88. videoStreamObject.codecLongName = streamsNodeVideoStreamListVideoStream["CodecLongName"].asString();
  89. if(!streamsNodeVideoStreamListVideoStream["Profile"].isNull())
  90. videoStreamObject.profile = streamsNodeVideoStreamListVideoStream["Profile"].asString();
  91. if(!streamsNodeVideoStreamListVideoStream["CodecTimeBase"].isNull())
  92. videoStreamObject.codecTimeBase = streamsNodeVideoStreamListVideoStream["CodecTimeBase"].asString();
  93. if(!streamsNodeVideoStreamListVideoStream["CodecTagString"].isNull())
  94. videoStreamObject.codecTagString = streamsNodeVideoStreamListVideoStream["CodecTagString"].asString();
  95. if(!streamsNodeVideoStreamListVideoStream["CodecTag"].isNull())
  96. videoStreamObject.codecTag = streamsNodeVideoStreamListVideoStream["CodecTag"].asString();
  97. if(!streamsNodeVideoStreamListVideoStream["Width"].isNull())
  98. videoStreamObject.width = streamsNodeVideoStreamListVideoStream["Width"].asString();
  99. if(!streamsNodeVideoStreamListVideoStream["Height"].isNull())
  100. videoStreamObject.height = streamsNodeVideoStreamListVideoStream["Height"].asString();
  101. if(!streamsNodeVideoStreamListVideoStream["HasBFrames"].isNull())
  102. videoStreamObject.hasBFrames = streamsNodeVideoStreamListVideoStream["HasBFrames"].asString();
  103. if(!streamsNodeVideoStreamListVideoStream["Sar"].isNull())
  104. videoStreamObject.sar = streamsNodeVideoStreamListVideoStream["Sar"].asString();
  105. if(!streamsNodeVideoStreamListVideoStream["Dar"].isNull())
  106. videoStreamObject.dar = streamsNodeVideoStreamListVideoStream["Dar"].asString();
  107. if(!streamsNodeVideoStreamListVideoStream["PixFmt"].isNull())
  108. videoStreamObject.pixFmt = streamsNodeVideoStreamListVideoStream["PixFmt"].asString();
  109. if(!streamsNodeVideoStreamListVideoStream["Level"].isNull())
  110. videoStreamObject.level = streamsNodeVideoStreamListVideoStream["Level"].asString();
  111. if(!streamsNodeVideoStreamListVideoStream["Fps"].isNull())
  112. videoStreamObject.fps = streamsNodeVideoStreamListVideoStream["Fps"].asString();
  113. if(!streamsNodeVideoStreamListVideoStream["AvgFPS"].isNull())
  114. videoStreamObject.avgFPS = streamsNodeVideoStreamListVideoStream["AvgFPS"].asString();
  115. if(!streamsNodeVideoStreamListVideoStream["Timebase"].isNull())
  116. videoStreamObject.timebase = streamsNodeVideoStreamListVideoStream["Timebase"].asString();
  117. if(!streamsNodeVideoStreamListVideoStream["StartTime"].isNull())
  118. videoStreamObject.startTime = streamsNodeVideoStreamListVideoStream["StartTime"].asString();
  119. if(!streamsNodeVideoStreamListVideoStream["Duration"].isNull())
  120. videoStreamObject.duration = streamsNodeVideoStreamListVideoStream["Duration"].asString();
  121. if(!streamsNodeVideoStreamListVideoStream["Bitrate"].isNull())
  122. videoStreamObject.bitrate = streamsNodeVideoStreamListVideoStream["Bitrate"].asString();
  123. if(!streamsNodeVideoStreamListVideoStream["NumFrames"].isNull())
  124. videoStreamObject.numFrames = streamsNodeVideoStreamListVideoStream["NumFrames"].asString();
  125. if(!streamsNodeVideoStreamListVideoStream["Lang"].isNull())
  126. videoStreamObject.lang = streamsNodeVideoStreamListVideoStream["Lang"].asString();
  127. if(!streamsNodeVideoStreamListVideoStream["Rotate"].isNull())
  128. videoStreamObject.rotate = streamsNodeVideoStreamListVideoStream["Rotate"].asString();
  129. auto networkCostNode = value["NetworkCost"];
  130. if(!networkCostNode["PreloadTime"].isNull())
  131. videoStreamObject.networkCost.preloadTime = networkCostNode["PreloadTime"].asString();
  132. if(!networkCostNode["CostBandwidth"].isNull())
  133. videoStreamObject.networkCost.costBandwidth = networkCostNode["CostBandwidth"].asString();
  134. if(!networkCostNode["AvgBitrate"].isNull())
  135. videoStreamObject.networkCost.avgBitrate = networkCostNode["AvgBitrate"].asString();
  136. mediaInfoJobListObject.properties.streams.videoStreamList.push_back(videoStreamObject);
  137. }
  138. auto allAudioStreamListNode = streamsNode["AudioStreamList"]["AudioStream"];
  139. for (auto streamsNodeAudioStreamListAudioStream : allAudioStreamListNode)
  140. {
  141. MediaInfoJob::Properties::Streams::AudioStream audioStreamObject;
  142. if(!streamsNodeAudioStreamListAudioStream["Index"].isNull())
  143. audioStreamObject.index = streamsNodeAudioStreamListAudioStream["Index"].asString();
  144. if(!streamsNodeAudioStreamListAudioStream["CodecName"].isNull())
  145. audioStreamObject.codecName = streamsNodeAudioStreamListAudioStream["CodecName"].asString();
  146. if(!streamsNodeAudioStreamListAudioStream["CodecTimeBase"].isNull())
  147. audioStreamObject.codecTimeBase = streamsNodeAudioStreamListAudioStream["CodecTimeBase"].asString();
  148. if(!streamsNodeAudioStreamListAudioStream["CodecLongName"].isNull())
  149. audioStreamObject.codecLongName = streamsNodeAudioStreamListAudioStream["CodecLongName"].asString();
  150. if(!streamsNodeAudioStreamListAudioStream["CodecTagString"].isNull())
  151. audioStreamObject.codecTagString = streamsNodeAudioStreamListAudioStream["CodecTagString"].asString();
  152. if(!streamsNodeAudioStreamListAudioStream["CodecTag"].isNull())
  153. audioStreamObject.codecTag = streamsNodeAudioStreamListAudioStream["CodecTag"].asString();
  154. if(!streamsNodeAudioStreamListAudioStream["SampleFmt"].isNull())
  155. audioStreamObject.sampleFmt = streamsNodeAudioStreamListAudioStream["SampleFmt"].asString();
  156. if(!streamsNodeAudioStreamListAudioStream["Samplerate"].isNull())
  157. audioStreamObject.samplerate = streamsNodeAudioStreamListAudioStream["Samplerate"].asString();
  158. if(!streamsNodeAudioStreamListAudioStream["Channels"].isNull())
  159. audioStreamObject.channels = streamsNodeAudioStreamListAudioStream["Channels"].asString();
  160. if(!streamsNodeAudioStreamListAudioStream["ChannelLayout"].isNull())
  161. audioStreamObject.channelLayout = streamsNodeAudioStreamListAudioStream["ChannelLayout"].asString();
  162. if(!streamsNodeAudioStreamListAudioStream["Timebase"].isNull())
  163. audioStreamObject.timebase = streamsNodeAudioStreamListAudioStream["Timebase"].asString();
  164. if(!streamsNodeAudioStreamListAudioStream["StartTime"].isNull())
  165. audioStreamObject.startTime = streamsNodeAudioStreamListAudioStream["StartTime"].asString();
  166. if(!streamsNodeAudioStreamListAudioStream["Duration"].isNull())
  167. audioStreamObject.duration = streamsNodeAudioStreamListAudioStream["Duration"].asString();
  168. if(!streamsNodeAudioStreamListAudioStream["Bitrate"].isNull())
  169. audioStreamObject.bitrate = streamsNodeAudioStreamListAudioStream["Bitrate"].asString();
  170. if(!streamsNodeAudioStreamListAudioStream["NumFrames"].isNull())
  171. audioStreamObject.numFrames = streamsNodeAudioStreamListAudioStream["NumFrames"].asString();
  172. if(!streamsNodeAudioStreamListAudioStream["Lang"].isNull())
  173. audioStreamObject.lang = streamsNodeAudioStreamListAudioStream["Lang"].asString();
  174. mediaInfoJobListObject.properties.streams.audioStreamList.push_back(audioStreamObject);
  175. }
  176. auto allSubtitleStreamListNode = streamsNode["SubtitleStreamList"]["SubtitleStream"];
  177. for (auto streamsNodeSubtitleStreamListSubtitleStream : allSubtitleStreamListNode)
  178. {
  179. MediaInfoJob::Properties::Streams::SubtitleStream subtitleStreamObject;
  180. if(!streamsNodeSubtitleStreamListSubtitleStream["Index"].isNull())
  181. subtitleStreamObject.index = streamsNodeSubtitleStreamListSubtitleStream["Index"].asString();
  182. if(!streamsNodeSubtitleStreamListSubtitleStream["CodecName"].isNull())
  183. subtitleStreamObject.codecName = streamsNodeSubtitleStreamListSubtitleStream["CodecName"].asString();
  184. if(!streamsNodeSubtitleStreamListSubtitleStream["CodecTimeBase"].isNull())
  185. subtitleStreamObject.codecTimeBase = streamsNodeSubtitleStreamListSubtitleStream["CodecTimeBase"].asString();
  186. if(!streamsNodeSubtitleStreamListSubtitleStream["CodecLongName"].isNull())
  187. subtitleStreamObject.codecLongName = streamsNodeSubtitleStreamListSubtitleStream["CodecLongName"].asString();
  188. if(!streamsNodeSubtitleStreamListSubtitleStream["CodecTagString"].isNull())
  189. subtitleStreamObject.codecTagString = streamsNodeSubtitleStreamListSubtitleStream["CodecTagString"].asString();
  190. if(!streamsNodeSubtitleStreamListSubtitleStream["CodecTag"].isNull())
  191. subtitleStreamObject.codecTag = streamsNodeSubtitleStreamListSubtitleStream["CodecTag"].asString();
  192. if(!streamsNodeSubtitleStreamListSubtitleStream["Timebase"].isNull())
  193. subtitleStreamObject.timebase = streamsNodeSubtitleStreamListSubtitleStream["Timebase"].asString();
  194. if(!streamsNodeSubtitleStreamListSubtitleStream["StartTime"].isNull())
  195. subtitleStreamObject.startTime = streamsNodeSubtitleStreamListSubtitleStream["StartTime"].asString();
  196. if(!streamsNodeSubtitleStreamListSubtitleStream["Duration"].isNull())
  197. subtitleStreamObject.duration = streamsNodeSubtitleStreamListSubtitleStream["Duration"].asString();
  198. if(!streamsNodeSubtitleStreamListSubtitleStream["Lang"].isNull())
  199. subtitleStreamObject.lang = streamsNodeSubtitleStreamListSubtitleStream["Lang"].asString();
  200. mediaInfoJobListObject.properties.streams.subtitleStreamList.push_back(subtitleStreamObject);
  201. }
  202. auto formatNode = propertiesNode["Format"];
  203. if(!formatNode["NumStreams"].isNull())
  204. mediaInfoJobListObject.properties.format.numStreams = formatNode["NumStreams"].asString();
  205. if(!formatNode["NumPrograms"].isNull())
  206. mediaInfoJobListObject.properties.format.numPrograms = formatNode["NumPrograms"].asString();
  207. if(!formatNode["FormatName"].isNull())
  208. mediaInfoJobListObject.properties.format.formatName = formatNode["FormatName"].asString();
  209. if(!formatNode["FormatLongName"].isNull())
  210. mediaInfoJobListObject.properties.format.formatLongName = formatNode["FormatLongName"].asString();
  211. if(!formatNode["StartTime"].isNull())
  212. mediaInfoJobListObject.properties.format.startTime = formatNode["StartTime"].asString();
  213. if(!formatNode["Duration"].isNull())
  214. mediaInfoJobListObject.properties.format.duration = formatNode["Duration"].asString();
  215. if(!formatNode["Size"].isNull())
  216. mediaInfoJobListObject.properties.format.size = formatNode["Size"].asString();
  217. if(!formatNode["Bitrate"].isNull())
  218. mediaInfoJobListObject.properties.format.bitrate = formatNode["Bitrate"].asString();
  219. auto mNSMessageResultNode = value["MNSMessageResult"];
  220. if(!mNSMessageResultNode["MessageId"].isNull())
  221. mediaInfoJobListObject.mNSMessageResult.messageId = mNSMessageResultNode["MessageId"].asString();
  222. if(!mNSMessageResultNode["ErrorMessage"].isNull())
  223. mediaInfoJobListObject.mNSMessageResult.errorMessage = mNSMessageResultNode["ErrorMessage"].asString();
  224. if(!mNSMessageResultNode["ErrorCode"].isNull())
  225. mediaInfoJobListObject.mNSMessageResult.errorCode = mNSMessageResultNode["ErrorCode"].asString();
  226. mediaInfoJobList_.push_back(mediaInfoJobListObject);
  227. }
  228. auto allNonExistMediaInfoJobIds = value["NonExistMediaInfoJobIds"]["String"];
  229. for (const auto &item : allNonExistMediaInfoJobIds)
  230. nonExistMediaInfoJobIds_.push_back(item.asString());
  231. }
  232. std::vector<std::string> QueryMediaInfoJobListResult::getNonExistMediaInfoJobIds()const
  233. {
  234. return nonExistMediaInfoJobIds_;
  235. }
  236. std::vector<QueryMediaInfoJobListResult::MediaInfoJob> QueryMediaInfoJobListResult::getMediaInfoJobList()const
  237. {
  238. return mediaInfoJobList_;
  239. }