view mp3lib/dct36_k7.c @ 18708:9e2b300db17b

Change free_sh_audio() to take demuxer and stream id as parameters (same as new_sh_audio()) instead of sh_audio_t *, use those to remove the pointer from demuxer->a_streams[] before freeing it. Some demuxers use free_sh_audio() to undo the creation of an already-allocated audio stream in case of error. These uses were unsafe since free_sh_audio() freed the data structure but left the pointer in demuxer->a_streams[], leading to double free later in free_demuxer() (and perhaps use of the freed stream before that, I didn't check).
author uau
date Wed, 14 Jun 2006 14:05:59 +0000
parents 9163bdb578a6
children 7c7885350d89
line wrap: on
line source

/*
 * dct36_k7.c - 3DNowEx(DSP)! optimized dct36()
 *
 * This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
 * <squash@mb.kcom.ne.jp>, only two types of changes have been made:
 *
 * - added new opcode PSWAPD
 * - removed PREFETCH instruction for speedup
 * - changed function name for support 3DNowEx! automatic detection
 *
 * note: because K7 processors are an aggresive out-of-order three-way
 *       superscalar ones instruction order is not significand for them.
 *
 * You can find Kashiyama's original 3dnow! support patch
 * (for mpg123-0.59o) at
 * http://user.ecc.u-tokyo.ac.jp/~g810370/linux-simd/ (Japanese).
 *
 * by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> - until 31.Mar.1999
 *                    <kim@comtec.co.jp>               - after  1.Apr.1999
 *
 * Original disclaimer:
 *  The author of this program disclaim whole expressed or implied
 *  warranties with regard to this program, and in no event shall the
 *  author of this program liable to whatever resulted from the use of
 *  this program. Use it at your own risk.
 *
 * Modified by Nick Kurshev <nickols_k@mail.ru>
 *
 * 2003/06/21: Moved to GCC inline assembly - Alex Beregszaszi
 */

#define __DCT36_OPTIMIZE_FOR_K7

#include "dct36_3dnow.c"