Mercurial > libavcodec.hg
comparison mpegvideo.c @ 1315:6696d3bf4ff2 libavcodec
lossless mjpeg encoding (planar yuv & RGB) and somerelated bugfixes
author | michaelni |
---|---|
date | Tue, 17 Jun 2003 22:48:51 +0000 |
parents | 10c21dffe5ab |
children | 26c44d2433c1 |
comparison
equal
deleted
inserted
replaced
1314:8a7be8c2710e | 1315:6696d3bf4ff2 |
---|---|
526 /* init video encoder */ | 526 /* init video encoder */ |
527 int MPV_encode_init(AVCodecContext *avctx) | 527 int MPV_encode_init(AVCodecContext *avctx) |
528 { | 528 { |
529 MpegEncContext *s = avctx->priv_data; | 529 MpegEncContext *s = avctx->priv_data; |
530 int i; | 530 int i; |
531 | 531 int chroma_h_shift, chroma_v_shift; |
532 avctx->pix_fmt = PIX_FMT_YUV420P; | |
533 | 532 |
534 s->bit_rate = avctx->bit_rate; | 533 s->bit_rate = avctx->bit_rate; |
535 s->bit_rate_tolerance = avctx->bit_rate_tolerance; | 534 s->bit_rate_tolerance = avctx->bit_rate_tolerance; |
536 s->width = avctx->width; | 535 s->width = avctx->width; |
537 s->height = avctx->height; | 536 s->height = avctx->height; |
618 | 617 |
619 if(avctx->intra_quant_bias != FF_DEFAULT_QUANT_BIAS) | 618 if(avctx->intra_quant_bias != FF_DEFAULT_QUANT_BIAS) |
620 s->intra_quant_bias= avctx->intra_quant_bias; | 619 s->intra_quant_bias= avctx->intra_quant_bias; |
621 if(avctx->inter_quant_bias != FF_DEFAULT_QUANT_BIAS) | 620 if(avctx->inter_quant_bias != FF_DEFAULT_QUANT_BIAS) |
622 s->inter_quant_bias= avctx->inter_quant_bias; | 621 s->inter_quant_bias= avctx->inter_quant_bias; |
623 | 622 |
623 avcodec_get_chroma_sub_sample(avctx->pix_fmt, &chroma_h_shift, &chroma_v_shift); | |
624 | |
624 switch(avctx->codec->id) { | 625 switch(avctx->codec->id) { |
625 case CODEC_ID_MPEG1VIDEO: | 626 case CODEC_ID_MPEG1VIDEO: |
626 s->out_format = FMT_MPEG1; | 627 s->out_format = FMT_MPEG1; |
627 s->low_delay= 0; //s->max_b_frames ? 0 : 1; | 628 s->low_delay= 0; //s->max_b_frames ? 0 : 1; |
628 avctx->delay= s->low_delay ? 0 : (s->max_b_frames + 1); | 629 avctx->delay= s->low_delay ? 0 : (s->max_b_frames + 1); |
629 break; | 630 break; |
631 case CODEC_ID_LJPEG: | |
630 case CODEC_ID_MJPEG: | 632 case CODEC_ID_MJPEG: |
631 s->out_format = FMT_MJPEG; | 633 s->out_format = FMT_MJPEG; |
632 s->intra_only = 1; /* force intra only for jpeg */ | 634 s->intra_only = 1; /* force intra only for jpeg */ |
633 s->mjpeg_write_tables = 1; /* write all tables */ | 635 s->mjpeg_write_tables = 1; /* write all tables */ |
634 s->mjpeg_data_only_frames = 0; /* write all the needed headers */ | 636 s->mjpeg_data_only_frames = 0; /* write all the needed headers */ |
635 s->mjpeg_vsample[0] = 2; /* set up default sampling factors */ | 637 s->mjpeg_vsample[0] = 1<<chroma_v_shift; |
636 s->mjpeg_vsample[1] = 1; /* the only currently supported values */ | 638 s->mjpeg_vsample[1] = 1; |
637 s->mjpeg_vsample[2] = 1; | 639 s->mjpeg_vsample[2] = 1; |
638 s->mjpeg_hsample[0] = 2; | 640 s->mjpeg_hsample[0] = 1<<chroma_h_shift; |
639 s->mjpeg_hsample[1] = 1; | 641 s->mjpeg_hsample[1] = 1; |
640 s->mjpeg_hsample[2] = 1; | 642 s->mjpeg_hsample[2] = 1; |
641 if (mjpeg_init(s) < 0) | 643 if (mjpeg_init(s) < 0) |
642 return -1; | 644 return -1; |
643 avctx->delay=0; | 645 avctx->delay=0; |