1
0
mirror of https://git.ffmpeg.org/ffmpeg.git synced 2026-10-24 02:09:03 +03:00
Files
Kacper Michajłow 75728c54b8 avcodec/h264_direct: await both fields of a colocated field pair
When a frame coded picture uses a complementary field pair as its
colocated picture, ff_h264_direct_ref_list_init() selects the field whose
POC is closest to the current one and stores it in col_parity. The direct
mode setup then remaps mb_xy to that parity and reads the colocated
mb_type, motion_val and ref_index from it.

await_reference_mb_row() waits on the field given by "ref_field_picture &&
ref_field", which is 1 for any such reference, since the pair is
referenced as a frame and ref->reference is 3. Only the bottom field is
therefore awaited, while the data is just as likely to be read from the
top one. With frame threading the two fields are decoded by different
threads, so the colocated data can be read while the field it belongs to
is still being decoded, yielding stale motion vectors and a corrupt
frame. await_references() already handles the same case correctly for
motion compensation.

Fixes sporadic failures of fate-h264-conformance-cabac_mot_picaff0_full,
where display frame 14.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
(cherry picked from commit 274cb6731bd204e9537a7e588d4a3436fdf51b93)
2026-08-14 12:40:19 +00:00
..
2025-12-07 15:55:56 +00:00
…
…
…
2023-12-21 22:44:01 +01:00
…
2021-01-01 15:25:48 +01:00
2021-01-01 15:25:48 +01:00
2021-06-18 20:53:56 +02:00
…
2022-09-25 13:51:42 +02:00
…
…
…
…
…
2025-03-16 22:12:01 +01:00
…
…
2021-03-05 19:45:00 +02:00
…
…
…
…
…
…
…
…
…
2022-04-06 20:27:35 +02:00
…
…
…
…
…
2020-12-08 17:51:48 +01:00
…
2020-12-08 17:51:47 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2021-03-09 13:41:22 +01:00
2026-05-05 18:55:01 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
2021-02-27 17:09:44 +01:00
2021-03-01 06:10:44 +01:00
2025-12-07 15:55:56 +00:00
…
2020-12-08 17:51:44 +01:00
…
2021-03-01 17:36:42 +01:00
2021-03-01 17:36:42 +01:00
2021-02-09 15:01:34 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2021-03-09 13:41:22 +01:00
2025-12-07 15:55:56 +00:00
2025-12-07 15:55:56 +00:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2025-12-07 15:55:56 +00:00
2025-11-30 21:38:20 +01:00
2025-12-07 15:55:56 +00:00
2025-11-30 21:38:17 +01:00
…
…
…
…
…
…
…
…
…
2024-06-15 23:32:47 +02:00
…
…
…
…
…
…
2021-01-08 05:05:10 +01:00
2025-11-30 21:38:24 +01:00
2025-11-30 21:38:21 +01:00
…
…
…
…
…
…
…
…
2025-05-16 01:15:56 +02:00
2025-12-07 15:55:56 +00:00
…
…
2021-01-21 17:13:54 +00:00
2021-01-21 17:13:54 +00:00
…
2022-09-25 13:51:46 +02:00
…
…
…
2025-03-16 22:12:17 +01:00
…
…
2025-12-07 15:55:56 +00:00
…
2021-01-21 17:13:54 +00:00
…
…
…
…
…
…
2020-11-24 11:35:03 +01:00
…
…
…
…
…
…
2024-07-21 22:12:46 +02:00
2025-11-30 21:38:16 +01:00
2024-07-21 22:14:13 +02:00
2026-05-05 18:55:03 +02:00
…
…
…
2025-11-30 21:38:15 +01:00
…
…
…
…
…
…
…
…
…
…
…
2026-05-05 18:55:07 +02:00
…
…
…
…
…
…
…
2025-11-30 21:38:17 +01:00
…
…
…
…
…
…
…
…
…
2022-04-06 20:27:35 +02:00
…
…
…
…
…
…
2021-03-09 13:41:22 +01:00
2025-11-30 21:38:18 +01:00
…
2020-12-31 11:49:43 +01:00
…
…
2020-11-24 09:38:35 +01:00
…
…
…
2025-12-07 15:55:56 +00:00
…
…
…
…
…
2020-12-08 17:51:47 +01:00
…
2026-05-05 18:55:13 +02:00
…
2020-11-11 18:36:09 +01:00
…
…
…
…
…
…
2021-01-01 15:25:48 +01:00
2021-01-01 15:25:48 +01:00
…
…
…
2021-03-01 17:36:16 +01:00
…
…
2021-03-09 13:41:22 +01:00
…
…
…
…
…
2021-02-02 14:29:33 +01:00
…
…
…
…
…
…
…
…
…
2021-04-03 13:29:30 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2025-11-30 21:38:22 +01:00
…
…
…
…
…
2025-11-30 21:38:21 +01:00
…
2023-04-07 23:40:40 +02:00
…
2021-04-01 11:38:44 +02:00
…
2025-03-16 22:12:00 +01:00
…
…
…
2025-12-07 15:55:56 +00:00
2021-10-05 23:19:39 +02:00
2025-05-16 01:33:17 +02:00
2020-11-24 09:38:35 +01:00
…
2023-04-07 23:40:39 +02:00
…
…
…
…
2023-12-21 22:43:44 +01:00
…
…
…
…
…
…
…
…
2020-12-08 17:51:44 +01:00
…
…
…
2021-03-05 19:45:00 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2021-04-02 21:40:54 +02:00
…
…
2026-05-05 18:55:04 +02:00
…
…
…
…
…
…
2024-06-15 23:32:57 +02:00
2021-01-25 00:18:47 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2025-03-16 22:12:14 +01:00
2021-09-21 23:20:29 -03:00
…
…
…
…
2022-09-25 13:51:43 +02:00
2025-03-16 22:12:06 +01:00
…
…
…
…
…
…
…
…
2026-05-05 18:55:08 +02:00
…