node-av 0.0.1

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 (175) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +22 -0
  3. package/README.md +377 -0
  4. package/binding.gyp +78 -0
  5. package/dist/api/bitstream-filter.d.ts +246 -0
  6. package/dist/api/bitstream-filter.js +369 -0
  7. package/dist/api/bitstream-filter.js.map +1 -0
  8. package/dist/api/decoder.d.ts +257 -0
  9. package/dist/api/decoder.js +424 -0
  10. package/dist/api/decoder.js.map +1 -0
  11. package/dist/api/encoder.d.ts +298 -0
  12. package/dist/api/encoder.js +574 -0
  13. package/dist/api/encoder.js.map +1 -0
  14. package/dist/api/filter.d.ts +457 -0
  15. package/dist/api/filter.js +876 -0
  16. package/dist/api/filter.js.map +1 -0
  17. package/dist/api/hardware.d.ts +318 -0
  18. package/dist/api/hardware.js +558 -0
  19. package/dist/api/hardware.js.map +1 -0
  20. package/dist/api/index.d.ts +12 -0
  21. package/dist/api/index.js +20 -0
  22. package/dist/api/index.js.map +1 -0
  23. package/dist/api/io-stream.d.ts +109 -0
  24. package/dist/api/io-stream.js +124 -0
  25. package/dist/api/io-stream.js.map +1 -0
  26. package/dist/api/media-input.d.ts +295 -0
  27. package/dist/api/media-input.js +456 -0
  28. package/dist/api/media-input.js.map +1 -0
  29. package/dist/api/media-output.d.ts +274 -0
  30. package/dist/api/media-output.js +486 -0
  31. package/dist/api/media-output.js.map +1 -0
  32. package/dist/api/pipeline.d.ts +117 -0
  33. package/dist/api/pipeline.js +836 -0
  34. package/dist/api/pipeline.js.map +1 -0
  35. package/dist/api/types.d.ts +440 -0
  36. package/dist/api/types.js +2 -0
  37. package/dist/api/types.js.map +1 -0
  38. package/dist/api/utilities/audio-sample.d.ts +115 -0
  39. package/dist/api/utilities/audio-sample.js +110 -0
  40. package/dist/api/utilities/audio-sample.js.map +1 -0
  41. package/dist/api/utilities/channel-layout.d.ts +83 -0
  42. package/dist/api/utilities/channel-layout.js +87 -0
  43. package/dist/api/utilities/channel-layout.js.map +1 -0
  44. package/dist/api/utilities/image.d.ts +177 -0
  45. package/dist/api/utilities/image.js +183 -0
  46. package/dist/api/utilities/image.js.map +1 -0
  47. package/dist/api/utilities/index.d.ts +8 -0
  48. package/dist/api/utilities/index.js +17 -0
  49. package/dist/api/utilities/index.js.map +1 -0
  50. package/dist/api/utilities/media-type.d.ts +56 -0
  51. package/dist/api/utilities/media-type.js +60 -0
  52. package/dist/api/utilities/media-type.js.map +1 -0
  53. package/dist/api/utilities/pixel-format.d.ts +94 -0
  54. package/dist/api/utilities/pixel-format.js +102 -0
  55. package/dist/api/utilities/pixel-format.js.map +1 -0
  56. package/dist/api/utilities/sample-format.d.ts +132 -0
  57. package/dist/api/utilities/sample-format.js +144 -0
  58. package/dist/api/utilities/sample-format.js.map +1 -0
  59. package/dist/api/utilities/streaming.d.ts +104 -0
  60. package/dist/api/utilities/streaming.js +137 -0
  61. package/dist/api/utilities/streaming.js.map +1 -0
  62. package/dist/api/utilities/timestamp.d.ts +187 -0
  63. package/dist/api/utilities/timestamp.js +200 -0
  64. package/dist/api/utilities/timestamp.js.map +1 -0
  65. package/dist/api/utils.d.ts +61 -0
  66. package/dist/api/utils.js +330 -0
  67. package/dist/api/utils.js.map +1 -0
  68. package/dist/index.d.ts +2 -0
  69. package/dist/index.js +5 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/lib/audio-fifo.d.ts +339 -0
  72. package/dist/lib/audio-fifo.js +365 -0
  73. package/dist/lib/audio-fifo.js.map +1 -0
  74. package/dist/lib/binding.d.ts +192 -0
  75. package/dist/lib/binding.js +70 -0
  76. package/dist/lib/binding.js.map +1 -0
  77. package/dist/lib/bitstream-filter-context.d.ts +345 -0
  78. package/dist/lib/bitstream-filter-context.js +407 -0
  79. package/dist/lib/bitstream-filter-context.js.map +1 -0
  80. package/dist/lib/bitstream-filter.d.ts +124 -0
  81. package/dist/lib/bitstream-filter.js +138 -0
  82. package/dist/lib/bitstream-filter.js.map +1 -0
  83. package/dist/lib/channel-layouts.d.ts +51 -0
  84. package/dist/lib/channel-layouts.js +55 -0
  85. package/dist/lib/channel-layouts.js.map +1 -0
  86. package/dist/lib/codec-context.d.ts +763 -0
  87. package/dist/lib/codec-context.js +974 -0
  88. package/dist/lib/codec-context.js.map +1 -0
  89. package/dist/lib/codec-parameters.d.ts +362 -0
  90. package/dist/lib/codec-parameters.js +460 -0
  91. package/dist/lib/codec-parameters.js.map +1 -0
  92. package/dist/lib/codec-parser.d.ts +185 -0
  93. package/dist/lib/codec-parser.js +193 -0
  94. package/dist/lib/codec-parser.js.map +1 -0
  95. package/dist/lib/codec.d.ts +432 -0
  96. package/dist/lib/codec.js +492 -0
  97. package/dist/lib/codec.js.map +1 -0
  98. package/dist/lib/constants.d.ts +2037 -0
  99. package/dist/lib/constants.js +1659 -0
  100. package/dist/lib/constants.js.map +1 -0
  101. package/dist/lib/dictionary.d.ts +371 -0
  102. package/dist/lib/dictionary.js +406 -0
  103. package/dist/lib/dictionary.js.map +1 -0
  104. package/dist/lib/error.d.ts +216 -0
  105. package/dist/lib/error.js +254 -0
  106. package/dist/lib/error.js.map +1 -0
  107. package/dist/lib/filter-context.d.ts +445 -0
  108. package/dist/lib/filter-context.js +505 -0
  109. package/dist/lib/filter-context.js.map +1 -0
  110. package/dist/lib/filter-graph.d.ts +556 -0
  111. package/dist/lib/filter-graph.js +608 -0
  112. package/dist/lib/filter-graph.js.map +1 -0
  113. package/dist/lib/filter-inout.d.ts +205 -0
  114. package/dist/lib/filter-inout.js +264 -0
  115. package/dist/lib/filter-inout.js.map +1 -0
  116. package/dist/lib/filter.d.ts +231 -0
  117. package/dist/lib/filter.js +260 -0
  118. package/dist/lib/filter.js.map +1 -0
  119. package/dist/lib/format-context.d.ts +798 -0
  120. package/dist/lib/format-context.js +845 -0
  121. package/dist/lib/format-context.js.map +1 -0
  122. package/dist/lib/frame.d.ts +784 -0
  123. package/dist/lib/frame.js +933 -0
  124. package/dist/lib/frame.js.map +1 -0
  125. package/dist/lib/hardware-device-context.d.ts +407 -0
  126. package/dist/lib/hardware-device-context.js +429 -0
  127. package/dist/lib/hardware-device-context.js.map +1 -0
  128. package/dist/lib/hardware-frames-context.d.ts +374 -0
  129. package/dist/lib/hardware-frames-context.js +430 -0
  130. package/dist/lib/hardware-frames-context.js.map +1 -0
  131. package/dist/lib/index.d.ts +31 -0
  132. package/dist/lib/index.js +54 -0
  133. package/dist/lib/index.js.map +1 -0
  134. package/dist/lib/input-format.d.ts +216 -0
  135. package/dist/lib/input-format.js +246 -0
  136. package/dist/lib/input-format.js.map +1 -0
  137. package/dist/lib/io-context.d.ts +495 -0
  138. package/dist/lib/io-context.js +550 -0
  139. package/dist/lib/io-context.js.map +1 -0
  140. package/dist/lib/log.d.ts +201 -0
  141. package/dist/lib/log.js +219 -0
  142. package/dist/lib/log.js.map +1 -0
  143. package/dist/lib/native-types.d.ts +719 -0
  144. package/dist/lib/native-types.js +2 -0
  145. package/dist/lib/native-types.js.map +1 -0
  146. package/dist/lib/option.d.ts +589 -0
  147. package/dist/lib/option.js +853 -0
  148. package/dist/lib/option.js.map +1 -0
  149. package/dist/lib/output-format.d.ts +179 -0
  150. package/dist/lib/output-format.js +205 -0
  151. package/dist/lib/output-format.js.map +1 -0
  152. package/dist/lib/packet.d.ts +487 -0
  153. package/dist/lib/packet.js +558 -0
  154. package/dist/lib/packet.js.map +1 -0
  155. package/dist/lib/rational.d.ts +210 -0
  156. package/dist/lib/rational.js +233 -0
  157. package/dist/lib/rational.js.map +1 -0
  158. package/dist/lib/software-resample-context.d.ts +572 -0
  159. package/dist/lib/software-resample-context.js +610 -0
  160. package/dist/lib/software-resample-context.js.map +1 -0
  161. package/dist/lib/software-scale-context.d.ts +290 -0
  162. package/dist/lib/software-scale-context.js +308 -0
  163. package/dist/lib/software-scale-context.js.map +1 -0
  164. package/dist/lib/stream.d.ts +322 -0
  165. package/dist/lib/stream.js +408 -0
  166. package/dist/lib/stream.js.map +1 -0
  167. package/dist/lib/types.d.ts +59 -0
  168. package/dist/lib/types.js +8 -0
  169. package/dist/lib/types.js.map +1 -0
  170. package/dist/lib/utilities.d.ts +346 -0
  171. package/dist/lib/utilities.js +424 -0
  172. package/dist/lib/utilities.js.map +1 -0
  173. package/install/check.js +113 -0
  174. package/install/ffmpeg.js +163 -0
  175. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option.js","sourceRoot":"","sources":["../../src/lib/option.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ import type { AVCodecID, AVFormatFlag } from './constants.js';
2
+ import type { NativeOutputFormat, NativeWrapper } from './native-types.js';
3
+ /**
4
+ * Output format (muxer) descriptor.
5
+ *
6
+ * Describes a supported output container format for muxing.
7
+ * Provides format information, default codecs, and capabilities.
8
+ * These are read-only format descriptors managed by FFmpeg.
9
+ *
10
+ * Direct mapping to FFmpeg's AVOutputFormat.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { OutputFormat, FormatContext, FFmpegError } from 'node-av';
15
+ *
16
+ * // Guess output format from filename
17
+ * const format = OutputFormat.guessFormat(null, 'output.mp4', null);
18
+ * if (format) {
19
+ * console.log(`Format: ${format.longName}`);
20
+ * console.log(`Default video codec: ${format.videoCodec}`);
21
+ * console.log(`Default audio codec: ${format.audioCodec}`);
22
+ * }
23
+ *
24
+ * // Use with FormatContext
25
+ * const ctx = new FormatContext();
26
+ * const mp4Format = OutputFormat.guessFormat('mp4', null, null);
27
+ * const ret = ctx.allocOutputContext2(mp4Format, null, 'output.mp4');
28
+ * FFmpegError.throwIfError(ret, 'allocOutputContext2');
29
+ * ```
30
+ *
31
+ * @see {@link FormatContext} For using output formats
32
+ * @see {@link InputFormat} For input formats
33
+ */
34
+ export declare class OutputFormat implements NativeWrapper<NativeOutputFormat> {
35
+ private native;
36
+ /**
37
+ * Constructor is internal - use static factory methods.
38
+ *
39
+ * OutputFormats are obtained via static methods, not created directly.
40
+ * FFmpeg manages these format descriptors internally.
41
+ *
42
+ * @internal
43
+ *
44
+ * @param native - Native AVOutputFormat to wrap
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * import { OutputFormat } from 'node-av';
49
+ *
50
+ * // Don't use constructor directly
51
+ * // const format = new OutputFormat(); // Wrong
52
+ *
53
+ * // Use static factory methods instead
54
+ * const format = OutputFormat.guessFormat('mp4', null, null); // Correct
55
+ * ```
56
+ */
57
+ constructor(native: NativeOutputFormat);
58
+ /**
59
+ * Return the output format which best matches the provided parameters.
60
+ *
61
+ * Guesses the appropriate output format based on name, filename, or MIME type.
62
+ * Uses the first provided parameter in order: shortName, filename extension, mimeType.
63
+ *
64
+ * Direct mapping to av_guess_format()
65
+ *
66
+ * @param shortName - Short name of the format (e.g., 'mp4', 'mov', 'avi'), may be null
67
+ * @param filename - Filename to use for guessing (extension is used), may be null
68
+ * @param mimeType - MIME type to use for guessing, may be null
69
+ *
70
+ * @returns OutputFormat if found, null otherwise
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * import { OutputFormat } from 'node-av';
75
+ *
76
+ * // Guess by short name
77
+ * const mp4Format = OutputFormat.guessFormat('mp4', null, null);
78
+ * if (mp4Format) {
79
+ * console.log(`Format: ${mp4Format.longName}`);
80
+ * }
81
+ *
82
+ * // Guess by filename extension
83
+ * const format = OutputFormat.guessFormat(null, 'video.mkv', null);
84
+ * if (format) {
85
+ * console.log(`Guessed format: ${format.name}`);
86
+ * }
87
+ *
88
+ * // Guess by mime type
89
+ * const webmFormat = OutputFormat.guessFormat(null, null, 'video/webm');
90
+ * ```
91
+ */
92
+ static guessFormat(shortName: string | null, filename: string | null, mimeType: string | null): OutputFormat | null;
93
+ /**
94
+ * A comma separated list of short names for the format.
95
+ *
96
+ * Direct mapping to AVOutputFormat->name
97
+ *
98
+ * @readonly
99
+ */
100
+ get name(): string | null;
101
+ /**
102
+ * Descriptive name for the format.
103
+ *
104
+ * Direct mapping to AVOutputFormat->long_name
105
+ *
106
+ * Meant to be more human-readable than the short name.
107
+ * @readonly
108
+ */
109
+ get longName(): string | null;
110
+ /**
111
+ * Comma-separated list of file extensions.
112
+ *
113
+ * Direct mapping to AVOutputFormat->extensions
114
+ *
115
+ * @readonly
116
+ */
117
+ get extensions(): string | null;
118
+ /**
119
+ * Comma-separated list of mime types.
120
+ *
121
+ * Direct mapping to AVOutputFormat->mime_type
122
+ *
123
+ * @readonly
124
+ */
125
+ get mimeType(): string | null;
126
+ /**
127
+ * Default audio codec for this format.
128
+ *
129
+ * Direct mapping to AVOutputFormat->audio_codec
130
+ *
131
+ * AV_CODEC_ID_NONE if no default.
132
+ * @readonly
133
+ */
134
+ get audioCodec(): AVCodecID;
135
+ /**
136
+ * Default video codec for this format.
137
+ *
138
+ * Direct mapping to AVOutputFormat->video_codec
139
+ *
140
+ * AV_CODEC_ID_NONE if no default.
141
+ * @readonly
142
+ */
143
+ get videoCodec(): AVCodecID;
144
+ /**
145
+ * Default subtitle codec for this format.
146
+ *
147
+ * Direct mapping to AVOutputFormat->subtitle_codec
148
+ *
149
+ * AV_CODEC_ID_NONE if no default.
150
+ * @readonly
151
+ */
152
+ get subtitleCodec(): AVCodecID;
153
+ /**
154
+ * Format flags.
155
+ *
156
+ * Direct mapping to AVOutputFormat->flags
157
+ *
158
+ * Combination of AVFMT_* flags:
159
+ * - AVFMT_NOFILE: No file is opened
160
+ * - AVFMT_NEEDNUMBER: Needs '%d' in filename
161
+ * - AVFMT_GLOBALHEADER: Format wants global headers
162
+ * - AVFMT_NOTIMESTAMPS: Format does not need/have timestamps
163
+ * - AVFMT_VARIABLE_FPS: Format allows variable fps
164
+ * - AVFMT_NODIMENSIONS: Format does not need width/height
165
+ * - AVFMT_NOSTREAMS: Format does not require streams
166
+ * - AVFMT_ALLOW_FLUSH: Format allows flushing
167
+ * - AVFMT_TS_NONSTRICT: Format does not require strictly increasing timestamps
168
+ * - AVFMT_TS_NEGATIVE: Format allows negative timestamps
169
+ * @readonly
170
+ */
171
+ get flags(): AVFormatFlag;
172
+ /**
173
+ * Get the native FFmpeg AVOutputFormat pointer.
174
+ *
175
+ * @internal For use by other wrapper classes
176
+ * @returns The underlying native output format object
177
+ */
178
+ getNative(): NativeOutputFormat;
179
+ }
@@ -0,0 +1,205 @@
1
+ import { bindings } from './binding.js';
2
+ /**
3
+ * Output format (muxer) descriptor.
4
+ *
5
+ * Describes a supported output container format for muxing.
6
+ * Provides format information, default codecs, and capabilities.
7
+ * These are read-only format descriptors managed by FFmpeg.
8
+ *
9
+ * Direct mapping to FFmpeg's AVOutputFormat.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { OutputFormat, FormatContext, FFmpegError } from 'node-av';
14
+ *
15
+ * // Guess output format from filename
16
+ * const format = OutputFormat.guessFormat(null, 'output.mp4', null);
17
+ * if (format) {
18
+ * console.log(`Format: ${format.longName}`);
19
+ * console.log(`Default video codec: ${format.videoCodec}`);
20
+ * console.log(`Default audio codec: ${format.audioCodec}`);
21
+ * }
22
+ *
23
+ * // Use with FormatContext
24
+ * const ctx = new FormatContext();
25
+ * const mp4Format = OutputFormat.guessFormat('mp4', null, null);
26
+ * const ret = ctx.allocOutputContext2(mp4Format, null, 'output.mp4');
27
+ * FFmpegError.throwIfError(ret, 'allocOutputContext2');
28
+ * ```
29
+ *
30
+ * @see {@link FormatContext} For using output formats
31
+ * @see {@link InputFormat} For input formats
32
+ */
33
+ export class OutputFormat {
34
+ native;
35
+ /**
36
+ * Constructor is internal - use static factory methods.
37
+ *
38
+ * OutputFormats are obtained via static methods, not created directly.
39
+ * FFmpeg manages these format descriptors internally.
40
+ *
41
+ * @internal
42
+ *
43
+ * @param native - Native AVOutputFormat to wrap
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * import { OutputFormat } from 'node-av';
48
+ *
49
+ * // Don't use constructor directly
50
+ * // const format = new OutputFormat(); // Wrong
51
+ *
52
+ * // Use static factory methods instead
53
+ * const format = OutputFormat.guessFormat('mp4', null, null); // Correct
54
+ * ```
55
+ */
56
+ constructor(native) {
57
+ this.native = native;
58
+ }
59
+ /**
60
+ * Return the output format which best matches the provided parameters.
61
+ *
62
+ * Guesses the appropriate output format based on name, filename, or MIME type.
63
+ * Uses the first provided parameter in order: shortName, filename extension, mimeType.
64
+ *
65
+ * Direct mapping to av_guess_format()
66
+ *
67
+ * @param shortName - Short name of the format (e.g., 'mp4', 'mov', 'avi'), may be null
68
+ * @param filename - Filename to use for guessing (extension is used), may be null
69
+ * @param mimeType - MIME type to use for guessing, may be null
70
+ *
71
+ * @returns OutputFormat if found, null otherwise
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * import { OutputFormat } from 'node-av';
76
+ *
77
+ * // Guess by short name
78
+ * const mp4Format = OutputFormat.guessFormat('mp4', null, null);
79
+ * if (mp4Format) {
80
+ * console.log(`Format: ${mp4Format.longName}`);
81
+ * }
82
+ *
83
+ * // Guess by filename extension
84
+ * const format = OutputFormat.guessFormat(null, 'video.mkv', null);
85
+ * if (format) {
86
+ * console.log(`Guessed format: ${format.name}`);
87
+ * }
88
+ *
89
+ * // Guess by mime type
90
+ * const webmFormat = OutputFormat.guessFormat(null, null, 'video/webm');
91
+ * ```
92
+ */
93
+ static guessFormat(shortName, filename, mimeType) {
94
+ const native = bindings.OutputFormat.guessFormat(shortName, filename, mimeType);
95
+ if (!native) {
96
+ return null;
97
+ }
98
+ return new OutputFormat(native);
99
+ }
100
+ /**
101
+ * A comma separated list of short names for the format.
102
+ *
103
+ * Direct mapping to AVOutputFormat->name
104
+ *
105
+ * @readonly
106
+ */
107
+ get name() {
108
+ return this.native.name;
109
+ }
110
+ /**
111
+ * Descriptive name for the format.
112
+ *
113
+ * Direct mapping to AVOutputFormat->long_name
114
+ *
115
+ * Meant to be more human-readable than the short name.
116
+ * @readonly
117
+ */
118
+ get longName() {
119
+ return this.native.longName;
120
+ }
121
+ /**
122
+ * Comma-separated list of file extensions.
123
+ *
124
+ * Direct mapping to AVOutputFormat->extensions
125
+ *
126
+ * @readonly
127
+ */
128
+ get extensions() {
129
+ return this.native.extensions;
130
+ }
131
+ /**
132
+ * Comma-separated list of mime types.
133
+ *
134
+ * Direct mapping to AVOutputFormat->mime_type
135
+ *
136
+ * @readonly
137
+ */
138
+ get mimeType() {
139
+ return this.native.mimeType;
140
+ }
141
+ /**
142
+ * Default audio codec for this format.
143
+ *
144
+ * Direct mapping to AVOutputFormat->audio_codec
145
+ *
146
+ * AV_CODEC_ID_NONE if no default.
147
+ * @readonly
148
+ */
149
+ get audioCodec() {
150
+ return this.native.audioCodec;
151
+ }
152
+ /**
153
+ * Default video codec for this format.
154
+ *
155
+ * Direct mapping to AVOutputFormat->video_codec
156
+ *
157
+ * AV_CODEC_ID_NONE if no default.
158
+ * @readonly
159
+ */
160
+ get videoCodec() {
161
+ return this.native.videoCodec;
162
+ }
163
+ /**
164
+ * Default subtitle codec for this format.
165
+ *
166
+ * Direct mapping to AVOutputFormat->subtitle_codec
167
+ *
168
+ * AV_CODEC_ID_NONE if no default.
169
+ * @readonly
170
+ */
171
+ get subtitleCodec() {
172
+ return this.native.subtitleCodec;
173
+ }
174
+ /**
175
+ * Format flags.
176
+ *
177
+ * Direct mapping to AVOutputFormat->flags
178
+ *
179
+ * Combination of AVFMT_* flags:
180
+ * - AVFMT_NOFILE: No file is opened
181
+ * - AVFMT_NEEDNUMBER: Needs '%d' in filename
182
+ * - AVFMT_GLOBALHEADER: Format wants global headers
183
+ * - AVFMT_NOTIMESTAMPS: Format does not need/have timestamps
184
+ * - AVFMT_VARIABLE_FPS: Format allows variable fps
185
+ * - AVFMT_NODIMENSIONS: Format does not need width/height
186
+ * - AVFMT_NOSTREAMS: Format does not require streams
187
+ * - AVFMT_ALLOW_FLUSH: Format allows flushing
188
+ * - AVFMT_TS_NONSTRICT: Format does not require strictly increasing timestamps
189
+ * - AVFMT_TS_NEGATIVE: Format allows negative timestamps
190
+ * @readonly
191
+ */
192
+ get flags() {
193
+ return this.native.flags;
194
+ }
195
+ /**
196
+ * Get the native FFmpeg AVOutputFormat pointer.
197
+ *
198
+ * @internal For use by other wrapper classes
199
+ * @returns The underlying native output format object
200
+ */
201
+ getNative() {
202
+ return this.native;
203
+ }
204
+ }
205
+ //# sourceMappingURL=output-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-format.js","sourceRoot":"","sources":["../../src/lib/output-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAqB;IAEnC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,MAAM,CAAC,WAAW,CAAC,SAAwB,EAAE,QAAuB,EAAE,QAAuB;QAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}