Henrik Rydgård and Claude Opus 5
4cb01fea67
sceMpegbase: convert with swscale, keeping the scalar path as the fallback
...
The planes the de-tiling produces are already the YUV420P swscale wants, and our
sceMpeg HLE converts the same frames the same way, so the pixel formats and the
studio-range setup come straight from MediaEngine::getSwsFormat. It is 3-4x
quicker than going a pixel at a time: 0.37-0.44ms a frame becomes 0.09-0.12ms,
which is the whole reason sceMpegBaseCscAvc was at the top of a profile.
Chroma is upsampled with SWS_POINT rather than the HLE's SWS_BILINEAR, since
replicating is what the scalar path does and, being a fixed-function block,
almost certainly what the hardware does.
It is not bit-identical - swscale rounds its own way. TestMpegCsc measures the
gap per channel rather than per byte, so the number means something for a packed
16-bit pixel: worst 1 step of 31 for 5650 and 5551, 2 of 15 for 4444, 3 of 255
for 8888, with means around a fifth of a step. The scalar path stays as what the
longhand reference is checked against, and takes anything swscale won't - an odd
range origin, or a build without ffmpeg.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-18 11:38:49 -06:00
..
2026-09-10 17:03:07 -06:00
2026-09-10 17:03:07 -06:00
2025-07-22 17:48:20 +02:00
2026-09-09 08:53:46 -06:00
2025-07-22 17:48:20 +02:00
2026-08-12 14:06:16 +02:00
2025-07-22 17:48:20 +02:00
2026-01-08 22:02:08 +01:00
2026-09-10 17:03:07 -06:00
2026-09-18 10:24:43 +09:00
2026-09-18 10:24:43 +09:00
2026-08-16 16:59:52 +02:00
2026-08-16 16:59:52 +02:00
2026-09-12 12:53:13 -06:00
2026-08-11 10:28:36 +02:00
2026-09-12 13:46:12 -06:00
2026-09-04 18:10:10 -06:00
2025-03-31 11:17:50 +02:00
2025-07-02 00:02:33 +03:00
2025-07-02 01:30:21 +03:00
2026-08-10 10:04:21 +02:00
2025-08-06 17:44:54 +02:00
2026-05-02 11:07:34 +02:00
2025-06-13 23:29:49 +02:00
2026-09-06 14:11:18 +02:00
2026-09-04 13:10:54 -06:00
2026-01-18 23:40:13 +02:00
2025-03-31 10:24:03 +02:00
2026-08-16 16:59:52 +02:00
2026-02-17 09:40:27 +01:00
2026-09-10 15:52:53 -06:00
2025-07-20 19:30:35 +02:00
2025-03-31 11:17:50 +02:00
2026-09-11 21:09:33 -06:00
2026-08-12 14:06:16 +02:00
2025-06-25 11:34:07 +02:00
2026-09-10 17:03:07 -06:00
2026-09-10 17:03:07 -06:00
2026-09-18 09:44:39 -06:00
2026-09-18 09:44:39 -06:00
2025-03-31 11:17:50 +02:00
2025-03-31 11:17:50 +02:00
2026-08-24 17:37:39 +02:00
2026-08-21 10:56:06 +02:00
2026-08-12 14:06:16 +02:00
2025-06-05 22:46:24 +02:00
2026-08-24 10:58:34 +02:00
2026-08-24 10:58:34 +02:00
2026-08-12 14:06:16 +02:00
2026-09-11 21:09:33 -06:00
2026-09-17 13:51:45 -06:00
2026-08-18 13:42:13 +02:00
2026-08-16 16:59:52 +02:00
2026-09-11 21:09:33 -06:00
2026-09-11 21:09:33 -06:00
2025-03-31 11:17:50 +02:00
2025-04-03 22:39:14 +02:00
2026-08-12 14:06:16 +02:00
2026-02-09 14:35:32 +01:00
2026-08-11 20:12:10 +02:00
2026-09-11 21:09:33 -06:00
2026-09-09 14:43:39 -06:00
2026-08-19 18:38:03 +02:00
2026-09-10 15:52:53 -06:00
2025-08-06 00:16:34 +02:00
2026-09-10 15:25:47 -06:00
2026-08-19 18:38:03 +02:00
2026-09-18 09:43:39 -06:00
2026-04-28 16:27:12 +02:00
2026-08-12 14:06:16 +02:00
2026-09-12 12:53:13 -06:00
2026-08-24 10:58:34 +02:00
2026-09-04 18:10:10 -06:00
2026-09-04 18:10:10 -06:00
2026-08-17 16:01:23 +02:00
2026-09-10 17:02:50 -06:00
2026-09-04 18:10:10 -06:00
2026-09-04 18:10:10 -06:00
2026-09-10 09:52:01 -06:00
2026-07-25 14:53:02 +02:00
2026-09-18 10:24:43 +09:00
2026-09-12 11:11:41 -06:00
2026-09-10 09:52:01 -06:00
2026-08-17 16:01:23 +02:00
2026-09-04 18:10:10 -06:00
2026-08-17 16:01:23 +02:00
2026-09-04 18:10:10 -06:00
2026-09-08 11:15:15 -06:00
2026-09-08 15:18:02 -06:00
2026-09-08 15:18:02 -06:00
2026-08-12 14:06:16 +02:00
2023-12-09 18:08:19 +01:00
2026-08-11 22:27:44 +02:00
2026-09-08 15:18:02 -06:00
2026-09-11 21:09:33 -06:00
2026-09-18 09:45:11 -06:00
2025-07-20 19:32:05 +02:00
2025-03-31 11:17:50 +02:00
2025-02-14 09:50:55 -06:00
2026-09-17 12:51:52 -06:00
2026-09-12 11:52:09 -06:00
2026-09-18 11:38:49 -06:00
2026-09-18 11:38:49 -06:00
2026-08-12 14:06:16 +02:00
2026-09-11 21:09:33 -06:00
2026-08-12 14:06:16 +02:00
2025-02-12 16:49:43 +03:00
2026-09-10 15:52:53 -06:00
2025-08-06 00:16:34 +02:00
2026-08-12 14:06:16 +02:00
2026-04-23 11:12:58 +02:00
2026-08-12 14:06:16 +02:00
2025-07-01 19:56:09 +03:00
2025-01-21 12:22:32 +01:00
2025-01-21 12:22:32 +01:00
2026-09-10 15:52:53 -06:00
2025-01-21 12:22:32 +01:00
2026-08-11 20:14:01 +02:00
2025-04-07 22:16:32 +02:00
2026-08-12 14:06:16 +02:00
2025-01-09 09:06:23 +01:00
2026-08-12 14:06:16 +02:00
2025-01-21 17:41:53 +01:00
2025-03-31 11:17:50 +02:00
2026-08-11 10:28:36 +02:00
2026-08-11 10:28:47 +02:00
2026-09-11 21:09:33 -06:00
2025-08-15 16:35:25 +02:00
2026-09-11 21:09:33 -06:00
2026-08-11 10:28:47 +02:00
2026-08-24 17:37:39 +02:00
2026-08-19 18:38:03 +02:00
2026-08-24 09:30:44 +02:00
2025-04-14 22:38:22 +02:00
2026-09-08 11:15:15 -06:00
2026-09-08 11:15:15 -06:00
2026-09-10 15:30:03 -06:00
2025-04-03 14:13:50 +02:00
2026-08-24 12:15:31 +02:00
2026-08-24 11:12:59 +02:00
2026-09-09 14:43:39 -06:00
2026-08-19 18:38:03 +02:00
2026-09-09 10:48:53 -06:00
2025-04-12 11:35:55 +02:00
2025-03-31 11:17:50 +02:00
2026-09-11 21:09:33 -06:00
2025-03-31 11:17:50 +02:00
2026-09-11 21:09:33 -06:00
2025-03-31 11:17:50 +02:00
2024-01-12 20:29:53 +02:00
2026-08-11 20:14:01 +02:00
2026-09-10 15:52:53 -06:00
2025-02-04 11:53:22 -06:00
2026-09-04 18:10:10 -06:00
2025-03-31 11:17:50 +02:00
2026-08-08 18:18:28 +02:00
2025-03-31 11:17:50 +02:00
2024-01-05 11:22:52 +02:00
2026-08-21 10:32:21 +02:00
2024-10-15 15:30:37 +02:00
2026-09-12 12:53:13 -06:00
2025-11-04 11:48:47 +01:00
2026-09-10 17:03:07 -06:00
2026-09-18 11:38:49 -06:00
2026-09-17 10:09:48 -06:00
2026-08-24 10:58:34 +02:00
2026-08-24 10:58:34 +02:00
2025-01-22 10:12:56 +01:00
2025-01-22 10:12:56 +01:00
2024-09-17 11:34:42 +02:00