From a90739089110e9f92653792bb1f23888ad734a79 Mon Sep 17 00:00:00 2001 From: James Mills Date: Sun, 22 Mar 2020 18:01:27 +1000 Subject: Add support for transcoding --- media/utils.go | 56 -------------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 media/utils.go (limited to 'media/utils.go') diff --git a/media/utils.go b/media/utils.go deleted file mode 100644 index b67f276..0000000 --- a/media/utils.go +++ /dev/null @@ -1,56 +0,0 @@ -package media - -import ( - "bytes" - "fmt" - "os/exec" - "time" -) - -func cmdExists(cmd string) bool { - _, err := exec.LookPath(cmd) - return err == nil -} - -func runCmd(timeout int, command string, args ...string) error { - // instantiate new command - cmd := exec.Command(command, args...) - - // get pipe to standard output - stdout, err := cmd.StdoutPipe() - if err != nil { - return fmt.Errorf("cmd.StdoutPipe() error: %w", err) - } - - // start process via command - if err := cmd.Start(); err != nil { - return fmt.Errorf("cmd.Start() error: %w", err) - } - - // setup a buffer to capture standard output - var buf bytes.Buffer - - // create a channel to capture any errors from wait - done := make(chan error) - go func() { - if _, err := buf.ReadFrom(stdout); err != nil { - panic("buf.Read(stdout) error: " + err.Error()) - } - done <- cmd.Wait() - }() - - // block on select, and switch based on actions received - select { - case <-time.After(time.Duration(timeout) * time.Second): - if err := cmd.Process.Kill(); err != nil { - return fmt.Errorf("failed to kill: %w", err) - } - return fmt.Errorf("timeout reached, process killed") - case err := <-done: - if err != nil { - close(done) - return fmt.Errorf("process done, with error: %w", err) - } - return nil - } -} -- cgit v1.2.3