xxx7597 发表于 2010-10-14 18:01:57

关于libmad中的synth_frame()

mdk+lpc23XX的环境

这是涉及的源码
void mad_synth_frame(struct mad_synth *synth, struct mad_frame const *frame)
{
unsigned int nch, ns;
void (*synth_frame)(struct mad_synth *, struct mad_frame const *,
                      unsigned int, unsigned int);

nch = MAD_NCHANNELS(&frame->header);
ns= MAD_NSBSAMPLES(&frame->header);

synth->pcm.samplerate = frame->header.samplerate;
synth->pcm.channels   = nch;
synth->pcm.length   = 32 * ns;

synth_frame = synth_full;

if (frame->options & MAD_OPTION_HALFSAMPLERATE) {
    synth->pcm.samplerate /= 2;
    synth->pcm.length   /= 2;

    synth_frame = synth_half;
}

synth_frame(synth, frame, nch, ns);

synth->phase = (synth->phase + ns) % 16;
}

在synth.c中
程序跑到这就停止了停止在DAbt_Handler    B       DAbt_Handler
页: [1]
查看完整版本: 关于libmad中的synth_frame()