Return errors on initialization failure.
Verified MP4Sample members are in microseconds.
Remove FIXME.

I don't see how we can queue a task with access to the
object instance without also making that method public,
which is no better.
Construct video data directly from the returned frame.

This avoids the intermediate memcpy. Comment from cpearce.