|
|
|
@ -54,6 +54,7 @@ Known Issues: |
|
|
|
|
#include "mp_msg.h" |
|
|
|
|
#include "cpudetect.h" |
|
|
|
|
|
|
|
|
|
#include "libavutil/common.h" |
|
|
|
|
#include "libavutil/internal.h" |
|
|
|
|
#include "libavutil/intreadwrite.h" |
|
|
|
|
#include "libavcodec/avcodec.h" |
|
|
|
@ -66,7 +67,7 @@ Known Issues: |
|
|
|
|
#include "img_format.h" |
|
|
|
|
#include "mp_image.h" |
|
|
|
|
#include "vf.h" |
|
|
|
|
#include "vd_ffmpeg.h" |
|
|
|
|
#include "av_helpers.h" |
|
|
|
|
|
|
|
|
|
#define MIN(a,b) ((a) > (b) ? (b) : (a)) |
|
|
|
|
#define MAX(a,b) ((a) < (b) ? (b) : (a)) |
|
|
|
@ -186,6 +187,7 @@ static int config(struct vf_instance *vf, |
|
|
|
|
|
|
|
|
|
for(i=0; i<3; i++){ |
|
|
|
|
AVCodecContext *avctx_enc; |
|
|
|
|
AVDictionary *opts = NULL; |
|
|
|
|
#if 0 |
|
|
|
|
int is_chroma= !!i; |
|
|
|
|
int w= ((width + 31) & (~31))>>is_chroma; |
|
|
|
@ -196,7 +198,7 @@ static int config(struct vf_instance *vf, |
|
|
|
|
vf->priv->src [i]= malloc(vf->priv->temp_stride[i]*h*sizeof(uint8_t)); |
|
|
|
|
#endif |
|
|
|
|
avctx_enc= |
|
|
|
|
vf->priv->avctx_enc= avcodec_alloc_context(); |
|
|
|
|
vf->priv->avctx_enc= avcodec_alloc_context3(enc); |
|
|
|
|
avctx_enc->width = width; |
|
|
|
|
avctx_enc->height = height; |
|
|
|
|
avctx_enc->time_base= (AVRational){1,25}; // meaningless
|
|
|
|
@ -206,7 +208,7 @@ static int config(struct vf_instance *vf, |
|
|
|
|
avctx_enc->flags = CODEC_FLAG_QSCALE | CODEC_FLAG_LOW_DELAY; |
|
|
|
|
avctx_enc->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; |
|
|
|
|
avctx_enc->global_quality= 1; |
|
|
|
|
avctx_enc->flags2= CODEC_FLAG2_MEMC_ONLY; |
|
|
|
|
av_dict_set(&opts, "memc_only", "1", 0); |
|
|
|
|
avctx_enc->me_cmp= |
|
|
|
|
avctx_enc->me_sub_cmp= FF_CMP_SAD; //SSE;
|
|
|
|
|
avctx_enc->mb_cmp= FF_CMP_SSE; |
|
|
|
@ -224,7 +226,8 @@ static int config(struct vf_instance *vf, |
|
|
|
|
avctx_enc->flags |= CODEC_FLAG_QPEL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
avcodec_open(avctx_enc, enc); |
|
|
|
|
avcodec_open2(avctx_enc, enc, &opts); |
|
|
|
|
av_dict_free(&opts); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
vf->priv->frame= avcodec_alloc_frame(); |
|
|
|
|