| @@ -682,19 +682,6 @@ typedef struct RcOverride{ | |||
| #if FF_API_MJPEG_GLOBAL_OPTS | |||
| #define CODEC_FLAG_EXTERN_HUFF 0x1000 ///< Use external Huffman table (for MJPEG). | |||
| #endif | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| #define CODEC_FLAG2_BPYRAMID 0x00000010 ///< H.264 allow B-frames to be used as references. | |||
| #define CODEC_FLAG2_WPRED 0x00000020 ///< H.264 weighted biprediction for B-frames | |||
| #define CODEC_FLAG2_MIXED_REFS 0x00000040 ///< H.264 one reference per partition, as opposed to one reference per macroblock | |||
| #define CODEC_FLAG2_8X8DCT 0x00000080 ///< H.264 high profile 8x8 transform | |||
| #define CODEC_FLAG2_FASTPSKIP 0x00000100 ///< H.264 fast pskip | |||
| #define CODEC_FLAG2_AUD 0x00000200 ///< H.264 access unit delimiters | |||
| #define CODEC_FLAG2_BRDO 0x00000400 ///< B-frame rate-distortion optimization | |||
| #define CODEC_FLAG2_MBTREE 0x00040000 ///< Use macroblock tree ratecontrol (x264 only) | |||
| #define CODEC_FLAG2_PSY 0x00080000 ///< Use psycho visual optimizations. | |||
| #define CODEC_FLAG2_SSIM 0x00100000 ///< Compute SSIM during encoding, error[] values are undefined. | |||
| #define CODEC_FLAG2_INTRA_REFRESH 0x00200000 ///< Use periodic insertion of intra blocks instead of keyframes. | |||
| #endif | |||
| #if FF_API_SNOW_GLOBAL_OPTS | |||
| #define CODEC_FLAG2_MEMC_ONLY 0x00001000 ///< Only do ME/MC (I frames -> ref, P frame -> ME+MC). | |||
| #endif | |||
| @@ -2636,24 +2623,6 @@ typedef struct AVCodecContext { | |||
| */ | |||
| int brd_scale; | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| /** | |||
| * constant rate factor - quality-based VBR - values ~correspond to qps | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| * @deprecated use 'crf' libx264 private option | |||
| */ | |||
| attribute_deprecated float crf; | |||
| /** | |||
| * constant quantization parameter rate control method | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| * @deprecated use 'cqp' libx264 private option | |||
| */ | |||
| attribute_deprecated int cqp; | |||
| #endif | |||
| /** | |||
| * minimum GOP size | |||
| * - encoding: Set by user. | |||
| @@ -2675,15 +2644,6 @@ typedef struct AVCodecContext { | |||
| */ | |||
| int chromaoffset; | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| /** | |||
| * Influence how often B-frames are used. | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int bframebias; | |||
| #endif | |||
| /** | |||
| * trellis RD quantization | |||
| * - encoding: Set by user. | |||
| @@ -2691,50 +2651,6 @@ typedef struct AVCodecContext { | |||
| */ | |||
| int trellis; | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| /** | |||
| * Reduce fluctuations in qp (before curve compression). | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated float complexityblur; | |||
| /** | |||
| * in-loop deblocking filter alphac0 parameter | |||
| * alpha is in the range -6...6 | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int deblockalpha; | |||
| /** | |||
| * in-loop deblocking filter beta parameter | |||
| * beta is in the range -6...6 | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int deblockbeta; | |||
| /** | |||
| * macroblock subpartition sizes to consider - p8x8, p4x4, b8x8, i8x8, i4x4 | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int partitions; | |||
| #define X264_PART_I4X4 0x001 /* Analyze i4x4 */ | |||
| #define X264_PART_I8X8 0x002 /* Analyze i8x8 (requires 8x8 transform) */ | |||
| #define X264_PART_P8X8 0x010 /* Analyze p16x8, p8x16 and p8x8 */ | |||
| #define X264_PART_P4X4 0x020 /* Analyze p8x4, p4x8, p4x4 */ | |||
| #define X264_PART_B8X8 0x100 /* Analyze b16x8, b8x16 and b8x8 */ | |||
| /** | |||
| * direct MV prediction mode - 0 (none), 1 (spatial), 2 (temporal), 3 (auto) | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int directpred; | |||
| #endif | |||
| /** | |||
| * Audio cutoff bandwidth (0 means "automatic") | |||
| * - encoding: Set by user. | |||
| @@ -2975,69 +2891,6 @@ typedef struct AVCodecContext { | |||
| */ | |||
| int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count); | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| /** | |||
| * explicit P-frame weighted prediction analysis method | |||
| * 0: off | |||
| * 1: fast blind weighting (one reference duplicate with -1 offset) | |||
| * 2: smart weighting (full fade detection analysis) | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int weighted_p_pred; | |||
| /** | |||
| * AQ mode | |||
| * 0: Disabled | |||
| * 1: Variance AQ (complexity mask) | |||
| * 2: Auto-variance AQ (experimental) | |||
| * - encoding: Set by user | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int aq_mode; | |||
| /** | |||
| * AQ strength | |||
| * Reduces blocking and blurring in flat and textured areas. | |||
| * - encoding: Set by user | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated float aq_strength; | |||
| /** | |||
| * PSY RD | |||
| * Strength of psychovisual optimization | |||
| * - encoding: Set by user | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated float psy_rd; | |||
| /** | |||
| * PSY trellis | |||
| * Strength of psychovisual optimization | |||
| * - encoding: Set by user | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated float psy_trellis; | |||
| /** | |||
| * RC lookahead | |||
| * Number of frames for frametype and ratecontrol lookahead | |||
| * - encoding: Set by user | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated int rc_lookahead; | |||
| /** | |||
| * Constant rate factor maximum | |||
| * With CRF encoding mode and VBV restrictions enabled, prevents quality from being worse | |||
| * than crf_max, even if doing so would violate VBV restrictions. | |||
| * - encoding: Set by user. | |||
| * - decoding: unused | |||
| */ | |||
| attribute_deprecated float crf_max; | |||
| #endif | |||
| int log_level_offset; | |||
| #if FF_API_FLAC_GLOBAL_OPTS | |||
| @@ -246,17 +246,6 @@ static av_cold int X264_init(AVCodecContext *avctx) | |||
| if (avctx->flags & CODEC_FLAG_PASS2) { | |||
| x4->params.rc.b_stat_read = 1; | |||
| } else { | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| if (avctx->crf) { | |||
| x4->params.rc.i_rc_method = X264_RC_CRF; | |||
| x4->params.rc.f_rf_constant = avctx->crf; | |||
| x4->params.rc.f_rf_constant_max = avctx->crf_max; | |||
| } else if (avctx->cqp > -1) { | |||
| x4->params.rc.i_rc_method = X264_RC_CQP; | |||
| x4->params.rc.i_qp_constant = avctx->cqp; | |||
| } | |||
| #endif | |||
| if (x4->crf >= 0) { | |||
| x4->params.rc.i_rc_method = X264_RC_CRF; | |||
| x4->params.rc.f_rf_constant = x4->crf; | |||
| @@ -279,53 +268,6 @@ static av_cold int X264_init(AVCodecContext *avctx) | |||
| x4->params.rc.f_pb_factor = avctx->b_quant_factor; | |||
| x4->params.analyse.i_chroma_qp_offset = avctx->chromaoffset; | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| if (avctx->aq_mode >= 0) | |||
| x4->params.rc.i_aq_mode = avctx->aq_mode; | |||
| if (avctx->aq_strength >= 0) | |||
| x4->params.rc.f_aq_strength = avctx->aq_strength; | |||
| if (avctx->psy_rd >= 0) | |||
| x4->params.analyse.f_psy_rd = avctx->psy_rd; | |||
| if (avctx->psy_trellis >= 0) | |||
| x4->params.analyse.f_psy_trellis = avctx->psy_trellis; | |||
| if (avctx->rc_lookahead >= 0) | |||
| x4->params.rc.i_lookahead = avctx->rc_lookahead; | |||
| if (avctx->weighted_p_pred >= 0) | |||
| x4->params.analyse.i_weighted_pred = avctx->weighted_p_pred; | |||
| if (avctx->bframebias) | |||
| x4->params.i_bframe_bias = avctx->bframebias; | |||
| if (avctx->deblockalpha) | |||
| x4->params.i_deblocking_filter_alphac0 = avctx->deblockalpha; | |||
| if (avctx->deblockbeta) | |||
| x4->params.i_deblocking_filter_beta = avctx->deblockbeta; | |||
| if (avctx->complexityblur >= 0) | |||
| x4->params.rc.f_complexity_blur = avctx->complexityblur; | |||
| if (avctx->directpred >= 0) | |||
| x4->params.analyse.i_direct_mv_pred = avctx->directpred; | |||
| if (avctx->partitions) { | |||
| if (avctx->partitions & X264_PART_I4X4) | |||
| x4->params.analyse.inter |= X264_ANALYSE_I4x4; | |||
| if (avctx->partitions & X264_PART_I8X8) | |||
| x4->params.analyse.inter |= X264_ANALYSE_I8x8; | |||
| if (avctx->partitions & X264_PART_P8X8) | |||
| x4->params.analyse.inter |= X264_ANALYSE_PSUB16x16; | |||
| if (avctx->partitions & X264_PART_P4X4) | |||
| x4->params.analyse.inter |= X264_ANALYSE_PSUB8x8; | |||
| if (avctx->partitions & X264_PART_B8X8) | |||
| x4->params.analyse.inter |= X264_ANALYSE_BSUB16x16; | |||
| } | |||
| x4->params.analyse.b_ssim = avctx->flags2 & CODEC_FLAG2_SSIM; | |||
| x4->params.b_intra_refresh = avctx->flags2 & CODEC_FLAG2_INTRA_REFRESH; | |||
| x4->params.i_bframe_pyramid = avctx->flags2 & CODEC_FLAG2_BPYRAMID ? X264_B_PYRAMID_NORMAL : X264_B_PYRAMID_NONE; | |||
| x4->params.analyse.b_weighted_bipred = avctx->flags2 & CODEC_FLAG2_WPRED; | |||
| x4->params.analyse.b_mixed_references = avctx->flags2 & CODEC_FLAG2_MIXED_REFS; | |||
| x4->params.analyse.b_transform_8x8 = avctx->flags2 & CODEC_FLAG2_8X8DCT; | |||
| x4->params.analyse.b_fast_pskip = avctx->flags2 & CODEC_FLAG2_FASTPSKIP; | |||
| x4->params.b_aud = avctx->flags2 & CODEC_FLAG2_AUD; | |||
| x4->params.analyse.b_psy = avctx->flags2 & CODEC_FLAG2_PSY; | |||
| x4->params.rc.b_mb_tree = !!(avctx->flags2 & CODEC_FLAG2_MBTREE); | |||
| #endif | |||
| if (avctx->me_method == ME_EPZS) | |||
| x4->params.analyse.i_me_method = X264_ME_DIA; | |||
| else if (avctx->me_method == ME_HEX) | |||
| @@ -452,9 +394,6 @@ static av_cold int X264_init(AVCodecContext *avctx) | |||
| avctx->max_b_frames = 0; | |||
| avctx->bit_rate = x4->params.rc.i_bitrate*1000; | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| avctx->crf = x4->params.rc.f_rf_constant; | |||
| #endif | |||
| x4->enc = x264_encoder_open(&x4->params); | |||
| if (!x4->enc) | |||
| @@ -203,16 +203,6 @@ static av_cold int XAVS_init(AVCodecContext *avctx) | |||
| if (avctx->flags & CODEC_FLAG_PASS2) { | |||
| x4->params.rc.b_stat_read = 1; | |||
| } else { | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| if (avctx->crf) { | |||
| x4->params.rc.i_rc_method = XAVS_RC_CRF; | |||
| x4->params.rc.f_rf_constant = avctx->crf; | |||
| } else if (avctx->cqp > -1) { | |||
| x4->params.rc.i_rc_method = XAVS_RC_CQP; | |||
| x4->params.rc.i_qp_constant = avctx->cqp; | |||
| } | |||
| #endif | |||
| if (x4->crf >= 0) { | |||
| x4->params.rc.i_rc_method = XAVS_RC_CRF; | |||
| x4->params.rc.f_rf_constant = x4->crf; | |||
| @@ -222,32 +212,6 @@ static av_cold int XAVS_init(AVCodecContext *avctx) | |||
| } | |||
| } | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| if (avctx->bframebias) | |||
| x4->params.i_bframe_bias = avctx->bframebias; | |||
| if (avctx->deblockalpha) | |||
| x4->params.i_deblocking_filter_alphac0 = avctx->deblockalpha; | |||
| if (avctx->deblockbeta) | |||
| x4->params.i_deblocking_filter_beta = avctx->deblockbeta; | |||
| if (avctx->complexityblur >= 0) | |||
| x4->params.rc.f_complexity_blur = avctx->complexityblur; | |||
| if (avctx->directpred >= 0) | |||
| x4->params.analyse.i_direct_mv_pred = avctx->directpred; | |||
| if (avctx->partitions) { | |||
| if (avctx->partitions & XAVS_PART_I8X8) | |||
| x4->params.analyse.inter |= XAVS_ANALYSE_I8x8; | |||
| if (avctx->partitions & XAVS_PART_P8X8) | |||
| x4->params.analyse.inter |= XAVS_ANALYSE_PSUB16x16; | |||
| if (avctx->partitions & XAVS_PART_B8X8) | |||
| x4->params.analyse.inter |= XAVS_ANALYSE_BSUB16x16; | |||
| } | |||
| x4->params.rc.b_mb_tree = !!(avctx->flags2 & CODEC_FLAG2_MBTREE); | |||
| x4->params.b_aud = avctx->flags2 & CODEC_FLAG2_AUD; | |||
| x4->params.analyse.b_mixed_references = avctx->flags2 & CODEC_FLAG2_MIXED_REFS; | |||
| x4->params.analyse.b_fast_pskip = avctx->flags2 & CODEC_FLAG2_FASTPSKIP; | |||
| x4->params.analyse.b_weighted_bipred = avctx->flags2 & CODEC_FLAG2_WPRED; | |||
| #endif | |||
| if (x4->aud >= 0) | |||
| x4->params.b_aud = x4->aud; | |||
| if (x4->mbtree >= 0) | |||
| @@ -159,9 +159,6 @@ static const AVOption options[]={ | |||
| {"b_qfactor", "qp factor between p and b frames", OFFSET(b_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E}, | |||
| {"rc_strategy", "ratecontrol method", OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| {"b_strategy", "strategy to choose between I/P/B-frames", OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX, V|E}, | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| {"wpredp", "weighted prediction analysis method", OFFSET(weighted_p_pred), AV_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, V|E}, | |||
| #endif | |||
| {"ps", "rtp payload size in bytes", OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| {"mv_bits", NULL, OFFSET(mv_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX}, | |||
| {"header_bits", NULL, OFFSET(header_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX}, | |||
| @@ -351,17 +348,12 @@ static const AVOption options[]={ | |||
| {"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| {"rc_init_occupancy", "number of bits which should be loaded into the rc buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| {"inter_threshold", NULL, OFFSET(inter_threshold), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| #define X264_DEFAULTS CODEC_FLAG2_FASTPSKIP|CODEC_FLAG2_PSY|CODEC_FLAG2_MBTREE | |||
| #else | |||
| #define X264_DEFAULTS 0 | |||
| #endif | |||
| #if FF_API_LAME_GLOBAL_OPTS | |||
| #define LAME_DEFAULTS CODEC_FLAG2_BIT_RESERVOIR | |||
| #else | |||
| #define LAME_DEFAULTS 0 | |||
| #endif | |||
| {"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.dbl = X264_DEFAULTS|LAME_DEFAULTS }, 0, UINT_MAX, V|A|E|D, "flags2"}, | |||
| {"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.dbl = LAME_DEFAULTS }, 0, UINT_MAX, V|A|E|D, "flags2"}, | |||
| {"error", NULL, OFFSET(error_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| #if FF_API_ANTIALIAS_ALGO | |||
| {"antialias", "MP3 antialias algorithm", OFFSET(antialias_algo), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|D, "aa"}, | |||
| @@ -412,38 +404,11 @@ static const AVOption options[]={ | |||
| {"all" , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_ALL }, INT_MIN, INT_MAX, V|D, "avdiscard"}, | |||
| {"bidir_refine", "refine the two motion vectors used in bidirectional macroblocks", OFFSET(bidir_refine), AV_OPT_TYPE_INT, {.dbl = 1 }, 0, 4, V|E}, | |||
| {"brd_scale", "downscales frames for dynamic B-frame decision", OFFSET(brd_scale), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, 10, V|E}, | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| {"crf", "enables constant quality mode, and selects the quality (x264)", OFFSET(crf), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, 0, 51, V|E}, | |||
| {"cqp", "constant quantization parameter rate control method", OFFSET(cqp), AV_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, V|E}, | |||
| #endif | |||
| {"keyint_min", "minimum interval between IDR-frames (x264)", OFFSET(keyint_min), AV_OPT_TYPE_INT, {.dbl = 25 }, INT_MIN, INT_MAX, V|E}, | |||
| {"refs", "reference frames to consider for motion compensation (Snow)", OFFSET(refs), AV_OPT_TYPE_INT, {.dbl = 1 }, INT_MIN, INT_MAX, V|E}, | |||
| {"chromaoffset", "chroma qp offset from luma", OFFSET(chromaoffset), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| {"bframebias", "influences how often B-frames are used", OFFSET(bframebias), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, | |||
| #endif | |||
| {"trellis", "rate-distortion optimal quantization", OFFSET(trellis), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E}, | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| {"directpred", "direct mv prediction mode - 0 (none), 1 (spatial), 2 (temporal), 3 (auto)", OFFSET(directpred), AV_OPT_TYPE_INT, {.dbl = -1 }, INT_MIN, INT_MAX, V|E}, | |||
| {"bpyramid", "allows B-frames to be used as references for predicting", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_BPYRAMID }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"wpred", "weighted biprediction for b-frames (H.264)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_WPRED }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"mixed_refs", "one reference per partition, as opposed to one reference per macroblock", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_MIXED_REFS }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"dct8x8", "high profile 8x8 transform (H.264)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_8X8DCT }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"fastpskip", "fast pskip (H.264)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_FASTPSKIP }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"aud", "access unit delimiters (H.264)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_AUD }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| #endif | |||
| {"skiprd", "RD optimal MB level residual skipping", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_SKIP_RD }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| {"complexityblur", "reduce fluctuations in qp (before curve compression)", OFFSET(complexityblur), AV_OPT_TYPE_FLOAT, {.dbl = -1 }, -1, FLT_MAX, V|E}, | |||
| {"deblockalpha", "in-loop deblocking filter alphac0 parameter", OFFSET(deblockalpha), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, -6, 6, V|E}, | |||
| {"deblockbeta", "in-loop deblocking filter beta parameter", OFFSET(deblockbeta), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, -6, 6, V|E}, | |||
| {"partitions", "macroblock subpartition sizes to consider", OFFSET(partitions), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E, "partitions"}, | |||
| {"parti4x4", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = X264_PART_I4X4 }, INT_MIN, INT_MAX, V|E, "partitions"}, | |||
| {"parti8x8", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = X264_PART_I8X8 }, INT_MIN, INT_MAX, V|E, "partitions"}, | |||
| {"partp4x4", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = X264_PART_P4X4 }, INT_MIN, INT_MAX, V|E, "partitions"}, | |||
| {"partp8x8", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = X264_PART_P8X8 }, INT_MIN, INT_MAX, V|E, "partitions"}, | |||
| {"partb8x8", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = X264_PART_B8X8 }, INT_MIN, INT_MAX, V|E, "partitions"}, | |||
| #endif | |||
| {"sc_factor", "multiplied by qscale for each frame and added to scene_change_score", OFFSET(scenechange_factor), AV_OPT_TYPE_INT, {.dbl = 6 }, 0, INT_MAX, V|E}, | |||
| {"mv0_threshold", NULL, OFFSET(mv0_threshold), AV_OPT_TYPE_INT, {.dbl = 256 }, 0, INT_MAX, V|E}, | |||
| #if FF_API_MPEGVIDEO_GLOBAL_OPTS | |||
| @@ -473,9 +438,6 @@ static const AVOption options[]={ | |||
| #if FF_API_LAME_GLOBAL_OPTS | |||
| {"reservoir", "use bit reservoir", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_BIT_RESERVOIR }, INT_MIN, INT_MAX, A|E, "flags2"}, | |||
| #endif | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| {"mbtree", "use macroblock tree ratecontrol (x264 only)", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_MBTREE }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| #endif | |||
| {"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX}, | |||
| {"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_INT64, {.dbl = DEFAULT }, 0, INT64_MAX, A|E|D, "channel_layout"}, | |||
| {"request_channel_layout", NULL, OFFSET(request_channel_layout), AV_OPT_TYPE_INT64, {.dbl = DEFAULT }, 0, INT64_MAX, A|D, "request_channel_layout"}, | |||
| @@ -487,17 +449,6 @@ static const AVOption options[]={ | |||
| {"colorspace", NULL, OFFSET(colorspace), AV_OPT_TYPE_INT, {.dbl = AVCOL_SPC_UNSPECIFIED }, 1, AVCOL_SPC_NB-1, V|E|D}, | |||
| {"color_range", NULL, OFFSET(color_range), AV_OPT_TYPE_INT, {.dbl = AVCOL_RANGE_UNSPECIFIED }, 0, AVCOL_RANGE_NB-1, V|E|D}, | |||
| {"chroma_sample_location", NULL, OFFSET(chroma_sample_location), AV_OPT_TYPE_INT, {.dbl = AVCHROMA_LOC_UNSPECIFIED }, 0, AVCHROMA_LOC_NB-1, V|E|D}, | |||
| #if FF_API_X264_GLOBAL_OPTS | |||
| {"psy", "use psycho visual optimization", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_PSY }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"psy_rd", "specify psycho visual strength", OFFSET(psy_rd), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1, FLT_MAX, V|E}, | |||
| {"psy_trellis", "specify psycho visual trellis", OFFSET(psy_trellis), AV_OPT_TYPE_FLOAT, {.dbl = -1 }, -1, FLT_MAX, V|E}, | |||
| {"aq_mode", "specify aq method", OFFSET(aq_mode), AV_OPT_TYPE_INT, {.dbl = -1 }, -1, INT_MAX, V|E}, | |||
| {"aq_strength", "specify aq strength", OFFSET(aq_strength), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1, FLT_MAX, V|E}, | |||
| {"rc_lookahead", "specify number of frames to look ahead for frametype", OFFSET(rc_lookahead), AV_OPT_TYPE_INT, {.dbl = -1 }, -1, INT_MAX, V|E}, | |||
| {"ssim", "ssim will be calculated during encoding", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_SSIM }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"intra_refresh", "use periodic insertion of intra blocks instead of keyframes", 0, AV_OPT_TYPE_CONST, {.dbl = CODEC_FLAG2_INTRA_REFRESH }, INT_MIN, INT_MAX, V|E, "flags2"}, | |||
| {"crf_max", "in crf mode, prevents vbv from lowering quality beyond this point", OFFSET(crf_max), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, 0, 51, V|E}, | |||
| #endif | |||
| {"log_level_offset", "set the log level offset", OFFSET(log_level_offset), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX }, | |||
| #if FF_API_FLAC_GLOBAL_OPTS | |||
| {"lpc_type", "deprecated, use flac-specific options", OFFSET(lpc_type), AV_OPT_TYPE_INT, {.dbl = AV_LPC_TYPE_DEFAULT }, AV_LPC_TYPE_DEFAULT, AV_LPC_TYPE_NB-1, A|E}, | |||
| @@ -80,9 +80,6 @@ | |||
| #ifndef FF_API_AVCODEC_INIT | |||
| #define FF_API_AVCODEC_INIT (LIBAVCODEC_VERSION_MAJOR < 54) | |||
| #endif | |||
| #ifndef FF_API_X264_GLOBAL_OPTS | |||
| #define FF_API_X264_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) | |||
| #endif | |||
| #ifndef FF_API_MPEGVIDEO_GLOBAL_OPTS | |||
| #define FF_API_MPEGVIDEO_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) | |||
| #endif | |||