SubmitMediaInfoJobResult.cc 14 KB

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