diff options
author | Anton Khirnov <anton@khirnov.net> | 2013-12-01 21:31:25 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-12-05 13:28:32 +0100 |
commit | 0812f5a40a0a190172b6de6e91755b882472ddc5 (patch) | |
tree | 8849870e4a96e26a616b0461cad8c5298dc55f66 | |
parent | 66499f34b56fc6a9fdef25543bd9d576fc787895 (diff) | |
download | ffmpeg-0812f5a40a0a190172b6de6e91755b882472ddc5.tar.gz |
mjpegenc: write the JFIF header if the sample aspect ratio is set
MpegEncContext.aspect_ratio_info is never set for mjpeg, so this was
never written before.
-rw-r--r-- | libavcodec/mjpegenc.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index 0bf3dc19da..a22f34098d 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -148,13 +148,12 @@ static void jpeg_table_header(MpegEncContext *s) AV_WB16(ptr, size); } -static void jpeg_put_comments(MpegEncContext *s) +static void jpeg_put_comments(AVCodecContext *avctx, PutBitContext *p) { - PutBitContext *p = &s->pb; int size; uint8_t *ptr; - if (s->aspect_ratio_info /* && !lossless */) + if (avctx->sample_aspect_ratio.num > 0 && avctx->sample_aspect_ratio.den > 0) { /* JFIF header */ put_marker(p, APP0); @@ -162,14 +161,14 @@ static void jpeg_put_comments(MpegEncContext *s) avpriv_put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */ put_bits(p, 16, 0x0201); /* v 1.02 */ put_bits(p, 8, 0); /* units type: 0 - aspect ratio */ - put_bits(p, 16, s->avctx->sample_aspect_ratio.num); - put_bits(p, 16, s->avctx->sample_aspect_ratio.den); + put_bits(p, 16, avctx->sample_aspect_ratio.num); + put_bits(p, 16, avctx->sample_aspect_ratio.den); put_bits(p, 8, 0); /* thumbnail width */ put_bits(p, 8, 0); /* thumbnail height */ } /* comment */ - if(!(s->flags & CODEC_FLAG_BITEXACT)){ + if (!(avctx->flags & CODEC_FLAG_BITEXACT)) { put_marker(p, COM); flush_put_bits(p); ptr = put_bits_ptr(p); @@ -179,9 +178,9 @@ static void jpeg_put_comments(MpegEncContext *s) AV_WB16(ptr, size); } - if( s->avctx->pix_fmt == AV_PIX_FMT_YUV420P - ||s->avctx->pix_fmt == AV_PIX_FMT_YUV422P - ||s->avctx->pix_fmt == AV_PIX_FMT_YUV444P){ + if( avctx->pix_fmt == AV_PIX_FMT_YUV420P + ||avctx->pix_fmt == AV_PIX_FMT_YUV422P + ||avctx->pix_fmt == AV_PIX_FMT_YUV444P){ put_marker(p, COM); flush_put_bits(p); ptr = put_bits_ptr(p); @@ -198,7 +197,7 @@ void ff_mjpeg_encode_picture_header(MpegEncContext *s) put_marker(&s->pb, SOI); - jpeg_put_comments(s); + jpeg_put_comments(s->avctx, &s->pb); jpeg_table_header(s); |