audio is prepared, next is MXL part
This commit is contained in:
+29
-5
@@ -52,6 +52,7 @@ type appArgs struct {
|
||||
|
||||
audioChannels uint8
|
||||
audioSamplingFreq string
|
||||
audioLevel string
|
||||
audioUUID string
|
||||
}
|
||||
|
||||
@@ -160,7 +161,17 @@ func validateVideoArgs(args *appArgs) error {
|
||||
}
|
||||
|
||||
func validateAudioArgs(args *appArgs) error {
|
||||
if args.audioFlowDefFile != "" || args.audioChannels == 0 {
|
||||
if args.audioFlowDefFile == "" && args.audioChannels == 0 {
|
||||
return nil
|
||||
}
|
||||
if _, ok := audioLevels[args.audioLevel]; !ok {
|
||||
return fmt.Errorf(
|
||||
"unsupported audio level %q (supported: %s)",
|
||||
args.audioLevel,
|
||||
sortedMapKeys(audioLevels),
|
||||
)
|
||||
}
|
||||
if args.audioFlowDefFile != "" {
|
||||
return nil
|
||||
}
|
||||
if _, exists := samplingRates[args.audioSamplingFreq]; !exists {
|
||||
@@ -272,6 +283,11 @@ var patterns = map[string]pattern{
|
||||
},
|
||||
}
|
||||
|
||||
var audioLevels = map[string]float64{
|
||||
"ebu": audio.LevelEBUDBFS,
|
||||
"smpte": audio.LevelSMPTEDBFS,
|
||||
}
|
||||
|
||||
func listPatterns(w io.Writer) {
|
||||
fmt.Fprintln(w, "List of available video patterns:")
|
||||
names := make([]string, 0, len(patterns))
|
||||
@@ -327,9 +343,10 @@ func addFlags(fs *pflag.FlagSet, args *appArgs) {
|
||||
fs.StringVar(&args.videoFPS, "fps", "25", "Video pattern FPS")
|
||||
fs.StringVar(&args.videoUUID, "video-id", "", "Video UUID. Will be created, if not provided")
|
||||
// Audio pattern flags
|
||||
fs.Uint8VarP(&args.audioChannels, "channel", "c", 0, "Amount of audio channels. Each channel: num * 1kHz. Zero = no sound [TODO]")
|
||||
fs.StringVarP(&args.audioSamplingFreq, "freq", "f", "48", "Sampling frequency of test audio feed in kHz [TODO]")
|
||||
fs.StringVar(&args.audioUUID, "audio-id", "", "Audio UUID. Will be created, if not provided [TODO]")
|
||||
fs.Uint8VarP(&args.audioChannels, "channel", "c", 0, "Amount of audio channels. Each channel: num * 1kHz")
|
||||
fs.StringVarP(&args.audioSamplingFreq, "freq", "f", "48", "Sampling frequency of test audio feed in kHz")
|
||||
fs.StringVar(&args.audioLevel, "audio-level", "ebu", "Audio alignment level: ebu (-18 dBFS) or smpte (-20 dBFS)")
|
||||
fs.StringVar(&args.audioUUID, "audio-id", "", "Audio UUID. Will be created, if not provided")
|
||||
}
|
||||
|
||||
func parseArgs(argv []string, stdout, stderr io.Writer) (parseResult, error) {
|
||||
@@ -425,6 +442,10 @@ func buildAudioConfig(args appArgs) (*audio.Config, error) {
|
||||
if args.audioFlowDefFile == "" && args.audioChannels == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
levelDBFS, ok := audioLevels[args.audioLevel]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unsupported audio level %q", args.audioLevel)
|
||||
}
|
||||
|
||||
var definition flowdef.Audio
|
||||
if args.audioFlowDefFile != "" {
|
||||
@@ -452,7 +473,10 @@ func buildAudioConfig(args appArgs) (*audio.Config, error) {
|
||||
}
|
||||
}
|
||||
|
||||
return &audio.Config{Definition: definition}, nil
|
||||
return &audio.Config{
|
||||
Definition: definition,
|
||||
LevelDBFS: levelDBFS,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
Reference in New Issue
Block a user