提交 13c2469d 编写于 作者: M Michael Niedermayer

Vorbis sse fix by (Balatoni Denes: dbalatoni, programozo hu)

Originally committed as revision 4317 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 6d1feb02
...@@ -938,7 +938,7 @@ return 0; ...@@ -938,7 +938,7 @@ return 0;
EOF EOF
builtin_vector=no builtin_vector=no
if $cc -o $TMPO $TMPC 2> /dev/null ; then if $cc -msse -o $TMPO $TMPC 2> /dev/null ; then
builtin_vector=yes builtin_vector=yes
fi fi
......
...@@ -155,6 +155,8 @@ static void vorbis_free(vorbis_context *vc) { ...@@ -155,6 +155,8 @@ static void vorbis_free(vorbis_context *vc) {
av_freep(&vc->channel_floors); av_freep(&vc->channel_floors);
av_freep(&vc->saved); av_freep(&vc->saved);
av_freep(&vc->ret); av_freep(&vc->ret);
av_freep(&vc->buf);
av_freep(&vc->buf_tmp);
av_freep(&vc->residues); av_freep(&vc->residues);
av_freep(&vc->modes); av_freep(&vc->modes);
...@@ -759,6 +761,8 @@ static int vorbis_parse_id_hdr(vorbis_context *vc){ ...@@ -759,6 +761,8 @@ static int vorbis_parse_id_hdr(vorbis_context *vc){
vc->channel_floors=(float *)av_malloc((vc->blocksize_1/2)*vc->audio_channels * sizeof(float)); vc->channel_floors=(float *)av_malloc((vc->blocksize_1/2)*vc->audio_channels * sizeof(float));
vc->saved=(float *)av_malloc((vc->blocksize_1/2)*vc->audio_channels * sizeof(float)); vc->saved=(float *)av_malloc((vc->blocksize_1/2)*vc->audio_channels * sizeof(float));
vc->ret=(float *)av_malloc((vc->blocksize_1/2)*vc->audio_channels * sizeof(float)); vc->ret=(float *)av_malloc((vc->blocksize_1/2)*vc->audio_channels * sizeof(float));
vc->buf=(float *)av_malloc(vc->blocksize_1 * sizeof(float));
vc->buf_tmp=(float *)av_malloc(vc->blocksize_1 * sizeof(float));
vc->saved_start=0; vc->saved_start=0;
ff_mdct_init(&vc->mdct0, bl0, 1); ff_mdct_init(&vc->mdct0, bl0, 1);
...@@ -1327,8 +1331,8 @@ static int vorbis_parse_audio_packet(vorbis_context *vc) { ...@@ -1327,8 +1331,8 @@ static int vorbis_parse_audio_packet(vorbis_context *vc) {
float *ret=vc->ret; float *ret=vc->ret;
const float *lwin=vc->lwin; const float *lwin=vc->lwin;
const float *swin=vc->swin; const float *swin=vc->swin;
float buf[blocksize]; float *buf=vc->buf;
float buf_tmp[blocksize]; float *buf_tmp=vc->buf_tmp;
ch_floor_ptr=vc->channel_floors+j*blocksize/2; ch_floor_ptr=vc->channel_floors+j*blocksize/2;
......
...@@ -88,6 +88,8 @@ typedef struct { ...@@ -88,6 +88,8 @@ typedef struct {
float *saved; float *saved;
uint_fast16_t saved_start; uint_fast16_t saved_start;
float *ret; float *ret;
float *buf;
float *buf_tmp;
} vorbis_context; } vorbis_context;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册