]>
Commit | Line | Data |
---|---|---|
cbdd2688 JB |
1 | --- ffmpeg-0.8/libavcodec/libmp3lame.c.orig 2011-06-21 21:29:25.000000000 +0200 |
2 | +++ ffmpeg-0.8/libavcodec/libmp3lame.c 2011-06-26 17:35:11.772209142 +0200 | |
3 | @@ -35,6 +35,7 @@ | |
040cc5cd ER |
4 | int stereo; |
5 | uint8_t buffer[BUFFER_SIZE]; | |
6 | int buffer_index; | |
7 | + int flushed; | |
cbdd2688 JB |
8 | struct { |
9 | int *left; | |
10 | int *right; | |
11 | @@ -169,11 +170,16 @@ | |
12 | /* lame 3.91 dies on '1-channel interleaved' data */ | |
040cc5cd | 13 | |
cbdd2688 JB |
14 | if(!data){ |
15 | + if(s->flushed) | |
16 | + lame_result = 0; | |
17 | + else { | |
18 | + s->flushed = 1; | |
19 | lame_result= lame_encode_flush( | |
20 | s->gfp, | |
21 | s->buffer + s->buffer_index, | |
22 | BUFFER_SIZE - s->buffer_index | |
23 | ); | |
24 | + } | |
25 | #if 2147483647 == INT_MAX | |
26 | }else if(AV_SAMPLE_FMT_S32 == avctx->sample_fmt){ | |
27 | if (s->stereo) { | |
28 | @@ -205,6 +211,7 @@ | |
040cc5cd ER |
29 | BUFFER_SIZE - s->buffer_index |
30 | ); | |
31 | } | |
cbdd2688 JB |
32 | + s->flushed = 0; |
33 | #endif | |
040cc5cd | 34 | }else{ |
cbdd2688 JB |
35 | if (s->stereo) { |
36 | @@ -225,6 +232,7 @@ | |
040cc5cd ER |
37 | BUFFER_SIZE - s->buffer_index |
38 | ); | |
cbdd2688 JB |
39 | } |
40 | + s->flushed = 0; | |
040cc5cd ER |
41 | } |
42 | ||
cbdd2688 | 43 | if(lame_result < 0){ |