Loading ivas_processing_scripts/processing/processing_splitting_scaling.py +42 −0 Original line number Diff line number Diff line Loading @@ -214,6 +214,7 @@ class Processing_splitting_scaling(Processing): # read out tracefile with jbm info tracefile_info_file = Path(f"{in_file.with_suffix('').with_suffix('')}.tracefile.csv") tracefile_info = np.genfromtxt(tracefile_info_file, delimiter=";") validate_tracefile(tracefile_info) else: tracefile_info = None Loading Loading @@ -306,3 +307,44 @@ def measure_loudness(file_splits, out_fmt, fs, loudness, loudness_fmt, meta, log ) scaling_splits.append(scale_factor) return scaling_splits def validate_tracefile(tracefile): prevPlayTime = -1 prevRtpTs = -1 for j in range(tracefile.shape[0]): entry = tracefile[j] # require playTime > 0 and strictly increasing if entry[3] < 0: raise ValueError(f"Error in JBM trace file at line {j}: playTime < 0") if entry[3] <= prevPlayTime: raise ValueError(f"Error in JBM trace file at line {j}: playTime not strictly increasing") prevPlayTime = entry[3] # require playTime > rcvTime if entry[2] >= 0 and entry[3] < entry[2]: raise ValueError(f"Error in JBM trace file at line {j}: playTime < rcvTime") # rtpTs must be strictly increasing if entry[1] >= 0: if entry[1] == prevRtpTs: raise ValueError(f"Error in JBM trace file at line {j}: duplicated rtpTs found") # TODO: (treffehn) include RTP time stamp overflow handling? # else if (entry.rtpTs + rtpTsExtension < prevRtpTs) { # if (entry.rtpTs + rtpTsExtension + (1LL << 32) - prevRtpTs < # prevRtpTs - (entry.rtpTs + rtpTsExtension)) { # // overflow of 32bit RTP time stamp, increase extension # rtpTsExtension += 1LL << 32; # } # else { # fprintf(stderr, "Error in JBM trace file at line %d: rtpTs not strictly increasing\n", entry.line); # return false; # } # } # entry.rtpTs += rtpTsExtension; # prevRtpTs = entry.rtpTs; # } elif entry[1] != -1: raise ValueError(f"Error in JBM trace file at line {j}: unexpected rtpTs") Loading
ivas_processing_scripts/processing/processing_splitting_scaling.py +42 −0 Original line number Diff line number Diff line Loading @@ -214,6 +214,7 @@ class Processing_splitting_scaling(Processing): # read out tracefile with jbm info tracefile_info_file = Path(f"{in_file.with_suffix('').with_suffix('')}.tracefile.csv") tracefile_info = np.genfromtxt(tracefile_info_file, delimiter=";") validate_tracefile(tracefile_info) else: tracefile_info = None Loading Loading @@ -306,3 +307,44 @@ def measure_loudness(file_splits, out_fmt, fs, loudness, loudness_fmt, meta, log ) scaling_splits.append(scale_factor) return scaling_splits def validate_tracefile(tracefile): prevPlayTime = -1 prevRtpTs = -1 for j in range(tracefile.shape[0]): entry = tracefile[j] # require playTime > 0 and strictly increasing if entry[3] < 0: raise ValueError(f"Error in JBM trace file at line {j}: playTime < 0") if entry[3] <= prevPlayTime: raise ValueError(f"Error in JBM trace file at line {j}: playTime not strictly increasing") prevPlayTime = entry[3] # require playTime > rcvTime if entry[2] >= 0 and entry[3] < entry[2]: raise ValueError(f"Error in JBM trace file at line {j}: playTime < rcvTime") # rtpTs must be strictly increasing if entry[1] >= 0: if entry[1] == prevRtpTs: raise ValueError(f"Error in JBM trace file at line {j}: duplicated rtpTs found") # TODO: (treffehn) include RTP time stamp overflow handling? # else if (entry.rtpTs + rtpTsExtension < prevRtpTs) { # if (entry.rtpTs + rtpTsExtension + (1LL << 32) - prevRtpTs < # prevRtpTs - (entry.rtpTs + rtpTsExtension)) { # // overflow of 32bit RTP time stamp, increase extension # rtpTsExtension += 1LL << 32; # } # else { # fprintf(stderr, "Error in JBM trace file at line %d: rtpTs not strictly increasing\n", entry.line); # return false; # } # } # entry.rtpTs += rtpTsExtension; # prevRtpTs = entry.rtpTs; # } elif entry[1] != -1: raise ValueError(f"Error in JBM trace file at line {j}: unexpected rtpTs")