Class: ONVIF::MediaAction::GetVideoEncoderConfigurationOptions
- Defined in:
- lib/ruby_onvif_client/media/get_video_encoder_configuration_options.rb
Instance Method Summary collapse
- #_get_each_val(xml_doc, parent_name) ⇒ Object
- #_get_min_max(xml_doc, parent_name) ⇒ Object
- #_get_node(parent_node, node_name) ⇒ Object
- #_get_profiles_supported(xml_doc, parent_name) ⇒ Object
- #_get_width_height(xml_doc, parent_name) ⇒ Object
-
#run(options, cb) ⇒ Object
options 的结构 { c_token: “xxxxxxx”, //[ReferenceToken] Optional audio encoder configuration token that specifies an existing configuration that the options are intended for. p_token: “xxxxxxx” //[ReferenceToken] Optional ProfileToken that specifies an existing media profile that the options shall be compatible with. }.
Methods inherited from Action
#attribute, #callback, #initialize, #send_message, #value
Constructor Details
This class inherits a constructor from ONVIF::Action
Instance Method Details
#_get_each_val(xml_doc, parent_name) ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/ruby_onvif_client/media/get_video_encoder_configuration_options.rb', line 64 def _get_each_val xml_doc, parent_name result_val = [] xml_doc.each do |node| result_val << _get_width_height(node, parent_name) end return result_val end |
#_get_min_max(xml_doc, parent_name) ⇒ Object
72 73 74 75 76 77 78 79 80 81 |
# File 'lib/ruby_onvif_client/media/get_video_encoder_configuration_options.rb', line 72 def _get_min_max xml_doc, parent_name this_node = xml_doc unless parent_name.nil? this_node = xml_doc.at_xpath(parent_name) end return { min: value(this_node, "tt:Min"), max: value(this_node, "tt:Max") } end |
#_get_node(parent_node, node_name) ⇒ Object
60 61 62 |
# File 'lib/ruby_onvif_client/media/get_video_encoder_configuration_options.rb', line 60 def _get_node parent_node, node_name parent_node.at_xpath(node_name) end |
#_get_profiles_supported(xml_doc, parent_name) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/ruby_onvif_client/media/get_video_encoder_configuration_options.rb', line 52 def _get_profiles_supported xml_doc, parent_name this_node = xml_doc.at_xpath(parent_name) result_val = [] this_node.each do |node| result_val << node.content end return result_val end |
#_get_width_height(xml_doc, parent_name) ⇒ Object
83 84 85 86 87 88 89 90 91 92 |
# File 'lib/ruby_onvif_client/media/get_video_encoder_configuration_options.rb', line 83 def _get_width_height xml_doc, parent_name this_node = xml_doc unless parent_name.nil? this_node = xml_doc.at_xpath(parent_name) end return { width: value(this_node, "tt:Width"), height: value(this_node, "tt:Height") } end |
#run(options, cb) ⇒ Object
options 的结构
c_token: "xxxxxxx", //[ReferenceToken] Optional audio encoder configuration token that specifies an existing configuration that the are intended for.
p_token: "xxxxxxx" //[ReferenceToken] Optional ProfileToken that specifies an existing media profile that the options shall be compatible with.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ruby_onvif_client/media/get_video_encoder_configuration_options.rb', line 11 def run , cb = Message.new .body = ->(xml) do xml.wsdl(:GetVideoEncoderConfigurationOptions) do xml.wsdl :ConfigurationToken, ["c_token"] xml.wsdl :ProfileToken, ["p_token"] end end do |success, result| if success xml_doc = Nokogiri::XML(result[:content]) = { quality_range: _get_min_max(_get_node(xml_doc, "//tt:QualityRange")), jpeg: { resolutions_available: _get_each_val(_get_node(xml_doc, "//tt:JPEG"), "//tt:ResolutionsAvailable"), frame_rate_range: _get_min_max(_get_node(xml_doc, "//tt:JPEG"), "//tt:FrameRateRange"), rncoding_interval_range: _get_min_max(_get_node(xml_doc, "//tt:JPEG"), "//tt:FrameRateRange") }, mpeg4: { resolutions_available: _get_each_val(_get_node(xml_doc, "//tt:MPEG4"), "//tt:ResolutionsAvailable"), gov_length_range: _get_min_max(_get_node(xml_doc, "//tt:MPEG4"), "//tt:GovLengthRange"), frame_rate_range: _get_min_max(_get_node(xml_doc, "//tt:MPEG4"), "//tt:FrameRateRange"), rncoding_interval_range: _get_min_max(_get_node(xml_doc, "//tt:MPEG4"), "//tt:EncodingIntervalRange"), mpeg4_profiles_supported: _get_profiles_supported(_get_node(xml_doc, "//tt:MPEG4"), "//tt:Mpeg4ProfilesSupported") }, h264: { resolutions_available: _get_each_val(_get_node(xml_doc, "//tt:h264"), "//tt:ResolutionsAvailable"), gov_length_range: _get_min_max(_get_node(xml_doc, "//tt:h264"), "//tt:GovLengthRange"), frame_rate_range: _get_min_max(_get_node(xml_doc, "//tt:h264"), "//tt:FrameRateRange"), rncoding_interval_range: _get_min_max(_get_node(xml_doc, "//tt:h264"), "//tt:EncodingIntervalRange"), h264_profiles_supported: _get_profiles_supported(_get_node(xml_doc, "//tt:h264"), "//tt:H264ProfilesSupported") }, extension: "" } callback cb, success, else callback cb, success, result end end end |