Fix segfault due to AVFrame initialization differences between FFmpeg (used by upstream developer, but not available in Debian) and Libav (used in Debian)

The upstream developers compile Karlyriceditor against FFmpeg, but in Debian there is only Libav available, whose API is slowly drifting away from FFmpeg's. This patch adapts the code to one of those differences. In Libav the function avcodec_get_frame_defaults cannot be called on a completely uninitialized object. It expects at least some pointers inside the struct to be initialized to NULL. Otherwise (depending on the random pointer value) it may perform a free() on that random pointer. In Libav the preferred way to initialize an AVFrame object is by calling avcodec_alloc_frame(), which allocates the memory, initializes it to zero and then calls avcodec_get_frame_defaults itself. This involves changing "srcaudio" from a stack object to a heap object and freeing it after use.
Fix floating-point exception due to unset sample aspect ratio of AVStream (has to be the same as the one of the codec in Libav, upstream uses FFmpeg)

The upstream developers compile Karlyriceditor against FFmpeg, but in Debian there is only Libav available, whose API is slowly drifting away from FFmpeg's. This patch adapts the code to one of those differences. In Libav sample aspect ratio of a AVStream object is not automatically initialized to the one of its codec. So this has to be done manually.
Desktop integration: Use "Name" and "GenericName" in the way defined by freedesktop.org (http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html)