I am looking for tools to generate video and audio output for my own codecs, in my search I found SDL, EGL, FFmpeg and OpenAL, but it is not clear to me if these APIs serve my purpose which is simply to generate the output, if so when should I use each one?