videolang / video

Source Code for Video language.
https://lang.video
Apache License 2.0
137 stars 14 forks source link

Softlock when calling stop after streams are finished. #26

Closed LeifAndersen closed 7 years ago

LeifAndersen commented 7 years ago

The following code exhibits this behavior:

#lang racket

(require video/render
         video/base)

(define video
  (color "green"
          #:properties (hash "start" 10
                             "end" 20)))

(define render (make-object render% video))
(send render setup (make-render-settings))
(send render start-rendering)

(sleep 0.1)
(displayln "stopping")
(send render stop-rendering)
(displayln "here")

This appears to show two problems with video:

  1. The renderer immediately returns eof, which is wrong.
  2. When the stop happens after a brief pause (about 100 ms), it causes Video to soft lock.
LeifAndersen commented 7 years ago

To be clear, it gets stuck on this line:

(send render stop-rendering)
LeifAndersen commented 7 years ago

Commit da79dc2243359b4f39ea3b919d90d98f49f00d22 fixes this.