mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
Merge commit '0812f5a40a0a190172b6de6e91755b882472ddc5'
* commit '0812f5a40a0a190172b6de6e91755b882472ddc5':
mjpegenc: write the JFIF header if the sample aspect ratio is set
Conflicts:
libavcodec/mjpegenc.c
See: f3ce748d34
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
fb06b8ba93
@ -159,13 +159,12 @@ static void jpeg_table_header(MpegEncContext *s)
|
|||||||
AV_WB16(ptr, size);
|
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;
|
int size;
|
||||||
uint8_t *ptr;
|
uint8_t *ptr;
|
||||||
|
|
||||||
if (s->avctx->sample_aspect_ratio.num /* && !lossless */)
|
if (avctx->sample_aspect_ratio.num > 0 && avctx->sample_aspect_ratio.den > 0)
|
||||||
{
|
{
|
||||||
/* JFIF header */
|
/* JFIF header */
|
||||||
put_marker(p, APP0);
|
put_marker(p, APP0);
|
||||||
@ -173,14 +172,14 @@ static void jpeg_put_comments(MpegEncContext *s)
|
|||||||
avpriv_put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */
|
avpriv_put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */
|
||||||
put_bits(p, 16, 0x0102); /* v 1.02 */
|
put_bits(p, 16, 0x0102); /* v 1.02 */
|
||||||
put_bits(p, 8, 0); /* units type: 0 - aspect ratio */
|
put_bits(p, 8, 0); /* units type: 0 - aspect ratio */
|
||||||
put_bits(p, 16, s->avctx->sample_aspect_ratio.num);
|
put_bits(p, 16, avctx->sample_aspect_ratio.num);
|
||||||
put_bits(p, 16, s->avctx->sample_aspect_ratio.den);
|
put_bits(p, 16, avctx->sample_aspect_ratio.den);
|
||||||
put_bits(p, 8, 0); /* thumbnail width */
|
put_bits(p, 8, 0); /* thumbnail width */
|
||||||
put_bits(p, 8, 0); /* thumbnail height */
|
put_bits(p, 8, 0); /* thumbnail height */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* comment */
|
/* comment */
|
||||||
if(!(s->flags & CODEC_FLAG_BITEXACT)){
|
if (!(avctx->flags & CODEC_FLAG_BITEXACT)) {
|
||||||
put_marker(p, COM);
|
put_marker(p, COM);
|
||||||
flush_put_bits(p);
|
flush_put_bits(p);
|
||||||
ptr = put_bits_ptr(p);
|
ptr = put_bits_ptr(p);
|
||||||
@ -190,9 +189,9 @@ static void jpeg_put_comments(MpegEncContext *s)
|
|||||||
AV_WB16(ptr, size);
|
AV_WB16(ptr, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( s->avctx->pix_fmt == AV_PIX_FMT_YUV420P
|
if( avctx->pix_fmt == AV_PIX_FMT_YUV420P
|
||||||
||s->avctx->pix_fmt == AV_PIX_FMT_YUV422P
|
||avctx->pix_fmt == AV_PIX_FMT_YUV422P
|
||||||
||s->avctx->pix_fmt == AV_PIX_FMT_YUV444P){
|
||avctx->pix_fmt == AV_PIX_FMT_YUV444P){
|
||||||
put_marker(p, COM);
|
put_marker(p, COM);
|
||||||
flush_put_bits(p);
|
flush_put_bits(p);
|
||||||
ptr = put_bits_ptr(p);
|
ptr = put_bits_ptr(p);
|
||||||
@ -213,7 +212,7 @@ void ff_mjpeg_encode_picture_header(MpegEncContext *s)
|
|||||||
// hack for AMV mjpeg format
|
// hack for AMV mjpeg format
|
||||||
if(s->avctx->codec_id == AV_CODEC_ID_AMV) goto end;
|
if(s->avctx->codec_id == AV_CODEC_ID_AMV) goto end;
|
||||||
|
|
||||||
jpeg_put_comments(s);
|
jpeg_put_comments(s->avctx, &s->pb);
|
||||||
|
|
||||||
jpeg_table_header(s);
|
jpeg_table_header(s);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user