438 |
|
|
439 |
if (codec->config.num_slices == 0) { /* auto */ |
if (codec->config.num_slices == 0) { /* auto */ |
440 |
int rows = (lpbiInput->bmiHeader.biHeight + 15) / 16; |
int rows = (lpbiInput->bmiHeader.biHeight + 15) / 16; |
441 |
int slices = (rows > 36) ? 2 : 1; |
int slices = (rows > 36) ? 4 : 1; /* use multiple slices only for HD resolutions */ |
442 |
|
|
443 |
create.num_slices = (rows > 45) ? 4 : slices; |
create.num_slices = (rows > 45) ? 8 : slices; |
444 |
|
|
445 |
if (create.num_slices > create.num_threads) |
if (create.num_slices > create.num_threads) |
446 |
create.num_slices = create.num_threads; |
create.num_slices = create.num_threads; |
447 |
} |
} |
448 |
else { |
else { |
449 |
create.num_slices = codec->config.num_slices; |
create.num_slices = codec->config.num_slices; /* force manual value - by registry edit */ |
450 |
} |
} |
451 |
|
|
452 |
} |
} |