You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

500 lines
13KB

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