mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 10:37:11 -04:00 
			
		
		
		
	fix(server): wrong video rotation with QSV and RKMPP decoding (#10905)
This commit is contained in:
		
							parent
							
								
									c1036d6f88
								
							
						
					
					
						commit
						678111ed3b
					
				| @ -1573,6 +1573,7 @@ describe(MediaService.name, () => { | |||||||
|             '-hwaccel qsv', |             '-hwaccel qsv', | ||||||
|             '-hwaccel_output_format qsv', |             '-hwaccel_output_format qsv', | ||||||
|             '-async_depth 4', |             '-async_depth 4', | ||||||
|  |             '-noautorotate', | ||||||
|             '-threads 1', |             '-threads 1', | ||||||
|           ]), |           ]), | ||||||
|           outputOptions: expect.arrayContaining([ |           outputOptions: expect.arrayContaining([ | ||||||
| @ -1838,7 +1839,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 rkmpp', '-hwaccel_output_format drm_prime', '-afbc rga']), |           inputOptions: expect.arrayContaining([ | ||||||
|  |             '-hwaccel rkmpp', | ||||||
|  |             '-hwaccel_output_format drm_prime', | ||||||
|  |             '-afbc rga', | ||||||
|  |             '-noautorotate', | ||||||
|  |           ]), | ||||||
|           outputOptions: expect.arrayContaining([ |           outputOptions: expect.arrayContaining([ | ||||||
|             `-c:v h264_rkmpp`, |             `-c:v h264_rkmpp`, | ||||||
|             '-c:a copy', |             '-c:a copy', | ||||||
|  | |||||||
| @ -732,7 +732,13 @@ export class QsvHwDecodeConfig extends QsvSwDecodeConfig { | |||||||
|       throw new Error('No QSV device found'); |       throw new Error('No QSV device found'); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const options = ['-hwaccel qsv', '-hwaccel_output_format qsv', '-async_depth 4', ...this.getInputThreadOptions()]; |     const options = [ | ||||||
|  |       '-hwaccel qsv', | ||||||
|  |       '-hwaccel_output_format qsv', | ||||||
|  |       '-async_depth 4', | ||||||
|  |       '-noautorotate', | ||||||
|  |       ...this.getInputThreadOptions(), | ||||||
|  |     ]; | ||||||
|     const hwDevice = this.getPreferredHardwareDevice(); |     const hwDevice = this.getPreferredHardwareDevice(); | ||||||
|     if (hwDevice) { |     if (hwDevice) { | ||||||
|       options.push(`-qsv_device ${hwDevice}`); |       options.push(`-qsv_device ${hwDevice}`); | ||||||
| @ -910,7 +916,7 @@ export class RkmppHwDecodeConfig extends RkmppSwDecodeConfig { | |||||||
|       throw new Error('No RKMPP device found'); |       throw new Error('No RKMPP device found'); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return ['-hwaccel rkmpp', '-hwaccel_output_format drm_prime', '-afbc rga']; |     return ['-hwaccel rkmpp', '-hwaccel_output_format drm_prime', '-afbc rga', '-noautorotate']; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   getFilterOptions(videoStream: VideoStreamInfo) { |   getFilterOptions(videoStream: VideoStreamInfo) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user