--- libogmrip/ogmrip-x264.c.orig 2010-04-13 09:21:48.000000000 +0200 +++ libogmrip/ogmrip-x264.c 2010-04-13 09:19:34.000000000 +0200 @@ -835,7 +835,7 @@ ogmrip_x264_check_option (const gchar *option) { GPtrArray *argv; - gchar *options; + gchar *options, *output = NULL; gint status; argv = g_ptr_array_new (); @@ -843,7 +843,7 @@ g_ptr_array_add (argv, "mencoder"); g_ptr_array_add (argv, "-nocache"); g_ptr_array_add (argv, "-nosound"); - g_ptr_array_add (argv, "-really-quiet"); + g_ptr_array_add (argv, "-quiet"); g_ptr_array_add (argv, "-frames"); g_ptr_array_add (argv, "0"); g_ptr_array_add (argv, "-rawvideo"); @@ -863,13 +863,26 @@ g_ptr_array_add (argv, NULL); g_spawn_sync (NULL, (gchar **) argv->pdata, NULL, - G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, - NULL, NULL, NULL, NULL, &status, NULL); + G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL, + NULL, NULL, NULL, &output, &status, NULL); g_ptr_array_free (argv, TRUE); g_free (options); + if (status == 0 && output != NULL) + { + gchar *substr; + + substr = g_strdup_printf ("Option x264encopts: Unknown suboption %s", option); + if (strstr (output, substr)) + status = 1; + g_free (substr); + } + + if (output) + g_free (output); + return status == 0; } --- libogmrip/ogmrip-xvid.c.orig 2010-04-13 09:21:23.000000000 +0200 +++ libogmrip/ogmrip-xvid.c 2010-04-13 09:19:39.000000000 +0200 @@ -851,7 +851,7 @@ ogmrip_xvid_check_option (const gchar *option) { GPtrArray *argv; - gchar *options; + gchar *options, *output = NULL; gint status; argv = g_ptr_array_new (); @@ -859,7 +859,7 @@ g_ptr_array_add (argv, "mencoder"); g_ptr_array_add (argv, "-nocache"); g_ptr_array_add (argv, "-nosound"); - g_ptr_array_add (argv, "-really-quiet"); + g_ptr_array_add (argv, "-quiet"); g_ptr_array_add (argv, "-frames"); g_ptr_array_add (argv, "0"); g_ptr_array_add (argv, "-rawvideo"); @@ -879,13 +879,26 @@ g_ptr_array_add (argv, NULL); g_spawn_sync (NULL, (gchar **) argv->pdata, NULL, - G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, - NULL, NULL, NULL, NULL, &status, NULL); + G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL, + NULL, NULL, NULL, &output, &status, NULL); g_ptr_array_free (argv, TRUE); g_free (options); + if (status == 0 && output != NULL) + { + gchar *substr; + + substr = g_strdup_printf ("Option xvidencopts: Unknown suboption %s", option); + if (strstr (output, substr)) + status = 1; + g_free (substr); + } + + if (output) + g_free (output); + return status == 0; }