ffmpeg-normalize 1.32.5__py3-none-any.whl → 1.33.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,7 +52,12 @@ def create_parser() -> argparse.ArgumentParser:
52
52
  )
53
53
 
54
54
  group_io = parser.add_argument_group("File Input/output")
55
- group_io.add_argument("input", nargs="+", help="Input media file(s)")
55
+ group_io.add_argument("input", nargs="*", help="Input media file(s)")
56
+ group_io.add_argument(
57
+ "--input-list",
58
+ type=str,
59
+ help="Path to a text file containing a line-separated list of input files",
60
+ )
56
61
  group_io.add_argument(
57
62
  "-o",
58
63
  "--output",
@@ -583,7 +588,18 @@ def main() -> None:
583
588
  "Will apply default file naming for the remaining ones."
584
589
  )
585
590
 
586
- for index, input_file in enumerate(cli_args.input):
591
+ # Collect input files from positional args and --input-list
592
+ input_files = list(cli_args.input) if cli_args.input else []
593
+ if cli_args.input_list:
594
+ if not os.path.exists(cli_args.input_list):
595
+ error(f"Input list file '{cli_args.input_list}' does not exist")
596
+ with open(cli_args.input_list, "r") as f:
597
+ input_files.extend([line.strip() for line in f if line.strip()])
598
+
599
+ if not input_files:
600
+ error("No input files specified. Use positional arguments or --input-list.")
601
+
602
+ for index, input_file in enumerate(input_files):
587
603
  if cli_args.output is not None and index < len(cli_args.output):
588
604
  if cli_args.output_folder and cli_args.output_folder != "normalized":
589
605
  _logger.warning(
@@ -462,7 +462,7 @@ class AudioStream(MediaStream):
462
462
  )
463
463
  self.loudness_statistics["ebu_pass1"]["input_i"] = 0
464
464
 
465
- will_use_dynamic_mode = self.media_file.ffmpeg_normalize.dynamic
465
+ will_use_dynamic_mode: bool = self.media_file.ffmpeg_normalize.dynamic
466
466
 
467
467
  if self.media_file.ffmpeg_normalize.keep_loudness_range_target:
468
468
  _logger.debug(
@@ -1 +1 @@
1
- __version__ = "1.32.5"
1
+ __version__ = "1.33.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ffmpeg_normalize
3
- Version: 1.32.5
3
+ Version: 1.33.0
4
4
  Summary: Normalize audio via ffmpeg
5
5
  Home-page: https://github.com/slhck/ffmpeg-normalize
6
6
  Author: Werner Robitza
@@ -48,7 +48,7 @@ Dynamic: summary
48
48
  ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/slhck/ffmpeg-normalize/python-package.yml)
49
49
 
50
50
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
51
- [![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat-square)](#contributors-)
51
+ [![All Contributors](https://img.shields.io/badge/all_contributors-22-orange.svg?style=flat-square)](#contributors-)
52
52
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
53
53
 
54
54
  A utility for batch-normalizing audio using ffmpeg.
@@ -109,6 +109,10 @@ The only reason this project exists in its current form is because [@benjaoming]
109
109
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/HighMans"><img src="https://avatars.githubusercontent.com/u/42877729?v=4?s=100" width="100px;" alt="HighMans"/><br /><sub><b>HighMans</b></sub></a><br /><a href="https://github.com/slhck/ffmpeg-normalize/commits?author=HighMans" title="Code">💻</a></td>
110
110
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/kanjieater"><img src="https://avatars.githubusercontent.com/u/32607317?v=4?s=100" width="100px;" alt="kanjieater"/><br /><sub><b>kanjieater</b></sub></a><br /><a href="#ideas-kanjieater" title="Ideas, Planning, & Feedback">🤔</a></td>
111
111
  <td align="center" valign="top" width="14.28%"><a href="https://ahmetsait.com/"><img src="https://avatars.githubusercontent.com/u/8372246?v=4?s=100" width="100px;" alt="Ahmet Sait"/><br /><sub><b>Ahmet Sait</b></sub></a><br /><a href="https://github.com/slhck/ffmpeg-normalize/commits?author=ahmetsait" title="Code">💻</a></td>
112
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/georgev93"><img src="https://avatars.githubusercontent.com/u/39860568?v=4?s=100" width="100px;" alt="georgev93"/><br /><sub><b>georgev93</b></sub></a><br /><a href="https://github.com/slhck/ffmpeg-normalize/commits?author=georgev93" title="Code">💻</a></td>
113
+ </tr>
114
+ <tr>
115
+ <td align="center" valign="top" width="14.28%"><a href="https://davidbern.com/"><img src="https://avatars.githubusercontent.com/u/371066?v=4?s=100" width="100px;" alt="David Bern"/><br /><sub><b>David Bern</b></sub></a><br /><a href="https://github.com/slhck/ffmpeg-normalize/commits?author=odie5533" title="Code">💻</a></td>
112
116
  </tr>
113
117
  </tbody>
114
118
  <tfoot>
@@ -131,6 +135,35 @@ The only reason this project exists in its current form is because [@benjaoming]
131
135
  # Changelog
132
136
 
133
137
 
138
+ ## v1.33.0 (2025-08-22)
139
+
140
+ * Add fixed ffmpeg version for CI.
141
+
142
+ * Add input list to docs.
143
+
144
+ * Docs: add @odie5533 as a contributor.
145
+
146
+ * Add --input-list option to read input files from a text file.
147
+
148
+ * Add initial API-based ground truth tests.
149
+
150
+ ... with Claude Code
151
+
152
+ * Ci: skip ci tests for commits that change only markdown files (#291)
153
+
154
+ * Fix tests with unclean files, fixes #290.
155
+
156
+ * Docs: add @georgev93 as a contributor.
157
+
158
+ * Changing test file structure to ensure pytest discoverability (#289)
159
+
160
+ * Fix dockerfile.
161
+
162
+ * Remove johnvansickle build.
163
+
164
+ * Fix type error.
165
+
166
+
134
167
  ## v1.32.5 (2025-06-22)
135
168
 
136
169
  * Fix classifier.
@@ -1,16 +1,16 @@
1
1
  ffmpeg_normalize/__init__.py,sha256=aAhlk93ZE6SQcWUDzZQcw9vJh0bJcKEUNFGhVc5ZIto,453
2
- ffmpeg_normalize/__main__.py,sha256=LMj4Xl140ZKe5naY36fAwzz72lK59srzkVlbb0KzkcQ,19955
2
+ ffmpeg_normalize/__main__.py,sha256=rjlrWV1qe_Y-jLOK-zUlqVF-f2WrNVn-I0umQ2WCxCw,20635
3
3
  ffmpeg_normalize/_cmd_utils.py,sha256=1JspVpguAPsq7DqvyvjUNzHhVv8J3X93xNOMwito_jY,5284
4
4
  ffmpeg_normalize/_errors.py,sha256=brTQ4osJ4fTA8wnyMPVVYfGwJ0wqeShRFydTEwi_VEY,48
5
5
  ffmpeg_normalize/_ffmpeg_normalize.py,sha256=_ZK2P3kAM0mnxY3iCYH61T6jhMndTdO2Rqh03vJo7rY,11852
6
6
  ffmpeg_normalize/_logger.py,sha256=3Ap4Fxg7xGrzz7h4IGuNEf0KKstx0Rq_eLbHPrHzcrI,1841
7
7
  ffmpeg_normalize/_media_file.py,sha256=6QYGIlNFpxojYjof_3y1HoU8SgsVnMor2y4hx-22CVY,26323
8
- ffmpeg_normalize/_streams.py,sha256=tg4D5UMBFpPFxK5x-HG6mwgqkm9Z6H1kH14OlaCXM-A,21590
9
- ffmpeg_normalize/_version.py,sha256=3-cRJ4Ek24WHmy6XgzNIA9-HcWIXti2IvNQAO_k_8aM,23
8
+ ffmpeg_normalize/_streams.py,sha256=hYqQiiVMJd-TrreHbrQertUnc4lQ9BPvBmDPKSr4o70,21596
9
+ ffmpeg_normalize/_version.py,sha256=PQmKNaZwfCLnGbEBurlZ0HGeiqfKOPJF3XmjISAYm44,23
10
10
  ffmpeg_normalize/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- ffmpeg_normalize-1.32.5.dist-info/licenses/LICENSE,sha256=mw5RQE6v4UXG_d2gYIQw9rq6jYWQCtzIs3fSm5sBSrs,1076
12
- ffmpeg_normalize-1.32.5.dist-info/METADATA,sha256=h9Zwh0lWvAikBr7tESdT7daRRGcVMeG7osHy0AC5DWA,33456
13
- ffmpeg_normalize-1.32.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
14
- ffmpeg_normalize-1.32.5.dist-info/entry_points.txt,sha256=X0EC5ptb0iGOxrk3Aa65dVQtvUixngLd_2-iAtSixdc,68
15
- ffmpeg_normalize-1.32.5.dist-info/top_level.txt,sha256=wnUkr17ckPrrU1JsxZQiXbEBUnHKsC64yck-MemEBuI,17
16
- ffmpeg_normalize-1.32.5.dist-info/RECORD,,
11
+ ffmpeg_normalize-1.33.0.dist-info/licenses/LICENSE,sha256=mw5RQE6v4UXG_d2gYIQw9rq6jYWQCtzIs3fSm5sBSrs,1076
12
+ ffmpeg_normalize-1.33.0.dist-info/METADATA,sha256=LSxwVuPE1gc0fOuKReT7GdKUrUYtKkYMnDZqL1_S-UI,34714
13
+ ffmpeg_normalize-1.33.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
14
+ ffmpeg_normalize-1.33.0.dist-info/entry_points.txt,sha256=X0EC5ptb0iGOxrk3Aa65dVQtvUixngLd_2-iAtSixdc,68
15
+ ffmpeg_normalize-1.33.0.dist-info/top_level.txt,sha256=wnUkr17ckPrrU1JsxZQiXbEBUnHKsC64yck-MemEBuI,17
16
+ ffmpeg_normalize-1.33.0.dist-info/RECORD,,