-#if X264_BUILD >= 24
-static char *enc_me_list[] =
- { "", "dia", "hex", "umh", "esa" };
-static char *enc_me_list_text[] =
- { N_("default"), N_("dia"), N_("hex"), N_("umh"), N_("esa") };
-#endif
-
-static char *enc_analyse_list[] =
- { "", "none", "fast", "normal", "slow", "all" };
-static char *enc_analyse_list_text[] =
- { N_("default"), N_("none"), N_("fast"), N_("normal"),
- N_("slow"), N_("all") };
-
-static char *direct_pred_list[] =
- { "", "none", "spatial", "temporal" };
-static char *direct_pred_list_text[] =
- { N_("default"), N_("none"), N_("spatial"), N_("temporal") };
-
-vlc_module_begin();
- set_description( _("H.264/MPEG4 AVC encoder (using x264 library)"));
- set_capability( "encoder", 200 );
- set_callbacks( Open, Close );
- set_category( CAT_INPUT );
- set_subcategory( SUBCAT_INPUT_VCODEC );
-
+#if X264_BUILD >= 47 /* r518 */
+#define SPS_ID_TEXT N_("SPS and PPS id numbers")
+#define SPS_ID_LONGTEXT N_( "Set SPS and PPS id numbers to allow concatenating " \
+ "streams with different settings.")
+#endif
+
+#define AUD_TEXT N_("Access unit delimiters")
+#define AUD_LONGTEXT N_( "Generate access unit delimiter NAL units.")
+
+#if X264_BUILD >= 24 && X264_BUILD < 58
+static const char *const enc_me_list[] =
+ { "dia", "hex", "umh", "esa" };
+static const char *const enc_me_list_text[] =
+ { N_("dia"), N_("hex"), N_("umh"), N_("esa") };
+#endif
+
+#if X264_BUILD >= 58 /* r728 */
+static const char *const enc_me_list[] =
+ { "dia", "hex", "umh", "esa", "tesa" };
+static const char *const enc_me_list_text[] =
+ { N_("dia"), N_("hex"), N_("umh"), N_("esa"), N_("tesa") };
+#endif
+
+static const char *const enc_analyse_list[] =
+ { "none", "fast", "normal", "slow", "all" };
+static const char *const enc_analyse_list_text[] =
+ { N_("none"), N_("fast"), N_("normal"), N_("slow"), N_("all") };
+
+#if X264_BUILD >= 45 /* r457 */
+static const char *const direct_pred_list[] =
+ { "none", "spatial", "temporal", "auto" };
+static const char *const direct_pred_list_text[] =
+ { N_("none"), N_("spatial"), N_("temporal"), N_("auto") };
+#else
+static const char *const direct_pred_list[] =
+ { "none", "spatial", "temporal" };
+static const char *const direct_pred_list_text[] =
+ { N_("none"), N_("spatial"), N_("temporal") };
+#endif
+
+vlc_module_begin ()
+ set_description( N_("H.264/MPEG4 AVC encoder (x264)"))
+ set_capability( "encoder", 200 )
+ set_callbacks( Open, Close )
+ set_category( CAT_INPUT )
+ set_subcategory( SUBCAT_INPUT_VCODEC )
+