Kacper Michajłow
27b7fa0c10
avcodec/h264_direct: do not read the other field's rows of colocated mb_type
...
To determine whether the colocated picture is field coded, the temporal
and spatial direct setup peek at
sl->ref_list[1][0].parent->mb_type[mb_xy] before mb_xy has been remapped
to the colocated field's parity. That row belongs to the current field's
parity, while await_reference_mb_row() above waited on the parity of the
referenced field, so whenever the two differ the load is unsynchronised
and with frame threading can observe macroblocks of a field that is
still being decoded.
Every macroblock of a field picture has MB_TYPE_INTERLACED set, so
checking field_picture first gives the same result in all correctly
synchronized cases without touching the mb_type array.
This also fixes few TSAN reported warnings.
Fixes: https://trac.ffmpeg.org/ticket/10891
Signed-off-by: Kacper Michajłow <kasper93@gmail.com >
2026-08-26 00:41:35 +00:00
..
2026-08-19 22:25:07 +02:00
2026-08-19 22:25:07 +02:00
2026-07-31 04:00:56 +00:00
2026-07-16 19:35:21 +00:00
2026-08-13 00:29:25 +02:00
2026-08-19 22:25:07 +02:00
2026-07-11 11:10:12 -03:00
2026-08-19 22:25:07 +02:00
2026-08-19 22:25:07 +02:00
2026-08-23 13:46:55 +02:00
2026-08-18 13:58:14 +09:00
2026-07-07 13:06:58 +00:00
2026-08-23 17:10:58 +02:00
2026-07-19 20:41:52 +08:00
2026-07-19 20:41:52 +08:00
2026-07-19 20:41:53 +08:00
2026-08-23 13:35:29 -03:00
2026-08-23 13:35:21 -03:00
2026-07-19 23:50:55 +08:00
2026-08-10 22:01:35 +00:00
2026-08-19 15:29:46 +00:00
2026-08-19 15:29:46 +00:00
2026-07-02 17:53:20 -03:00
2026-07-02 17:53:20 -03:00
2026-07-02 17:53:20 -03:00
2026-07-11 11:10:12 -03:00
2026-07-02 17:53:20 -03:00
2026-07-02 14:38:46 +00:00
2026-07-28 17:54:07 +02:00
2026-07-03 01:51:06 +00:00
2026-07-11 11:10:12 -03:00
2026-07-11 17:10:50 +09:00
2026-08-17 14:57:07 +09:00
2026-07-11 11:10:12 -03:00
2026-07-11 11:10:12 -03:00
2026-08-21 03:35:19 +00:00
2026-08-21 03:35:19 +00:00
2026-07-28 08:39:15 +00:00
2026-08-14 10:31:57 -03:00
2026-07-06 13:27:25 -03:00
2026-07-07 19:04:42 +00:00
2026-08-13 20:46:10 +00:00
2026-07-06 13:26:02 -03:00
2026-07-06 13:26:02 -03:00
2026-07-06 13:26:02 -03:00
2026-07-06 13:26:02 -03:00
2026-08-11 20:20:16 +02:00
2026-08-11 20:20:16 +02:00
2026-08-11 20:20:16 +02:00
2026-08-11 20:20:16 +02:00
2026-07-28 18:04:35 +00:00
2026-08-01 14:45:45 +00:00
2026-08-09 15:01:31 -03:00
2026-07-31 13:18:57 +00:00
2026-07-28 17:54:07 +02:00
2026-07-28 17:54:07 +02:00
2026-08-14 18:28:09 +02:00
2026-08-14 10:31:57 -03:00
2026-08-19 22:35:29 +00:00
2026-07-28 08:39:15 +00:00
2026-07-28 08:39:15 +00:00
2026-08-21 08:25:47 +00:00
2026-08-21 08:25:47 +00:00
2026-08-21 08:25:47 +00:00
2026-07-13 21:13:25 +02:00
2026-07-13 21:13:25 +02:00
2026-07-13 21:13:25 +02:00
2026-07-13 21:13:25 +02:00
2026-07-13 21:13:25 +02:00
2026-07-11 19:32:17 -03:00
2026-07-11 19:32:17 -03:00
2026-07-11 19:32:17 -03:00
2026-07-11 19:32:17 -03:00
2026-07-15 01:36:36 +00:00
2026-07-22 14:52:57 +02:00
2026-08-09 17:29:55 +02:00
2026-08-09 17:29:55 +02:00
2026-08-09 17:29:55 +02:00
2026-08-09 17:26:53 +02:00
2026-08-09 17:26:51 +02:00
2026-08-09 17:26:51 +02:00
2026-08-06 15:19:52 +00:00
2026-07-31 04:00:56 +00:00
2026-07-31 04:00:56 +00:00
2026-07-29 21:07:17 +00:00
2026-07-28 08:39:15 +00:00
2026-07-02 17:53:20 -03:00
2026-08-14 10:31:57 -03:00
2026-08-14 18:28:09 +02:00
2026-07-13 00:57:26 +00:00
2026-08-02 22:11:27 +09:00
2026-07-31 19:37:52 +00:00
2026-08-17 14:57:07 +09:00
2026-07-23 10:39:47 -03:00
2026-08-11 21:16:28 +02:00
2026-07-14 19:45:02 +00:00
2026-08-11 21:16:28 +02:00
2026-08-11 21:16:28 +02:00
2026-08-26 00:41:35 +00:00
2026-08-13 00:29:25 +02:00
2026-08-13 00:29:25 +02:00
2026-08-14 13:39:48 +00:00
2026-07-16 07:19:35 +00:00
2026-08-26 00:41:35 +00:00
2026-08-13 00:29:25 +02:00
2026-07-14 19:45:02 +00:00
2026-08-13 00:29:25 +02:00
2026-08-13 00:29:25 +02:00
2026-08-13 00:29:25 +02:00
2026-07-05 17:47:56 +00:00
2026-07-05 17:47:56 +00:00
2026-08-16 18:35:04 +02:00
2026-08-16 18:35:04 +02:00
2026-07-05 09:02:40 +02:00
2026-08-12 20:05:32 +02:00
2026-08-12 20:05:32 +02:00
2026-08-02 02:19:05 +02:00
2026-08-02 02:19:05 +02:00
2026-08-12 20:05:32 +02:00
2026-08-17 14:57:07 +09:00
2026-08-21 08:25:47 +00:00
2026-07-14 19:45:02 +00:00
2026-07-14 19:45:02 +00:00
2026-08-02 16:06:47 +00:00
2026-08-25 16:10:16 +00:00
2026-07-07 17:31:26 +00:00
2026-07-02 18:24:32 +02:00
2026-08-19 09:25:40 -03:00
2026-08-19 09:25:40 -03:00
2026-08-12 02:50:23 +00:00
2026-08-14 10:31:57 -03:00
2026-07-13 01:08:03 +00:00
2026-08-17 14:49:03 -03:00
2026-08-24 22:02:56 -03:00
2026-07-11 11:10:12 -03:00
2026-07-11 11:10:12 -03:00
2026-08-03 11:08:57 +00:00
2026-07-11 11:10:12 -03:00
2026-07-11 11:10:12 -03:00
2026-07-11 11:10:12 -03:00
2026-07-11 11:10:12 -03:00
2026-08-14 10:31:57 -03:00
2026-07-07 17:35:58 +00:00
2026-07-07 17:35:58 +00:00
2026-07-03 01:55:02 +00:00
2026-08-23 13:46:55 +02:00
2026-07-20 02:35:53 +00:00
2026-07-14 13:54:39 +00:00
2026-07-05 09:02:40 +02:00
2026-07-11 02:09:25 +00:00
2026-07-11 02:09:25 +00:00
2026-07-11 11:10:12 -03:00
2026-07-14 19:45:02 +00:00
2026-08-11 21:17:13 +02:00
2026-08-11 21:17:13 +02:00
2026-07-14 19:45:02 +00:00
2026-07-22 14:52:57 +02:00
2026-07-11 11:10:12 -03:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-07-16 15:02:09 +02:00
2026-08-02 16:06:47 +00:00
2026-07-14 19:45:02 +00:00
2026-07-28 17:39:23 +02:00
2026-07-28 17:54:07 +02:00
2026-07-28 17:39:23 +02:00
2026-07-31 13:34:50 +00:00
2026-07-21 17:41:31 -04:00
2026-07-05 09:02:40 +02:00
2026-08-17 14:57:07 +09:00
2026-07-19 20:41:48 +08:00
2026-08-14 12:44:25 +00:00
2026-08-14 10:41:40 +02:00
2026-08-09 17:29:30 +02:00
2026-08-09 17:29:30 +02:00
2026-07-11 11:10:12 -03:00
2026-07-29 21:20:49 +00:00
2026-08-10 19:52:20 +02:00
2026-07-27 03:33:28 +00:00
2026-08-16 18:35:04 +02:00
2026-08-13 13:17:59 +02:00
2026-07-13 16:13:04 +00:00
2026-07-30 00:12:22 +00:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:22:44 +02:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
2026-08-02 16:06:47 +00:00
2026-08-10 20:22:42 +02:00
2026-08-21 08:25:47 +00:00
2026-08-21 08:25:47 +00:00
2026-08-21 08:25:47 +00:00
2026-08-22 17:48:39 +00:00
2026-07-14 19:45:02 +00:00
2026-08-01 16:50:06 +02:00
2026-07-28 17:54:07 +02:00
2026-08-14 10:31:57 -03:00
2026-07-29 04:37:36 +00:00
2026-07-13 00:58:16 +00:00
2026-07-11 11:10:12 -03:00
2026-07-30 06:51:57 +00:00
2026-07-30 06:51:57 +00:00
2026-07-30 06:51:57 +00:00
2026-07-30 06:51:57 +00:00
2026-08-17 14:57:07 +09:00
2026-08-05 16:04:37 +09:00
2026-08-21 14:06:57 +00:00
2026-08-17 14:57:07 +09:00
2026-08-17 14:57:07 +09:00
2026-08-02 22:11:28 +09:00
2026-08-15 18:02:17 +09:00
2026-08-17 06:48:49 +00:00
2026-08-17 06:48:49 +00:00
2026-08-05 16:04:37 +09:00
2026-08-17 14:57:07 +09:00
2026-08-15 18:34:14 +09:00
2026-08-15 18:34:14 +09:00
2026-08-17 14:57:07 +09:00
2026-08-17 14:57:07 +09:00
2026-08-17 14:57:07 +09:00
2026-08-17 14:57:07 +09:00
2026-08-05 16:04:37 +09:00
2026-08-12 17:21:07 +02:00