node-av 1.1.0 → 1.2.0

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.
Files changed (134) hide show
  1. package/README.md +51 -38
  2. package/dist/api/bitstream-filter.d.ts +180 -123
  3. package/dist/api/bitstream-filter.js +180 -125
  4. package/dist/api/bitstream-filter.js.map +1 -1
  5. package/dist/api/decoder.d.ts +279 -132
  6. package/dist/api/decoder.js +285 -142
  7. package/dist/api/decoder.js.map +1 -1
  8. package/dist/api/encoder.d.ts +246 -162
  9. package/dist/api/encoder.js +272 -208
  10. package/dist/api/encoder.js.map +1 -1
  11. package/dist/api/filter-presets.d.ts +690 -94
  12. package/dist/api/filter-presets.js +686 -102
  13. package/dist/api/filter-presets.js.map +1 -1
  14. package/dist/api/filter.d.ts +249 -213
  15. package/dist/api/filter.js +252 -242
  16. package/dist/api/filter.js.map +1 -1
  17. package/dist/api/hardware.d.ts +224 -117
  18. package/dist/api/hardware.js +380 -214
  19. package/dist/api/hardware.js.map +1 -1
  20. package/dist/api/index.d.ts +3 -3
  21. package/dist/api/index.js +1 -1
  22. package/dist/api/index.js.map +1 -1
  23. package/dist/api/io-stream.d.ts +65 -61
  24. package/dist/api/io-stream.js +43 -46
  25. package/dist/api/io-stream.js.map +1 -1
  26. package/dist/api/media-input.d.ts +242 -140
  27. package/dist/api/media-input.js +205 -103
  28. package/dist/api/media-input.js.map +1 -1
  29. package/dist/api/media-output.d.ts +206 -128
  30. package/dist/api/media-output.js +210 -128
  31. package/dist/api/media-output.js.map +1 -1
  32. package/dist/api/pipeline.d.ts +168 -38
  33. package/dist/api/pipeline.js +238 -14
  34. package/dist/api/pipeline.js.map +1 -1
  35. package/dist/api/types.d.ts +21 -187
  36. package/dist/api/utils.d.ts +1 -2
  37. package/dist/api/utils.js +9 -0
  38. package/dist/api/utils.js.map +1 -1
  39. package/dist/lib/audio-fifo.d.ts +127 -170
  40. package/dist/lib/audio-fifo.js +130 -173
  41. package/dist/lib/audio-fifo.js.map +1 -1
  42. package/dist/lib/binding.js +5 -0
  43. package/dist/lib/binding.js.map +1 -1
  44. package/dist/lib/bitstream-filter-context.d.ts +139 -184
  45. package/dist/lib/bitstream-filter-context.js +139 -188
  46. package/dist/lib/bitstream-filter-context.js.map +1 -1
  47. package/dist/lib/bitstream-filter.d.ts +68 -54
  48. package/dist/lib/bitstream-filter.js +68 -54
  49. package/dist/lib/bitstream-filter.js.map +1 -1
  50. package/dist/lib/codec-context.d.ts +316 -380
  51. package/dist/lib/codec-context.js +316 -381
  52. package/dist/lib/codec-context.js.map +1 -1
  53. package/dist/lib/codec-parameters.d.ts +160 -170
  54. package/dist/lib/codec-parameters.js +162 -172
  55. package/dist/lib/codec-parameters.js.map +1 -1
  56. package/dist/lib/codec-parser.d.ts +91 -104
  57. package/dist/lib/codec-parser.js +92 -103
  58. package/dist/lib/codec-parser.js.map +1 -1
  59. package/dist/lib/codec.d.ts +264 -281
  60. package/dist/lib/codec.js +268 -285
  61. package/dist/lib/codec.js.map +1 -1
  62. package/dist/lib/dictionary.d.ts +149 -203
  63. package/dist/lib/dictionary.js +158 -212
  64. package/dist/lib/dictionary.js.map +1 -1
  65. package/dist/lib/error.d.ts +96 -130
  66. package/dist/lib/error.js +98 -128
  67. package/dist/lib/error.js.map +1 -1
  68. package/dist/lib/filter-context.d.ts +284 -218
  69. package/dist/lib/filter-context.js +290 -227
  70. package/dist/lib/filter-context.js.map +1 -1
  71. package/dist/lib/filter-graph.d.ts +251 -292
  72. package/dist/lib/filter-graph.js +253 -294
  73. package/dist/lib/filter-graph.js.map +1 -1
  74. package/dist/lib/filter-inout.d.ts +87 -95
  75. package/dist/lib/filter-inout.js +87 -95
  76. package/dist/lib/filter-inout.js.map +1 -1
  77. package/dist/lib/filter.d.ts +93 -111
  78. package/dist/lib/filter.js +93 -111
  79. package/dist/lib/filter.js.map +1 -1
  80. package/dist/lib/format-context.d.ts +320 -428
  81. package/dist/lib/format-context.js +313 -385
  82. package/dist/lib/format-context.js.map +1 -1
  83. package/dist/lib/frame.d.ts +262 -405
  84. package/dist/lib/frame.js +263 -408
  85. package/dist/lib/frame.js.map +1 -1
  86. package/dist/lib/hardware-device-context.d.ts +149 -203
  87. package/dist/lib/hardware-device-context.js +149 -203
  88. package/dist/lib/hardware-device-context.js.map +1 -1
  89. package/dist/lib/hardware-frames-context.d.ts +170 -180
  90. package/dist/lib/hardware-frames-context.js +171 -181
  91. package/dist/lib/hardware-frames-context.js.map +1 -1
  92. package/dist/lib/index.d.ts +2 -1
  93. package/dist/lib/index.js +2 -2
  94. package/dist/lib/index.js.map +1 -1
  95. package/dist/lib/input-format.d.ts +89 -117
  96. package/dist/lib/input-format.js +89 -117
  97. package/dist/lib/input-format.js.map +1 -1
  98. package/dist/lib/io-context.d.ts +209 -241
  99. package/dist/lib/io-context.js +220 -252
  100. package/dist/lib/io-context.js.map +1 -1
  101. package/dist/lib/log.d.ts +85 -119
  102. package/dist/lib/log.js +85 -122
  103. package/dist/lib/log.js.map +1 -1
  104. package/dist/lib/native-types.d.ts +117 -106
  105. package/dist/lib/native-types.js +0 -7
  106. package/dist/lib/native-types.js.map +1 -1
  107. package/dist/lib/option.d.ts +284 -241
  108. package/dist/lib/option.js +309 -249
  109. package/dist/lib/option.js.map +1 -1
  110. package/dist/lib/output-format.d.ts +77 -101
  111. package/dist/lib/output-format.js +77 -101
  112. package/dist/lib/output-format.js.map +1 -1
  113. package/dist/lib/packet.d.ts +172 -240
  114. package/dist/lib/packet.js +172 -241
  115. package/dist/lib/packet.js.map +1 -1
  116. package/dist/lib/rational.d.ts +0 -2
  117. package/dist/lib/rational.js +0 -2
  118. package/dist/lib/rational.js.map +1 -1
  119. package/dist/lib/software-resample-context.d.ts +241 -325
  120. package/dist/lib/software-resample-context.js +242 -326
  121. package/dist/lib/software-resample-context.js.map +1 -1
  122. package/dist/lib/software-scale-context.d.ts +129 -173
  123. package/dist/lib/software-scale-context.js +131 -175
  124. package/dist/lib/software-scale-context.js.map +1 -1
  125. package/dist/lib/stream.d.ts +87 -197
  126. package/dist/lib/stream.js +87 -197
  127. package/dist/lib/stream.js.map +1 -1
  128. package/dist/lib/utilities.d.ts +372 -181
  129. package/dist/lib/utilities.js +373 -182
  130. package/dist/lib/utilities.js.map +1 -1
  131. package/install/check.js +0 -1
  132. package/package.json +21 -12
  133. package/release_notes.md +43 -59
  134. package/CHANGELOG.md +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"io-context.js","sourceRoot":"","sources":["../../src/lib/io-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"io-context.js","sourceRoot":"","sources":["../../src/lib/io-context.ts"],"names":[],"mappings":"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"}
package/dist/lib/log.d.ts CHANGED
@@ -1,201 +1,167 @@
1
1
  import type { AVLogLevel } from '../constants/constants.js';
2
2
  import type { LogOptions } from './types.js';
3
3
  /**
4
- * FFmpeg logging system control.
4
+ * FFmpeg logging control and configuration.
5
5
  *
6
- * Controls FFmpeg's global logging behavior including log levels and message capture.
7
- * Provides direct access to FFmpeg's logging system with options for performance optimization.
8
- * FFmpeg can generate thousands of log messages per second, so filtering is important.
6
+ * Provides control over FFmpeg's internal logging system.
7
+ * Allows setting log levels, custom callbacks, and formatting options.
8
+ * Essential for debugging, monitoring, and error tracking in FFmpeg operations.
9
9
  *
10
- * Direct mapping to FFmpeg's logging API (av_log_*).
10
+ * Direct mapping to FFmpeg's logging API.
11
11
  *
12
12
  * @example
13
13
  * ```typescript
14
- * import { Log, AV_LOG_WARNING, AV_LOG_ERROR, AV_LOG_QUIET } from 'node-av';
14
+ * import { Log } from 'node-av';
15
+ * import { AV_LOG_ERROR, AV_LOG_WARNING, AV_LOG_INFO, AV_LOG_DEBUG } from 'node-av/constants';
15
16
  *
16
- * // Set log level (simple, no performance impact)
17
- * Log.setLevel(AV_LOG_WARNING);
17
+ * // Set log level
18
+ * Log.setLevel(AV_LOG_WARNING); // Only show warnings and errors
18
19
  *
19
- * // Capture errors only (minimal performance impact)
20
- * Log.setCallback((level, message) => {
21
- * console.error(`FFmpeg Error: ${message}`);
22
- * }, { maxLevel: AV_LOG_ERROR });
20
+ * // Get current log level
21
+ * const level = Log.getLevel();
22
+ * console.log(`Current log level: ${level}`);
23
23
  *
24
- * // Non-blocking callback with no performance impact
24
+ * // Custom log callback
25
25
  * Log.setCallback((level, message) => {
26
- * myLogger.log(level, message);
26
+ * if (level <= AV_LOG_ERROR) {
27
+ * console.error(`FFmpeg Error: ${message}`);
28
+ * } else if (level <= AV_LOG_WARNING) {
29
+ * console.warn(`FFmpeg Warning: ${message}`);
30
+ * } else {
31
+ * console.log(`FFmpeg: ${message}`);
32
+ * }
33
+ * }, {
34
+ * printPrefix: true,
35
+ * skipRepeated: true
27
36
  * });
28
37
  *
29
- * // Reset to default logging
38
+ * // Log a custom message
39
+ * Log.log(AV_LOG_INFO, 'Custom log message');
40
+ *
41
+ * // Reset to default callback
30
42
  * Log.resetCallback();
31
43
  * ```
32
44
  *
33
- * Warning: Setting a callback can significantly impact performance!
34
- * FFmpeg can generate thousands of log messages per second.
35
- * Use maxLevel to filter messages and buffered mode for better performance.
45
+ * @see [av_log](https://ffmpeg.org/doxygen/trunk/group__lavu__log.html) - FFmpeg Doxygen
36
46
  */
37
47
  export declare class Log {
38
- private constructor();
39
48
  /**
40
- * Set FFmpeg's global log level.
49
+ * Set global log level.
41
50
  *
42
- * Lower levels mean fewer log messages and better performance.
43
- * Messages above this level are not generated at all by FFmpeg.
51
+ * Sets the minimum log level for FFmpeg messages.
52
+ * Messages below this level will be suppressed.
44
53
  *
45
- * Direct mapping to av_log_set_level()
54
+ * Direct mapping to av_log_set_level().
46
55
  *
47
- * @param level - Log level (AV_LOG_* constant):
48
- * - AV_LOG_QUIET: Disable all logging
49
- * - AV_LOG_PANIC: Only extremely fatal issues
50
- * - AV_LOG_FATAL: Fatal errors only
51
- * - AV_LOG_ERROR: Errors that can't be recovered
52
- * - AV_LOG_WARNING: Warnings about potential issues
53
- * - AV_LOG_INFO: Informational messages
54
- * - AV_LOG_VERBOSE: Detailed information
55
- * - AV_LOG_DEBUG: Debug information
56
- * - AV_LOG_TRACE: Very detailed trace information
56
+ * @param level - Minimum log level to display
57
57
  *
58
58
  * @example
59
59
  * ```typescript
60
- * import { Log, AV_LOG_ERROR, AV_LOG_TRACE, AV_LOG_QUIET } from 'node-av';
61
- *
62
- * // Only show errors and fatal messages
63
- * Log.setLevel(AV_LOG_ERROR);
60
+ * import { AV_LOG_QUIET, AV_LOG_ERROR, AV_LOG_WARNING, AV_LOG_INFO } from 'node-av/constants';
64
61
  *
65
- * // Show everything (warning: very verbose!)
66
- * Log.setLevel(AV_LOG_TRACE);
67
- *
68
- * // Disable all logging for maximum performance
69
- * Log.setLevel(AV_LOG_QUIET);
62
+ * Log.setLevel(AV_LOG_QUIET); // Disable all logging
63
+ * Log.setLevel(AV_LOG_ERROR); // Only errors
64
+ * Log.setLevel(AV_LOG_WARNING); // Errors and warnings
65
+ * Log.setLevel(AV_LOG_INFO); // Errors, warnings, and info
70
66
  * ```
71
- *
72
- * @see {@link getLevel} To retrieve current level
73
67
  */
74
68
  static setLevel(level: AVLogLevel): void;
75
69
  /**
76
- * Get the current global log level.
70
+ * Get current log level.
77
71
  *
78
- * Returns the current FFmpeg log level setting.
72
+ * Returns the current minimum log level setting.
79
73
  *
80
- * Direct mapping to av_log_get_level()
74
+ * Direct mapping to av_log_get_level().
81
75
  *
82
- * @returns Current log level (AV_LOG_* constant)
76
+ * @returns Current log level
83
77
  *
84
78
  * @example
85
79
  * ```typescript
86
- * import { Log, AV_LOG_INFO } from 'node-av';
87
- *
88
- * const currentLevel = Log.getLevel();
89
- * console.log(`Current log level: ${currentLevel}`);
90
- *
91
- * // Temporarily change log level
92
- * const savedLevel = Log.getLevel();
93
- * Log.setLevel(AV_LOG_INFO);
94
- * // ... do something ...
95
- * Log.setLevel(savedLevel); // Restore
80
+ * const level = Log.getLevel();
81
+ * if (level <= AV_LOG_WARNING) {
82
+ * console.log('Logging warnings and above');
83
+ * }
96
84
  * ```
97
85
  *
98
- * @see {@link setLevel} To change the level
86
+ * @see {@link setLevel} To change log level
99
87
  */
100
88
  static getLevel(): AVLogLevel;
101
89
  /**
102
- * Log a message through FFmpeg's logging system.
90
+ * Log a message.
103
91
  *
104
- * Sends a message through FFmpeg's internal logging system.
105
- * The message will be processed according to the current log level and callback.
92
+ * Sends a log message through FFmpeg's logging system.
93
+ * The message will be processed according to current settings.
106
94
  *
107
- * Direct mapping to av_log()
95
+ * Direct mapping to av_log().
108
96
  *
109
- * @param level - Log level (AV_LOG_* constant)
97
+ * @param level - Log level for this message
110
98
  * @param message - Message to log
111
99
  *
112
100
  * @example
113
101
  * ```typescript
114
- * import { Log, AV_LOG_INFO, AV_LOG_ERROR, AV_LOG_WARNING } from 'node-av';
115
- *
116
- * Log.log(AV_LOG_INFO, 'Starting processing...');
117
- * Log.log(AV_LOG_WARNING, 'Frame rate might be inaccurate');
118
- * Log.log(AV_LOG_ERROR, 'Failed to open codec');
102
+ * import { AV_LOG_ERROR, AV_LOG_WARNING, AV_LOG_INFO } from 'node-av/constants';
119
103
  *
120
- * // With formatting
121
- * const frameNum = 42;
122
- * Log.log(AV_LOG_INFO, `Processing frame ${frameNum}`);
104
+ * Log.log(AV_LOG_ERROR, 'Critical error occurred');
105
+ * Log.log(AV_LOG_WARNING, 'Non-fatal warning');
106
+ * Log.log(AV_LOG_INFO, 'Processing started');
123
107
  * ```
124
108
  */
125
109
  static log(level: AVLogLevel, message: string): void;
126
110
  /**
127
- * Set a callback to capture FFmpeg log messages.
111
+ * Set custom log callback.
128
112
  *
129
- * Installs a custom callback to intercept FFmpeg's log messages.
130
- * This implementation uses ThreadSafeFunction for zero-blocking operation.
131
- * Messages are processed asynchronously without impacting FFmpeg performance.
132
- * Use options.maxLevel to filter messages at the C level for best performance.
113
+ * Installs a custom callback to handle FFmpeg log messages.
114
+ * Allows redirecting logs to custom handlers or loggers.
133
115
  *
134
- * Direct mapping to av_log_set_callback()
116
+ * Direct mapping to av_log_set_callback().
135
117
  *
136
- * @param callback - Function to receive log messages, or null to reset
137
- * @param options - Options to control performance impact:
138
- * - maxLevel: Only capture messages at or below this level (filtered in C++)
139
- * - buffered: Buffer messages for batch processing
118
+ * @param callback - Function to handle log messages, or null to remove
119
+ * @param options - Additional logging options
140
120
  *
141
121
  * @example
142
122
  * ```typescript
143
- * import { Log, AV_LOG_ERROR, AV_LOG_WARNING } from 'node-av';
144
- *
145
- * // Simple callback (warning: can be slow!)
146
- * Log.setCallback((level, message) => {
147
- * console.log(`[${level}] ${message}`);
148
- * });
123
+ * import { AV_LOG_ERROR, AV_LOG_WARNING } from 'node-av/constants';
149
124
  *
150
- * // Performance-optimized callback (filters at C level)
125
+ * // Set custom callback with options
151
126
  * Log.setCallback((level, message) => {
152
- * errorReporter.log(message);
127
+ * const timestamp = new Date().toISOString();
128
+ *
129
+ * if (level <= AV_LOG_ERROR) {
130
+ * console.error(`[${timestamp}] ERROR: ${message}`);
131
+ * } else if (level <= AV_LOG_WARNING) {
132
+ * console.warn(`[${timestamp}] WARN: ${message}`);
133
+ * } else {
134
+ * console.log(`[${timestamp}] INFO: ${message}`);
135
+ * }
153
136
  * }, {
154
- * maxLevel: AV_LOG_ERROR // Only capture errors (filtered in C++)
137
+ * printPrefix: true, // Include context prefix
138
+ * skipRepeated: true, // Skip repeated messages
139
+ * level: AV_LOG_WARNING // Filter level
155
140
  * });
156
141
  *
157
- * // Structured logging
158
- * Log.setCallback((level, message) => {
159
- * myLogger.log({
160
- * level: level,
161
- * message: message,
162
- * timestamp: Date.now(),
163
- * source: 'ffmpeg'
164
- * });
165
- * }, {
166
- * maxLevel: AV_LOG_WARNING
167
- * });
168
- *
169
- * // Reset to default (output to stderr)
142
+ * // Remove custom callback
170
143
  * Log.setCallback(null);
171
144
  * ```
172
145
  *
173
- * Note: Messages are processed asynchronously and non-blocking.
174
- *
175
- * @see {@link resetCallback} To remove callback
146
+ * @see {@link resetCallback} To restore default
176
147
  */
177
148
  static setCallback(callback: ((level: AVLogLevel, message: string) => void) | null, options?: LogOptions): void;
178
149
  /**
179
- * Reset logging to default behavior.
150
+ * Reset to default log callback.
180
151
  *
181
- * Removes any custom callback and restores FFmpeg's default logging to stderr.
182
- * Also clears any buffered messages from previous callbacks.
152
+ * Restores the default FFmpeg logging behavior.
153
+ * Removes any custom callback previously set.
183
154
  *
184
- * Direct mapping to av_log_set_callback(av_log_default_callback)
155
+ * Direct mapping to av_log_set_callback() with default handler.
185
156
  *
186
157
  * @example
187
158
  * ```typescript
188
- * import { Log } from 'node-av';
189
- *
190
- * // Remove custom callback
159
+ * // After using custom callback
191
160
  * Log.resetCallback();
192
- * // Now logs go to stderr again
193
- *
194
- * // Equivalent to:
195
- * Log.setCallback(null);
161
+ * // Now using default FFmpeg logging
196
162
  * ```
197
163
  *
198
- * @see {@link setCallback} To install custom callback
164
+ * @see {@link setCallback} To set custom callback
199
165
  */
200
166
  static resetCallback(): void;
201
167
  }
package/dist/lib/log.js CHANGED
@@ -1,186 +1,154 @@
1
1
  import { bindings } from './binding.js';
2
2
  /**
3
- * FFmpeg logging system control.
3
+ * FFmpeg logging control and configuration.
4
4
  *
5
- * Controls FFmpeg's global logging behavior including log levels and message capture.
6
- * Provides direct access to FFmpeg's logging system with options for performance optimization.
7
- * FFmpeg can generate thousands of log messages per second, so filtering is important.
5
+ * Provides control over FFmpeg's internal logging system.
6
+ * Allows setting log levels, custom callbacks, and formatting options.
7
+ * Essential for debugging, monitoring, and error tracking in FFmpeg operations.
8
8
  *
9
- * Direct mapping to FFmpeg's logging API (av_log_*).
9
+ * Direct mapping to FFmpeg's logging API.
10
10
  *
11
11
  * @example
12
12
  * ```typescript
13
- * import { Log, AV_LOG_WARNING, AV_LOG_ERROR, AV_LOG_QUIET } from 'node-av';
13
+ * import { Log } from 'node-av';
14
+ * import { AV_LOG_ERROR, AV_LOG_WARNING, AV_LOG_INFO, AV_LOG_DEBUG } from 'node-av/constants';
14
15
  *
15
- * // Set log level (simple, no performance impact)
16
- * Log.setLevel(AV_LOG_WARNING);
16
+ * // Set log level
17
+ * Log.setLevel(AV_LOG_WARNING); // Only show warnings and errors
17
18
  *
18
- * // Capture errors only (minimal performance impact)
19
- * Log.setCallback((level, message) => {
20
- * console.error(`FFmpeg Error: ${message}`);
21
- * }, { maxLevel: AV_LOG_ERROR });
19
+ * // Get current log level
20
+ * const level = Log.getLevel();
21
+ * console.log(`Current log level: ${level}`);
22
22
  *
23
- * // Non-blocking callback with no performance impact
23
+ * // Custom log callback
24
24
  * Log.setCallback((level, message) => {
25
- * myLogger.log(level, message);
25
+ * if (level <= AV_LOG_ERROR) {
26
+ * console.error(`FFmpeg Error: ${message}`);
27
+ * } else if (level <= AV_LOG_WARNING) {
28
+ * console.warn(`FFmpeg Warning: ${message}`);
29
+ * } else {
30
+ * console.log(`FFmpeg: ${message}`);
31
+ * }
32
+ * }, {
33
+ * printPrefix: true,
34
+ * skipRepeated: true
26
35
  * });
27
36
  *
28
- * // Reset to default logging
37
+ * // Log a custom message
38
+ * Log.log(AV_LOG_INFO, 'Custom log message');
39
+ *
40
+ * // Reset to default callback
29
41
  * Log.resetCallback();
30
42
  * ```
31
43
  *
32
- * Warning: Setting a callback can significantly impact performance!
33
- * FFmpeg can generate thousands of log messages per second.
34
- * Use maxLevel to filter messages and buffered mode for better performance.
44
+ * @see [av_log](https://ffmpeg.org/doxygen/trunk/group__lavu__log.html) - FFmpeg Doxygen
35
45
  */
36
46
  export class Log {
37
- // Private constructor - this is a static-only class
38
- constructor() {
39
- throw new Error('Log class cannot be instantiated');
40
- }
41
47
  /**
42
- * Set FFmpeg's global log level.
48
+ * Set global log level.
43
49
  *
44
- * Lower levels mean fewer log messages and better performance.
45
- * Messages above this level are not generated at all by FFmpeg.
50
+ * Sets the minimum log level for FFmpeg messages.
51
+ * Messages below this level will be suppressed.
46
52
  *
47
- * Direct mapping to av_log_set_level()
53
+ * Direct mapping to av_log_set_level().
48
54
  *
49
- * @param level - Log level (AV_LOG_* constant):
50
- * - AV_LOG_QUIET: Disable all logging
51
- * - AV_LOG_PANIC: Only extremely fatal issues
52
- * - AV_LOG_FATAL: Fatal errors only
53
- * - AV_LOG_ERROR: Errors that can't be recovered
54
- * - AV_LOG_WARNING: Warnings about potential issues
55
- * - AV_LOG_INFO: Informational messages
56
- * - AV_LOG_VERBOSE: Detailed information
57
- * - AV_LOG_DEBUG: Debug information
58
- * - AV_LOG_TRACE: Very detailed trace information
55
+ * @param level - Minimum log level to display
59
56
  *
60
57
  * @example
61
58
  * ```typescript
62
- * import { Log, AV_LOG_ERROR, AV_LOG_TRACE, AV_LOG_QUIET } from 'node-av';
59
+ * import { AV_LOG_QUIET, AV_LOG_ERROR, AV_LOG_WARNING, AV_LOG_INFO } from 'node-av/constants';
63
60
  *
64
- * // Only show errors and fatal messages
65
- * Log.setLevel(AV_LOG_ERROR);
66
- *
67
- * // Show everything (warning: very verbose!)
68
- * Log.setLevel(AV_LOG_TRACE);
69
- *
70
- * // Disable all logging for maximum performance
71
- * Log.setLevel(AV_LOG_QUIET);
61
+ * Log.setLevel(AV_LOG_QUIET); // Disable all logging
62
+ * Log.setLevel(AV_LOG_ERROR); // Only errors
63
+ * Log.setLevel(AV_LOG_WARNING); // Errors and warnings
64
+ * Log.setLevel(AV_LOG_INFO); // Errors, warnings, and info
72
65
  * ```
73
- *
74
- * @see {@link getLevel} To retrieve current level
75
66
  */
76
67
  static setLevel(level) {
77
68
  bindings.Log.setLevel(level);
78
69
  }
79
70
  /**
80
- * Get the current global log level.
71
+ * Get current log level.
81
72
  *
82
- * Returns the current FFmpeg log level setting.
73
+ * Returns the current minimum log level setting.
83
74
  *
84
- * Direct mapping to av_log_get_level()
75
+ * Direct mapping to av_log_get_level().
85
76
  *
86
- * @returns Current log level (AV_LOG_* constant)
77
+ * @returns Current log level
87
78
  *
88
79
  * @example
89
80
  * ```typescript
90
- * import { Log, AV_LOG_INFO } from 'node-av';
91
- *
92
- * const currentLevel = Log.getLevel();
93
- * console.log(`Current log level: ${currentLevel}`);
94
- *
95
- * // Temporarily change log level
96
- * const savedLevel = Log.getLevel();
97
- * Log.setLevel(AV_LOG_INFO);
98
- * // ... do something ...
99
- * Log.setLevel(savedLevel); // Restore
81
+ * const level = Log.getLevel();
82
+ * if (level <= AV_LOG_WARNING) {
83
+ * console.log('Logging warnings and above');
84
+ * }
100
85
  * ```
101
86
  *
102
- * @see {@link setLevel} To change the level
87
+ * @see {@link setLevel} To change log level
103
88
  */
104
89
  static getLevel() {
105
90
  return bindings.Log.getLevel();
106
91
  }
107
92
  /**
108
- * Log a message through FFmpeg's logging system.
93
+ * Log a message.
109
94
  *
110
- * Sends a message through FFmpeg's internal logging system.
111
- * The message will be processed according to the current log level and callback.
95
+ * Sends a log message through FFmpeg's logging system.
96
+ * The message will be processed according to current settings.
112
97
  *
113
- * Direct mapping to av_log()
98
+ * Direct mapping to av_log().
114
99
  *
115
- * @param level - Log level (AV_LOG_* constant)
100
+ * @param level - Log level for this message
116
101
  * @param message - Message to log
117
102
  *
118
103
  * @example
119
104
  * ```typescript
120
- * import { Log, AV_LOG_INFO, AV_LOG_ERROR, AV_LOG_WARNING } from 'node-av';
121
- *
122
- * Log.log(AV_LOG_INFO, 'Starting processing...');
123
- * Log.log(AV_LOG_WARNING, 'Frame rate might be inaccurate');
124
- * Log.log(AV_LOG_ERROR, 'Failed to open codec');
105
+ * import { AV_LOG_ERROR, AV_LOG_WARNING, AV_LOG_INFO } from 'node-av/constants';
125
106
  *
126
- * // With formatting
127
- * const frameNum = 42;
128
- * Log.log(AV_LOG_INFO, `Processing frame ${frameNum}`);
107
+ * Log.log(AV_LOG_ERROR, 'Critical error occurred');
108
+ * Log.log(AV_LOG_WARNING, 'Non-fatal warning');
109
+ * Log.log(AV_LOG_INFO, 'Processing started');
129
110
  * ```
130
111
  */
131
112
  static log(level, message) {
132
113
  bindings.Log.log(level, message);
133
114
  }
134
115
  /**
135
- * Set a callback to capture FFmpeg log messages.
116
+ * Set custom log callback.
136
117
  *
137
- * Installs a custom callback to intercept FFmpeg's log messages.
138
- * This implementation uses ThreadSafeFunction for zero-blocking operation.
139
- * Messages are processed asynchronously without impacting FFmpeg performance.
140
- * Use options.maxLevel to filter messages at the C level for best performance.
118
+ * Installs a custom callback to handle FFmpeg log messages.
119
+ * Allows redirecting logs to custom handlers or loggers.
141
120
  *
142
- * Direct mapping to av_log_set_callback()
121
+ * Direct mapping to av_log_set_callback().
143
122
  *
144
- * @param callback - Function to receive log messages, or null to reset
145
- * @param options - Options to control performance impact:
146
- * - maxLevel: Only capture messages at or below this level (filtered in C++)
147
- * - buffered: Buffer messages for batch processing
123
+ * @param callback - Function to handle log messages, or null to remove
124
+ * @param options - Additional logging options
148
125
  *
149
126
  * @example
150
127
  * ```typescript
151
- * import { Log, AV_LOG_ERROR, AV_LOG_WARNING } from 'node-av';
152
- *
153
- * // Simple callback (warning: can be slow!)
154
- * Log.setCallback((level, message) => {
155
- * console.log(`[${level}] ${message}`);
156
- * });
157
- *
158
- * // Performance-optimized callback (filters at C level)
159
- * Log.setCallback((level, message) => {
160
- * errorReporter.log(message);
161
- * }, {
162
- * maxLevel: AV_LOG_ERROR // Only capture errors (filtered in C++)
163
- * });
128
+ * import { AV_LOG_ERROR, AV_LOG_WARNING } from 'node-av/constants';
164
129
  *
165
- * // Structured logging
130
+ * // Set custom callback with options
166
131
  * Log.setCallback((level, message) => {
167
- * myLogger.log({
168
- * level: level,
169
- * message: message,
170
- * timestamp: Date.now(),
171
- * source: 'ffmpeg'
172
- * });
132
+ * const timestamp = new Date().toISOString();
133
+ *
134
+ * if (level <= AV_LOG_ERROR) {
135
+ * console.error(`[${timestamp}] ERROR: ${message}`);
136
+ * } else if (level <= AV_LOG_WARNING) {
137
+ * console.warn(`[${timestamp}] WARN: ${message}`);
138
+ * } else {
139
+ * console.log(`[${timestamp}] INFO: ${message}`);
140
+ * }
173
141
  * }, {
174
- * maxLevel: AV_LOG_WARNING
142
+ * printPrefix: true, // Include context prefix
143
+ * skipRepeated: true, // Skip repeated messages
144
+ * level: AV_LOG_WARNING // Filter level
175
145
  * });
176
146
  *
177
- * // Reset to default (output to stderr)
147
+ * // Remove custom callback
178
148
  * Log.setCallback(null);
179
149
  * ```
180
150
  *
181
- * Note: Messages are processed asynchronously and non-blocking.
182
- *
183
- * @see {@link resetCallback} To remove callback
151
+ * @see {@link resetCallback} To restore default
184
152
  */
185
153
  static setCallback(callback, options) {
186
154
  if (callback === null) {
@@ -191,26 +159,21 @@ export class Log {
191
159
  }
192
160
  }
193
161
  /**
194
- * Reset logging to default behavior.
162
+ * Reset to default log callback.
195
163
  *
196
- * Removes any custom callback and restores FFmpeg's default logging to stderr.
197
- * Also clears any buffered messages from previous callbacks.
164
+ * Restores the default FFmpeg logging behavior.
165
+ * Removes any custom callback previously set.
198
166
  *
199
- * Direct mapping to av_log_set_callback(av_log_default_callback)
167
+ * Direct mapping to av_log_set_callback() with default handler.
200
168
  *
201
169
  * @example
202
170
  * ```typescript
203
- * import { Log } from 'node-av';
204
- *
205
- * // Remove custom callback
171
+ * // After using custom callback
206
172
  * Log.resetCallback();
207
- * // Now logs go to stderr again
208
- *
209
- * // Equivalent to:
210
- * Log.setCallback(null);
173
+ * // Now using default FFmpeg logging
211
174
  * ```
212
175
  *
213
- * @see {@link setCallback} To install custom callback
176
+ * @see {@link setCallback} To set custom callback
214
177
  */
215
178
  static resetCallback() {
216
179
  bindings.Log.resetCallback();
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/lib/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,OAAO,GAAG;IACd,oDAAoD;IACpD;QACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAiB;QAC/B,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,GAAG,CAAC,KAAiB,EAAE,OAAe;QAC3C,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,MAAM,CAAC,WAAW,CAAC,QAA+D,EAAE,OAAoB;QACtG,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,aAAa;QAClB,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/lib/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,OAAO,GAAG;IACd;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAiB;QAC/B,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,GAAG,CAAC,KAAiB,EAAE,OAAe;QAC3C,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,CAAC,WAAW,CAAC,QAA+D,EAAE,OAAoB;QACtG,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,aAAa;QAClB,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;CACF"}