aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/mpegvideo_enc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-05-25 20:29:17 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-05-25 20:30:50 +0200
commit5f44f47b7256659b45ae5e3edd558521fbf962e8 (patch)
tree88e9230d070ac177730aabfbb7cd34ecc681bb79 /libavcodec/mpegvideo_enc.c
parent5292dac34cfa9a26b47bb0b78c246e12e873b313 (diff)
downloadandroid_external_ffmpeg-5f44f47b7256659b45ae5e3edd558521fbf962e8.tar.gz
android_external_ffmpeg-5f44f47b7256659b45ae5e3edd558521fbf962e8.tar.bz2
android_external_ffmpeg-5f44f47b7256659b45ae5e3edd558521fbf962e8.zip
mpegvideo_enc: do not unreference frames before the code is done with them
Fixes Ticket2592 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mpegvideo_enc.c')
-rw-r--r--libavcodec/mpegvideo_enc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 0db2f83d6b..6a0f3b50ce 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -1632,6 +1632,13 @@ vbv_retry:
} else {
s->frame_bits = 0;
}
+
+ /* release non-reference frames */
+ for (i = 0; i < MAX_PICTURE_COUNT; i++) {
+ if (!s->picture[i].reference)
+ ff_mpeg_unref_picture(s, &s->picture[i]);
+ }
+
assert((s->frame_bits & 7) == 0);
pkt->size = s->frame_bits / 8;