1 /*
2 * RAW muxers
3 * Copyright (c) 2001 Fabrice Bellard
4 * Copyright (c) 2005 Alex Beregszaszi
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
24
28
30 {
32 return 0;
33 }
34
36 {
41 }
42 return 0;
43 }
44
45 /* Note: Do not forget to add new entries to the Makefile as well. */
46
47 #if CONFIG_AC3_MUXER
51 .mime_type = "audio/x-ac3",
52 .extensions = "ac3",
58 };
59 #endif
60
61 #if CONFIG_ADX_MUXER
62
64 {
67
70 uint64_t sample_count = (file_size - 36) / par->
channels / 18 * 32;
71 if (sample_count <= UINT32_MAX) {
75 }
76 }
77
78 return 0;
79 }
80
84 .extensions = "adx",
89 .write_trailer = adx_write_trailer,
91 };
92 #endif
93
94 #if CONFIG_APTX_MUXER
98 .extensions = "aptx",
104 };
105 #endif
106
107 #if CONFIG_APTX_HD_MUXER
111 .extensions = "aptxhd",
117 };
118 #endif
119
120 #if CONFIG_CAVSVIDEO_MUXER
124 .extensions = "cavs",
130 };
131 #endif
132
133 #if CONFIG_CODEC2RAW_MUXER
142 };
143 #endif
144
145
146 #if CONFIG_DATA_MUXER
153 };
154 #endif
155
156 #if CONFIG_DIRAC_MUXER
160 .extensions = "drc,vc2",
166 };
167 #endif
168
169 #if CONFIG_DNXHD_MUXER
173 .extensions = "dnxhd,dnxhr",
179 };
180 #endif
181
182 #if CONFIG_DTS_MUXER
186 .mime_type = "audio/x-dca",
187 .extensions = "dts",
193 };
194 #endif
195
196 #if CONFIG_EAC3_MUXER
200 .mime_type = "audio/x-eac3",
201 .extensions = "eac3",
207 };
208 #endif
209
210 #if CONFIG_G722_MUXER
214 .mime_type = "audio/G722",
215 .extensions = "g722",
221 };
222 #endif
223
224 #if CONFIG_G723_1_MUXER
228 .mime_type = "audio/g723",
229 .extensions = "tco,rco",
235 };
236 #endif
237
238 #if CONFIG_G726_MUXER
247 };
248 #endif
249
250 #if CONFIG_G726LE_MUXER
259 };
260 #endif
261
262 #if CONFIG_GSM_MUXER
266 .mime_type = "audio/x-gsm",
267 .extensions = "gsm",
273 };
274 #endif
275
276 #if CONFIG_H261_MUXER
280 .mime_type = "video/x-h261",
281 .extensions = "h261",
287 };
288 #endif
289
290 #if CONFIG_H263_MUXER
294 .mime_type = "video/x-h263",
295 .extensions = "h263",
301 };
302 #endif
303
304 #if CONFIG_H264_MUXER
306 {
311 return 1;
312 }
313
317 .extensions = "h264,264",
322 .check_bitstream = h264_check_bitstream,
324 };
325 #endif
326
327 #if CONFIG_HEVC_MUXER
329 {
334 return 1;
335 }
336
340 .extensions = "hevc,h265,265",
345 .check_bitstream = hevc_check_bitstream,
347 };
348 #endif
349
350 #if CONFIG_M4V_MUXER
354 .extensions = "m4v",
360 };
361 #endif
362
363 #if CONFIG_MJPEG_MUXER
367 .mime_type = "video/x-mjpeg",
368 .extensions = "mjpg,mjpeg",
374 };
375 #endif
376
377 #if CONFIG_SINGLEJPEG_MUXER
379 .
name =
"singlejpeg",
381 .mime_type = "image/jpeg",
387 };
388 #endif
389
390 #if CONFIG_MLP_MUXER
394 .extensions = "mlp",
400 };
401 #endif
402
403 #if CONFIG_MP2_MUXER
407 .mime_type = "audio/mpeg",
408 .extensions = "mp2,m2a,mpa",
413 };
414 #endif
415
416 #if CONFIG_MPEG1VIDEO_MUXER
418 .
name =
"mpeg1video",
420 .mime_type = "video/mpeg",
421 .extensions = "mpg,mpeg,m1v",
427 };
428 #endif
429
430 #if CONFIG_MPEG2VIDEO_MUXER
432 .
name =
"mpeg2video",
434 .extensions = "m2v",
440 };
441 #endif
442
443 #if CONFIG_RAWVIDEO_MUXER
447 .extensions = "yuv,rgb",
452 };
453 #endif
454
455 #if CONFIG_SBC_MUXER
459 .mime_type = "audio/x-sbc",
460 .extensions = "sbc,msbc",
465 };
466 #endif
467
468 #if CONFIG_TRUEHD_MUXER
472 .extensions = "thd",
478 };
479 #endif
480
481 #if CONFIG_VC1_MUXER
485 .extensions = "vc1",
491 };
492 #endif
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
This struct describes the properties of an encoded stream.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_RB32
AVStream ** streams
A list of all streams in the file.
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
struct AVOutputFormat * oformat
The output container format.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
int seekable
A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
preferred ID for MPEG-1/2 video decoding
#define AVIO_SEEKABLE_NORMAL
Seeking works like for a local file.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_RB24
AVIOContext * pb
I/O context.
as in Berlin toast format
void avio_wb32(AVIOContext *s, unsigned int val)
AVCodecParameters * codecpar
Codec parameters associated with this stream.
This structure stores compressed data.