Merge pull request #11 from Quppa/master
avif CLI: Expose thread count config as command-line option
This commit is contained in:
commit
442e948cec
|
@ -25,6 +25,7 @@ Options:
|
||||||
-o <dst>, --output=<dst> Destination filename
|
-o <dst>, --output=<dst> Destination filename
|
||||||
-q <qp>, --quality=<qp> Compression level (0..63), [default: 25]
|
-q <qp>, --quality=<qp> Compression level (0..63), [default: 25]
|
||||||
-s <spd>, --speed=<spd> Compression speed (0..8), [default: 4]
|
-s <spd>, --speed=<spd> Compression speed (0..8), [default: 4]
|
||||||
|
-t <td>, --threads=<td> Number of threads (0..64, 0 for all available cores), [default: 0]
|
||||||
--lossless Lossless compression (alias for -q 0)
|
--lossless Lossless compression (alias for -q 0)
|
||||||
--best Slowest compression method (alias for -s 0)
|
--best Slowest compression method (alias for -s 0)
|
||||||
--fast Fastest compression method (alias for -s 8)
|
--fast Fastest compression method (alias for -s 8)
|
||||||
|
@ -35,6 +36,7 @@ type config struct {
|
||||||
Output string
|
Output string
|
||||||
Quality int
|
Quality int
|
||||||
Speed int
|
Speed int
|
||||||
|
Threads int
|
||||||
Lossless bool
|
Lossless bool
|
||||||
Best bool
|
Best bool
|
||||||
Fast bool
|
Fast bool
|
||||||
|
@ -62,6 +64,7 @@ func main() {
|
||||||
checkErr(err)
|
checkErr(err)
|
||||||
check(conf.Quality >= avif.MinQuality && conf.Quality <= avif.MaxQuality, "bad quality (0..63)")
|
check(conf.Quality >= avif.MinQuality && conf.Quality <= avif.MaxQuality, "bad quality (0..63)")
|
||||||
check(conf.Speed >= avif.MinSpeed && conf.Speed <= avif.MaxSpeed, "bad speed (0..8)")
|
check(conf.Speed >= avif.MinSpeed && conf.Speed <= avif.MaxSpeed, "bad speed (0..8)")
|
||||||
|
check(conf.Threads == 0 || (conf.Threads >= avif.MinThreads && conf.Threads <= avif.MaxThreads), "bad threads (0..64)")
|
||||||
check(!conf.Best || !conf.Fast, "can't use both --best and --fast")
|
check(!conf.Best || !conf.Fast, "can't use both --best and --fast")
|
||||||
if conf.Lossless {
|
if conf.Lossless {
|
||||||
conf.Quality = 0
|
conf.Quality = 0
|
||||||
|
@ -74,6 +77,7 @@ func main() {
|
||||||
avifOpts := avif.Options{
|
avifOpts := avif.Options{
|
||||||
Speed: conf.Speed,
|
Speed: conf.Speed,
|
||||||
Quality: conf.Quality,
|
Quality: conf.Quality,
|
||||||
|
Threads: conf.Threads,
|
||||||
}
|
}
|
||||||
|
|
||||||
var src io.Reader
|
var src io.Reader
|
||||||
|
|
Loading…
Reference in New Issue