buildSelectExpression func moved from video to utils
This commit is contained in:
parent
4fe8cad509
commit
a1d63d0f9f
2 changed files with 41 additions and 42 deletions
41
utils.go
41
utils.go
|
@ -214,3 +214,44 @@ func getDevicesWindows() ([]string, error) {
|
||||||
devices := parseDevices(builder.String())
|
devices := parseDevices(builder.String())
|
||||||
return devices, nil
|
return devices, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Error representing a strings.Builder failure in the buildSelectExpression func.
|
||||||
|
var errExpressionBuilder = fmt.Errorf("vidio: failed to write tokens to the frame select expresion")
|
||||||
|
|
||||||
|
// Helper function used to generate a "-vf select" expression that specifies which video frames should be exported.
|
||||||
|
func buildSelectExpression(n ...int) (string, error) {
|
||||||
|
sb := strings.Builder{}
|
||||||
|
if _, err := sb.WriteString("select='"); err != nil {
|
||||||
|
return "", errExpressionBuilder
|
||||||
|
}
|
||||||
|
|
||||||
|
for index, frame := range n {
|
||||||
|
if index != 0 {
|
||||||
|
if _, err := sb.WriteRune('+'); err != nil {
|
||||||
|
return "", errExpressionBuilder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := sb.WriteString("eq(n\\,"); err != nil {
|
||||||
|
|
||||||
|
return "", errExpressionBuilder
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := sb.WriteString(strconv.Itoa(frame)); err != nil {
|
||||||
|
|
||||||
|
return "", errExpressionBuilder
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := sb.WriteRune(')'); err != nil {
|
||||||
|
|
||||||
|
return "", errExpressionBuilder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := sb.WriteRune('\''); err != nil {
|
||||||
|
|
||||||
|
return "", errExpressionBuilder
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.String(), nil
|
||||||
|
}
|
||||||
|
|
42
video.go
42
video.go
|
@ -6,7 +6,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
)
|
)
|
||||||
|
@ -405,44 +404,3 @@ func (video *Video) cleanup() {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error representing a strings.Builder failure in the buildSelectExpression func.
|
|
||||||
var errExpressionBuilder = fmt.Errorf("vidio: failed to write tokens to the frame select expresion")
|
|
||||||
|
|
||||||
// Helper function used to generate a "-vf select" expression that specifies which video frames should be exported.
|
|
||||||
func buildSelectExpression(n ...int) (string, error) {
|
|
||||||
sb := strings.Builder{}
|
|
||||||
if _, err := sb.WriteString("select='"); err != nil {
|
|
||||||
return "", errExpressionBuilder
|
|
||||||
}
|
|
||||||
|
|
||||||
for index, frame := range n {
|
|
||||||
if index != 0 {
|
|
||||||
if _, err := sb.WriteRune('+'); err != nil {
|
|
||||||
return "", errExpressionBuilder
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := sb.WriteString("eq(n\\,"); err != nil {
|
|
||||||
|
|
||||||
return "", errExpressionBuilder
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := sb.WriteString(strconv.Itoa(frame)); err != nil {
|
|
||||||
|
|
||||||
return "", errExpressionBuilder
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := sb.WriteRune(')'); err != nil {
|
|
||||||
|
|
||||||
return "", errExpressionBuilder
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := sb.WriteRune('\''); err != nil {
|
|
||||||
|
|
||||||
return "", errExpressionBuilder
|
|
||||||
}
|
|
||||||
|
|
||||||
return sb.String(), nil
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue