[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] av_ff_common: attempt to fix encodings for ffprobe/avprobe
From: |
Eric Wong |
Subject: |
[PATCH 1/2] av_ff_common: attempt to fix encodings for ffprobe/avprobe |
Date: |
Mon, 4 Sep 2023 06:21:51 +0000 |
As with sox, these will be dealing with legacy encodings
and badly-encoding software until the end of days, so do
our best to fix them up.
---
lib/dtas/source/av_ff_common.rb | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/dtas/source/av_ff_common.rb b/lib/dtas/source/av_ff_common.rb
index 5299fdb..332a0bb 100644
--- a/lib/dtas/source/av_ff_common.rb
+++ b/lib/dtas/source/av_ff_common.rb
@@ -104,13 +104,14 @@ def av_ff_ok?
prev_cmd = cmd
end while incomplete.compact[0]
+ enc = Encoding.default_external # typically Encoding::UTF_8
# old avprobe
s.scan(%r{^\[FORMAT\]\n(.*?)\n\[/FORMAT\]\n}m) do |_|
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)
+ @comments[-DTAS.try_enc($1.upcase, enc)] = $2
}
end
@@ -118,13 +119,17 @@ def av_ff_ok?
s.scan(%r{^\[format\.tags\]\n(.*?)\n\n}m) do |_|
f = $1.dup
f.gsub!(/^([^=]+)=(.*)$/ni) { |_|
- @comments[$1.upcase] = -$2
+ @comments[-DTAS.try_enc($1.upcase, enc)] = $2
}
end
s.scan(%r{^\[format\]\n(.*?)\n\n}m) do |_|
f = $1.dup
f =~ /^duration=([\d\.]+)\s*$/nm and @duration = $1.to_f
end
+ comments.each do |k,v|
+ v.chomp!
+ comments[k] = -DTAS.try_enc(v, enc)
+ end
! @astreams.compact.empty?
end
- [PATCH 1/2] av_ff_common: attempt to fix encodings for ffprobe/avprobe,
Eric Wong <=