diff --git a/Dockerfile b/Dockerfile index 45c6344..7d570f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG GOLANG_VERSION=1.24.2 +ARG GOLANG_VERSION=1.24.3 FROM golang:${GOLANG_VERSION}-bookworm as builder ARG FFMPEG_VERSION=5.1.2 diff --git a/ffmpeg/callback.go b/ffmpeg/callback.go index 24e7fdf..66ae8c3 100644 --- a/ffmpeg/callback.go +++ b/ffmpeg/callback.go @@ -3,7 +3,7 @@ package ffmpeg // #include "ffmpeg.h" import "C" import ( - "github.com/cshum/imagor/vips/pointer" + "github.com/cshum/vipsgen/pointer" "io" "reflect" "unsafe" diff --git a/ffmpeg/ffmpeg.go b/ffmpeg/ffmpeg.go index 497ee98..36f4fb4 100644 --- a/ffmpeg/ffmpeg.go +++ b/ffmpeg/ffmpeg.go @@ -6,7 +6,7 @@ package ffmpeg // #include "ffmpeg.h" import "C" import ( - "github.com/cshum/imagor/vips/pointer" + "github.com/cshum/vipsgen/pointer" "io" "math" "time" diff --git a/ffmpeg/ffmpeg_test.go b/ffmpeg/ffmpeg_test.go index 9364107..516b677 100644 --- a/ffmpeg/ffmpeg_test.go +++ b/ffmpeg/ffmpeg_test.go @@ -3,8 +3,8 @@ package ffmpeg import ( "encoding/json" "fmt" - "github.com/cshum/imagor/vips" - "github.com/cshum/imagor/vips/pointer" + "github.com/cshum/vipsgen/pointer" + "github.com/cshum/vipsgen/vips" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap" @@ -100,9 +100,9 @@ func TestAVContext(t *testing.T) { if bands > 4 { bands = 4 } - img, err := vips.LoadImageFromMemory(buf, meta.Width, meta.Height, bands) + img, err := vips.NewImageFromMemory(buf, meta.Width, meta.Height, bands) require.NoError(t, err) - buf, err = img.ExportJpeg(nil) + buf, err = img.JpegsaveBuffer(nil) require.NoError(t, err) goldenFile = baseDir + "golden/export/" + name + ".jpg" if curr, err := os.ReadFile(goldenFile); err == nil { diff --git a/go.mod b/go.mod index 19c0479..05b8289 100644 --- a/go.mod +++ b/go.mod @@ -1,25 +1,24 @@ module github.com/cshum/imagorvideo -go 1.24 - -toolchain go1.24.2 +go 1.24.2 require ( - github.com/cshum/imagor v1.4.17 + github.com/cshum/imagor v1.5.0 + github.com/cshum/vipsgen v0.8.0 github.com/gabriel-vasile/mimetype v1.4.9 github.com/stretchr/testify v1.10.0 go.uber.org/zap v1.27.0 ) require ( - cel.dev/expr v0.23.1 // indirect - cloud.google.com/go v0.121.0 // indirect + cel.dev/expr v0.24.0 // indirect + cloud.google.com/go v0.121.2 // indirect cloud.google.com/go/auth v0.16.1 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect - cloud.google.com/go/compute/metadata v0.6.0 // indirect + cloud.google.com/go/compute/metadata v0.7.0 // indirect cloud.google.com/go/iam v1.5.2 // indirect cloud.google.com/go/monitoring v1.24.2 // indirect - cloud.google.com/go/storage v1.52.0 // indirect + cloud.google.com/go/storage v1.54.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.51.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect @@ -32,14 +31,14 @@ require ( github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/getsentry/sentry-go v0.32.0 // indirect + github.com/getsentry/sentry-go v0.33.0 // indirect github.com/go-jose/go-jose/v4 v4.1.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect - github.com/googleapis/gax-go/v2 v2.14.1 // indirect + github.com/googleapis/gax-go/v2 v2.14.2 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/peterbourgon/ff/v3 v3.4.0 // indirect @@ -47,34 +46,34 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.22.0 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.63.0 // indirect + github.com/prometheus/common v0.64.0 // indirect github.com/prometheus/procfs v0.16.1 // indirect github.com/rs/cors v1.11.1 // indirect github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect github.com/zeebo/errs v1.4.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/detectors/gcp v1.35.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect - go.opentelemetry.io/otel v1.35.0 // indirect - go.opentelemetry.io/otel/metric v1.35.0 // indirect - go.opentelemetry.io/otel/sdk v1.35.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.36.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect + go.opentelemetry.io/otel/metric v1.36.0 // indirect + go.opentelemetry.io/otel/sdk v1.36.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.37.0 // indirect - golang.org/x/image v0.26.0 // indirect - golang.org/x/net v0.39.0 // indirect - golang.org/x/oauth2 v0.29.0 // indirect - golang.org/x/sync v0.13.0 // indirect - golang.org/x/sys v0.32.0 // indirect - golang.org/x/text v0.24.0 // indirect + golang.org/x/crypto v0.38.0 // indirect + golang.org/x/image v0.27.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.25.0 // indirect golang.org/x/time v0.11.0 // indirect - google.golang.org/api v0.231.0 // indirect - google.golang.org/genproto v0.0.0-20250428153025-10db94c68c34 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250428153025-10db94c68c34 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250428153025-10db94c68c34 // indirect - google.golang.org/grpc v1.72.0 // indirect + google.golang.org/api v0.234.0 // indirect + google.golang.org/genproto v0.0.0-20250519155744-55703ea1f237 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect + google.golang.org/grpc v1.72.1 // indirect google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 50e0b44..e9581cc 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,13 @@ -cel.dev/expr v0.23.1 h1:K4KOtPCJQjVggkARsjG9RWXP6O4R73aHeJMa/dmCQQg= -cel.dev/expr v0.23.1/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= -cloud.google.com/go v0.121.0 h1:pgfwva8nGw7vivjZiRfrmglGWiCJBP+0OmDpenG/Fwg= -cloud.google.com/go v0.121.0/go.mod h1:rS7Kytwheu/y9buoDmu5EIpMMCI4Mb8ND4aeN4Vwj7Q= +cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= +cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +cloud.google.com/go v0.121.2 h1:v2qQpN6Dx9x2NmwrqlesOt3Ys4ol5/lFZ6Mg1B7OJCg= +cloud.google.com/go v0.121.2/go.mod h1:nRFlrHq39MNVWu+zESP2PosMWA0ryJw8KUBZ2iZpxbw= cloud.google.com/go/auth v0.16.1 h1:XrXauHMd30LhQYVRHLGvJiYeczweKQXZxsTbV9TiguU= cloud.google.com/go/auth v0.16.1/go.mod h1:1howDHJ5IETh/LwYs3ZxvlkXF48aSqqJUM+5o02dNOI= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= -cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= -cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= +cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= +cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= cloud.google.com/go/iam v1.5.2 h1:qgFRAGEmd8z6dJ/qyEchAuL9jpswyODjA2lS+w234g8= cloud.google.com/go/iam v1.5.2/go.mod h1:SE1vg0N81zQqLzQEwxL2WI6yhetBdbNQuTvIKCSkUHE= cloud.google.com/go/logging v1.13.0 h1:7j0HgAp0B94o1YRDqiqm26w4q1rDMH7XNRU34lJXHYc= @@ -18,8 +18,8 @@ cloud.google.com/go/monitoring v1.24.2 h1:5OTsoJ1dXYIiMiuL+sYscLc9BumrL3CarVLL7d cloud.google.com/go/monitoring v1.24.2/go.mod h1:x7yzPWcgDRnPEv3sI+jJGBkwl5qINf+6qY4eq0I9B4U= cloud.google.com/go/pubsub v1.49.0 h1:5054IkbslnrMCgA2MAEPcsN3Ky+AyMpEZcii/DoySPo= cloud.google.com/go/pubsub v1.49.0/go.mod h1:K1FswTWP+C1tI/nfi3HQecoVeFvL4HUOB1tdaNXKhUY= -cloud.google.com/go/storage v1.52.0 h1:ROpzMW/IwipKtatA69ikxibdzQSiXJrY9f6IgBa9AlA= -cloud.google.com/go/storage v1.52.0/go.mod h1:4wrBAbAYUvYkbrf19ahGm4I5kDQhESSqN3CGEkMGvOY= +cloud.google.com/go/storage v1.54.0 h1:Du3XEyliAiftfyW0bwfdppm2MMLdpVAfiIg4T2nAI+0= +cloud.google.com/go/storage v1.54.0/go.mod h1:hIi9Boe8cHxTyaeqh7KMMwKg088VblFK46C2x/BWaZE= cloud.google.com/go/trace v1.11.6 h1:2O2zjPzqPYAHrn3OKl029qlqG6W8ZdYaOWRyr8NgMT4= cloud.google.com/go/trace v1.11.6/go.mod h1:GA855OeDEBiBMzcckLPE2kDunIpC72N+Pq8WFieFjnI= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 h1:ErKg/3iS1AKcTkf3yixlZ54f9U1rljCkQyEXWUnIUxc= @@ -40,8 +40,10 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/cshum/imagor v1.4.17 h1:GzfAW0sgqLLy+DbTh41AmLqRZkcLNw5gOMdN0JOqSUM= -github.com/cshum/imagor v1.4.17/go.mod h1:ZyKrsN5XlkvLf+PfyvD3WuKDGhKYwdV9zWd5sVGwh54= +github.com/cshum/imagor v1.5.0 h1:MGPTbMpgu++wP7IoreUyQnX6ZWWXpysQev3NQyPk840= +github.com/cshum/imagor v1.5.0/go.mod h1:kCAFbBzO41lXQJSiQzuFhsYhiMMtDhdA0e/vbEx2ufY= +github.com/cshum/vipsgen v0.8.0 h1:pTu5/iIl6M5uEJOzkvnRJ/8+VFZIsPk2AiHEtKBMRw8= +github.com/cshum/vipsgen v0.8.0/go.mod h1:1GboZQcNmo4NwuNnGogM24m3O+1i6UpnvurqMcsFItE= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -55,12 +57,12 @@ github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfU github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fsouza/fake-gcs-server v1.50.2 h1:ulrS1pavCOCbMZfN5ZPgBRMFWclON9xDsuLBniXtQoE= -github.com/fsouza/fake-gcs-server v1.50.2/go.mod h1:VU6Zgei4647KuT4XER8WHv5Hcj2NIySndyG8gfvwckA= +github.com/fsouza/fake-gcs-server v1.52.2 h1:j6ne83nqHrlX5EEor7WWVIKdBsztGtwJ1J2mL+k+iio= +github.com/fsouza/fake-gcs-server v1.52.2/go.mod h1:47HKyIkz6oLTes1R8vEaHLwXfzYsGfmDUk1ViHHAUsA= github.com/gabriel-vasile/mimetype v1.4.9 h1:5k+WDwEsD9eTLL8Tz3L0VnmVh9QxGjRmjBvAG7U/oYY= github.com/gabriel-vasile/mimetype v1.4.9/go.mod h1:WnSQhFKJuBlRyLiKohA/2DtIlPFAbguNaG7QCHcyGok= -github.com/getsentry/sentry-go v0.32.0 h1:YKs+//QmwE3DcYtfKRH8/KyOOF/I6Qnx7qYGNHCGmCY= -github.com/getsentry/sentry-go v0.32.0/go.mod h1:CYNcMMz73YigoHljQRG+qPF+eMq8gG72XcGN/p71BAY= +github.com/getsentry/sentry-go v0.33.0 h1:YWyDii0KGVov3xOaamOnF0mjOrqSjBqwv48UEzn7QFg= +github.com/getsentry/sentry-go v0.33.0/go.mod h1:C55omcY9ChRQIUcVcGcs+Zdy4ZpQGvNJ7JYHIoSWOtE= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-jose/go-jose/v4 v4.1.0 h1:cYSYxd3pw5zd2FSXk2vGdn9igQU2PS8MuxrCOCl0FdY= @@ -84,8 +86,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= -github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= +github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= +github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -122,8 +124,8 @@ github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/ github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= -github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/common v0.64.0 h1:pdZeA+g617P7oGv1CzdTzyeShxAGrTBsolKNOLQPGO4= +github.com/prometheus/common v0.64.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= @@ -143,24 +145,24 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/detectors/gcp v1.35.0 h1:bGvFt68+KTiAKFlacHW6AhA56GF2rS0bdD3aJYEnmzA= -go.opentelemetry.io/contrib/detectors/gcp v1.35.0/go.mod h1:qGWP8/+ILwMRIUf9uIVLloR1uo5ZYAslM4O6OqUi1DA= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8FktLnIcy6jJNyOCQw= +go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 h1:q4XOmH/0opmeuJtPsbFNivyl7bCt7yRBbeEm2sC/XtQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0/go.mod h1:snMWehoOh2wsEwnvvwtDyFCxVeDAODenXHtn5vzrKjo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.35.0 h1:PB3Zrjs1sG1GBX51SXyTSoOTqcDglmsk7nT6tkKPb/k= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.35.0/go.mod h1:U2R3XyVPzn0WX7wOIypPuptulsMcPDPs/oiSVOMVnHY= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= -go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= -go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= -go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.shabbyrobe.org/gocovmerge v0.0.0-20230507111327-fa4f82cfbf4d h1:Ns9kd1Rwzw7t0BR8XMphenji4SmIoNZPn8zhYmaVKP8= go.shabbyrobe.org/gocovmerge v0.0.0-20230507111327-fa4f82cfbf4d/go.mod h1:92Uoe3l++MlthCm+koNi0tcUCX3anayogF0Pa/sp24k= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -169,34 +171,34 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= -golang.org/x/image v0.26.0 h1:4XjIFEZWQmCZi6Wv8BoxsDhRU3RVnLX04dToTDAEPlY= -golang.org/x/image v0.26.0/go.mod h1:lcxbMFAovzpnJxzXS3nyL83K27tmqtKzIJpctK8YO5c= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= -golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/image v0.27.0 h1:C8gA4oWU/tKkdCfYT6T2u4faJu3MeNS5O8UPWlPF61w= +golang.org/x/image v0.27.0/go.mod h1:xbdrClrAUway1MUTEZDq9mz/UpRwYAkFFNUslZtcB+g= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -google.golang.org/api v0.231.0 h1:LbUD5FUl0C4qwia2bjXhCMH65yz1MLPzA/0OYEsYY7Q= -google.golang.org/api v0.231.0/go.mod h1:H52180fPI/QQlUc0F4xWfGZILdv09GCWKt2bcsn164A= -google.golang.org/genproto v0.0.0-20250428153025-10db94c68c34 h1:oklGWmm0ZiCw4efmdYZo5MF9t6nRvGzM5+0klSjOmGM= -google.golang.org/genproto v0.0.0-20250428153025-10db94c68c34/go.mod h1:hiH/EqX5GBdTyIpkqMqDGUHDiBniln8b4FCw+NzPxQY= -google.golang.org/genproto/googleapis/api v0.0.0-20250428153025-10db94c68c34 h1:0PeQib/pH3nB/5pEmFeVQJotzGohV0dq4Vcp09H5yhE= -google.golang.org/genproto/googleapis/api v0.0.0-20250428153025-10db94c68c34/go.mod h1:0awUlEkap+Pb1UMeJwJQQAdJQrt3moU7J2moTy69irI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250428153025-10db94c68c34 h1:h6p3mQqrmT1XkHVTfzLdNz1u7IhINeZkz67/xTbOuWs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250428153025-10db94c68c34/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM= -google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +google.golang.org/api v0.234.0 h1:d3sAmYq3E9gdr2mpmiWGbm9pHsA/KJmyiLkwKfHBqU4= +google.golang.org/api v0.234.0/go.mod h1:QpeJkemzkFKe5VCE/PMv7GsUfn9ZF+u+q1Q7w6ckxTg= +google.golang.org/genproto v0.0.0-20250519155744-55703ea1f237 h1:2zGWyk04EwQ3mmV4dd4M4U7P/igHi5p7CBJEg1rI6A8= +google.golang.org/genproto v0.0.0-20250519155744-55703ea1f237/go.mod h1:LhI4bRmX3rqllzQ+BGneexULkEjBf2gsAfkbeCA8IbU= +google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 h1:Kog3KlB4xevJlAcbbbzPfRG0+X9fdoGM+UBRKVz6Wr0= +google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237/go.mod h1:ezi0AVyMKDWy5xAncvjLWH7UcLBB5n7y2fQ8MzjJcto= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 h1:cJfm9zPbe1e873mHJzmQ1nwVEeRDU/T1wXDK2kUSU34= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= +google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/processor_test.go b/processor_test.go index 5fd9e23..04f88d2 100644 --- a/processor_test.go +++ b/processor_test.go @@ -5,8 +5,9 @@ import ( "fmt" "github.com/cshum/imagor" "github.com/cshum/imagor/imagorpath" + "github.com/cshum/imagor/processor/vipsprocessor" "github.com/cshum/imagor/storage/filestorage" - "github.com/cshum/imagor/vips" + "github.com/cshum/vipsgen/vips" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap" @@ -35,7 +36,7 @@ type test struct { } func TestProcessor(t *testing.T) { - v := vips.NewProcessor(vips.WithDebug(true)) + v := vipsprocessor.NewProcessor(vipsprocessor.WithDebug(true)) require.NoError(t, v.Startup(context.Background())) t.Cleanup(func() { require.NoError(t, v.Shutdown(context.Background())) @@ -103,7 +104,7 @@ func doGoldenTests(t *testing.T, resultDir string, tests []test, opts ...Option) imagor.WithUnsafe(true), imagor.WithDebug(true), imagor.WithLogger(zap.NewExample()), - imagor.WithProcessors(NewProcessor(opts...), vips.NewProcessor()), + imagor.WithProcessors(NewProcessor(opts...), vipsprocessor.NewProcessor()), ) require.NoError(t, app.Startup(context.Background())) t.Cleanup(func() { @@ -123,23 +124,27 @@ func doGoldenTests(t *testing.T, resultDir string, tests []test, opts ...Option) assert.Equal(t, tt.expectCode, w.Code) } b := imagor.NewBlobFromBytes(w.Body.Bytes()) - _ = resStorage.Put(context.Background(), tt.path, b) - path := filepath.Join(resultDir, imagorpath.Normalize(tt.path, nil)) + path := tt.path + if strings.HasPrefix(path, "meta/") { + path += ".json" + } + _ = resStorage.Put(context.Background(), path, b) + path = filepath.Join(resultDir, imagorpath.Normalize(path, nil)) bc := imagor.NewBlobFromFile(path) buf, err := bc.ReadAll() require.NoError(t, err) if reflect.DeepEqual(buf, w.Body.Bytes()) { return } - img1, err := vips.LoadImageFromBuffer(buf, nil) + img1, err := vips.NewImageFromBuffer(buf, nil) require.NoError(t, err) - img2, err := vips.LoadImageFromBuffer(w.Body.Bytes(), nil) + img2, err := vips.NewImageFromBuffer(w.Body.Bytes(), nil) require.NoError(t, err) require.Equal(t, img1.Width(), img2.Width(), "width mismatch") require.Equal(t, img1.Height(), img2.Height(), "height mismatch") - buf1, err := img1.ExportWebp(nil) + buf1, err := img1.WebpsaveBuffer(nil) require.NoError(t, err) - buf2, err := img2.ExportWebp(nil) + buf2, err := img2.WebpsaveBuffer(nil) require.NoError(t, err) require.True(t, reflect.DeepEqual(buf1, buf2), "image mismatch") }) diff --git a/testdata/golden/export/alpha-webm.webm-1.jpg b/testdata/golden/export/alpha-webm.webm-1.jpg index a826544..81432c2 100644 Binary files a/testdata/golden/export/alpha-webm.webm-1.jpg and b/testdata/golden/export/alpha-webm.webm-1.jpg differ diff --git a/testdata/golden/export/alpha-webm.webm-10.jpg b/testdata/golden/export/alpha-webm.webm-10.jpg index 620e1b2..44dbb40 100644 Binary files a/testdata/golden/export/alpha-webm.webm-10.jpg and b/testdata/golden/export/alpha-webm.webm-10.jpg differ diff --git a/testdata/golden/export/alpha-webm.webm-5.jpg b/testdata/golden/export/alpha-webm.webm-5.jpg index 620e1b2..44dbb40 100644 Binary files a/testdata/golden/export/alpha-webm.webm-5.jpg and b/testdata/golden/export/alpha-webm.webm-5.jpg differ diff --git a/testdata/golden/export/alpha-webm.webm-9999.jpg b/testdata/golden/export/alpha-webm.webm-9999.jpg index c97a86f..42d5670 100644 Binary files a/testdata/golden/export/alpha-webm.webm-9999.jpg and b/testdata/golden/export/alpha-webm.webm-9999.jpg differ diff --git a/testdata/golden/export/alpha-webm.webm-99999.jpg b/testdata/golden/export/alpha-webm.webm-99999.jpg index 3b035d3..82882f6 100644 Binary files a/testdata/golden/export/alpha-webm.webm-99999.jpg and b/testdata/golden/export/alpha-webm.webm-99999.jpg differ diff --git a/testdata/golden/export/alpha-webm.webm.jpg b/testdata/golden/export/alpha-webm.webm.jpg index 3312405..cae01e1 100644 Binary files a/testdata/golden/export/alpha-webm.webm.jpg and b/testdata/golden/export/alpha-webm.webm.jpg differ diff --git a/testdata/golden/export/everybody-betray-me.mkv-1.jpg b/testdata/golden/export/everybody-betray-me.mkv-1.jpg index 6ad3311..a1c5eb4 100644 Binary files a/testdata/golden/export/everybody-betray-me.mkv-1.jpg and b/testdata/golden/export/everybody-betray-me.mkv-1.jpg differ diff --git a/testdata/golden/export/everybody-betray-me.mkv-10.jpg b/testdata/golden/export/everybody-betray-me.mkv-10.jpg index 62127fd..fb87c5f 100644 Binary files a/testdata/golden/export/everybody-betray-me.mkv-10.jpg and b/testdata/golden/export/everybody-betray-me.mkv-10.jpg differ diff --git a/testdata/golden/export/everybody-betray-me.mkv-5.jpg b/testdata/golden/export/everybody-betray-me.mkv-5.jpg index b14e987..6e47b22 100644 Binary files a/testdata/golden/export/everybody-betray-me.mkv-5.jpg and b/testdata/golden/export/everybody-betray-me.mkv-5.jpg differ diff --git a/testdata/golden/export/everybody-betray-me.mkv-9999.jpg b/testdata/golden/export/everybody-betray-me.mkv-9999.jpg index 45a2a70..7ae12b0 100644 Binary files a/testdata/golden/export/everybody-betray-me.mkv-9999.jpg and b/testdata/golden/export/everybody-betray-me.mkv-9999.jpg differ diff --git a/testdata/golden/export/everybody-betray-me.mkv-99999.jpg b/testdata/golden/export/everybody-betray-me.mkv-99999.jpg index cfd2ad9..027bee7 100644 Binary files a/testdata/golden/export/everybody-betray-me.mkv-99999.jpg and b/testdata/golden/export/everybody-betray-me.mkv-99999.jpg differ diff --git a/testdata/golden/export/everybody-betray-me.mkv.jpg b/testdata/golden/export/everybody-betray-me.mkv.jpg index 5c2f430..9ac708e 100644 Binary files a/testdata/golden/export/everybody-betray-me.mkv.jpg and b/testdata/golden/export/everybody-betray-me.mkv.jpg differ diff --git a/testdata/golden/export/macabre.mp4-1.jpg b/testdata/golden/export/macabre.mp4-1.jpg index d1ab9d8..482e8db 100644 Binary files a/testdata/golden/export/macabre.mp4-1.jpg and b/testdata/golden/export/macabre.mp4-1.jpg differ diff --git a/testdata/golden/export/macabre.mp4-10.jpg b/testdata/golden/export/macabre.mp4-10.jpg index dbe27e7..5a08c7d 100644 Binary files a/testdata/golden/export/macabre.mp4-10.jpg and b/testdata/golden/export/macabre.mp4-10.jpg differ diff --git a/testdata/golden/export/macabre.mp4-5.jpg b/testdata/golden/export/macabre.mp4-5.jpg index dbe27e7..5a08c7d 100644 Binary files a/testdata/golden/export/macabre.mp4-5.jpg and b/testdata/golden/export/macabre.mp4-5.jpg differ diff --git a/testdata/golden/export/macabre.mp4-9999.jpg b/testdata/golden/export/macabre.mp4-9999.jpg index 59f5451..b3b3057 100644 Binary files a/testdata/golden/export/macabre.mp4-9999.jpg and b/testdata/golden/export/macabre.mp4-9999.jpg differ diff --git a/testdata/golden/export/macabre.mp4-99999.jpg b/testdata/golden/export/macabre.mp4-99999.jpg index 59f5451..b3b3057 100644 Binary files a/testdata/golden/export/macabre.mp4-99999.jpg and b/testdata/golden/export/macabre.mp4-99999.jpg differ diff --git a/testdata/golden/export/macabre.mp4.jpg b/testdata/golden/export/macabre.mp4.jpg index 4b4a16d..3e42111 100644 Binary files a/testdata/golden/export/macabre.mp4.jpg and b/testdata/golden/export/macabre.mp4.jpg differ diff --git a/testdata/golden/export/schizo.flv-1.jpg b/testdata/golden/export/schizo.flv-1.jpg index a543ab0..499c7f0 100644 Binary files a/testdata/golden/export/schizo.flv-1.jpg and b/testdata/golden/export/schizo.flv-1.jpg differ diff --git a/testdata/golden/export/schizo.flv-10.jpg b/testdata/golden/export/schizo.flv-10.jpg index fb1d4da..47c79fb 100644 Binary files a/testdata/golden/export/schizo.flv-10.jpg and b/testdata/golden/export/schizo.flv-10.jpg differ diff --git a/testdata/golden/export/schizo.flv-5.jpg b/testdata/golden/export/schizo.flv-5.jpg index 0cd4f61..a9b389d 100644 Binary files a/testdata/golden/export/schizo.flv-5.jpg and b/testdata/golden/export/schizo.flv-5.jpg differ diff --git a/testdata/golden/export/schizo.flv-9999.jpg b/testdata/golden/export/schizo.flv-9999.jpg index 5d21aa1..e35a669 100644 Binary files a/testdata/golden/export/schizo.flv-9999.jpg and b/testdata/golden/export/schizo.flv-9999.jpg differ diff --git a/testdata/golden/export/schizo.flv-99999.jpg b/testdata/golden/export/schizo.flv-99999.jpg index a86490f..bbac6a3 100644 Binary files a/testdata/golden/export/schizo.flv-99999.jpg and b/testdata/golden/export/schizo.flv-99999.jpg differ diff --git a/testdata/golden/export/schizo.flv.jpg b/testdata/golden/export/schizo.flv.jpg index 895b026..77f9e32 100644 Binary files a/testdata/golden/export/schizo.flv.jpg and b/testdata/golden/export/schizo.flv.jpg differ diff --git a/testdata/golden/export/schizo_0.mp4-1.jpg b/testdata/golden/export/schizo_0.mp4-1.jpg index 9d49888..5119177 100644 Binary files a/testdata/golden/export/schizo_0.mp4-1.jpg and b/testdata/golden/export/schizo_0.mp4-1.jpg differ diff --git a/testdata/golden/export/schizo_0.mp4-10.jpg b/testdata/golden/export/schizo_0.mp4-10.jpg index fcccf00..dc14ec8 100644 Binary files a/testdata/golden/export/schizo_0.mp4-10.jpg and b/testdata/golden/export/schizo_0.mp4-10.jpg differ diff --git a/testdata/golden/export/schizo_0.mp4-5.jpg b/testdata/golden/export/schizo_0.mp4-5.jpg index 7c9e9a8..a2f81c5 100644 Binary files a/testdata/golden/export/schizo_0.mp4-5.jpg and b/testdata/golden/export/schizo_0.mp4-5.jpg differ diff --git a/testdata/golden/export/schizo_0.mp4-9999.jpg b/testdata/golden/export/schizo_0.mp4-9999.jpg index 935ab8e..8e57c76 100644 Binary files a/testdata/golden/export/schizo_0.mp4-9999.jpg and b/testdata/golden/export/schizo_0.mp4-9999.jpg differ diff --git a/testdata/golden/export/schizo_0.mp4-99999.jpg b/testdata/golden/export/schizo_0.mp4-99999.jpg index 935ab8e..8e57c76 100644 Binary files a/testdata/golden/export/schizo_0.mp4-99999.jpg and b/testdata/golden/export/schizo_0.mp4-99999.jpg differ diff --git a/testdata/golden/export/schizo_0.mp4.jpg b/testdata/golden/export/schizo_0.mp4.jpg index bde6e23..e9f9a36 100644 Binary files a/testdata/golden/export/schizo_0.mp4.jpg and b/testdata/golden/export/schizo_0.mp4.jpg differ diff --git a/testdata/golden/export/schizo_180.mp4-1.jpg b/testdata/golden/export/schizo_180.mp4-1.jpg index df99457..b526af2 100644 Binary files a/testdata/golden/export/schizo_180.mp4-1.jpg and b/testdata/golden/export/schizo_180.mp4-1.jpg differ diff --git a/testdata/golden/export/schizo_180.mp4-10.jpg b/testdata/golden/export/schizo_180.mp4-10.jpg index fe011e5..1cfd0ae 100644 Binary files a/testdata/golden/export/schizo_180.mp4-10.jpg and b/testdata/golden/export/schizo_180.mp4-10.jpg differ diff --git a/testdata/golden/export/schizo_180.mp4-5.jpg b/testdata/golden/export/schizo_180.mp4-5.jpg index fe011e5..1cfd0ae 100644 Binary files a/testdata/golden/export/schizo_180.mp4-5.jpg and b/testdata/golden/export/schizo_180.mp4-5.jpg differ diff --git a/testdata/golden/export/schizo_180.mp4-9999.jpg b/testdata/golden/export/schizo_180.mp4-9999.jpg index 15f6245..f67161f 100644 Binary files a/testdata/golden/export/schizo_180.mp4-9999.jpg and b/testdata/golden/export/schizo_180.mp4-9999.jpg differ diff --git a/testdata/golden/export/schizo_180.mp4-99999.jpg b/testdata/golden/export/schizo_180.mp4-99999.jpg index 15f6245..f67161f 100644 Binary files a/testdata/golden/export/schizo_180.mp4-99999.jpg and b/testdata/golden/export/schizo_180.mp4-99999.jpg differ diff --git a/testdata/golden/export/schizo_180.mp4.jpg b/testdata/golden/export/schizo_180.mp4.jpg index de2ac07..fe7bf4c 100644 Binary files a/testdata/golden/export/schizo_180.mp4.jpg and b/testdata/golden/export/schizo_180.mp4.jpg differ diff --git a/testdata/golden/export/schizo_270.mp4-1.jpg b/testdata/golden/export/schizo_270.mp4-1.jpg index 8f2ada3..3ef301b 100644 Binary files a/testdata/golden/export/schizo_270.mp4-1.jpg and b/testdata/golden/export/schizo_270.mp4-1.jpg differ diff --git a/testdata/golden/export/schizo_270.mp4-10.jpg b/testdata/golden/export/schizo_270.mp4-10.jpg index 996cc9e..ae84607 100644 Binary files a/testdata/golden/export/schizo_270.mp4-10.jpg and b/testdata/golden/export/schizo_270.mp4-10.jpg differ diff --git a/testdata/golden/export/schizo_270.mp4-5.jpg b/testdata/golden/export/schizo_270.mp4-5.jpg index e2827e9..e6a9639 100644 Binary files a/testdata/golden/export/schizo_270.mp4-5.jpg and b/testdata/golden/export/schizo_270.mp4-5.jpg differ diff --git a/testdata/golden/export/schizo_270.mp4-9999.jpg b/testdata/golden/export/schizo_270.mp4-9999.jpg index b367d33..97b47ae 100644 Binary files a/testdata/golden/export/schizo_270.mp4-9999.jpg and b/testdata/golden/export/schizo_270.mp4-9999.jpg differ diff --git a/testdata/golden/export/schizo_270.mp4-99999.jpg b/testdata/golden/export/schizo_270.mp4-99999.jpg index b367d33..97b47ae 100644 Binary files a/testdata/golden/export/schizo_270.mp4-99999.jpg and b/testdata/golden/export/schizo_270.mp4-99999.jpg differ diff --git a/testdata/golden/export/schizo_270.mp4.jpg b/testdata/golden/export/schizo_270.mp4.jpg index 8ac4052..bf83cad 100644 Binary files a/testdata/golden/export/schizo_270.mp4.jpg and b/testdata/golden/export/schizo_270.mp4.jpg differ diff --git a/testdata/golden/export/schizo_90.mp4-1.jpg b/testdata/golden/export/schizo_90.mp4-1.jpg index 3ef8b0c..240328d 100644 Binary files a/testdata/golden/export/schizo_90.mp4-1.jpg and b/testdata/golden/export/schizo_90.mp4-1.jpg differ diff --git a/testdata/golden/export/schizo_90.mp4-10.jpg b/testdata/golden/export/schizo_90.mp4-10.jpg index 6e8c781..1befb22 100644 Binary files a/testdata/golden/export/schizo_90.mp4-10.jpg and b/testdata/golden/export/schizo_90.mp4-10.jpg differ diff --git a/testdata/golden/export/schizo_90.mp4-5.jpg b/testdata/golden/export/schizo_90.mp4-5.jpg index 13ddd38..03d5aae 100644 Binary files a/testdata/golden/export/schizo_90.mp4-5.jpg and b/testdata/golden/export/schizo_90.mp4-5.jpg differ diff --git a/testdata/golden/export/schizo_90.mp4-9999.jpg b/testdata/golden/export/schizo_90.mp4-9999.jpg index e57f442..f6c7b31 100644 Binary files a/testdata/golden/export/schizo_90.mp4-9999.jpg and b/testdata/golden/export/schizo_90.mp4-9999.jpg differ diff --git a/testdata/golden/export/schizo_90.mp4-99999.jpg b/testdata/golden/export/schizo_90.mp4-99999.jpg index e57f442..f6c7b31 100644 Binary files a/testdata/golden/export/schizo_90.mp4-99999.jpg and b/testdata/golden/export/schizo_90.mp4-99999.jpg differ diff --git a/testdata/golden/export/schizo_90.mp4.jpg b/testdata/golden/export/schizo_90.mp4.jpg index 6a96a5f..3e342ad 100644 Binary files a/testdata/golden/export/schizo_90.mp4.jpg and b/testdata/golden/export/schizo_90.mp4.jpg differ diff --git a/testdata/golden/export/with_cover.mp3-1.jpg b/testdata/golden/export/with_cover.mp3-1.jpg index aac8c5c..0a290f3 100644 Binary files a/testdata/golden/export/with_cover.mp3-1.jpg and b/testdata/golden/export/with_cover.mp3-1.jpg differ diff --git a/testdata/golden/export/with_cover.mp3-10.jpg b/testdata/golden/export/with_cover.mp3-10.jpg index aac8c5c..0a290f3 100644 Binary files a/testdata/golden/export/with_cover.mp3-10.jpg and b/testdata/golden/export/with_cover.mp3-10.jpg differ diff --git a/testdata/golden/export/with_cover.mp3-5.jpg b/testdata/golden/export/with_cover.mp3-5.jpg index aac8c5c..0a290f3 100644 Binary files a/testdata/golden/export/with_cover.mp3-5.jpg and b/testdata/golden/export/with_cover.mp3-5.jpg differ diff --git a/testdata/golden/export/with_cover.mp3-9999.jpg b/testdata/golden/export/with_cover.mp3-9999.jpg index aac8c5c..0a290f3 100644 Binary files a/testdata/golden/export/with_cover.mp3-9999.jpg and b/testdata/golden/export/with_cover.mp3-9999.jpg differ diff --git a/testdata/golden/export/with_cover.mp3-99999.jpg b/testdata/golden/export/with_cover.mp3-99999.jpg index aac8c5c..0a290f3 100644 Binary files a/testdata/golden/export/with_cover.mp3-99999.jpg and b/testdata/golden/export/with_cover.mp3-99999.jpg differ diff --git a/testdata/golden/export/with_cover.mp3.jpg b/testdata/golden/export/with_cover.mp3.jpg index aac8c5c..0a290f3 100644 Binary files a/testdata/golden/export/with_cover.mp3.jpg and b/testdata/golden/export/with_cover.mp3.jpg differ diff --git a/testdata/golden/result/200x100/schizo_0.mp4 b/testdata/golden/result/200x100/schizo_0.mp4 index b8d3bf5..8a84a32 100644 Binary files a/testdata/golden/result/200x100/schizo_0.mp4 and b/testdata/golden/result/200x100/schizo_0.mp4 differ diff --git a/testdata/golden/result/200x100/schizo_180.mp4 b/testdata/golden/result/200x100/schizo_180.mp4 index 998ebb8..49c8356 100644 Binary files a/testdata/golden/result/200x100/schizo_180.mp4 and b/testdata/golden/result/200x100/schizo_180.mp4 differ diff --git a/testdata/golden/result/200x100/schizo_270.mp4 b/testdata/golden/result/200x100/schizo_270.mp4 index d171995..4b90c98 100644 Binary files a/testdata/golden/result/200x100/schizo_270.mp4 and b/testdata/golden/result/200x100/schizo_270.mp4 differ diff --git a/testdata/golden/result/220x100/schizo_90.mp4 b/testdata/golden/result/220x100/schizo_90.mp4 index a91abbb..c1cdec5 100644 Binary files a/testdata/golden/result/220x100/schizo_90.mp4 and b/testdata/golden/result/220x100/schizo_90.mp4 differ diff --git a/testdata/golden/result/fit-in/100x100/everybody-betray-me.mkv b/testdata/golden/result/fit-in/100x100/everybody-betray-me.mkv index 22c2fed..f191830 100644 Binary files a/testdata/golden/result/fit-in/100x100/everybody-betray-me.mkv and b/testdata/golden/result/fit-in/100x100/everybody-betray-me.mkv differ diff --git a/testdata/golden/result/fit-in/100x100/filters%3Aframe%283%29/everybody-betray-me.mkv b/testdata/golden/result/fit-in/100x100/filters%3Aframe%283%29/everybody-betray-me.mkv index 312b0e1..20def1c 100644 Binary files a/testdata/golden/result/fit-in/100x100/filters%3Aframe%283%29/everybody-betray-me.mkv and b/testdata/golden/result/fit-in/100x100/filters%3Aframe%283%29/everybody-betray-me.mkv differ diff --git a/testdata/golden/result/fit-in/100x100/filters%3Aframe%2899999%29/everybody-betray-me.mkv b/testdata/golden/result/fit-in/100x100/filters%3Aframe%2899999%29/everybody-betray-me.mkv index 666edac..ca29380 100644 Binary files a/testdata/golden/result/fit-in/100x100/filters%3Aframe%2899999%29/everybody-betray-me.mkv and b/testdata/golden/result/fit-in/100x100/filters%3Aframe%2899999%29/everybody-betray-me.mkv differ diff --git a/testdata/golden/result/fit-in/100x100/filters%3Amax_frames%286%29/everybody-betray-me.mkv b/testdata/golden/result/fit-in/100x100/filters%3Amax_frames%286%29/everybody-betray-me.mkv index 36991fa..efd075b 100644 Binary files a/testdata/golden/result/fit-in/100x100/filters%3Amax_frames%286%29/everybody-betray-me.mkv and b/testdata/golden/result/fit-in/100x100/filters%3Amax_frames%286%29/everybody-betray-me.mkv differ diff --git a/testdata/golden/result/meta/everybody-betray-me.mkv b/testdata/golden/result/meta/everybody-betray-me.mkv.json similarity index 100% rename from testdata/golden/result/meta/everybody-betray-me.mkv rename to testdata/golden/result/meta/everybody-betray-me.mkv.json diff --git a/testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv b/testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv.json similarity index 100% rename from testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv rename to testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv.json diff --git a/testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv b/testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv.json similarity index 100% rename from testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv rename to testdata/golden/result/meta/filters%3Amax_frames%286%29/everybody-betray-me.mkv.json diff --git a/testdata/golden/result/meta/no_cover.mp3 b/testdata/golden/result/meta/no_cover.mp3.json similarity index 100% rename from testdata/golden/result/meta/no_cover.mp3 rename to testdata/golden/result/meta/no_cover.mp3.json