diff options
Diffstat (limited to 'libavcodec/mjpeg.c')
-rw-r--r-- | libavcodec/mjpeg.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/mjpeg.c b/libavcodec/mjpeg.c index 3a5459f..8b167a1 100644 --- a/libavcodec/mjpeg.c +++ b/libavcodec/mjpeg.c @@ -470,11 +470,11 @@ void mjpeg_picture_header(MpegEncContext *s) put_bits(&s->pb, 8, 0); /* Ah/Al (not used) */ } -static void escape_FF(MpegEncContext *s) +static void escape_FF(MpegEncContext *s, int start) { - int size= get_bit_count(&s->pb) - s->header_bits; + int size= get_bit_count(&s->pb) - start*8; int i, ff_count; - uint8_t *buf= s->pb.buf + (s->header_bits>>3); + uint8_t *buf= s->pb.buf + start; int align= (-(int)(buf))&3; assert((size&7) == 0); @@ -533,7 +533,9 @@ void mjpeg_picture_trailer(MpegEncContext *s) put_bits(&s->pb, pad,0xFF>>(8-pad)); flush_put_bits(&s->pb); - escape_FF(s); + assert((s->header_bits&7)==0); + + escape_FF(s, s->header_bits>>3); put_marker(&s->pb, EOI); } |