iff/8svx: redesign 8SVX demuxing and decoding for handling stereo samples correctly
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Sun, 15 May 2011 11:24:46 +0000 (13:24 +0200)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Mon, 16 May 2011 22:58:33 +0000 (00:58 +0200)
commite280a4da2ae6fd44f0079358ecc5aa08e388a5ed
tree68b2f9ca7cdee458183c9a94fb7e7dfcc7e7954d
parentd8353256a3ae9bbf76b9b080884b82566c4938ab
iff/8svx: redesign 8SVX demuxing and decoding for handling stereo samples correctly

Make the iff demuxer send the whole audio chunk to the decoder as a
single packet, move stereo interleaving from the iff demuxer to the
decoder, and introduce an 8svx_raw decoder which performs
stereo interleaving.

This is required for handling stereo data correctly, indeed samples
are stored like:
LLLLLL....RRRRRR

that is all left samples are at the beginning of the chunk, all right
samples at the end, so it is necessary to store and process the whole
buffer in order to decode each frame. Thus the decoder needs all the
audio chunk before it can return interleaved data.

Fix decoding of files 8svx_exp.iff and 8svx_fib.iff, fix trac issue #169.
libavcodec/8svx.c
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/version.h
libavformat/iff.c
tests/ref/fate/iff-fibonacci