Anton Khirnov
d1b9a3ddb4
lavfi: add a new filtergraph parsing API
...
Callers currently have two ways of adding filters to a graph - they can
either
- create, initialize, and link them manually
- use one of the avfilter_graph_parse*() functions, which take a
(typically end-user-written) string, split it into individual filter
definitions+options, then create filters, apply options, initialize
filters, and finally link them - all based on information from this
string.
A major problem with the second approach is that it performs many
actions as a single atomic unit, leaving the caller no space to
intervene in between. Such intervention would be useful e.g. to
- modify filter options;
- supply hardware device contexts;
both of which typically must be done before the filter is initialized.
Callers who need such intervention are then forced to invent their own
filtergraph parsing, which is clearly suboptimal.
This commit aims to address this problem by adding a new modular
filtergraph parsing API. It adds a new avfilter_graph_segment_parse()
function to parse a string filtergraph description into an intermediate
tree-like representation (AVFilterGraphSegment and its children).
This intermediate form may then be applied step by step using further
new avfilter_graph_segment*() functions, with user intervention possible
between each step.
2023-02-12 10:28:06 +01:00
..
2022-12-17 09:55:14 +08:00
2022-07-07 17:52:32 +02:00
2022-03-15 09:42:46 -03:00
2023-02-01 04:23:55 +01:00
2022-03-16 14:12:49 +02:00
2022-03-15 09:42:46 -03:00
2022-05-14 14:11:52 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-04-13 22:02:47 +02:00
2022-03-15 09:42:46 -03:00
2022-12-19 20:43:58 +01:00
2023-01-27 15:00:53 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2023-01-03 10:25:06 +01:00
2023-01-17 17:46:58 +01:00
2023-01-17 17:46:58 +01:00
2023-01-17 14:50:08 +01:00
2023-01-02 15:33:57 +01:00
2022-06-15 04:56:37 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-16 14:12:49 +02:00
2022-03-15 09:42:46 -03:00
2022-08-23 12:20:05 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-06-15 04:56:37 +02:00
2022-04-27 21:30:43 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-12-01 19:50:54 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2023-01-17 17:46:58 +01:00
2022-03-15 09:42:46 -03:00
2022-04-12 19:30:58 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-11-19 00:25:47 +01:00
2022-03-15 09:42:46 -03:00
2023-02-11 17:30:20 +01:00
2022-05-13 22:09:08 +02:00
2022-03-15 09:42:46 -03:00
2022-11-19 00:25:47 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-10-07 14:05:31 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2023-02-08 18:56:57 +01:00
2023-02-08 18:56:56 +01:00
2022-05-13 15:18:42 +02:00
2022-04-13 09:41:14 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2023-01-17 14:50:08 +01:00
2022-03-15 09:42:46 -03:00
2022-11-10 19:16:05 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-11-17 13:28:58 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-12-19 18:45:56 +01:00
2022-03-31 00:48:58 +02:00
2022-05-12 10:52:52 +02:00
2022-11-17 12:37:22 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2023-02-09 13:40:00 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-16 14:12:49 +02:00
2022-03-15 09:42:46 -03:00
2022-08-23 22:18:02 +02:00
2022-11-19 00:25:47 +01:00
2022-11-07 08:32:48 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-11-19 00:25:47 +01:00
2023-01-17 14:50:08 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2023-01-17 18:36:37 +01:00
2022-06-15 04:56:37 +02:00
2022-02-24 12:56:49 +01:00
2022-03-15 09:42:46 -03:00
2023-01-02 15:33:57 +01:00
2023-01-30 08:48:58 +08:00
2023-01-16 09:59:31 +01:00
2022-11-19 00:25:47 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-11-19 00:25:47 +01:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2023-01-17 14:50:08 +01:00
2023-01-17 18:36:37 +01:00
2022-10-04 11:55:03 +02:00
2022-10-04 11:55:03 +02:00
2023-01-09 18:07:05 +01:00
2022-03-15 09:42:46 -03:00
2022-11-25 19:40:11 +01:00
2023-01-17 14:50:08 +01:00
2022-11-19 00:25:47 +01:00
2022-11-19 00:25:47 +01:00
2022-11-21 15:47:02 +01:00
2023-01-17 19:02:35 +01:00
2022-04-10 22:41:26 +02:00
2023-02-12 10:17:26 +01:00
2023-02-12 10:28:06 +01:00
2022-08-06 20:32:46 -03:00
2022-05-06 05:19:49 +02:00
2023-02-09 15:35:14 +01:00
2023-02-09 15:35:14 +01:00
2023-02-09 15:35:14 +01:00
2022-03-15 09:42:46 -03:00
2022-03-03 09:57:53 +01:00
2022-06-19 19:18:34 -05:00
2022-06-19 19:18:34 -05:00
2022-06-15 04:56:37 +02:00
2022-11-14 10:04:16 +08:00
2022-03-12 15:10:28 +08:00
2022-03-12 15:10:28 +08:00
2022-03-12 15:10:28 +08:00
2022-12-10 14:57:05 +01:00
2022-06-19 19:18:34 -05:00
2022-02-24 12:56:49 +01:00
2022-07-30 13:17:28 +02:00
2022-07-30 13:17:28 +02:00
2022-07-30 13:17:28 +02:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-10-13 10:19:13 +02:00
2022-11-25 19:50:17 +01:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-07-19 12:27:17 +02:00
2022-12-01 11:21:14 +01:00
2022-03-16 14:12:49 +02:00
2022-03-29 20:36:54 +02:00
2023-01-27 23:53:26 +01:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-03-15 09:42:46 -03:00
2022-03-16 14:12:49 +02:00
2022-07-30 11:42:06 +02:00
2022-07-30 11:42:06 +02:00
2022-05-23 13:52:26 +03:00
2022-02-20 12:38:52 +01:00
2022-05-19 20:20:38 +02:00
2022-05-19 20:20:38 +02:00
2022-03-15 09:42:46 -03:00
2022-03-15 09:42:46 -03:00
2022-08-10 09:15:37 -03:00
2022-08-10 09:15:37 -03:00
2022-05-06 05:19:49 +02:00
2022-03-15 09:42:46 -03:00
2023-02-12 10:28:06 +01:00
2022-05-06 05:19:50 +02:00
2023-02-12 10:17:26 +01:00
2022-04-26 20:07:04 +02:00
2023-02-03 10:27:58 +08:00
2022-03-03 09:57:53 +01:00
2022-02-24 12:56:49 +01:00
2022-02-24 12:56:49 +01:00
2022-07-07 17:52:32 +02:00
2022-09-03 15:41:44 +02:00
2023-01-03 17:18:55 +01:00
2023-01-03 17:18:55 +01:00
2022-11-09 17:39:00 +01:00
2022-02-24 12:56:49 +01:00
2022-03-23 23:45:38 +01:00
2022-03-23 23:45:38 +01:00
2023-02-07 09:51:37 +08:00
2023-01-17 10:10:52 +08:00
2022-09-27 00:07:43 +02:00
2022-09-27 00:07:43 +02:00
2022-06-15 04:56:37 +02:00
2022-03-16 14:12:49 +02:00
2022-10-13 10:19:13 +02:00
2022-03-07 15:29:39 +01:00
2022-10-13 10:19:13 +02:00
2022-11-02 10:53:44 +01:00
2022-05-06 05:19:50 +02:00
2022-12-20 14:02:37 +01:00
2022-03-16 14:12:49 +02:00
2022-03-01 12:36:35 +01:00
2023-01-17 10:10:52 +08:00
2023-01-17 10:10:52 +08:00
2022-11-19 00:25:47 +01:00
2023-02-09 15:35:14 +01:00
2022-05-10 06:49:32 +02:00
2023-02-12 10:28:06 +01:00
2022-02-27 23:50:57 +01:00
2022-03-16 14:12:49 +02:00
2022-07-03 11:41:23 +02:00
2022-03-16 14:12:49 +02:00
2022-11-05 10:52:39 +01:00
2022-09-03 15:18:56 +02:00
2022-09-03 20:27:34 +02:00
2022-12-20 14:02:37 +01:00
2022-06-15 04:56:37 +02:00
2022-02-22 05:46:06 +01:00
2022-05-06 05:19:49 +02:00
2022-06-06 09:09:34 +02:00
2022-07-30 13:17:28 +02:00
2022-12-04 23:02:07 +01:00
2022-06-15 04:56:37 +02:00
2022-07-10 17:20:15 +02:00
2022-07-10 17:20:15 +02:00
2022-10-27 10:23:09 +02:00
2022-12-07 00:57:25 +01:00
2022-04-13 09:30:36 +02:00
2023-01-27 23:13:16 +01:00
2022-03-23 23:45:38 +01:00
2022-03-03 09:57:53 +01:00
2022-03-16 14:12:49 +02:00
2022-10-27 10:23:09 +02:00
2023-01-30 18:42:49 +01:00
2022-04-29 13:38:20 +02:00
2022-09-15 19:35:30 +02:00
2022-09-13 22:59:30 +02:00
2022-06-01 13:52:38 -04:00
2022-03-16 14:12:49 +02:00
2022-11-14 10:04:16 +08:00
2022-11-19 00:25:47 +01:00
2022-12-01 11:21:14 +01:00
2022-12-08 13:03:42 +01:00
2023-01-27 14:57:28 +01:00
2022-10-22 19:35:44 +02:00
2023-01-27 19:50:10 +01:00
2023-01-19 12:33:55 +01:00
2022-04-13 10:25:08 +02:00
2022-12-19 16:24:25 +01:00
2022-03-12 15:10:28 +08:00
2022-07-19 12:27:17 +02:00
2022-09-03 15:41:44 +02:00
2022-09-03 15:41:44 +02:00
2022-09-03 15:41:44 +02:00
2022-11-15 13:42:58 +01:00
2022-09-15 09:13:29 -03:00
2022-07-19 12:27:17 +02:00
2022-07-30 13:17:28 +02:00
2023-01-17 22:43:39 +01:00
2022-03-14 23:01:08 +01:00
2022-05-06 05:19:49 +02:00
2022-06-15 04:56:37 +02:00
2022-10-13 10:19:13 +02:00
2023-02-11 10:36:56 +01:00
2022-09-27 19:35:49 +02:00
2022-04-15 18:57:36 +02:00
2022-11-19 00:25:47 +01:00
2022-11-19 00:25:47 +01:00
2022-09-03 15:41:44 +02:00
2022-11-05 11:50:36 +01:00
2022-03-16 14:12:49 +02:00
2022-10-04 11:55:03 +02:00
2022-10-13 10:19:13 +02:00
2022-06-15 04:56:37 +02:00
2022-10-29 17:11:14 +02:00
2022-06-15 04:56:37 +02:00
2022-03-23 23:45:38 +01:00
2022-06-15 04:56:37 +02:00
2022-02-22 05:52:44 +01:00
2022-09-10 22:11:38 +02:00
2022-05-08 10:05:19 +05:30
2022-06-15 04:56:37 +02:00
2022-05-02 23:47:24 +02:00
2022-06-15 04:56:37 +02:00
2022-05-06 05:19:50 +02:00
2023-01-17 23:20:00 +01:00
2022-11-09 17:39:00 +01:00
2022-06-01 13:52:38 -04:00
2022-04-23 21:51:55 +02:00
2022-03-16 14:12:49 +02:00
2022-06-15 04:56:37 +02:00
2023-01-17 22:55:14 +01:00
2022-04-12 15:20:10 +05:30
2023-02-07 15:11:49 +01:00
2022-12-01 11:21:14 +01:00
2022-06-15 04:56:37 +02:00
2022-03-16 14:12:49 +02:00
2022-09-03 15:41:44 +02:00
2022-03-16 14:12:49 +02:00
2022-06-15 04:56:37 +02:00
2022-06-15 04:56:37 +02:00
2022-02-21 00:35:11 +01:00
2022-10-21 20:11:14 +02:00
2022-05-04 20:51:45 +02:00
2022-04-05 12:03:36 +02:00
2022-10-13 10:19:13 +02:00
2022-04-29 22:27:39 +02:00
2022-02-20 23:15:34 +01:00
2022-05-05 19:07:10 +02:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-06-15 04:56:37 +02:00
2022-05-06 05:19:50 +02:00
2022-05-06 05:19:50 +02:00
2022-09-03 15:41:44 +02:00
2022-06-15 04:56:37 +02:00
2023-01-17 10:10:52 +08:00
2023-01-17 10:10:52 +08:00
2022-06-15 04:56:37 +02:00
2022-03-04 18:30:10 +01:00
2023-01-03 17:18:56 +01:00
2023-01-03 17:29:13 +01:00
2022-04-14 22:37:21 +02:00
2022-06-15 04:56:37 +02:00
2022-03-23 23:45:38 +01:00
2022-03-16 14:12:49 +02:00
2022-03-16 14:12:49 +02:00
2022-11-04 08:50:04 +01:00
2022-09-03 15:41:44 +02:00
2022-06-15 04:56:37 +02:00
2022-11-09 17:39:00 +01:00
2023-01-27 23:01:52 +01:00
2022-07-07 17:52:32 +02:00
2022-06-15 04:56:37 +02:00
2022-10-10 02:58:39 +02:00
2022-06-01 20:07:47 -05:00
2023-01-10 11:52:02 +01:00
2023-01-24 22:02:45 +01:00
2022-03-16 14:12:49 +02:00
2023-01-15 12:32:21 -03:00
2022-09-03 15:41:44 +02:00
2022-04-02 13:14:00 +02:00
2022-06-15 04:56:37 +02:00
2022-03-23 23:45:38 +01:00
2022-07-22 08:15:04 +08:00
2023-01-28 18:19:53 +01:00
2022-09-03 15:41:44 +02:00
2023-01-30 08:48:58 +08:00
2022-07-04 19:49:31 +02:00
2022-06-15 04:56:37 +02:00
2022-03-25 22:46:35 +01:00
2022-02-24 12:56:49 +01:00
2022-10-27 10:23:24 +02:00
2022-05-06 05:19:50 +02:00
2022-12-05 21:08:02 +01:00
2022-12-20 14:02:37 +01:00
2022-02-24 21:46:13 +01:00
2022-06-01 20:09:17 -05:00
2022-06-01 13:52:38 -04:00
2023-01-27 23:01:52 +01:00
2022-06-15 04:56:37 +02:00
2022-03-01 12:36:35 +01:00
2022-03-23 23:45:38 +01:00
2022-06-15 04:56:37 +02:00
2022-04-08 18:54:00 +02:00
2023-02-11 10:36:56 +01:00
2022-09-03 15:41:44 +02:00
2022-09-03 15:41:44 +02:00
2022-12-07 12:23:16 +01:00
2022-09-03 15:41:44 +02:00
2023-02-07 09:51:37 +08:00
2022-06-15 04:56:37 +02:00
2022-04-08 18:54:00 +02:00
2022-07-12 16:32:30 +02:00
2022-04-29 22:27:39 +02:00
2022-04-01 21:29:01 +02:00
2022-06-15 04:56:37 +02:00
2022-07-28 16:17:23 +02:00
2022-09-14 21:49:00 +02:00
2022-04-21 22:42:20 +02:00
2023-01-17 17:46:58 +01:00
2022-07-18 13:08:39 +02:00
2022-08-13 15:22:14 +02:00
2023-01-17 18:49:31 +01:00
2023-01-17 17:46:58 +01:00
2023-01-17 17:46:58 +01:00
2023-01-17 17:46:58 +01:00
2023-01-17 17:46:57 +01:00
2023-01-17 17:46:57 +01:00
2022-10-20 12:13:37 +02:00