|
|
|
@ -175,10 +175,10 @@ static int MP3lame_encode_frame(AVCodecContext *avctx, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(lame_result < 0){ |
|
|
|
|
if(lame_result==-1) { |
|
|
|
|
/* output buffer too small */ |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "lame: output buffer too small (buffer index: %d, free bytes: %d)\n", s->buffer_index, BUFFER_SIZE - s->buffer_index); |
|
|
|
|
} |
|
|
|
|
if(lame_result==-1) { |
|
|
|
|
/* output buffer too small */ |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "lame: output buffer too small (buffer index: %d, free bytes: %d)\n", s->buffer_index, BUFFER_SIZE - s->buffer_index); |
|
|
|
|
} |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -187,20 +187,20 @@ static int MP3lame_encode_frame(AVCodecContext *avctx, |
|
|
|
|
if(s->buffer_index<4) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
len= mp3len(s->buffer, NULL, NULL); |
|
|
|
|
len= mp3len(s->buffer, NULL, NULL); |
|
|
|
|
//av_log(avctx, AV_LOG_DEBUG, "in:%d packet-len:%d index:%d\n", avctx->frame_size, len, s->buffer_index);
|
|
|
|
|
if(len <= s->buffer_index){ |
|
|
|
|
memcpy(frame, s->buffer, len); |
|
|
|
|
s->buffer_index -= len; |
|
|
|
|
if(len <= s->buffer_index){ |
|
|
|
|
memcpy(frame, s->buffer, len); |
|
|
|
|
s->buffer_index -= len; |
|
|
|
|
|
|
|
|
|
memmove(s->buffer, s->buffer+len, s->buffer_index); |
|
|
|
|
memmove(s->buffer, s->buffer+len, s->buffer_index); |
|
|
|
|
//FIXME fix the audio codec API, so we do not need the memcpy()
|
|
|
|
|
/*for(i=0; i<len; i++){
|
|
|
|
|
av_log(avctx, AV_LOG_DEBUG, "%2X ", frame[i]); |
|
|
|
|
}*/ |
|
|
|
|
return len; |
|
|
|
|
}else |
|
|
|
|
return 0; |
|
|
|
|
return len; |
|
|
|
|
}else |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static av_cold int MP3lame_encode_close(AVCodecContext *avctx) |
|
|
|
|