Major improvements to UnifiedPlayer: 1. GetFrameImage() now works when paused for responsive UI updates 2. Play() method properly starts FFmpeg process 3. Frame display loop runs continuously for smooth video display 4. Disabled audio temporarily to fix video playback fundamentals 5. Simplified FFmpeg command to focus on video stream only Player now: - Generates video frames correctly - Shows video when paused - Has responsive progress tracking - Starts playback properly Next steps: Re-enable audio playback once video is stable
19 lines
1.1 KiB
Go
19 lines
1.1 KiB
Go
// Package async provides unbounded channel and queue structures that are
|
|
// designed for caching unlimited number of a concrete type. For better
|
|
// performance, a given type should be less or euqal than 16 bytes.
|
|
//
|
|
// The difference of an unbounded channel or queue is that unbounde channels
|
|
// can utilize select and channel semantics, whereas queue cannot. A user of
|
|
// this package should balance this tradeoff. For instance, an unbounded
|
|
// channel can provide zero waiting cost when trying to receiving an object
|
|
// when the receiving select statement has a default case, and a queue can
|
|
// only receive the object with a time amount of time, but depending on the
|
|
// number of queue item producer, the receiving time may increase accordingly.
|
|
//
|
|
// Delicate dance: One must aware that an unbounded channel may lead to
|
|
// OOM when the consuming speed of the buffer is lower than the producing
|
|
// speed constantly. However, such a channel may be fairly used for event
|
|
// delivering if the consumer of the channel consumes the incoming
|
|
// forever, such as even processing.
|
|
package async
|