[openal] FFmpeg + OpenAL - playback streaming sound from video won't work
Chris Robinson
chris.kcat at gmail.com
Mon Jan 27 20:56:31 EST 2014
On 01/27/2014 11:09 AM, Jan Drabner wrote:
> Hey,
>
> I am decoding an OGG video (theora & vorbis as codecs) and want to show
> it on the screen (using Ogre 3D) while playing its sound. I can decode
> the image stream just fine and the video plays perfectly with the
> correct frame rate, etc.
>
> However, I cannot get the sound to play at all with OpenAL.
>
> Here is how I decode audio packets (in a background thread, the
> equivalent works just fine for the image stream of the video file):
The main thing that sticks out to me is that you seem to be returning
one frame per buffer, and you're limited to only 4 buffers. The frame
size can be fairly small depending on the format, so it's likely the
queue underruns a lot.
Beyond that, it's difficult to say with just the provided code snippets.
Is there more available to view online anywhere? If not, it may help to
make a small test app that still exhibits the problem (easier said than
done, I know :/).
FWIW, I do have some code available that plays movies using Ogre,
OpenAL, and FFMPEG (and boost), and even has somewhat proper A/V
synchronization and aspect ratio correction. However the audio code is
heavily abstracted to the point where you don't directly see OpenAL in
the player code, so may not be terribly useful for someone not familiar
with the audio interface.
If you're interested anyway, you can see it here as part of the OpenMW
code base:
<https://github.com/zinnschlag/openmw/blob/master/apps/openmw/mwrender/videoplayer.cpp>
More information about the openal
mailing list