ffmpeg_player: don't throw on resampled length<=0

When resampling audio, the resampled bytes may fall within a
partial frame. In this case, the returned samples is adjusted
accordingly.

If this output range is invalid (i.e. the calculated length is <
0) then instead of throwing, return an empty range. This allows
playback to continue.

The root cause of this is when converting to a higher or lower
output frequency. As such, the delta is not scaled accordingly.