allformats.c 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513
  1. /*
  2. * Register all the formats and protocols
  3. * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
  4. *
  5. * This file is part of FFmpeg.
  6. *
  7. * FFmpeg is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * FFmpeg is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with FFmpeg; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  20. */
  21. #include "avformat.h"
  22. #include "allformats.h"
  23. /* If you do not call this function, then you can select exactly which
  24. formats you want to support */
  25. /**
  26. * Initialize libavcodec and register all the codecs and formats.
  27. */
  28. void av_register_all(void)
  29. {
  30. static int inited = 0;
  31. if (inited != 0)
  32. return;
  33. inited = 1;
  34. avcodec_init();
  35. avcodec_register_all();
  36. #ifdef CONFIG_FOURXM_DEMUXER
  37. av_register_input_format(&fourxm_demuxer);
  38. #endif
  39. #ifdef CONFIG_ADTS_MUXER
  40. av_register_output_format(&adts_muxer);
  41. #endif
  42. #ifdef CONFIG_AIFF_DEMUXER
  43. av_register_input_format(&aiff_demuxer);
  44. #endif
  45. #ifdef CONFIG_AIFF_MUXER
  46. av_register_output_format(&aiff_muxer);
  47. #endif
  48. #ifdef CONFIG_AMR_DEMUXER
  49. av_register_input_format(&amr_demuxer);
  50. #endif
  51. #ifdef CONFIG_AMR_MUXER
  52. av_register_output_format(&amr_muxer);
  53. #endif
  54. #ifdef CONFIG_ASF_DEMUXER
  55. av_register_input_format(&asf_demuxer);
  56. #endif
  57. #ifdef CONFIG_ASF_MUXER
  58. av_register_output_format(&asf_muxer);
  59. #endif
  60. #ifdef CONFIG_ASF_STREAM_MUXER
  61. av_register_output_format(&asf_stream_muxer);
  62. #endif
  63. #ifdef CONFIG_AU_DEMUXER
  64. av_register_input_format(&au_demuxer);
  65. #endif
  66. #ifdef CONFIG_AU_MUXER
  67. av_register_output_format(&au_muxer);
  68. #endif
  69. #if defined(CONFIG_AUDIO_OSS) || defined(CONFIG_AUDIO_BEOS)
  70. #ifdef CONFIG_AUDIO_DEMUXER
  71. av_register_input_format(&audio_demuxer);
  72. #endif
  73. #ifdef CONFIG_AUDIO_MUXER
  74. av_register_output_format(&audio_muxer);
  75. #endif
  76. #endif /* CONFIG_AUDIO_OSS || CONFIG_AUDIO_BEOS */
  77. #ifdef CONFIG_AVI_DEMUXER
  78. av_register_input_format(&avi_demuxer);
  79. #endif
  80. #ifdef CONFIG_AVI_MUXER
  81. av_register_output_format(&avi_muxer);
  82. #endif
  83. #ifdef CONFIG_AVISYNTH
  84. av_register_input_format(&avisynth_demuxer);
  85. #endif
  86. #ifdef CONFIG_AVS_DEMUXER
  87. av_register_input_format(&avs_demuxer);
  88. #endif
  89. #ifdef CONFIG_CRC_MUXER
  90. av_register_output_format(&crc_muxer);
  91. #endif
  92. #ifdef CONFIG_FRAMECRC_MUXER
  93. av_register_output_format(&framecrc_muxer);
  94. #endif
  95. #ifdef CONFIG_DAUD_DEMUXER
  96. av_register_input_format(&daud_demuxer);
  97. #endif
  98. #ifdef CONFIG_DC1394
  99. #ifdef CONFIG_DC1394_DEMUXER
  100. av_register_input_format(&dc1394_demuxer);
  101. #endif
  102. #endif /* CONFIG_DC1394 */
  103. #ifdef CONFIG_DSICIN_DEMUXER
  104. av_register_input_format(&dsicin_demuxer);
  105. #endif
  106. #ifdef CONFIG_DV1394
  107. #ifdef CONFIG_DV1394_DEMUXER
  108. av_register_input_format(&dv1394_demuxer);
  109. #endif
  110. #endif /* CONFIG_DV1394 */
  111. #ifdef CONFIG_DV_DEMUXER
  112. av_register_input_format(&dv_demuxer);
  113. #endif
  114. #ifdef CONFIG_DV_MUXER
  115. av_register_output_format(&dv_muxer);
  116. #endif
  117. #ifdef CONFIG_EA_DEMUXER
  118. av_register_input_format(&ea_demuxer);
  119. #endif
  120. #ifdef CONFIG_FFM_DEMUXER
  121. av_register_input_format(&ffm_demuxer);
  122. #endif
  123. #ifdef CONFIG_FFM_MUXER
  124. av_register_output_format(&ffm_muxer);
  125. #endif
  126. #ifdef CONFIG_FLIC_DEMUXER
  127. av_register_input_format(&flic_demuxer);
  128. #endif
  129. #ifdef CONFIG_FLV_DEMUXER
  130. av_register_input_format(&flv_demuxer);
  131. #endif
  132. #ifdef CONFIG_FLV_MUXER
  133. av_register_output_format(&flv_muxer);
  134. #endif
  135. #ifdef CONFIG_GIF_MUXER
  136. av_register_output_format(&gif_muxer);
  137. #endif
  138. #ifdef CONFIG_GIF_DEMUXER
  139. av_register_input_format(&gif_demuxer);
  140. #endif
  141. #ifdef CONFIG_GXF_DEMUXER
  142. av_register_input_format(&gxf_demuxer);
  143. #endif
  144. #if defined(CONFIG_GXF_MUXER) && defined(CONFIG_GPL)
  145. av_register_output_format(&gxf_muxer);
  146. #endif
  147. #ifdef CONFIG_IDCIN_DEMUXER
  148. av_register_input_format(&idcin_demuxer);
  149. #endif
  150. #ifdef CONFIG_ROQ_DEMUXER
  151. av_register_input_format(&roq_demuxer);
  152. #endif
  153. #ifdef CONFIG_IMAGE2_DEMUXER
  154. av_register_input_format(&image2_demuxer);
  155. #endif
  156. #ifdef CONFIG_IMAGE2PIPE_DEMUXER
  157. av_register_input_format(&image2pipe_demuxer);
  158. #endif
  159. #ifdef CONFIG_IMAGE2_MUXER
  160. av_register_output_format(&image2_muxer);
  161. #endif
  162. #ifdef CONFIG_IMAGE2PIPE_MUXER
  163. av_register_output_format(&image2pipe_muxer);
  164. #endif
  165. #ifdef CONFIG_IMAGE_DEMUXER
  166. av_register_input_format(&image_demuxer);
  167. #endif
  168. #ifdef CONFIG_IMAGEPIPE_DEMUXER
  169. av_register_input_format(&imagepipe_demuxer);
  170. #endif
  171. #ifdef CONFIG_IMAGE_MUXER
  172. av_register_output_format(&image_muxer);
  173. #endif
  174. #ifdef CONFIG_IMAGEPIPE_MUXER
  175. av_register_output_format(&imagepipe_muxer);
  176. #endif
  177. #ifdef CONFIG_IPMOVIE_DEMUXER
  178. av_register_input_format(&ipmovie_demuxer);
  179. #endif
  180. #ifdef CONFIG_MATROSKA_DEMUXER
  181. av_register_input_format(&matroska_demuxer);
  182. #endif
  183. #ifdef CONFIG_MM_DEMUXER
  184. av_register_input_format(&mm_demuxer);
  185. #endif
  186. #ifdef CONFIG_MMF_DEMUXER
  187. av_register_input_format(&mmf_demuxer);
  188. #endif
  189. #ifdef CONFIG_MMF_MUXER
  190. av_register_output_format(&mmf_muxer);
  191. #endif
  192. #ifdef CONFIG_MOV_DEMUXER
  193. av_register_input_format(&mov_demuxer);
  194. #endif
  195. #ifdef CONFIG_MOV_MUXER
  196. av_register_output_format(&mov_muxer);
  197. #endif
  198. #ifdef CONFIG_MTV_DEMUXER
  199. av_register_input_format(&mtv_demuxer);
  200. #endif
  201. #ifdef CONFIG_TGP_MUXER
  202. av_register_output_format(&tgp_muxer);
  203. #endif
  204. #ifdef CONFIG_MP4_MUXER
  205. av_register_output_format(&mp4_muxer);
  206. #endif
  207. #ifdef CONFIG_PSP_MUXER
  208. av_register_output_format(&psp_muxer);
  209. #endif
  210. #ifdef CONFIG_TG2_MUXER
  211. av_register_output_format(&tg2_muxer);
  212. #endif
  213. #ifdef CONFIG_MP3_DEMUXER
  214. av_register_input_format(&mp3_demuxer);
  215. #endif
  216. #ifdef CONFIG_MP2_MUXER
  217. av_register_output_format(&mp2_muxer);
  218. #endif
  219. #ifdef CONFIG_MP3_MUXER
  220. av_register_output_format(&mp3_muxer);
  221. #endif
  222. #ifdef CONFIG_MPEG1SYSTEM_MUXER
  223. av_register_output_format(&mpeg1system_muxer);
  224. #endif
  225. #ifdef CONFIG_MPEG1VCD_MUXER
  226. av_register_output_format(&mpeg1vcd_muxer);
  227. #endif
  228. #ifdef CONFIG_MPEG2VOB_MUXER
  229. av_register_output_format(&mpeg2vob_muxer);
  230. #endif
  231. #ifdef CONFIG_MPEG2SVCD_MUXER
  232. av_register_output_format(&mpeg2svcd_muxer);
  233. #endif
  234. #ifdef CONFIG_MPEG2DVD_MUXER
  235. av_register_output_format(&mpeg2dvd_muxer);
  236. #endif
  237. #ifdef CONFIG_MPEGPS_DEMUXER
  238. av_register_input_format(&mpegps_demuxer);
  239. #endif
  240. #ifdef CONFIG_MPEGTS_DEMUXER
  241. av_register_input_format(&mpegts_demuxer);
  242. #endif
  243. #ifdef CONFIG_MPEGTS_MUXER
  244. av_register_output_format(&mpegts_muxer);
  245. #endif
  246. #ifdef CONFIG_MPJPEG_MUXER
  247. av_register_output_format(&mpjpeg_muxer);
  248. #endif
  249. #ifdef CONFIG_MXF_DEMUXER
  250. av_register_input_format(&mxf_demuxer);
  251. #endif
  252. #ifdef CONFIG_NSV_DEMUXER
  253. av_register_input_format(&nsv_demuxer);
  254. #endif
  255. #ifdef CONFIG_NUT_DEMUXER
  256. av_register_input_format(&nut_demuxer);
  257. #endif
  258. #ifdef CONFIG_NUT_MUXER
  259. av_register_output_format(&nut_muxer);
  260. #endif
  261. #ifdef CONFIG_NUV_DEMUXER
  262. av_register_input_format(&nuv_demuxer);
  263. #endif
  264. #ifdef CONFIG_OGG_DEMUXER
  265. av_register_input_format(&ogg_demuxer);
  266. #endif
  267. #ifdef CONFIG_LIBOGG
  268. #ifdef CONFIG_OGG_MUXER
  269. av_register_output_format(&ogg_muxer);
  270. #endif
  271. #endif /* CONFIG_LIBOGG */
  272. #ifdef CONFIG_STR_DEMUXER
  273. av_register_input_format(&str_demuxer);
  274. #endif
  275. #ifdef CONFIG_SHORTEN_DEMUXER
  276. av_register_input_format(&shorten_demuxer);
  277. #endif
  278. #ifdef CONFIG_FLAC_DEMUXER
  279. av_register_input_format(&flac_demuxer);
  280. #endif
  281. #ifdef CONFIG_FLAC_MUXER
  282. av_register_output_format(&flac_muxer);
  283. #endif
  284. #ifdef CONFIG_AC3_DEMUXER
  285. av_register_input_format(&ac3_demuxer);
  286. #endif
  287. #ifdef CONFIG_AC3_MUXER
  288. av_register_output_format(&ac3_muxer);
  289. #endif
  290. #ifdef CONFIG_DTS_DEMUXER
  291. av_register_input_format(&dts_demuxer);
  292. #endif
  293. #ifdef CONFIG_AAC_DEMUXER
  294. av_register_input_format(&aac_demuxer);
  295. #endif
  296. #ifdef CONFIG_H261_DEMUXER
  297. av_register_input_format(&h261_demuxer);
  298. #endif
  299. #ifdef CONFIG_H261_MUXER
  300. av_register_output_format(&h261_muxer);
  301. #endif
  302. #ifdef CONFIG_H263_DEMUXER
  303. av_register_input_format(&h263_demuxer);
  304. #endif
  305. #ifdef CONFIG_H263_MUXER
  306. av_register_output_format(&h263_muxer);
  307. #endif
  308. #ifdef CONFIG_M4V_DEMUXER
  309. av_register_input_format(&m4v_demuxer);
  310. #endif
  311. #ifdef CONFIG_M4V_MUXER
  312. av_register_output_format(&m4v_muxer);
  313. #endif
  314. #ifdef CONFIG_H264_DEMUXER
  315. av_register_input_format(&h264_demuxer);
  316. #endif
  317. #ifdef CONFIG_H264_MUXER
  318. av_register_output_format(&h264_muxer);
  319. #endif
  320. #ifdef CONFIG_MPEGVIDEO_DEMUXER
  321. av_register_input_format(&mpegvideo_demuxer);
  322. #endif
  323. #ifdef CONFIG_MPEG1VIDEO_MUXER
  324. av_register_output_format(&mpeg1video_muxer);
  325. #endif
  326. #ifdef CONFIG_MPEG2VIDEO_MUXER
  327. av_register_output_format(&mpeg2video_muxer);
  328. #endif
  329. #ifdef CONFIG_MJPEG_DEMUXER
  330. av_register_input_format(&mjpeg_demuxer);
  331. #endif
  332. #ifdef CONFIG_INGENIENT_DEMUXER
  333. av_register_input_format(&ingenient_demuxer);
  334. #endif
  335. #ifdef CONFIG_MJPEG_MUXER
  336. av_register_output_format(&mjpeg_muxer);
  337. #endif
  338. #ifdef CONFIG_PCM_S16LE_DEMUXER
  339. av_register_input_format(&pcm_s16le_demuxer);
  340. #endif
  341. #ifdef CONFIG_PCM_S16LE_MUXER
  342. av_register_output_format(&pcm_s16le_muxer);
  343. #endif
  344. #ifdef CONFIG_PCM_S16BE_DEMUXER
  345. av_register_input_format(&pcm_s16be_demuxer);
  346. #endif
  347. #ifdef CONFIG_PCM_S16BE_MUXER
  348. av_register_output_format(&pcm_s16be_muxer);
  349. #endif
  350. #ifdef CONFIG_PCM_U16LE_DEMUXER
  351. av_register_input_format(&pcm_u16le_demuxer);
  352. #endif
  353. #ifdef CONFIG_PCM_U16LE_MUXER
  354. av_register_output_format(&pcm_u16le_muxer);
  355. #endif
  356. #ifdef CONFIG_PCM_U16BE_DEMUXER
  357. av_register_input_format(&pcm_u16be_demuxer);
  358. #endif
  359. #ifdef CONFIG_PCM_U16BE_MUXER
  360. av_register_output_format(&pcm_u16be_muxer);
  361. #endif
  362. #ifdef CONFIG_PCM_S8_DEMUXER
  363. av_register_input_format(&pcm_s8_demuxer);
  364. #endif
  365. #ifdef CONFIG_PCM_S8_MUXER
  366. av_register_output_format(&pcm_s8_muxer);
  367. #endif
  368. #ifdef CONFIG_PCM_U8_DEMUXER
  369. av_register_input_format(&pcm_u8_demuxer);
  370. #endif
  371. #ifdef CONFIG_PCM_U8_MUXER
  372. av_register_output_format(&pcm_u8_muxer);
  373. #endif
  374. #ifdef CONFIG_PCM_MULAW_DEMUXER
  375. av_register_input_format(&pcm_mulaw_demuxer);
  376. #endif
  377. #ifdef CONFIG_PCM_MULAW_MUXER
  378. av_register_output_format(&pcm_mulaw_muxer);
  379. #endif
  380. #ifdef CONFIG_PCM_ALAW_DEMUXER
  381. av_register_input_format(&pcm_alaw_demuxer);
  382. #endif
  383. #ifdef CONFIG_PCM_ALAW_MUXER
  384. av_register_output_format(&pcm_alaw_muxer);
  385. #endif
  386. #ifdef CONFIG_RAWVIDEO_DEMUXER
  387. av_register_input_format(&rawvideo_demuxer);
  388. #endif
  389. #ifdef CONFIG_RAWVIDEO_MUXER
  390. av_register_output_format(&rawvideo_muxer);
  391. #endif
  392. #ifdef CONFIG_NULL_MUXER
  393. av_register_output_format(&null_muxer);
  394. #endif
  395. #ifdef CONFIG_RM_DEMUXER
  396. av_register_input_format(&rm_demuxer);
  397. #endif
  398. #ifdef CONFIG_RM_MUXER
  399. av_register_output_format(&rm_muxer);
  400. #endif
  401. #ifdef CONFIG_NETWORK
  402. #ifdef CONFIG_RTP_MUXER
  403. av_register_output_format(&rtp_muxer);
  404. #endif
  405. #ifdef CONFIG_RTSP_DEMUXER
  406. av_register_input_format(&rtsp_demuxer);
  407. #endif
  408. #ifdef CONFIG_SDP_DEMUXER
  409. av_register_input_format(&sdp_demuxer);
  410. #endif
  411. #ifdef CONFIG_REDIR_DEMUXER
  412. av_register_input_format(&redir_demuxer);
  413. #endif
  414. #endif /* CONFIG_NETWORK */
  415. #ifdef CONFIG_SEGAFILM_DEMUXER
  416. av_register_input_format(&segafilm_demuxer);
  417. #endif
  418. #ifdef CONFIG_VMD_DEMUXER
  419. av_register_input_format(&vmd_demuxer);
  420. #endif
  421. #ifdef CONFIG_SMACKER_DEMUXER
  422. av_register_input_format(&smacker_demuxer);
  423. #endif
  424. #ifdef CONFIG_SOL_DEMUXER
  425. av_register_input_format(&sol_demuxer);
  426. #endif
  427. #ifdef CONFIG_SWF_DEMUXER
  428. av_register_input_format(&swf_demuxer);
  429. #endif
  430. #ifdef CONFIG_SWF_MUXER
  431. av_register_output_format(&swf_muxer);
  432. #endif
  433. #ifdef CONFIG_TTA_DEMUXER
  434. av_register_input_format(&tta_demuxer);
  435. #endif
  436. #ifdef CONFIG_VIDEO4LINUX2
  437. #ifdef CONFIG_V4L2_DEMUXER
  438. av_register_input_format(&v4l2_demuxer);
  439. #endif
  440. #endif /* CONFIG_VIDEO4LINUX2 */
  441. #if defined(CONFIG_VIDEO4LINUX) || defined(CONFIG_BKTR)
  442. #ifdef CONFIG_VIDEO_GRAB_DEVICE_DEMUXER
  443. av_register_input_format(&video_grab_device_demuxer);
  444. #endif
  445. #endif /* CONFIG_VIDEO4LINUX || CONFIG_BKTR */
  446. #ifdef CONFIG_VOC_DEMUXER
  447. av_register_input_format(&voc_demuxer);
  448. #endif
  449. #ifdef CONFIG_VOC_MUXER
  450. av_register_output_format(&voc_muxer);
  451. #endif
  452. #ifdef CONFIG_WAV_DEMUXER
  453. av_register_input_format(&wav_demuxer);
  454. #endif
  455. #ifdef CONFIG_WAV_MUXER
  456. av_register_output_format(&wav_muxer);
  457. #endif
  458. #ifdef CONFIG_WC3_DEMUXER
  459. av_register_input_format(&wc3_demuxer);
  460. #endif
  461. #ifdef CONFIG_WSAUD_DEMUXER
  462. av_register_input_format(&wsaud_demuxer);
  463. #endif
  464. #ifdef CONFIG_WSVQA_DEMUXER
  465. av_register_input_format(&wsvqa_demuxer);
  466. #endif
  467. #ifdef CONFIG_WV_DEMUXER
  468. av_register_input_format(&wv_demuxer);
  469. #endif
  470. #ifdef CONFIG_YUV4MPEGPIPE_MUXER
  471. av_register_output_format(&yuv4mpegpipe_muxer);
  472. #endif
  473. #ifdef CONFIG_YUV4MPEGPIPE_DEMUXER
  474. av_register_input_format(&yuv4mpegpipe_demuxer);
  475. #endif
  476. #ifdef CONFIG_TIERTEXSEQ_DEMUXER
  477. av_register_input_format(&tiertexseq_demuxer);
  478. #endif
  479. /* image formats */
  480. #if 0
  481. av_register_image_format(&pnm_image_format);
  482. av_register_image_format(&pbm_image_format);
  483. av_register_image_format(&pgm_image_format);
  484. av_register_image_format(&ppm_image_format);
  485. av_register_image_format(&pam_image_format);
  486. av_register_image_format(&pgmyuv_image_format);
  487. av_register_image_format(&yuv_image_format);
  488. #ifdef CONFIG_ZLIB
  489. av_register_image_format(&png_image_format);
  490. #endif
  491. av_register_image_format(&jpeg_image_format);
  492. #endif
  493. av_register_image_format(&gif_image_format);
  494. // av_register_image_format(&sgi_image_format); heap corruption, dont enable
  495. #ifdef CONFIG_PROTOCOLS
  496. /* file protocols */
  497. register_protocol(&file_protocol);
  498. register_protocol(&pipe_protocol);
  499. #ifdef CONFIG_NETWORK
  500. register_protocol(&udp_protocol);
  501. register_protocol(&rtp_protocol);
  502. register_protocol(&tcp_protocol);
  503. register_protocol(&http_protocol);
  504. #endif
  505. #endif
  506. }