Fix #34

Current implementation relies upon ..._FRAME_END as to count frames. I'd
prefer to rely upon ..._FRAME_START as it makes the code marginally
cleaner (no need to set frame to 1 in start()) but it seems like it
never gets set in the buffer's flags (firmware bug?). Oh well, this
implementation works well enough