mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-01-06 14:15:29 +01:00
AMV video encoder.
Authors are Vladimir Voroshilov and Dobrica Pavlinušić based on svn blame/log For full details of authorship see http://code.google.com/p/amv-codec-tools/ Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -265,6 +265,7 @@ av_cold int MPV_encode_init(AVCodecContext *avctx)
|
||||
}
|
||||
break;
|
||||
case CODEC_ID_MJPEG:
|
||||
case CODEC_ID_AMV:
|
||||
if(avctx->pix_fmt != PIX_FMT_YUVJ420P && avctx->pix_fmt != PIX_FMT_YUVJ422P &&
|
||||
((avctx->pix_fmt != PIX_FMT_YUV420P && avctx->pix_fmt != PIX_FMT_YUV422P) || avctx->strict_std_compliance>FF_COMPLIANCE_UNOFFICIAL)){
|
||||
av_log(avctx, AV_LOG_ERROR, "colorspace not supported in jpeg\n");
|
||||
@@ -530,6 +531,11 @@ av_cold int MPV_encode_init(AVCodecContext *avctx)
|
||||
if(s->mpeg_quant || s->codec_id==CODEC_ID_MPEG1VIDEO || s->codec_id==CODEC_ID_MPEG2VIDEO || s->codec_id==CODEC_ID_MJPEG){
|
||||
s->intra_quant_bias= 3<<(QUANT_BIAS_SHIFT-3); //(a + x*3/8)/x
|
||||
s->inter_quant_bias= 0;
|
||||
}else if(s->codec_id==CODEC_ID_AMV){
|
||||
s->intra_quant_bias= 0;
|
||||
s->inter_quant_bias= 0;
|
||||
s->fixed_qscale = 1;
|
||||
s->adaptive_quant = 0;
|
||||
}else{
|
||||
s->intra_quant_bias=0;
|
||||
s->inter_quant_bias=-(1<<(QUANT_BIAS_SHIFT-2)); //(a - x/4)/x
|
||||
@@ -540,6 +546,8 @@ av_cold int MPV_encode_init(AVCodecContext *avctx)
|
||||
if(avctx->inter_quant_bias != FF_DEFAULT_QUANT_BIAS)
|
||||
s->inter_quant_bias= avctx->inter_quant_bias;
|
||||
|
||||
av_log(avctx, AV_LOG_DEBUG, "intra_quant_bias = %d inter_quant_bias = %d\n",s->intra_quant_bias,s->inter_quant_bias);
|
||||
|
||||
avcodec_get_chroma_sub_sample(avctx->pix_fmt, &chroma_h_shift, &chroma_v_shift);
|
||||
|
||||
if(avctx->codec_id == CODEC_ID_MPEG4 && s->avctx->time_base.den > (1<<16)-1){
|
||||
@@ -564,6 +572,7 @@ av_cold int MPV_encode_init(AVCodecContext *avctx)
|
||||
break;
|
||||
case CODEC_ID_LJPEG:
|
||||
case CODEC_ID_MJPEG:
|
||||
case CODEC_ID_AMV:
|
||||
s->out_format = FMT_MJPEG;
|
||||
s->intra_only = 1; /* force intra only for jpeg */
|
||||
if(avctx->codec->id == CODEC_ID_LJPEG && avctx->pix_fmt == PIX_FMT_BGRA){
|
||||
@@ -1788,6 +1797,7 @@ static av_always_inline void encode_mb_internal(MpegEncContext *s, int motion_x,
|
||||
h263_encode_mb(s, s->block, motion_x, motion_y);
|
||||
break;
|
||||
case CODEC_ID_MJPEG:
|
||||
case CODEC_ID_AMV:
|
||||
if (CONFIG_MJPEG_ENCODER)
|
||||
ff_mjpeg_encode_mb(s, s->block);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user