lqt_x264.c

来自「这个库实现了录象功能」· C语言 代码 · 共 529 行 · 第 1/2 页

C
529
字号
    },    {      .name =        "x264_analyse_bsub16x16",      .real_name =   TRS("8x16, 16x8 and 8x8 B-frame search"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 1 },      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },    },    {      .name =        "x264_analyse_psub8x8",      .real_name =   TRS("4x8, 8x4 and 4x4 P-frame search"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 0 },      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },    },    {      .name =        "x264_analyse_i8x8",      .real_name =   TRS("8x8 Intra search"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 1 },      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .help_string = TRS("8x8 Intra search requires 8x8 transform"),    },    {      .name =        "x264_analyse_i4x4",      .real_name =   TRS("4x4 Intra search"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 1 },      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },    },    {      .name =        "x264_me",      .real_name =   TRS("Motion estimation"),      .type =        LQT_PARAMETER_SECTION,    },    {      .name =        "x264_i_me_method",      .real_name =   TRS("Method"),      .type =        LQT_PARAMETER_STRINGLIST,      .val_default = { .val_string = "Hexagonal search" },      .stringlist_options = (char*[]){ TRS("Diamond search"),                                       TRS("Hexagonal search"),                                       TRS("Uneven Multi-Hexagon"),                                       TRS("Exhaustive search"),                                       (char*)0 },      .help_string = TRS("Motion estimation method\n"                     "Diamond search: fastest\n"                     "Hexagonal search: default setting\n"                     "Uneven Multi-Hexagon: better but slower\n"                         "Exhaustive search: extremely slow, primarily for testing")    },    {      .name =        "x264_i_subpel_refine",      .real_name =   TRS("Partition decision"),      .type =        LQT_PARAMETER_INT,      .val_min =     { .val_int = 1 },#if X264_BUILD < 65      .val_max =     { .val_int = 7 },#else      .val_max =     { .val_int = 9 },#endif      .val_default = { .val_int = 5 },      .help_string = TRS("Subpixel motion estimation and partition decision "#if X264_BUILD < 65                         "quality: 1=fast, 7=best.")#else                         "quality: 1=fast, 9=best.")#endif    },#if X264_BUILD < 65    {      .name =        "x264_b_bframe_rdo",      .real_name =   TRS("RD based mode decision for B-frames"),      .type =        LQT_PARAMETER_INT,      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .val_default = { .val_int = 0 },      .help_string = TRS("RD based mode decision for B-frames. Requires partition "                         "decision 6.")    },#endif    {      .name =        "x264_i_me_range",      .real_name =   TRS("Search range"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 16 },      .help_string = TRS("Maximum distance to search for motion estimation, "                     "measured from predicted position(s). Default of 16 is "                     "good for most footage, high motion sequences may benefit "                         "from settings between 24-32.")    },    {      .name =        "x264_i_frame_reference",      .real_name =   TRS("Max Ref. frames"),      .type =        LQT_PARAMETER_INT,      .val_min =     { .val_int = 1 },      .val_max =     { .val_int = 16 },      .val_default = { .val_int = 1 },      .help_string = TRS("This is effective in Anime, but seems to make little "                     "difference in live-action source material. Some decoders "                         "are unable to deal with large frameref values.")    },    {      .name =        "x264_b_chroma_me",      .real_name =   TRS("Chroma motion estimation"),      .type =        LQT_PARAMETER_INT,      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .val_default = { .val_int = 0 },    },    {      .name =        "x264_b_mixed_references",      .real_name =   TRS("Mixed references"),      .type =        LQT_PARAMETER_INT,      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .val_default = { .val_int = 0 },      .help_string = TRS("Allow each MB partition in P-frames to have it's own "                         "reference number")    },#if X264_BUILD < 65    {      .name =        "x264_b_bidir_me",      .real_name =   TRS("Bidirectional ME"),      .type =        LQT_PARAMETER_INT,      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .val_default = { .val_int = 0 },      .help_string = TRS("Jointly optimize both MVs in B-frames")    },#endif    {      .name =        "x264_b_weighted_bipred",      .real_name =   TRS("Weighted biprediction"),      .type =        LQT_PARAMETER_INT,      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .val_default = { .val_int = 0 },      .help_string = TRS("Implicit weighting for B-frames")    },    {      .name =        "x264_i_direct_mv_pred",      .real_name =   TRS("Direct MV prediction mode"),      .type =        LQT_PARAMETER_STRINGLIST,      .val_default = { .val_string = "Spatial" },      .stringlist_options = (char*[]){ TRS("None"),                                       TRS("Spatial"),                                       TRS("Temporal"),                                       TRS("Auto"),                                       (char*)0 },    },    {      .name =        "x264_misc",      .real_name =   TRS("Misc"),      .type =        LQT_PARAMETER_SECTION,    },    {      .name =        "x264_b_deblocking_filter",      .real_name =   TRS("Deblocking filter"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 1 },      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .help_string = TRS("Use deblocking loop filter (increases quality).")    },    {      .name =        "x264_i_deblocking_filter_alphac0",      .real_name =   TRS("Deblocking filter strength"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 0 },      .val_min =     { .val_int = -6 },      .val_max =     { .val_int = 6 },      .help_string = TRS("Loop filter AlphaC0 parameter")    },    {      .name =        "x264_i_deblocking_filter_beta",      .real_name =   TRS("Deblocking filter threshold"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 0 },      .val_min =     { .val_int = -6 },      .val_max =     { .val_int = 6 },      .help_string = TRS("Loop filter Beta parameter")    },    {      .name =        "x264_b_cabac",      .real_name =   TRS("Enable CABAC"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 1 },      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1 },      .help_string = TRS("Enable CABAC (Context-Adaptive Binary Arithmetic "                     "Coding). Slightly slows down encoding and decoding, but "                         "should save 10-15% bitrate.")    },    {      .name =        "x264_i_trellis",      .real_name =   TRS("Trellis RD quantization"),      .type =        LQT_PARAMETER_STRINGLIST,      .val_default = { .val_string = "Disabled" },      .stringlist_options = (char*[]){ TRS("Disabled"),                                       TRS("Enabled (final)"),                                       TRS("Enabled (always)"),                                       (char*)0 },      .help_string = TRS("Trellis RD quantization. Requires CABAC. Can be enabled "                     "either for the final encode of a MB or for all mode "                         "desisions")    },    {      .name =        "x264_i_noise_reduction",      .real_name =   TRS("Noise reduction"),      .type =        LQT_PARAMETER_INT,      .val_default = { .val_int = 0 },      .val_min =     { .val_int = 0 },      .val_max =     { .val_int = 1<<16 }     },    { /* End of parameters */ }  };static lqt_codec_info_static_t codec_info_x264 =  {    .name =                "x264",    .long_name =           TRS("H.264 (MPEG4 AVC) encoder"),    .description =         TRS("Based on the x264 library"),    .fourccs =             fourccs_x264,    .type =                LQT_CODEC_VIDEO,    .direction =           LQT_DIRECTION_ENCODE,    .encoding_parameters = encode_parameters_x264,    .decoding_parameters = (lqt_parameter_info_static_t*)0,    .compatibility_flags = LQT_FILE_QT_OLD | LQT_FILE_QT | LQT_FILE_MP4  };/* These are called from the plugin loader */LQT_EXTERN int get_num_codecs() { return 1; }LQT_EXTERN lqt_codec_info_static_t * get_codec_info(int index)  {  switch(index)    {    case 0:      return &codec_info_x264;    }  return (lqt_codec_info_static_t*)0;  }/* *   Return the actual codec constructor */LQT_EXTERN lqt_init_video_codec_func_t get_video_codec(int index)  {  switch(index)    {    case 0:      return quicktime_init_codec_x264;      break;    }  return (lqt_init_video_codec_func_t)0;  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?