mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
lavc/ffwavesynth: fix dependency sizeof(AVFrame).
This commit is contained in:
parent
d890db5f53
commit
bcfcb8b852
@ -93,7 +93,6 @@ struct wavesynth_context {
|
||||
int64_t cur_ts;
|
||||
int64_t next_ts;
|
||||
int32_t *sin;
|
||||
AVFrame frame;
|
||||
struct ws_interval *inter;
|
||||
uint32_t dither_state;
|
||||
uint32_t pink_state;
|
||||
@ -341,8 +340,6 @@ static av_cold int wavesynth_init(AVCodecContext *avc)
|
||||
ws->pink_need += ws->inter[i].type == WS_NOISE;
|
||||
ws->pink_state = MKTAG('P','I','N','K');
|
||||
ws->pink_pos = PINK_UNIT;
|
||||
avcodec_get_frame_defaults(&ws->frame);
|
||||
avc->coded_frame = &ws->frame;
|
||||
wavesynth_seek(ws, 0);
|
||||
avc->sample_fmt = AV_SAMPLE_FMT_S16;
|
||||
return 0;
|
||||
@ -428,6 +425,7 @@ static int wavesynth_decode(AVCodecContext *avc, void *rframe, int *rgot_frame,
|
||||
AVPacket *packet)
|
||||
{
|
||||
struct wavesynth_context *ws = avc->priv_data;
|
||||
AVFrame *frame = rframe;
|
||||
int64_t ts;
|
||||
int duration;
|
||||
int s, c, r;
|
||||
@ -443,11 +441,11 @@ static int wavesynth_decode(AVCodecContext *avc, void *rframe, int *rgot_frame,
|
||||
duration = AV_RL32(packet->data + 8);
|
||||
if (duration <= 0)
|
||||
return AVERROR(EINVAL);
|
||||
ws->frame.nb_samples = duration;
|
||||
r = ff_get_buffer(avc, &ws->frame, 0);
|
||||
frame->nb_samples = duration;
|
||||
r = ff_get_buffer(avc, frame, 0);
|
||||
if (r < 0)
|
||||
return r;
|
||||
pcm = (int16_t *)ws->frame.data[0];
|
||||
pcm = (int16_t *)frame->data[0];
|
||||
for (s = 0; s < duration; s++, ts++) {
|
||||
memset(channels, 0, avc->channels * sizeof(*channels));
|
||||
if (ts >= ws->next_ts)
|
||||
@ -458,7 +456,6 @@ static int wavesynth_decode(AVCodecContext *avc, void *rframe, int *rgot_frame,
|
||||
}
|
||||
ws->cur_ts += duration;
|
||||
*rgot_frame = 1;
|
||||
*(AVFrame *)rframe = ws->frame;
|
||||
return packet->size;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user