diff --git a/ffmpeg/ffmpeg.go b/ffmpeg/ffmpeg.go index 58392ae..361e161 100644 --- a/ffmpeg/ffmpeg.go +++ b/ffmpeg/ffmpeg.go @@ -88,7 +88,7 @@ func (av *AVContext) ProcessFrames(maxFrames int) (err error) { } func (av *AVContext) SelectFrame(n int) (err error) { - nn := C.int(n) + nn := C.int(n - 1) if av.thumbContext != nil && nn > av.availableIndex { nn = av.availableIndex } @@ -123,7 +123,7 @@ func (av *AVContext) Metadata() *Metadata { } var selectedFrame int if av.availableIndex > 0 && av.selectedIndex > -1 { - selectedFrame = int(av.selectedIndex) + selectedFrame = int(av.selectedIndex) + 1 } return &Metadata{ Orientation: av.orientation, diff --git a/testdata/golden/export/alpha-webm.webm-5.jpg b/testdata/golden/export/alpha-webm.webm-5.jpg index ea8f589..620e1b2 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/everybody-betray-me.mkv-5.jpg b/testdata/golden/export/everybody-betray-me.mkv-5.jpg index 62127fd..b14e987 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/macabre.mp4-5.jpg b/testdata/golden/export/macabre.mp4-5.jpg index e64c401..dbe27e7 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/schizo.flv-5.jpg b/testdata/golden/export/schizo.flv-5.jpg index fb1d4da..0cd4f61 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_0.mp4-5.jpg b/testdata/golden/export/schizo_0.mp4-5.jpg index fcccf00..7c9e9a8 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_180.mp4-5.jpg b/testdata/golden/export/schizo_180.mp4-5.jpg index 6d6cbfc..fe011e5 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_270.mp4-5.jpg b/testdata/golden/export/schizo_270.mp4-5.jpg index df3bd24..e2827e9 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_90.mp4-5.jpg b/testdata/golden/export/schizo_90.mp4-5.jpg index 1f89843..13ddd38 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/meta/alpha-webm.webm-10.meta.json b/testdata/golden/meta/alpha-webm.webm-10.meta.json index 4beb8d9..73935a9 100644 --- a/testdata/golden/meta/alpha-webm.webm-10.meta.json +++ b/testdata/golden/meta/alpha-webm.webm-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"selected_frame":4,"has_video":true,"has_audio":false} \ No newline at end of file +{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"selected_frame":5,"has_video":true,"has_audio":false} \ No newline at end of file diff --git a/testdata/golden/meta/alpha-webm.webm-9999.meta.json b/testdata/golden/meta/alpha-webm.webm-9999.meta.json index 2852559..cf38939 100644 --- a/testdata/golden/meta/alpha-webm.webm-9999.meta.json +++ b/testdata/golden/meta/alpha-webm.webm-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"selected_frame":99,"has_video":true,"has_audio":false} \ No newline at end of file +{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"selected_frame":100,"has_video":true,"has_audio":false} \ No newline at end of file diff --git a/testdata/golden/meta/alpha-webm.webm-99999.meta.json b/testdata/golden/meta/alpha-webm.webm-99999.meta.json index 2852559..cf38939 100644 --- a/testdata/golden/meta/alpha-webm.webm-99999.meta.json +++ b/testdata/golden/meta/alpha-webm.webm-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"selected_frame":99,"has_video":true,"has_audio":false} \ No newline at end of file +{"orientation":1,"duration":12040,"width":720,"height":576,"fps":25,"selected_frame":100,"has_video":true,"has_audio":false} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json index 675574e..8193968 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":6,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json index 87f0dce..60cee22 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-5.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":29.9,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30.1,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json index 5695089..fcab6af 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":99,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":100,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json b/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json index 5695089..fcab6af 100644 --- a/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json +++ b/testdata/golden/meta/everybody-betray-me.mkv-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":99,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":100,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4-10.meta.json b/testdata/golden/meta/macabre.mp4-10.meta.json index 299780e..ceede88 100644 --- a/testdata/golden/meta/macabre.mp4-10.meta.json +++ b/testdata/golden/meta/macabre.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"selected_frame":4,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4-9999.meta.json b/testdata/golden/meta/macabre.mp4-9999.meta.json index 4928db6..a38c5f0 100644 --- a/testdata/golden/meta/macabre.mp4-9999.meta.json +++ b/testdata/golden/meta/macabre.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"selected_frame":29,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"selected_frame":30,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/macabre.mp4-99999.meta.json b/testdata/golden/meta/macabre.mp4-99999.meta.json index 4928db6..a38c5f0 100644 --- a/testdata/golden/meta/macabre.mp4-99999.meta.json +++ b/testdata/golden/meta/macabre.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"selected_frame":29,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":3925,"width":492,"height":360,"fps":30,"selected_frame":30,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-10.meta.json b/testdata/golden/meta/schizo.flv-10.meta.json index 49fd2d9..ae0b2d3 100644 --- a/testdata/golden/meta/schizo.flv-10.meta.json +++ b/testdata/golden/meta/schizo.flv-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":27.9,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":27.9,"selected_frame":6,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-5.meta.json b/testdata/golden/meta/schizo.flv-5.meta.json index f8c9fd7..ade7ca6 100644 --- a/testdata/golden/meta/schizo.flv-5.meta.json +++ b/testdata/golden/meta/schizo.flv-5.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":26.3,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":25.6,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-9999.meta.json b/testdata/golden/meta/schizo.flv-9999.meta.json index dc6c33b..c157cde 100644 --- a/testdata/golden/meta/schizo.flv-9999.meta.json +++ b/testdata/golden/meta/schizo.flv-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.7,"selected_frame":75,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.7,"selected_frame":76,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo.flv-99999.meta.json b/testdata/golden/meta/schizo.flv-99999.meta.json index dc6c33b..c157cde 100644 --- a/testdata/golden/meta/schizo.flv-99999.meta.json +++ b/testdata/golden/meta/schizo.flv-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.7,"selected_frame":75,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2560,"width":480,"height":360,"fps":29.7,"selected_frame":76,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4-10.meta.json b/testdata/golden/meta/schizo_0.mp4-10.meta.json index ddadd37..216174d 100644 --- a/testdata/golden/meta/schizo_0.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_0.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":6,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4-9999.meta.json b/testdata/golden/meta/schizo_0.mp4-9999.meta.json index 3395de4..f80b288 100644 --- a/testdata/golden/meta/schizo_0.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_0.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_0.mp4-99999.meta.json b/testdata/golden/meta/schizo_0.mp4-99999.meta.json index 3395de4..f80b288 100644 --- a/testdata/golden/meta/schizo_0.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_0.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":1,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4-10.meta.json b/testdata/golden/meta/schizo_180.mp4-10.meta.json index 6cc8eba..af41320 100644 --- a/testdata/golden/meta/schizo_180.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_180.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":4,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":5,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4-9999.meta.json b/testdata/golden/meta/schizo_180.mp4-9999.meta.json index 894950c..16bad73 100644 --- a/testdata/golden/meta/schizo_180.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_180.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_180.mp4-99999.meta.json b/testdata/golden/meta/schizo_180.mp4-99999.meta.json index 894950c..16bad73 100644 --- a/testdata/golden/meta/schizo_180.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_180.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":3,"duration":2544,"width":480,"height":360,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4-10.meta.json b/testdata/golden/meta/schizo_270.mp4-10.meta.json index 4dc5a35..eddd15f 100644 --- a/testdata/golden/meta/schizo_270.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_270.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":6,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":7,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4-9999.meta.json b/testdata/golden/meta/schizo_270.mp4-9999.meta.json index d37673a..7500e2e 100644 --- a/testdata/golden/meta/schizo_270.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_270.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_270.mp4-99999.meta.json b/testdata/golden/meta/schizo_270.mp4-99999.meta.json index d37673a..7500e2e 100644 --- a/testdata/golden/meta/schizo_270.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_270.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":6,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4-10.meta.json b/testdata/golden/meta/schizo_90.mp4-10.meta.json index bc271cf..9042e84 100644 --- a/testdata/golden/meta/schizo_90.mp4-10.meta.json +++ b/testdata/golden/meta/schizo_90.mp4-10.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":7,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":8,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4-9999.meta.json b/testdata/golden/meta/schizo_90.mp4-9999.meta.json index a2aff40..782e073 100644 --- a/testdata/golden/meta/schizo_90.mp4-9999.meta.json +++ b/testdata/golden/meta/schizo_90.mp4-9999.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file diff --git a/testdata/golden/meta/schizo_90.mp4-99999.meta.json b/testdata/golden/meta/schizo_90.mp4-99999.meta.json index a2aff40..782e073 100644 --- a/testdata/golden/meta/schizo_90.mp4-99999.meta.json +++ b/testdata/golden/meta/schizo_90.mp4-99999.meta.json @@ -1 +1 @@ -{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":19,"has_video":true,"has_audio":true} \ No newline at end of file +{"orientation":8,"duration":2544,"width":360,"height":480,"fps":30,"selected_frame":20,"has_video":true,"has_audio":true} \ No newline at end of file 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 1f2130d..ea79cbf 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/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv b/testdata/golden/result/meta/filters%3Amax_frames%28%29/everybody-betray-me.mkv index 11c4528..4cf6af1 100644 --- 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 @@ -1 +1 @@ -{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":43,"has_video":true,"has_audio":true} \ No newline at end of file +{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":30,"selected_frame":44,"has_video":true,"has_audio":true} \ No newline at end of file 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 index 831ef0d..9aba5b3 100644 --- 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 @@ -1 +1 @@ -{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":29.9,"selected_frame":3,"has_video":true,"has_audio":true} \ No newline at end of file +{"format":"mkv","content_type":"video/x-matroska","orientation":1,"duration":7407,"width":640,"height":480,"fps":29.9,"selected_frame":4,"has_video":true,"has_audio":true} \ No newline at end of file