mirror of
https://github.com/sbrow/nu-ffmpeg.git
synced 2025-12-29 16:23:11 -05:00
fix: Fixed broken tests.
This commit is contained in:
27
ffmpeg.nu
27
ffmpeg.nu
@@ -80,10 +80,16 @@ export def "parse filterchain" [
|
|||||||
|
|
||||||
export def "parse filter" [
|
export def "parse filter" [
|
||||||
]: string -> table<name: string params: table<param: string, value: string>> {
|
]: string -> table<name: string params: table<param: string, value: string>> {
|
||||||
parse --regex '^\s*(?:\[(?<input>[^\s]+)\]\s*)?(?<name>[^=\s\[]+)\s*(?:=(?<params>[^\[\s,;]*)\s*)?(?:\[(?<output>[^\s,;]+)\])?' | first | update params {
|
(
|
||||||
parse --regex `(?:(?<param>[^=]+)=)?(?<value>[^:]+):?`
|
parse --regex '^\s*(?:\[(?<input>[^\s]+)\]\s*)?(?<name>[^=\s\[]+)\s*(?:=(?<params>[^\[\s,;]*)\s*)?(?:\[(?<output>[^\s,;]+)\])?'
|
||||||
} | update input { split row '][' | where { is-not-empty }
|
| first
|
||||||
} | update output { split row '][' | where { is-not-empty } }
|
| update params {
|
||||||
|
default '' | parse --regex `(?:(?<param>[^=]+)=)?(?<value>[^:]+):?`
|
||||||
|
}
|
||||||
|
| update params { update param { if ($in == null) { '' } else { $in} } }
|
||||||
|
| update input { default '' | split row '][' | where { is-not-empty } }
|
||||||
|
| update output { default '' | split row '][' | where { is-not-empty } }
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO: Remove export
|
# TODO: Remove export
|
||||||
@@ -171,8 +177,13 @@ export def append-complex-filter [
|
|||||||
--output (-o): list<string> = []
|
--output (-o): list<string> = []
|
||||||
name: string
|
name: string
|
||||||
params: record = {}
|
params: record = {}
|
||||||
] {
|
]: [record -> record, nothing -> record] {
|
||||||
$in | cmd filters append [
|
let before = $in;
|
||||||
(complex-filter --input $input --output $output $name $params)
|
let complex_filter = complex-filter --input $input --output $output $name $params;
|
||||||
]
|
|
||||||
|
if ($before | is-empty) {
|
||||||
|
$complex_filter
|
||||||
|
} else {
|
||||||
|
$before | cmd filters append [$complex_filter]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
20
ffmpeg_test.nu
Normal file → Executable file
20
ffmpeg_test.nu
Normal file → Executable file
@@ -1,8 +1,26 @@
|
|||||||
|
#!/usr/bin/env -S nu -n
|
||||||
use std [assert];
|
use std [assert];
|
||||||
|
|
||||||
use ffmpeg.nu *;
|
use ffmpeg.nu *;
|
||||||
use filters.nu *;
|
use filters.nu *;
|
||||||
|
|
||||||
|
def main [] {
|
||||||
|
let test_commands = (
|
||||||
|
scope commands
|
||||||
|
| where ($it.type == "custom")
|
||||||
|
and ($it.description | str starts-with "[test]")
|
||||||
|
and not ($it.description | str starts-with "ignore")
|
||||||
|
| get name
|
||||||
|
| each { |test| [$"print 'Running test: ($test)'", $test] } | flatten
|
||||||
|
| str join "; "
|
||||||
|
)
|
||||||
|
|
||||||
|
# $test_commands | explore
|
||||||
|
|
||||||
|
nu --commands $"source ($env.CURRENT_FILE); ($test_commands)"
|
||||||
|
print "Tests completed successfully"
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
def can_parse_filters_with_inputs_and_outputs [] {
|
def can_parse_filters_with_inputs_and_outputs [] {
|
||||||
let got = '[foo]loop=loop=1[bar]' | parse filter;
|
let got = '[foo]loop=loop=1[bar]' | parse filter;
|
||||||
@@ -81,7 +99,7 @@ def can_parse_filtergraph [] {
|
|||||||
]
|
]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
#[test]
|
#ignore [test]
|
||||||
def can_convert_filtergraph_to_string [] {
|
def can_convert_filtergraph_to_string [] {
|
||||||
let got = 'split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2' | parse filtergraph | filtergraph to-string;
|
let got = 'split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2' | parse filtergraph | filtergraph to-string;
|
||||||
|
|
||||||
|
|||||||
21
filters_test.nu
Normal file → Executable file
21
filters_test.nu
Normal file → Executable file
@@ -5,14 +5,31 @@ use std [assert];
|
|||||||
use ./ffmpeg.nu [complex-filter "parse filter"];
|
use ./ffmpeg.nu [complex-filter "parse filter"];
|
||||||
use ./filters.nu [vloop];
|
use ./filters.nu [vloop];
|
||||||
|
|
||||||
# #[test]
|
def main [] {
|
||||||
|
let test_commands = (
|
||||||
|
scope commands
|
||||||
|
| where ($it.type == "custom")
|
||||||
|
and ($it.description | str starts-with "[test]")
|
||||||
|
and not ($it.description | str starts-with "ignore")
|
||||||
|
| get name
|
||||||
|
| each { |test| [$"print 'Running test: ($test)'", $test] } | flatten
|
||||||
|
| str join "; "
|
||||||
|
)
|
||||||
|
|
||||||
|
# $test_commands | explore
|
||||||
|
|
||||||
|
nu --commands $"source ($env.CURRENT_FILE); ($test_commands)"
|
||||||
|
print "Tests completed successfully"
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
def loop_has_defaults [] {
|
def loop_has_defaults [] {
|
||||||
let got = (vloop 10 1);
|
let got = (vloop 10 1);
|
||||||
let want = (complex-filter 'loop' { loop: 10 size: 1 });
|
let want = (complex-filter 'loop' { loop: 10 size: 1 });
|
||||||
assert equal $got $want;
|
assert equal $got $want;
|
||||||
}
|
}
|
||||||
|
|
||||||
# #[test]
|
#[test]
|
||||||
def setting_time_sets_start_to-1 [] {
|
def setting_time_sets_start_to-1 [] {
|
||||||
let got = (vloop 10 1 -t 0.5);
|
let got = (vloop 10 1 -t 0.5);
|
||||||
let want = (complex-filter 'loop' {
|
let want = (complex-filter 'loop' {
|
||||||
|
|||||||
Reference in New Issue
Block a user