diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-12-30 13:29:47 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-12-30 13:29:51 +0100 |
commit | 905bac2cd30d445cd84779068cb168a578511912 (patch) | |
tree | 0caa82ec70f5600fd3c630ffbefeee7468057e67 /libavcodec/ffwavesynth.c | |
parent | 3cc0f335fe14d05f6f403b09586545f73cc16bc6 (diff) | |
parent | 2ebaadf35c9387610ca1eb7e94c171050562a77c (diff) | |
download | ffmpeg-905bac2cd30d445cd84779068cb168a578511912.tar.gz |
Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
lavc/mjpegenc: use proper error codes.
lavc/mjpegenc: check av_frame_alloc() failure.
lavc/libopenjpegenc: check av_frame_alloc() failure.
lavc/diracdec: check av_frame_alloc() failure.
lavc/utils: check av_frame_alloc() failure.
ffprobe: check av_frame_alloc() failure.
lavc/ffwavesynth: fix dependency sizeof(AVFrame).
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/ffwavesynth.c')
-rw-r--r-- | libavcodec/ffwavesynth.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/libavcodec/ffwavesynth.c b/libavcodec/ffwavesynth.c index a62746d61c..4a5031a8ca 100644 --- a/libavcodec/ffwavesynth.c +++ b/libavcodec/ffwavesynth.c @@ -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; } |