zarzet
34a004f96f
refactor(analysis): move the pure FFmpeg builders and parsers to a service
...
The audio analysis card mixed FFmpeg argument builders, astats and
metadata parsers and the spectral cutoff estimator with widget state.
Move them verbatim into lib/services/audio_analysis_ffmpeg.dart so the
runner and cache can depend on them without importing a widget.
The parsers return ChannelAnalysisStats, so the two public result
models (AudioAnalysisData, ChannelAnalysisStats) move verbatim from the
widget's models part into lib/services/audio_analysis_models.dart. The
per-run private records stay in the part for now.
Only two names change: the unsupported-codec exception loses its
leading underscore because the widget and the future runner live in
different libraries, and the in-class _parseChannelStats becomes the
top-level parseChannelStats. The widget re-exports both service files,
so tests and importers are unchanged.
2026-10-19 00:59:24 +07:00
..
2026-10-19 00:15:48 +07:00
2026-10-02 17:03:07 +07:00
2026-10-08 15:22:45 +07:00
2026-10-06 23:25:39 +07:00
2026-07-02 01:24:20 +07:00
2026-09-25 18:05:40 +07:00
2026-10-06 22:00:46 +07:00
2026-10-07 04:19:14 +07:00
2026-10-04 01:41:37 +07:00
2026-10-19 00:59:24 +07:00
2026-09-17 02:59:22 +07:00
2026-10-19 00:59:24 +07:00
2026-10-12 12:11:06 +07:00
2026-10-17 16:18:32 +07:00
2026-10-12 12:11:27 +07:00
2026-10-06 23:28:01 +07:00
2026-10-17 16:18:38 +07:00
2026-10-04 03:55:24 +07:00
2026-10-18 22:12:29 +07:00
2026-10-19 00:15:48 +07:00
2026-10-02 14:54:47 +07:00
2026-10-19 00:37:42 +07:00
2026-10-07 03:03:44 +07:00
2026-10-10 02:16:22 +07:00
2026-10-19 00:48:31 +07:00
2026-10-06 22:00:15 +07:00
2026-10-06 21:59:53 +07:00
2026-10-05 17:53:19 +07:00
2026-09-14 22:58:27 +07:00
2026-08-11 16:20:03 +07:00
2026-10-06 23:28:40 +07:00
2026-10-10 16:59:06 +07:00
2026-10-19 00:37:42 +07:00
2026-10-03 02:14:11 +07:00
2026-10-08 20:30:24 +07:00
2026-09-28 11:45:10 +07:00
2026-10-19 00:15:48 +07:00
2026-10-05 02:31:01 +07:00
2026-10-19 00:15:48 +07:00
2026-10-19 00:15:48 +07:00
2026-10-12 12:11:06 +07:00
2026-10-06 21:59:53 +07:00
2026-09-20 12:20:24 +07:00
2026-10-09 18:07:49 +07:00
2026-10-09 18:07:49 +07:00
2026-10-12 12:11:06 +07:00
2026-10-06 13:09:26 +07:00
2026-10-08 17:25:11 +07:00
2026-09-30 20:58:18 +07:00
2026-10-19 00:15:48 +07:00
2026-10-18 00:47:21 +07:00
2026-10-08 20:30:24 +07:00
2026-10-05 03:28:26 +07:00
2026-10-06 00:04:14 +07:00
2026-10-06 23:28:20 +07:00
2026-10-19 00:37:42 +07:00
2026-10-06 13:09:26 +07:00
2026-10-19 00:37:42 +07:00
2026-10-05 03:28:26 +07:00
2026-10-06 00:04:14 +07:00
2026-10-05 03:28:26 +07:00
2026-10-06 13:08:12 +07:00
2026-10-11 14:34:04 +07:00
2026-10-18 23:28:33 +07:00
2026-10-06 21:59:53 +07:00
2026-10-18 23:28:33 +07:00
2026-10-18 23:28:33 +07:00
2026-10-06 23:28:20 +07:00
2026-10-07 04:19:14 +07:00
2026-10-18 22:12:29 +07:00
2026-10-07 04:31:52 +07:00
2026-10-07 04:19:14 +07:00
2026-10-19 00:37:42 +07:00
2026-10-18 23:28:33 +07:00
2026-10-10 02:16:32 +07:00
2026-10-18 23:28:33 +07:00
2026-10-07 18:46:05 +07:00
2026-10-07 03:15:57 +07:00
2026-10-08 22:30:04 +07:00
2026-10-05 03:28:48 +07:00
2026-10-05 03:28:48 +07:00
2026-09-27 00:00:01 +07:00
2026-10-15 17:15:32 +07:00
2026-10-14 23:05:26 +07:00
2026-10-17 16:18:41 +07:00
2026-10-19 00:37:42 +07:00
2026-10-06 21:59:53 +07:00
2026-10-19 00:15:48 +07:00
2026-10-06 21:59:53 +07:00
2026-10-05 03:28:14 +07:00
2026-10-06 13:08:13 +07:00
2026-10-19 00:37:42 +07:00
2026-09-20 12:20:24 +07:00
2026-10-04 01:35:48 +07:00
2026-10-19 00:15:48 +07:00
2026-10-19 00:15:48 +07:00
2026-10-18 03:11:20 +07:00
2026-10-17 16:18:38 +07:00
2026-10-18 23:53:38 +07:00
2026-10-13 22:58:00 +07:00
2026-10-18 23:53:44 +07:00
2026-10-07 03:06:00 +07:00
2026-09-28 12:13:17 +07:00
2026-10-17 11:45:53 +07:00
2026-10-06 13:07:57 +07:00
2026-10-11 14:34:04 +07:00
2026-10-03 04:27:47 +07:00
2026-10-06 13:09:54 +07:00
2026-10-10 23:22:41 +07:00
2026-10-10 23:22:41 +07:00
2026-10-03 04:27:47 +07:00
2026-10-11 16:14:01 +07:00
2026-10-17 16:18:41 +07:00
2026-10-17 16:18:41 +07:00
2026-10-06 23:27:07 +07:00
2026-10-19 00:15:48 +07:00
2026-10-19 00:15:48 +07:00
2026-10-18 23:53:44 +07:00
2026-10-07 23:20:27 +07:00
2026-10-17 16:18:30 +07:00
2026-10-05 02:31:47 +07:00
2026-09-06 21:03:57 +07:00
2026-10-15 00:28:17 +07:00
2026-10-18 23:53:44 +07:00
2026-10-06 22:00:15 +07:00
2026-10-06 21:58:57 +07:00
2026-09-25 17:12:21 +07:00
2026-10-19 00:56:52 +07:00
2026-10-18 04:09:16 +07:00
2026-10-19 00:56:52 +07:00
2026-08-31 01:49:49 +07:00
2026-09-21 17:28:18 +07:00
2026-10-06 13:07:58 +07:00
2026-10-09 13:49:03 +07:00
2026-10-07 18:46:05 +07:00
2026-10-05 01:55:08 +07:00
2026-09-26 15:02:46 +07:00
2026-10-18 04:09:16 +07:00
2026-09-21 17:28:18 +07:00
2026-09-06 16:03:46 +07:00
2026-10-06 21:59:54 +07:00