@ -159,13 +159,12 @@ static void jpeg_table_header(MpegEncContext *s)
AV_WB16 ( ptr , size ) ;
AV_WB16 ( ptr , size ) ;
}
}
static void jpeg_put_comments ( MpegEn cContext * s )
static void jpeg_put_comments ( AVCode cContext * 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 ) ;