summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRodeo <[email protected]>2013-09-24 13:22:19 +0000
committerRodeo <[email protected]>2013-09-24 13:22:19 +0000
commit7be1890d2c89b31e4ef93bd92a8bb07040f082bd (patch)
tree5565c397317725df8f4c38f5c20128eaed87a8eb /test
parenta79d60b425e588a5e2e4aff35815b8396c909895 (diff)
QSV: libhb-based preset system.
Modeled after x264's preset system. MMBRC and LookAhead RC are now enabled by default, whereas Trellis is disabled by default. Please note that Windows GUI support will come later, and that preset names are not definitive. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5806 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'test')
-rw-r--r--test/test.c53
1 files changed, 45 insertions, 8 deletions
diff --git a/test/test.c b/test/test.c
index b7f8e9ac2..b64203937 100644
--- a/test/test.c
+++ b/test/test.c
@@ -141,8 +141,9 @@ static uint64_t min_title_duration = 10;
static int use_opencl = 0;
static int use_hwd = 0;
#ifdef USE_QSV
-static int qsv_decode = 1;
-static int qsv_async_depth = -1;
+static int qsv_async_depth = -1;
+static int qsv_decode = 1;
+static const char *qsv_preset = NULL;
#endif
/* Exit cleanly on Ctrl-C */
@@ -1952,6 +1953,7 @@ static int HandleEvents( hb_handle_t * h )
job->qsv.async_depth = qsv_async_depth;
}
job->qsv.decode = qsv_decode;
+ job->qsv.preset = qsv_preset;
#endif
/* Grab audio tracks */
@@ -3165,6 +3167,36 @@ static void ShowHelp()
}
if( len )
fprintf( out, "%s\n", tmp );
+#ifdef USE_QSV
+if (hb_qsv_available())
+{
+ fprintf(out,
+ " --qsv-preset When using QSV, selects the QSV preset:\n"
+ " <string> ");
+ x264_opts = hb_qsv_presets();
+ tmp[0] = 0;
+ len = 0;
+ while (x264_opts != NULL && *x264_opts != NULL)
+ {
+ strncat(tmp, *x264_opts++, sizeof(tmp) - 1 - len);
+ if (*x264_opts != NULL)
+ {
+ strcat(tmp, "/");
+ }
+ len = strlen(tmp);
+ if (len > 40 && *x264_opts != NULL)
+ {
+ fprintf(out, "%s\n ", tmp);
+ tmp[0] = 0;
+ len = 0;
+ }
+ }
+ if (len > 0)
+ {
+ fprintf(out, "%s\n", tmp);
+ }
+}
+#endif
fprintf(out,
" -x, --encopts <string> Specify advanced encoder options in the\n");
#ifdef USE_QSV
@@ -3182,7 +3214,7 @@ else
fprintf(out,
" option1=value1:option2=value2\n"
- " --h264-profile When using x264, ensures compliance with the\n"
+ " --h264-profile When using H.264, ensures compliance with the\n"
" <string> specified H.264 profile:\n"
" ");
x264_opts = hb_h264_profiles();
@@ -3204,7 +3236,7 @@ else
if( len )
fprintf( out, "%s\n", tmp );
fprintf( out,
- " --h264-level When using x264, ensures compliance with the\n"
+ " --h264-level When using H.264, ensures compliance with the\n"
" <string> specified H.264 level:\n"
" ");
x264_opts = hb_h264_levels();
@@ -3687,6 +3719,7 @@ static int ParseOptions( int argc, char ** argv )
#define AUDIO_DITHER 289
#define QSV_BASELINE 290
#define QSV_ASYNC_DEPTH 291
+ #define QSV_PRESET 292
for( ;; )
{
@@ -3697,11 +3730,12 @@ static int ParseOptions( int argc, char ** argv )
{ "verbose", optional_argument, NULL, 'v' },
{ "no-dvdnav", no_argument, NULL, DVDNAV },
{ "no-opencl", no_argument, NULL, NO_OPENCL },
-
+
#ifdef USE_QSV
- { "qsv-baseline", no_argument, NULL, QSV_BASELINE },
- { "qsv-async-depth", required_argument, NULL, QSV_ASYNC_DEPTH },
- { "disable-qsv-decoding", no_argument, &qsv_decode, 0 },
+ { "qsv-preset", required_argument, NULL, QSV_PRESET, },
+ { "qsv-baseline", no_argument, NULL, QSV_BASELINE, },
+ { "qsv-async-depth", required_argument, NULL, QSV_ASYNC_DEPTH, },
+ { "disable-qsv-decoding", no_argument, &qsv_decode, 0, },
#endif
{ "format", required_argument, NULL, 'f' },
@@ -4345,6 +4379,9 @@ static int ParseOptions( int argc, char ** argv )
case QSV_ASYNC_DEPTH:
qsv_async_depth = atoi(optarg);
break;
+ case QSV_PRESET:
+ qsv_preset = strdup(optarg);
+ break;
#endif
default:
fprintf( stderr, "unknown option (%s)\n", argv[cur_optind] );