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-15 02:52:23 +07:00
2026-10-13 18:27:38 +07:00
2026-10-18 21:56:46 +07:00
2026-10-18 22:26:54 +07:00
2026-10-15 19:16:47 +07:00
2026-10-13 18:27:38 +07:00
2026-10-14 20:20:44 +07:00
2026-10-13 18:27:38 +07:00
2026-10-18 00:46:51 +07:00
2026-10-15 16:00:02 +07:00
2026-10-13 18:27:38 +07:00
2026-10-15 15:59:38 +07:00
2026-10-17 16:18:25 +07:00
2026-10-13 18:27:38 +07:00
2026-10-13 18:27:38 +07:00
2026-10-15 16:00:02 +07:00
2026-10-14 23:04:27 +07:00
2026-10-13 22:58:00 +07:00
2026-10-14 20:20:44 +07:00
2026-10-13 22:58:00 +07:00
2026-10-17 16:18:25 +07:00
2026-10-17 16:18:25 +07:00
2026-10-13 18:27:38 +07:00
2026-10-13 18:27:38 +07:00
2026-10-15 16:00:15 +07:00
2026-10-15 02:52:15 +07:00
2026-10-13 18:27:38 +07:00
2026-10-19 00:59:24 +07:00
2026-10-14 23:04:27 +07:00
2026-10-19 00:59:24 +07:00
2026-10-18 21:56:46 +07:00
2026-10-13 18:27:38 +07:00
2026-10-17 16:18:25 +07:00
2026-10-19 00:48:05 +07:00
2026-10-18 03:11:44 +07:00
2026-10-13 18:27:38 +07:00
2026-10-13 18:27:38 +07:00
2026-10-15 02:52:15 +07:00
2026-10-13 18:27:38 +07:00
2026-10-13 18:27:38 +07:00
2026-10-15 15:59:38 +07:00
2026-10-14 23:04:07 +07:00
2026-10-13 18:27:38 +07:00
2026-10-17 16:18:25 +07:00
2026-10-15 02:51:53 +07:00
2026-10-17 16:18:25 +07:00
2026-10-19 00:48:31 +07:00
2026-10-15 15:59:38 +07:00
2026-10-15 00:28:16 +07:00
2026-10-13 18:27:38 +07:00
2026-10-18 03:11:33 +07:00
2026-10-18 21:54:05 +07:00
2026-10-15 16:00:34 +07:00
2026-10-18 00:46:52 +07:00
2026-10-18 04:09:15 +07:00
2026-10-17 16:18:35 +07:00
2026-10-17 16:18:25 +07:00
2026-10-10 17:04:09 +07:00
2026-10-18 12:41:28 +07:00
2026-10-17 22:27:06 +07:00
2026-10-18 22:39:31 +07:00
2026-10-15 16:00:15 +07:00
2026-10-14 23:04:56 +07:00
2026-10-06 21:59:18 +07:00
2026-10-10 23:21:41 +07:00
2026-10-17 16:18:25 +07:00
2026-10-10 17:19:35 +07:00
2026-10-10 23:21:41 +07:00
2026-10-17 16:18:30 +07:00
2026-10-11 14:32:03 +07:00
2026-10-18 03:10:53 +07:00
2026-10-17 22:27:06 +07:00
2026-10-17 22:27:06 +07:00
2026-10-10 23:21:41 +07:00
2026-10-15 19:16:17 +07:00
2026-10-11 16:14:55 +07:00
2026-10-10 17:19:35 +07:00
2026-10-09 18:08:12 +07:00
2026-10-18 22:42:38 +07:00
2026-10-13 18:27:38 +07:00
2026-10-18 03:11:20 +07:00
2026-10-13 18:27:38 +07:00
2026-10-15 15:59:38 +07:00
2026-10-18 22:40:10 +07:00
2026-10-18 19:24:39 +07:00
2026-10-18 22:40:10 +07:00
2026-10-18 22:40:10 +07:00
2026-10-17 16:18:32 +07:00
2026-10-14 23:04:56 +07:00
2026-10-14 23:04:56 +07:00
2026-10-18 00:46:51 +07:00
2026-10-19 00:56:52 +07:00
2026-10-19 00:48:31 +07:00
2026-10-13 18:27:38 +07:00
2026-10-13 18:27:38 +07:00
2026-10-17 16:18:25 +07:00
2026-10-18 00:46:52 +07:00
2026-10-14 20:20:44 +07:00
2026-10-17 16:18:25 +07:00
2026-10-14 23:04:46 +07:00
2026-10-15 15:59:38 +07:00
2026-10-19 00:37:42 +07:00
2026-10-15 02:51:53 +07:00
2026-10-19 00:37:42 +07:00
2026-10-13 22:58:00 +07:00
2026-10-07 00:16:16 +07:00