lib/dtas/source/av_ff_common.rb in dtas-0.12.1 vs lib/dtas/source/av_ff_common.rb in dtas-0.13.0
- old
+ new
@@ -1,7 +1,8 @@
-# Copyright (C) 2013-2015 all contributors <dtas-all@nongnu.org>
-# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
+# Copyright (C) 2013-2016 all contributors <dtas-all@nongnu.org>
+# License: GPL-3.0+ (https://www.gnu.org/licenses/gpl-3.0.txt)
+# frozen_string_literal: true
require_relative '../../dtas'
require_relative '../source'
require_relative '../replaygain'
require_relative '../xs'
require_relative 'file'
@@ -73,11 +74,11 @@
cmd.concat(@probe_harder)
end
cmd.concat(%W(-show_streams -show_format #@infile))
break if cmd == prev_cmd
- err = ""
+ err = "".b
s = qx(@env, cmd, err_str: err, no_raise: true)
return false unless probe_ok?(s, err)
s.scan(%r{^\[STREAM\]\n(.*?)\n\[/STREAM\]\n}mn) do |_|
__parse_astream(cmd, $1) do |index, as|
# incomplete streams may have zero channels
@@ -91,13 +92,13 @@
end
prev_cmd = cmd
end while incomplete.compact[0]
s.scan(%r{^\[FORMAT\]\n(.*?)\n\[/FORMAT\]\n}m) do |_|
- f = $1
+ f = $1.dup
f =~ /^duration=([\d\.]+)\s*$/nm and @duration = $1.to_f
# TODO: multi-line/multi-value/repeated tags
- f.gsub!(/^TAG:([^=]+)=(.*)$/ni) { |_| @comments[$1.upcase] = $2 }
+ f.gsub!(/^TAG:([^=]+)=(.*)$/ni) { |_| @comments[$1.upcase.freeze] = $2 }
end
! @astreams.compact.empty?
end
def sspos