You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
avcodec/mpegvideo: Move loop_filter to {H263Dec,MPVEnc,VC1}Context
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@ -108,7 +108,7 @@ void ff_dxva2_vc1_fill_picture_parameters(AVCodecContext *avctx,
|
||||
pp->bRcontrol = v->rnd;
|
||||
pp->bPicSpatialResid8 = (v->panscanflag << 7) |
|
||||
(v->refdist_flag << 6) |
|
||||
(s->loop_filter << 5) |
|
||||
(v->loop_filter << 5) |
|
||||
(v->fastuvmc << 4) |
|
||||
(v->extended_mv << 3) |
|
||||
(v->dquant << 1) |
|
||||
@ -121,7 +121,7 @@ void ff_dxva2_vc1_fill_picture_parameters(AVCodecContext *avctx,
|
||||
pp->bPicExtrapolation = (!v->interlace || v->fcm == PROGRESSIVE) ? 1 : 2;
|
||||
pp->bPicDeblocked = ((!pp->bPicBackwardPrediction && v->overlap) << 6) |
|
||||
((v->profile != PROFILE_ADVANCED && v->rangeredfrm) << 5) |
|
||||
(s->loop_filter << 1);
|
||||
(v->loop_filter << 1);
|
||||
pp->bPicDeblockConfined = (v->postprocflag << 7) |
|
||||
(v->broadcast << 6) |
|
||||
(v->interlace << 5) |
|
||||
|
@ -266,9 +266,9 @@ static void h261_encode_mb(MPVEncContext *const s, int16_t block[6][64],
|
||||
if (!s->c.mb_intra) {
|
||||
com->mtype++;
|
||||
|
||||
if (mvd || s->c.loop_filter)
|
||||
if (mvd || s->loop_filter)
|
||||
com->mtype += 3;
|
||||
if (s->c.loop_filter)
|
||||
if (s->loop_filter)
|
||||
com->mtype += 3;
|
||||
if (cbp)
|
||||
com->mtype++;
|
||||
|
@ -280,7 +280,7 @@ static int decode_slice(H263DecContext *const h)
|
||||
const int xy = h->c.mb_x + h->c.mb_y * h->c.mb_stride;
|
||||
if (ret == SLICE_END) {
|
||||
ff_mpv_reconstruct_mb(&h->c, h->block);
|
||||
if (h->c.loop_filter)
|
||||
if (h->loop_filter)
|
||||
ff_h263_loop_filter(&h->c);
|
||||
|
||||
ff_er_add_slice(&h->c.er, h->c.resync_mb_x, h->c.resync_mb_y,
|
||||
@ -313,7 +313,7 @@ static int decode_slice(H263DecContext *const h)
|
||||
}
|
||||
|
||||
ff_mpv_reconstruct_mb(&h->c, h->block);
|
||||
if (h->c.loop_filter)
|
||||
if (h->loop_filter)
|
||||
ff_h263_loop_filter(&h->c);
|
||||
}
|
||||
|
||||
|
@ -66,6 +66,7 @@ typedef struct H263DecContext {
|
||||
int umvplus; ///< == H.263+ && unrestricted_mv
|
||||
int h263_slice_structured;
|
||||
int alt_inter_vlc; ///< alternative inter vlc
|
||||
int loop_filter;
|
||||
int modified_quant;
|
||||
|
||||
/* MPEG-4 specific */
|
||||
|
@ -82,7 +82,7 @@ int ff_intel_h263_decode_picture_header(H263DecContext *const h)
|
||||
}
|
||||
if (get_bits(&h->gb, 2))
|
||||
av_log(h->c.avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
|
||||
h->c.loop_filter = get_bits1(&h->gb) * !h->c.avctx->lowres;
|
||||
h->loop_filter = get_bits1(&h->gb) * !h->c.avctx->lowres;
|
||||
if (get_bits1(&h->gb))
|
||||
av_log(h->c.avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
|
||||
if (get_bits1(&h->gb))
|
||||
|
@ -90,7 +90,7 @@ void ff_h263_show_pict_info(H263DecContext *const h, int h263_plus)
|
||||
h->c.h263_aic ? " AIC" : "",
|
||||
h->alt_inter_vlc ? " AIV" : "",
|
||||
h->modified_quant ? " MQ" : "",
|
||||
h->c.loop_filter ? " LOOP" : "",
|
||||
h->loop_filter ? " LOOP" : "",
|
||||
h->h263_slice_structured ? " SS" : "",
|
||||
h->c.avctx->framerate.num, h->c.avctx->framerate.den);
|
||||
}
|
||||
@ -798,7 +798,7 @@ int ff_h263_decode_mb(H263DecContext *const h)
|
||||
h->c.cur_pic.mb_type[xy] = MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_FORWARD_MV;
|
||||
h->c.mv[0][0][0] = 0;
|
||||
h->c.mv[0][0][1] = 0;
|
||||
h->c.mb_skipped = !(h->c.obmc | h->c.loop_filter);
|
||||
h->c.mb_skipped = !(h->c.obmc | h->loop_filter);
|
||||
goto end;
|
||||
}
|
||||
cbpc = get_vlc2(&h->gb, ff_h263_inter_MCBPC_vlc, INTER_MCBPC_VLC_BITS, 2);
|
||||
@ -1181,9 +1181,9 @@ int ff_h263_decode_picture_header(H263DecContext *const h)
|
||||
}
|
||||
h->c.obmc = get_bits1(&h->gb); /* Advanced prediction mode */
|
||||
h->c.h263_aic = get_bits1(&h->gb); /* Advanced Intra Coding (AIC) */
|
||||
h->c.loop_filter = get_bits1(&h->gb);
|
||||
h->loop_filter = get_bits1(&h->gb);
|
||||
if (h->c.avctx->lowres)
|
||||
h->c.loop_filter = 0;
|
||||
h->loop_filter = 0;
|
||||
|
||||
h->h263_slice_structured = get_bits1(&h->gb);
|
||||
if (get_bits1(&h->gb) != 0) {
|
||||
|
@ -285,7 +285,7 @@ static int h263_encode_picture_header(MPVMainEncContext *const m)
|
||||
put_bits(&s->pb,1,0); /* SAC: off */
|
||||
put_bits(&s->pb,1,s->c.obmc); /* Advanced Prediction Mode */
|
||||
put_bits(&s->pb,1,s->c.h263_aic); /* Advanced Intra Coding */
|
||||
put_bits(&s->pb,1,s->c.loop_filter); /* Deblocking Filter */
|
||||
put_bits(&s->pb,1,s->loop_filter); /* Deblocking Filter */
|
||||
put_bits(&s->pb,1,s->h263_slice_structured); /* Slice Structured */
|
||||
put_bits(&s->pb,1,0); /* Reference Picture Selection: off */
|
||||
put_bits(&s->pb,1,0); /* Independent Segment Decoding: off */
|
||||
|
@ -215,7 +215,6 @@ typedef struct MpegEncContext {
|
||||
|
||||
/* H.263+ specific */
|
||||
int h263_aic_dir; ///< AIC direction: 0 = left, 1 = top
|
||||
int loop_filter;
|
||||
|
||||
/* MPEG-4 specific */
|
||||
int studio_profile;
|
||||
|
@ -654,7 +654,7 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
|
||||
(s->mpv_flags & FF_MPV_FLAG_QP_RD)) &&
|
||||
!m->fixed_qscale;
|
||||
|
||||
s->c.loop_filter = !!(avctx->flags & AV_CODEC_FLAG_LOOP_FILTER);
|
||||
s->loop_filter = !!(avctx->flags & AV_CODEC_FLAG_LOOP_FILTER);
|
||||
|
||||
if (avctx->rc_max_rate && !avctx->rc_buffer_size) {
|
||||
switch(avctx->codec_id) {
|
||||
@ -925,8 +925,8 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
|
||||
/* Fx */
|
||||
s->c.h263_aic = (avctx->flags & AV_CODEC_FLAG_AC_PRED) ? 1 : 0;
|
||||
s->modified_quant = s->c.h263_aic;
|
||||
s->c.loop_filter = (avctx->flags & AV_CODEC_FLAG_LOOP_FILTER) ? 1 : 0;
|
||||
s->me.unrestricted_mv = s->c.obmc || s->c.loop_filter || s->umvplus;
|
||||
s->loop_filter = !!(avctx->flags & AV_CODEC_FLAG_LOOP_FILTER);
|
||||
s->me.unrestricted_mv = s->c.obmc || s->loop_filter || s->umvplus;
|
||||
s->flipflop_rounding = 1;
|
||||
|
||||
/* /Fx */
|
||||
@ -959,7 +959,7 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
|
||||
// Set here to force allocation of dc_val;
|
||||
// will be set later on a per-frame basis.
|
||||
s->c.h263_aic = 1;
|
||||
s->c.loop_filter = 1;
|
||||
s->loop_filter = 1;
|
||||
s->me.unrestricted_mv = 0;
|
||||
break;
|
||||
#endif
|
||||
@ -3603,7 +3603,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
|
||||
s, s->new_pic->data[2] + s->c.mb_x*8 + s->c.mb_y*s->c.uvlinesize*chr_h,
|
||||
s->c.dest[2], w>>1, h>>s->c.chroma_y_shift, s->c.uvlinesize);
|
||||
}
|
||||
if (s->c.loop_filter) {
|
||||
if (s->loop_filter) {
|
||||
if (CONFIG_H263_ENCODER && s->c.out_format == FMT_H263)
|
||||
ff_h263_loop_filter(&s->c);
|
||||
}
|
||||
|
@ -152,6 +152,7 @@ typedef struct MPVEncContext {
|
||||
int h263_slice_structured;
|
||||
int alt_inter_vlc; ///< alternative inter vlc
|
||||
int modified_quant;
|
||||
int loop_filter;
|
||||
|
||||
/* MJPEG specific */
|
||||
struct MJpegContext *mjpeg_ctx;
|
||||
|
@ -390,7 +390,7 @@ static int decode_wmv9(AVCodecContext *avctx, const uint8_t *buf, int buf_size,
|
||||
if ((ret = init_get_bits8(&v->gb, buf, buf_size)) < 0)
|
||||
return ret;
|
||||
|
||||
s->loop_filter = avctx->skip_loop_filter < AVDISCARD_ALL;
|
||||
v->loop_filter = avctx->skip_loop_filter < AVDISCARD_ALL;
|
||||
|
||||
if (ff_vc1_parse_frame_header(v, &v->gb) < 0) {
|
||||
av_log(v->s.avctx, AV_LOG_ERROR, "header error\n");
|
||||
|
@ -94,7 +94,7 @@ static int nvdec_vc1_start_frame(AVCodecContext *avctx,
|
||||
.extended_mv = v->extended_mv,
|
||||
.dquant = v->dquant,
|
||||
.vstransform = v->vstransform,
|
||||
.loopfilter = v->s.loop_filter,
|
||||
.loopfilter = v->loop_filter,
|
||||
.fastuvmc = v->fastuvmc,
|
||||
.overlap = v->overlap,
|
||||
.quantizer = v->quantizer_mode,
|
||||
|
@ -186,7 +186,7 @@ static int rv20_decode_picture_header(RVDecContext *rv, int whole_size)
|
||||
}
|
||||
|
||||
if (RV_GET_MINOR_VER(rv->sub_id) >= 2)
|
||||
h->c.loop_filter = get_bits1(&h->gb) && !h->c.avctx->lowres;
|
||||
h->loop_filter = get_bits1(&h->gb) && !h->c.avctx->lowres;
|
||||
|
||||
if (RV_GET_MINOR_VER(rv->sub_id) <= 1)
|
||||
seq = get_bits(&h->gb, 8) << 7;
|
||||
@ -292,7 +292,7 @@ static int rv20_decode_picture_header(RVDecContext *rv, int whole_size)
|
||||
h->c.c_dc_scale_table = ff_mpeg1_dc_scale_table;
|
||||
}
|
||||
if (!h->c.avctx->lowres)
|
||||
h->c.loop_filter = 1;
|
||||
h->loop_filter = 1;
|
||||
|
||||
if (h->c.avctx->debug & FF_DEBUG_PICT_INFO) {
|
||||
av_log(h->c.avctx, AV_LOG_INFO,
|
||||
@ -517,7 +517,7 @@ static int rv10_decode_packet(AVCodecContext *avctx, const uint8_t *buf,
|
||||
if (h->c.pict_type != AV_PICTURE_TYPE_B)
|
||||
ff_h263_update_motion_val(&h->c);
|
||||
ff_mpv_reconstruct_mb(&h->c, h->block);
|
||||
if (h->c.loop_filter)
|
||||
if (h->loop_filter)
|
||||
ff_h263_loop_filter(&h->c);
|
||||
|
||||
if (++h->c.mb_x == h->c.mb_width) {
|
||||
|
@ -55,7 +55,7 @@ int ff_rv20_encode_picture_header(MPVMainEncContext *const m)
|
||||
av_assert1(!s->alt_inter_vlc);
|
||||
av_assert1(!s->umvplus);
|
||||
av_assert1(s->modified_quant == 1);
|
||||
av_assert1(s->c.loop_filter == 1);
|
||||
av_assert1(s->loop_filter == 1);
|
||||
|
||||
s->c.h263_aic = s->c.pict_type == AV_PICTURE_TYPE_I;
|
||||
if (s->c.h263_aic) {
|
||||
|
@ -285,7 +285,7 @@ static int vaapi_vc1_start_frame(AVCodecContext *avctx,
|
||||
.broken_link = v->broken_link,
|
||||
.closed_entry = v->closed_entry,
|
||||
.panscan_flag = v->panscanflag,
|
||||
.loopfilter = s->loop_filter,
|
||||
.loopfilter = v->loop_filter,
|
||||
},
|
||||
.conditional_overlap_flag = v->condover,
|
||||
.fast_uvmc_flag = v->fastuvmc,
|
||||
|
@ -300,13 +300,13 @@ int ff_vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitCo
|
||||
v->frmrtq_postproc = get_bits(gb, 3); //common
|
||||
// (bitrate-32kbps)/64kbps
|
||||
v->bitrtq_postproc = get_bits(gb, 5); //common
|
||||
v->s.loop_filter = get_bits1(gb); //common
|
||||
if (v->s.loop_filter == 1 && v->profile == PROFILE_SIMPLE) {
|
||||
v->loop_filter = get_bits1(gb); //common
|
||||
if (v->loop_filter == 1 && v->profile == PROFILE_SIMPLE) {
|
||||
av_log(avctx, AV_LOG_ERROR,
|
||||
"LOOPFILTER shall not be enabled in Simple Profile\n");
|
||||
}
|
||||
if (v->s.avctx->skip_loop_filter >= AVDISCARD_ALL)
|
||||
v->s.loop_filter = 0;
|
||||
v->loop_filter = 0;
|
||||
|
||||
v->res_x8 = get_bits1(gb); //reserved
|
||||
v->multires = get_bits1(gb);
|
||||
@ -376,7 +376,7 @@ int ff_vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitCo
|
||||
"Rangered=%i, VSTransform=%i, Overlap=%i, SyncMarker=%i\n"
|
||||
"DQuant=%i, Quantizer mode=%i, Max B-frames=%i\n",
|
||||
v->profile, v->frmrtq_postproc, v->bitrtq_postproc,
|
||||
v->s.loop_filter, v->multires, v->fastuvmc, v->extended_mv,
|
||||
v->loop_filter, v->multires, v->fastuvmc, v->extended_mv,
|
||||
v->rangered, v->vstransform, v->overlap, v->resync_marker,
|
||||
v->dquant, v->quantizer_mode, avctx->max_b_frames);
|
||||
return 0;
|
||||
@ -415,7 +415,7 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
|
||||
"LoopFilter=%i, ChromaFormat=%i, Pulldown=%i, Interlace: %i\n"
|
||||
"TFCTRflag=%i, FINTERPflag=%i\n",
|
||||
v->level, v->frmrtq_postproc, v->bitrtq_postproc,
|
||||
v->s.loop_filter, v->chromaformat, v->broadcast, v->interlace,
|
||||
v->loop_filter, v->chromaformat, v->broadcast, v->interlace,
|
||||
v->tfcntrflag, v->finterpflag);
|
||||
|
||||
v->psf = get_bits1(gb);
|
||||
@ -501,9 +501,9 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex
|
||||
v->closed_entry = get_bits1(gb);
|
||||
v->panscanflag = get_bits1(gb);
|
||||
v->refdist_flag = get_bits1(gb);
|
||||
v->s.loop_filter = get_bits1(gb);
|
||||
v->loop_filter = get_bits1(gb);
|
||||
if (v->s.avctx->skip_loop_filter >= AVDISCARD_ALL)
|
||||
v->s.loop_filter = 0;
|
||||
v->loop_filter = 0;
|
||||
v->fastuvmc = get_bits1(gb);
|
||||
v->extended_mv = get_bits1(gb);
|
||||
v->dquant = get_bits(gb, 2);
|
||||
@ -544,7 +544,7 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex
|
||||
"BrokenLink=%i, ClosedEntry=%i, PanscanFlag=%i\n"
|
||||
"RefDist=%i, Postproc=%i, FastUVMC=%i, ExtMV=%i\n"
|
||||
"DQuant=%i, VSTransform=%i, Overlap=%i, Qmode=%i\n",
|
||||
v->broken_link, v->closed_entry, v->panscanflag, v->refdist_flag, v->s.loop_filter,
|
||||
v->broken_link, v->closed_entry, v->panscanflag, v->refdist_flag, v->loop_filter,
|
||||
v->fastuvmc, v->extended_mv, v->dquant, v->vstransform, v->overlap, v->quantizer_mode);
|
||||
|
||||
return 0;
|
||||
|
@ -220,6 +220,7 @@ typedef struct VC1Context{
|
||||
int profile; ///< 2 bits, Profile
|
||||
int frmrtq_postproc; ///< 3 bits,
|
||||
int bitrtq_postproc; ///< 5 bits, quantized framerate-based postprocessing strength
|
||||
int loop_filter;
|
||||
int max_coded_width, max_coded_height;
|
||||
int fastuvmc; ///< Rounding of qpel vector to hpel ? (not in Simple)
|
||||
int extended_mv; ///< Ext MV in P/B (not in Simple)
|
||||
|
@ -2595,7 +2595,7 @@ static void vc1_decode_i_blocks(VC1Context *v)
|
||||
vc1_put_blocks_clamped(v, 0);
|
||||
}
|
||||
|
||||
if (v->s.loop_filter)
|
||||
if (v->loop_filter)
|
||||
ff_vc1_i_loop_filter(v);
|
||||
|
||||
if (get_bits_left(&v->gb) < 0) {
|
||||
@ -2733,7 +2733,7 @@ static int vc1_decode_i_blocks_adv(VC1Context *v)
|
||||
if (v->overlap && (v->pq >= 9 || v->condover != CONDOVER_NONE))
|
||||
ff_vc1_i_overlap_filter(v);
|
||||
vc1_put_blocks_clamped(v, 1);
|
||||
if (v->s.loop_filter)
|
||||
if (v->loop_filter)
|
||||
ff_vc1_i_loop_filter(v);
|
||||
|
||||
if (get_bits_left(gb) < 0) {
|
||||
@ -2787,7 +2787,7 @@ static void vc1_decode_p_blocks(VC1Context *v)
|
||||
break;
|
||||
}
|
||||
|
||||
apply_loop_filter = s->loop_filter && !(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY);
|
||||
apply_loop_filter = v->loop_filter && !(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY);
|
||||
s->first_slice_line = 1;
|
||||
memset(v->cbp_base, 0, sizeof(v->cbp_base[0]) * 3 * s->mb_stride);
|
||||
for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) {
|
||||
@ -2889,15 +2889,15 @@ static void vc1_decode_b_blocks(VC1Context *v)
|
||||
|
||||
if (v->fcm == ILACE_FIELD) {
|
||||
vc1_decode_b_mb_intfi(v);
|
||||
if (v->s.loop_filter)
|
||||
if (v->loop_filter)
|
||||
ff_vc1_b_intfi_loop_filter(v);
|
||||
} else if (v->fcm == ILACE_FRAME) {
|
||||
vc1_decode_b_mb_intfr(v);
|
||||
if (v->s.loop_filter)
|
||||
if (v->loop_filter)
|
||||
ff_vc1_p_intfr_loop_filter(v);
|
||||
} else {
|
||||
vc1_decode_b_mb(v);
|
||||
if (v->s.loop_filter)
|
||||
if (v->loop_filter)
|
||||
ff_vc1_i_loop_filter(v);
|
||||
}
|
||||
if (get_bits_left(&v->gb) < 0 || get_bits_count(&v->gb) < 0) {
|
||||
@ -2951,7 +2951,7 @@ void ff_vc1_decode_blocks(VC1Context *v)
|
||||
ff_intrax8_decode_picture(&v->x8, v->s.cur_pic.ptr,
|
||||
&v->gb, &v->s.mb_x, &v->s.mb_y,
|
||||
2 * v->pq + v->halfpq, v->pq * !v->pquantizer,
|
||||
v->s.loop_filter, v->s.low_delay);
|
||||
v->loop_filter, v->s.low_delay);
|
||||
|
||||
ff_er_add_slice(&v->s.er, 0, 0,
|
||||
(v->s.mb_x >> 1) - 1, (v->s.mb_y >> 1) - 1,
|
||||
|
@ -83,7 +83,7 @@ static int vdpau_vc1_start_frame(AVCodecContext *avctx,
|
||||
info->extended_dmv = v->extended_dmv;
|
||||
info->overlap = v->overlap;
|
||||
info->vstransform = v->vstransform;
|
||||
info->loopfilter = v->s.loop_filter;
|
||||
info->loopfilter = v->loop_filter;
|
||||
info->fastuvmc = v->fastuvmc;
|
||||
info->range_mapy_flag = v->range_mapy_flag;
|
||||
info->range_mapy = v->range_mapy;
|
||||
|
@ -178,7 +178,7 @@ static int decode_ext_header(WMV2DecContext *w)
|
||||
fps = get_bits(&gb, 5);
|
||||
w->ms.bit_rate = get_bits(&gb, 11) * 1024;
|
||||
w->mspel_bit = get_bits1(&gb);
|
||||
h->c.loop_filter = get_bits1(&gb);
|
||||
h->loop_filter = get_bits1(&gb);
|
||||
w->abt_flag = get_bits1(&gb);
|
||||
w->j_type_bit = get_bits1(&gb);
|
||||
w->top_left_mv_flag = get_bits1(&gb);
|
||||
@ -196,7 +196,7 @@ static int decode_ext_header(WMV2DecContext *w)
|
||||
"tl_mv_flag:%d, mbrl_bit:%d, code:%d, loop_filter:%d, "
|
||||
"slices:%d\n",
|
||||
fps, w->ms.bit_rate, w->mspel_bit, w->abt_flag, w->j_type_bit,
|
||||
w->top_left_mv_flag, w->per_mb_rl_bit, code, h->c.loop_filter,
|
||||
w->top_left_mv_flag, w->per_mb_rl_bit, code, h->loop_filter,
|
||||
code);
|
||||
return 0;
|
||||
}
|
||||
@ -333,7 +333,7 @@ int ff_wmv2_decode_secondary_picture_header(H263DecContext *const h)
|
||||
ff_intrax8_decode_picture(&w->x8, h->c.cur_pic.ptr,
|
||||
&h->gb, &h->c.mb_x, &h->c.mb_y,
|
||||
2 * h->c.qscale, (h->c.qscale - 1) | 1,
|
||||
h->c.loop_filter, h->c.low_delay);
|
||||
h->loop_filter, h->c.low_delay);
|
||||
|
||||
ff_er_add_slice(&h->c.er, 0, 0,
|
||||
(h->c.mb_x >> 1) - 1, (h->c.mb_y >> 1) - 1,
|
||||
|
@ -59,7 +59,7 @@ static int encode_ext_header(WMV2EncContext *w)
|
||||
put_bits(&pb, 11, FFMIN(w->msmpeg4.m.bit_rate / 1024, 2047));
|
||||
|
||||
put_bits(&pb, 1, w->mspel_bit = 1);
|
||||
put_bits(&pb, 1, s->c.loop_filter);
|
||||
put_bits(&pb, 1, s->loop_filter);
|
||||
put_bits(&pb, 1, w->abt_flag = 1);
|
||||
put_bits(&pb, 1, w->j_type_bit = 1);
|
||||
put_bits(&pb, 1, w->top_left_mv_flag = 0);
|
||||
|
Reference in New Issue
Block a user