Skip to content

Commit c4748e7

Browse files
authored
Merge pull request #8 from amiaopensource/phase-test
more phase options
2 parents 0cd4d5b + aa6a729 commit c4748e7

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

audioqc

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class QcTarget
111111
@input_path = value
112112
@warnings = []
113113
end
114-
114+
115115
def check_dropouts
116116
@sample_ratios = []
117117
@possible_drops = []
@@ -157,11 +157,27 @@ class QcTarget
157157
out_of_phase_frames = []
158158
phase_frames = []
159159
@levels = []
160+
unless @mediainfo_out['media']['track'][0]['extra'].nil? || TARGET_EXTENSION != 'wav'
161+
if @mediainfo_out['media']['track'][0]['extra']['bext_Present'] == 'Yes' && @mediainfo_out['media']['track'][0]['Encoded_Library_Settings']
162+
@stereo_count = @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/stereo/i).count
163+
@dual_count = @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/dual/i).count
164+
end
165+
end
166+
if ! @dual_count.nil? && ! @stereo_count.nil?
167+
if @dual_count > 0
168+
phase_limit = Configurations['dualmono_audio_phase_limit']
169+
elsif
170+
@stereo_count > 1
171+
phase_limit = Configurations['stereo_audio_phase_limit']
172+
end
173+
else
174+
phase_limit = Configurations['generic_audio_phase_limit']
175+
end
160176
@ffprobe_out['frames'].each do |frames|
161177
peaklevel = frames['tags']['lavfi.astats.Overall.Peak_level']
162178
audiophase = frames['tags']['lavfi.aphasemeter.phase'].to_f
163179
phase_frames << audiophase
164-
out_of_phase_frames << audiophase if audiophase < Configurations['audio_phase_limit']
180+
out_of_phase_frames << audiophase if audiophase < phase_limit
165181
if peaklevel != '-inf'
166182
high_db_frames << peaklevel.to_f if peaklevel.to_f > Configurations['high_level_warning']
167183
@levels << peaklevel.to_f
@@ -241,7 +257,7 @@ class QcTarget
241257
if TARGET_EXTENSION == 'wav'
242258
@enc_hist_error = []
243259
unless @mediainfo_out['media']['track'][0]['extra'].nil?
244-
if @mediainfo_out['media']['track'][0]['extra']['bext_Present'] == 'Yes' && @mediainfo_out['media']['track'][0]['Encoded_Library_Settings']
260+
if @mediainfo_out['media']['track'][0]['extra']['bext_Present'] == 'Yes' && @mediainfo_out['media']['track'][0]['Encoded_Library_Settings']
245261
signal_chain_count = @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/A=/).count
246262
if @mediainfo_out['media']['track'][1]['Channels'] == "1"
247263
unless @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/mono/i).count == signal_chain_count
@@ -250,9 +266,9 @@ class QcTarget
250266
end
251267

252268
if @mediainfo_out['media']['track'][1]['Channels'] == "2"
253-
stereo_count = @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/stereo/i).count
254-
dual_count = @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/dual/i).count
255-
unless stereo_count + dual_count == signal_chain_count
269+
@stereo_count = @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/stereo/i).count
270+
@dual_count = @mediainfo_out['media']['track'][0]['Encoded_Library_Settings'].scan(/dual/i).count
271+
unless @stereo_count + @dual_count == signal_chain_count
256272
@enc_hist_error << "BEXT Coding History channels don't match file"
257273
end
258274
end

audioqc.config

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
# Set QC values here
44

5-
audio_phase_limit: -0.25
5+
stereo_audio_phase_limit: -0.25
6+
dualmono_audio_phase_limit: 0.95
7+
generic_audio_phase_limit: -0.25
68
high_level_warning: -2.0
79
default_extension: 'wav'

0 commit comments

Comments
 (0)