-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Audio().Time()
sometimes breaks on exact seeks
#5
Comments
Something else is off: package main
import ( "os" ; "log" ; "time" )
import "github.com/gen2brain/mpeg"
func main() {
// open file and initialize mpeg
file, err := os.Open(os.Args[1])
if err != nil { log.Fatal(err) }
mpg, err := mpeg.New(file)
if err != nil { log.Fatal(err) }
mpg.SetAudioCallback(func(_ *mpeg.MPEG, _ *mpeg.Samples) {})
mpg.SetVideoCallback(func(_ *mpeg.MPEG, _ *mpeg.Frame) { log.Print("callback") })
// seek and print times
ok := mpg.Seek(3*time.Second, false)
if !ok { log.Fatal("seek not ok") }
} This calls the callback not once as stated in the documentation, but more than 30 times. In this case, this only happens when Curiously, 1 or 2 second seeks do not seem to trigger this. |
@tinne26 Thanks for filling in the issues. I don't have time right now to check all this. |
Don't worry, I also have other priorities at the moment, but if I get back to it and make any progress I'll contribute as I can. |
Seems to only happen when the video time doesn't perfectly match the mpeg time. For example, the following program works fine if the seek position is
3000*time.Milliseconds
, but breaks at 3001 (requires passing the path to the mpeg file as an argument):Example output with
test.mpg
:The text was updated successfully, but these errors were encountered: