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 + -
显示快捷键?