From 3360ad995530ea6967b1e83981b4aa8240fbb0ed Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 1 Dec 2013 22:05:18 +0100 Subject: [PATCH] mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer() This will allow deMpegEncContextizing the LJPEG encoder. --- libavcodec/ljpegenc.c | 2 +- libavcodec/mjpegenc.c | 22 +++++++++++----------- libavcodec/mjpegenc.h | 2 +- libavcodec/mpegvideo_enc.c | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c index d94cfbfa88..46b51ab48d 100644 --- a/libavcodec/ljpegenc.c +++ b/libavcodec/ljpegenc.c @@ -193,7 +193,7 @@ static int encode_picture_lossless(AVCodecContext *avctx, AVPacket *pkt, emms_c(); - ff_mjpeg_encode_picture_trailer(s); + ff_mjpeg_encode_picture_trailer(&s->pb, s->header_bits); s->picture_number++; flush_put_bits(&s->pb); diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index 1d69e671d5..f5c70f9c3c 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -269,11 +269,11 @@ void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, put_bits(pb, 8, 0); /* Ah/Al (not used) */ } -static void escape_FF(MpegEncContext *s, int start) +static void escape_FF(PutBitContext *pb, int start) { - int size= put_bits_count(&s->pb) - start*8; + int size = put_bits_count(pb) - start * 8; int i, ff_count; - uint8_t *buf= s->pb.buf + start; + uint8_t *buf = pb->buf + start; int align= (-(size_t)(buf))&3; assert((size&7) == 0); @@ -306,8 +306,8 @@ static void escape_FF(MpegEncContext *s, int start) if(ff_count==0) return; - flush_put_bits(&s->pb); - skip_put_bytes(&s->pb, ff_count); + flush_put_bits(pb); + skip_put_bytes(pb, ff_count); for(i=size-1; ff_count; i--){ int v= buf[i]; @@ -328,16 +328,16 @@ void ff_mjpeg_encode_stuffing(PutBitContext * pbc) if(length) put_bits(pbc, length, (1<pb); - flush_put_bits(&s->pb); + ff_mjpeg_encode_stuffing(pb); + flush_put_bits(pb); - assert((s->header_bits&7)==0); + assert((header_bits & 7) == 0); - escape_FF(s, s->header_bits>>3); + escape_FF(pb, header_bits >> 3); - put_marker(&s->pb, EOI); + put_marker(pb, EOI); } void ff_mjpeg_encode_dc(MpegEncContext *s, int val, diff --git a/libavcodec/mjpegenc.h b/libavcodec/mjpegenc.h index 62085cd2eb..81dd7475e9 100644 --- a/libavcodec/mjpegenc.h +++ b/libavcodec/mjpegenc.h @@ -54,7 +54,7 @@ void ff_mjpeg_encode_close(MpegEncContext *s); void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, ScanTable *intra_scantable, uint16_t intra_matrix[64]); -void ff_mjpeg_encode_picture_trailer(MpegEncContext *s); +void ff_mjpeg_encode_picture_trailer(PutBitContext *pb, int header_bits); void ff_mjpeg_encode_stuffing(PutBitContext *pbc); void ff_mjpeg_encode_dc(MpegEncContext *s, int val, uint8_t *huff_size, uint16_t *huff_code); diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index f00eb29721..4fbe10e152 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1474,7 +1474,7 @@ vbv_retry: frame_end(s); if (CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG) - ff_mjpeg_encode_picture_trailer(s); + ff_mjpeg_encode_picture_trailer(&s->pb, s->header_bits); if (avctx->rc_buffer_size) { RateControlContext *rcc = &s->rc_context;