summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/aacenc.c9
-rw-r--r--libavcodec/aacenc.h1
2 files changed, 3 insertions, 7 deletions
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index 363ed0537b..956e974cb2 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -520,13 +520,13 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
int chan_el_counter[4];
FFPsyWindowInfo windows[AAC_MAX_CHANNELS];
- if (s->last_frame == 2)
- return 0;
-
/* add current frame to queue */
if (frame) {
if ((ret = ff_af_queue_add(&s->afq, frame)) < 0)
return ret;
+ } else {
+ if (!s->afq.remaining_samples || (!s->afq.frame_alloc && !s->afq.frame_count))
+ return 0;
}
copy_input_samples(s, frame);
@@ -841,9 +841,6 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
s->lambda_sum += s->lambda;
s->lambda_count++;
- if (!frame)
- s->last_frame++;
-
ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts,
&avpkt->duration);
diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h
index 38a9734994..9d244fd1f5 100644
--- a/libavcodec/aacenc.h
+++ b/libavcodec/aacenc.h
@@ -112,7 +112,6 @@ typedef struct AACEncContext {
struct FFPsyPreprocessContext* psypp;
AACCoefficientsEncoder *coder;
int cur_channel; ///< current channel for coder context
- int last_frame;
int random_state;
float lambda;
int last_frame_pb_count; ///< number of bits for the previous frame