fix(server): use qsv format for hwmap (#9722)

use qsv format for hwmap
This commit is contained in:
Mert 2024-05-24 04:50:28 -04:00 committed by GitHub
parent 3f44a33eac
commit 69b5eb005f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 5 deletions

View File

@ -1496,7 +1496,12 @@ describe(MediaService.name, () => {
'/original/path.ext', '/original/path.ext',
'upload/encoded-video/user-id/as/se/asset-id.mp4', 'upload/encoded-video/user-id/as/se/asset-id.mp4',
{ {
inputOptions: expect.arrayContaining(['-hwaccel qsv', '-async_depth 4', '-threads 1']), inputOptions: expect.arrayContaining([
'-hwaccel qsv',
'-hwaccel_output_format qsv',
'-async_depth 4',
'-threads 1',
]),
outputOptions: expect.arrayContaining([ outputOptions: expect.arrayContaining([
expect.stringContaining('scale_qsv=-1:720:async_depth=4:mode=hq:format=nv12'), expect.stringContaining('scale_qsv=-1:720:async_depth=4:mode=hq:format=nv12'),
]), ]),
@ -1519,10 +1524,15 @@ describe(MediaService.name, () => {
'/original/path.ext', '/original/path.ext',
'upload/encoded-video/user-id/as/se/asset-id.mp4', 'upload/encoded-video/user-id/as/se/asset-id.mp4',
{ {
inputOptions: expect.arrayContaining(['-hwaccel qsv', '-async_depth 4', '-threads 1']), inputOptions: expect.arrayContaining([
'-hwaccel qsv',
'-hwaccel_output_format qsv',
'-async_depth 4',
'-threads 1',
]),
outputOptions: expect.arrayContaining([ outputOptions: expect.arrayContaining([
expect.stringContaining( expect.stringContaining(
'hwmap=derive_device=opencl,tonemap_opencl=desat=0:format=nv12:matrix=bt709:primaries=bt709:range=pc:tonemap=hable:transfer=bt709,hwmap=derive_device=vaapi:reverse=1', 'hwmap=derive_device=opencl,tonemap_opencl=desat=0:format=nv12:matrix=bt709:primaries=bt709:range=pc:tonemap=hable:transfer=bt709,hwmap=derive_device=qsv:reverse=1,format=qsv',
), ),
]), ]),
twoPass: false, twoPass: false,

View File

@ -649,7 +649,7 @@ export class QsvHwDecodeConfig extends QsvSwDecodeConfig {
throw new Error('No QSV device found'); throw new Error('No QSV device found');
} }
const options = ['-hwaccel qsv', '-async_depth 4', '-threads 1']; const options = ['-hwaccel qsv', '-hwaccel_output_format qsv', '-async_depth 4', '-threads 1'];
const hwDevice = this.getPreferredHardwareDevice(); const hwDevice = this.getPreferredHardwareDevice();
if (hwDevice) { if (hwDevice) {
options.push(`-qsv_device ${hwDevice}`); options.push(`-qsv_device ${hwDevice}`);
@ -691,7 +691,7 @@ export class QsvHwDecodeConfig extends QsvSwDecodeConfig {
return [ return [
'hwmap=derive_device=opencl', 'hwmap=derive_device=opencl',
`tonemap_opencl=${tonemapOptions.join(':')}`, `tonemap_opencl=${tonemapOptions.join(':')}`,
'hwmap=derive_device=vaapi:reverse=1', 'hwmap=derive_device=qsv:reverse=1,format=qsv',
]; ];
} }
} }