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.

491 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_AVS_DEMUXER
  82. av_register_input_format(&avs_demuxer);
  83. #endif
  84. #ifdef CONFIG_CRC_MUXER
  85. av_register_output_format(&crc_muxer);
  86. #endif
  87. #ifdef CONFIG_FRAMECRC_MUXER
  88. av_register_output_format(&framecrc_muxer);
  89. #endif
  90. #ifdef CONFIG_DAUD_DEMUXER
  91. av_register_input_format(&daud_demuxer);
  92. #endif
  93. #ifdef CONFIG_DC1394
  94. #ifdef CONFIG_DC1394_DEMUXER
  95. av_register_input_format(&dc1394_demuxer);
  96. #endif
  97. #endif /* CONFIG_DC1394 */
  98. #ifdef CONFIG_DV1394
  99. #ifdef CONFIG_DV1394_DEMUXER
  100. av_register_input_format(&dv1394_demuxer);
  101. #endif
  102. #endif /* CONFIG_DV1394 */
  103. #ifdef CONFIG_DV_DEMUXER
  104. av_register_input_format(&dv_demuxer);
  105. #endif
  106. #ifdef CONFIG_DV_MUXER
  107. av_register_output_format(&dv_muxer);
  108. #endif
  109. #ifdef CONFIG_EA_DEMUXER
  110. av_register_input_format(&ea_demuxer);
  111. #endif
  112. #ifdef CONFIG_FFM_DEMUXER
  113. av_register_input_format(&ffm_demuxer);
  114. #endif
  115. #ifdef CONFIG_FFM_MUXER
  116. av_register_output_format(&ffm_muxer);
  117. #endif
  118. #ifdef CONFIG_FLIC_DEMUXER
  119. av_register_input_format(&flic_demuxer);
  120. #endif
  121. #ifdef CONFIG_FLV_DEMUXER
  122. av_register_input_format(&flv_demuxer);
  123. #endif
  124. #ifdef CONFIG_FLV_MUXER
  125. av_register_output_format(&flv_muxer);
  126. #endif
  127. #ifdef CONFIG_GIF_MUXER
  128. av_register_output_format(&gif_muxer);
  129. #endif
  130. #ifdef CONFIG_GIF_DEMUXER
  131. av_register_input_format(&gif_demuxer);
  132. #endif
  133. #ifdef CONFIG_GXF_DEMUXER
  134. av_register_input_format(&gxf_demuxer);
  135. #endif
  136. #ifdef CONFIG_IDCIN_DEMUXER
  137. av_register_input_format(&idcin_demuxer);
  138. #endif
  139. #ifdef CONFIG_ROQ_DEMUXER
  140. av_register_input_format(&roq_demuxer);
  141. #endif
  142. #ifdef CONFIG_IMAGE2_DEMUXER
  143. av_register_input_format(&image2_demuxer);
  144. #endif
  145. #ifdef CONFIG_IMAGE2PIPE_DEMUXER
  146. av_register_input_format(&image2pipe_demuxer);
  147. #endif
  148. #ifdef CONFIG_IMAGE2_MUXER
  149. av_register_output_format(&image2_muxer);
  150. #endif
  151. #ifdef CONFIG_IMAGE2PIPE_MUXER
  152. av_register_output_format(&image2pipe_muxer);
  153. #endif
  154. #ifdef CONFIG_IMAGE_DEMUXER
  155. av_register_input_format(&image_demuxer);
  156. #endif
  157. #ifdef CONFIG_IMAGEPIPE_DEMUXER
  158. av_register_input_format(&imagepipe_demuxer);
  159. #endif
  160. #ifdef CONFIG_IMAGE_MUXER
  161. av_register_output_format(&image_muxer);
  162. #endif
  163. #ifdef CONFIG_IMAGEPIPE_MUXER
  164. av_register_output_format(&imagepipe_muxer);
  165. #endif
  166. #ifdef CONFIG_IPMOVIE_DEMUXER
  167. av_register_input_format(&ipmovie_demuxer);
  168. #endif
  169. #ifdef CONFIG_MATROSKA_DEMUXER
  170. av_register_input_format(&matroska_demuxer);
  171. #endif
  172. #ifdef CONFIG_MM_DEMUXER
  173. av_register_input_format(&mm_demuxer);
  174. #endif
  175. #ifdef CONFIG_MMF_DEMUXER
  176. av_register_input_format(&mmf_demuxer);
  177. #endif
  178. #ifdef CONFIG_MMF_MUXER
  179. av_register_output_format(&mmf_muxer);
  180. #endif
  181. #ifdef CONFIG_MOV_DEMUXER
  182. av_register_input_format(&mov_demuxer);
  183. #endif
  184. #ifdef CONFIG_MOV_MUXER
  185. av_register_output_format(&mov_muxer);
  186. #endif
  187. #ifdef CONFIG_TGP_MUXER
  188. av_register_output_format(&tgp_muxer);
  189. #endif
  190. #ifdef CONFIG_MP4_MUXER
  191. av_register_output_format(&mp4_muxer);
  192. #endif
  193. #ifdef CONFIG_PSP_MUXER
  194. av_register_output_format(&psp_muxer);
  195. #endif
  196. #ifdef CONFIG_TG2_MUXER
  197. av_register_output_format(&tg2_muxer);
  198. #endif
  199. #ifdef CONFIG_MP3_DEMUXER
  200. av_register_input_format(&mp3_demuxer);
  201. #endif
  202. #ifdef CONFIG_MP2_MUXER
  203. av_register_output_format(&mp2_muxer);
  204. #endif
  205. #ifdef CONFIG_MP3_MUXER
  206. av_register_output_format(&mp3_muxer);
  207. #endif
  208. #ifdef CONFIG_MPEG1SYSTEM_MUXER
  209. av_register_output_format(&mpeg1system_muxer);
  210. #endif
  211. #ifdef CONFIG_MPEG1VCD_MUXER
  212. av_register_output_format(&mpeg1vcd_muxer);
  213. #endif
  214. #ifdef CONFIG_MPEG2VOB_MUXER
  215. av_register_output_format(&mpeg2vob_muxer);
  216. #endif
  217. #ifdef CONFIG_MPEG2SVCD_MUXER
  218. av_register_output_format(&mpeg2svcd_muxer);
  219. #endif
  220. #ifdef CONFIG_MPEG2DVD_MUXER
  221. av_register_output_format(&mpeg2dvd_muxer);
  222. #endif
  223. #ifdef CONFIG_MPEGPS_DEMUXER
  224. av_register_input_format(&mpegps_demuxer);
  225. #endif
  226. #ifdef CONFIG_MPEGTS_DEMUXER
  227. av_register_input_format(&mpegts_demuxer);
  228. #endif
  229. #ifdef CONFIG_MPEGTS_MUXER
  230. av_register_output_format(&mpegts_muxer);
  231. #endif
  232. #ifdef CONFIG_MPJPEG_MUXER
  233. av_register_output_format(&mpjpeg_muxer);
  234. #endif
  235. #ifdef CONFIG_NSV_DEMUXER
  236. av_register_input_format(&nsv_demuxer);
  237. #endif
  238. #ifdef CONFIG_NUT_DEMUXER
  239. av_register_input_format(&nut_demuxer);
  240. #endif
  241. #ifdef CONFIG_NUT_MUXER
  242. av_register_output_format(&nut_muxer);
  243. #endif
  244. #ifdef CONFIG_NUV_DEMUXER
  245. av_register_input_format(&nuv_demuxer);
  246. #endif
  247. #ifdef CONFIG_OGG_DEMUXER
  248. av_register_input_format(&ogg_demuxer);
  249. #endif
  250. #ifdef CONFIG_LIBOGG
  251. #ifdef CONFIG_OGG_MUXER
  252. av_register_output_format(&ogg_muxer);
  253. #endif
  254. #endif /* CONFIG_LIBOGG */
  255. #ifdef CONFIG_STR_DEMUXER
  256. av_register_input_format(&str_demuxer);
  257. #endif
  258. #ifdef CONFIG_SHORTEN_DEMUXER
  259. av_register_input_format(&shorten_demuxer);
  260. #endif
  261. #ifdef CONFIG_FLAC_DEMUXER
  262. av_register_input_format(&flac_demuxer);
  263. #endif
  264. #ifdef CONFIG_FLAC_MUXER
  265. av_register_output_format(&flac_muxer);
  266. #endif
  267. #ifdef CONFIG_AC3_DEMUXER
  268. av_register_input_format(&ac3_demuxer);
  269. #endif
  270. #ifdef CONFIG_AC3_MUXER
  271. av_register_output_format(&ac3_muxer);
  272. #endif
  273. #ifdef CONFIG_DTS_DEMUXER
  274. av_register_input_format(&dts_demuxer);
  275. #endif
  276. #ifdef CONFIG_AAC_DEMUXER
  277. av_register_input_format(&aac_demuxer);
  278. #endif
  279. #ifdef CONFIG_H261_DEMUXER
  280. av_register_input_format(&h261_demuxer);
  281. #endif
  282. #ifdef CONFIG_H261_MUXER
  283. av_register_output_format(&h261_muxer);
  284. #endif
  285. #ifdef CONFIG_H263_DEMUXER
  286. av_register_input_format(&h263_demuxer);
  287. #endif
  288. #ifdef CONFIG_H263_MUXER
  289. av_register_output_format(&h263_muxer);
  290. #endif
  291. #ifdef CONFIG_M4V_DEMUXER
  292. av_register_input_format(&m4v_demuxer);
  293. #endif
  294. #ifdef CONFIG_M4V_MUXER
  295. av_register_output_format(&m4v_muxer);
  296. #endif
  297. #ifdef CONFIG_H264_DEMUXER
  298. av_register_input_format(&h264_demuxer);
  299. #endif
  300. #ifdef CONFIG_H264_MUXER
  301. av_register_output_format(&h264_muxer);
  302. #endif
  303. #ifdef CONFIG_MPEGVIDEO_DEMUXER
  304. av_register_input_format(&mpegvideo_demuxer);
  305. #endif
  306. #ifdef CONFIG_MPEG1VIDEO_MUXER
  307. av_register_output_format(&mpeg1video_muxer);
  308. #endif
  309. #ifdef CONFIG_MPEG2VIDEO_MUXER
  310. av_register_output_format(&mpeg2video_muxer);
  311. #endif
  312. #ifdef CONFIG_MJPEG_DEMUXER
  313. av_register_input_format(&mjpeg_demuxer);
  314. #endif
  315. #ifdef CONFIG_INGENIENT_DEMUXER
  316. av_register_input_format(&ingenient_demuxer);
  317. #endif
  318. #ifdef CONFIG_MJPEG_MUXER
  319. av_register_output_format(&mjpeg_muxer);
  320. #endif
  321. #ifdef CONFIG_PCM_S16LE_DEMUXER
  322. av_register_input_format(&pcm_s16le_demuxer);
  323. #endif
  324. #ifdef CONFIG_PCM_S16LE_MUXER
  325. av_register_output_format(&pcm_s16le_muxer);
  326. #endif
  327. #ifdef CONFIG_PCM_S16BE_DEMUXER
  328. av_register_input_format(&pcm_s16be_demuxer);
  329. #endif
  330. #ifdef CONFIG_PCM_S16BE_MUXER
  331. av_register_output_format(&pcm_s16be_muxer);
  332. #endif
  333. #ifdef CONFIG_PCM_U16LE_DEMUXER
  334. av_register_input_format(&pcm_u16le_demuxer);
  335. #endif
  336. #ifdef CONFIG_PCM_U16LE_MUXER
  337. av_register_output_format(&pcm_u16le_muxer);
  338. #endif
  339. #ifdef CONFIG_PCM_U16BE_DEMUXER
  340. av_register_input_format(&pcm_u16be_demuxer);
  341. #endif
  342. #ifdef CONFIG_PCM_U16BE_MUXER
  343. av_register_output_format(&pcm_u16be_muxer);
  344. #endif
  345. #ifdef CONFIG_PCM_S8_DEMUXER
  346. av_register_input_format(&pcm_s8_demuxer);
  347. #endif
  348. #ifdef CONFIG_PCM_S8_MUXER
  349. av_register_output_format(&pcm_s8_muxer);
  350. #endif
  351. #ifdef CONFIG_PCM_U8_DEMUXER
  352. av_register_input_format(&pcm_u8_demuxer);
  353. #endif
  354. #ifdef CONFIG_PCM_U8_MUXER
  355. av_register_output_format(&pcm_u8_muxer);
  356. #endif
  357. #ifdef CONFIG_PCM_MULAW_DEMUXER
  358. av_register_input_format(&pcm_mulaw_demuxer);
  359. #endif
  360. #ifdef CONFIG_PCM_MULAW_MUXER
  361. av_register_output_format(&pcm_mulaw_muxer);
  362. #endif
  363. #ifdef CONFIG_PCM_ALAW_DEMUXER
  364. av_register_input_format(&pcm_alaw_demuxer);
  365. #endif
  366. #ifdef CONFIG_PCM_ALAW_MUXER
  367. av_register_output_format(&pcm_alaw_muxer);
  368. #endif
  369. #ifdef CONFIG_RAWVIDEO_DEMUXER
  370. av_register_input_format(&rawvideo_demuxer);
  371. #endif
  372. #ifdef CONFIG_RAWVIDEO_MUXER
  373. av_register_output_format(&rawvideo_muxer);
  374. #endif
  375. #ifdef CONFIG_NULL_MUXER
  376. av_register_output_format(&null_muxer);
  377. #endif
  378. #ifdef CONFIG_RM_DEMUXER
  379. av_register_input_format(&rm_demuxer);
  380. #endif
  381. #ifdef CONFIG_RM_MUXER
  382. av_register_output_format(&rm_muxer);
  383. #endif
  384. #ifdef CONFIG_NETWORK
  385. #ifdef CONFIG_RTP_MUXER
  386. av_register_output_format(&rtp_muxer);
  387. #endif
  388. #ifdef CONFIG_RTSP_DEMUXER
  389. av_register_input_format(&rtsp_demuxer);
  390. #endif
  391. #ifdef CONFIG_SDP_DEMUXER
  392. av_register_input_format(&sdp_demuxer);
  393. #endif
  394. #ifdef CONFIG_REDIR_DEMUXER
  395. av_register_input_format(&redir_demuxer);
  396. #endif
  397. #endif /* CONFIG_NETWORK */
  398. #ifdef CONFIG_SEGAFILM_DEMUXER
  399. av_register_input_format(&segafilm_demuxer);
  400. #endif
  401. #ifdef CONFIG_VMD_DEMUXER
  402. av_register_input_format(&vmd_demuxer);
  403. #endif
  404. #ifdef CONFIG_SMACKER_DEMUXER
  405. av_register_input_format(&smacker_demuxer);
  406. #endif
  407. #ifdef CONFIG_SOL_DEMUXER
  408. av_register_input_format(&sol_demuxer);
  409. #endif
  410. #ifdef CONFIG_SWF_DEMUXER
  411. av_register_input_format(&swf_demuxer);
  412. #endif
  413. #ifdef CONFIG_SWF_MUXER
  414. av_register_output_format(&swf_muxer);
  415. #endif
  416. #ifdef CONFIG_TTA_DEMUXER
  417. av_register_input_format(&tta_demuxer);
  418. #endif
  419. #ifdef CONFIG_VIDEO4LINUX2
  420. #ifdef CONFIG_V4L2_DEMUXER
  421. av_register_input_format(&v4l2_demuxer);
  422. #endif
  423. #endif /* CONFIG_VIDEO4LINUX2 */
  424. #if defined(CONFIG_VIDEO4LINUX) || defined(CONFIG_BKTR)
  425. #ifdef CONFIG_VIDEO_GRAB_DEVICE_DEMUXER
  426. av_register_input_format(&video_grab_device_demuxer);
  427. #endif
  428. #endif /* CONFIG_VIDEO4LINUX || CONFIG_BKTR */
  429. #ifdef CONFIG_VOC_DEMUXER
  430. av_register_input_format(&voc_demuxer);
  431. #endif
  432. #ifdef CONFIG_VOC_MUXER
  433. av_register_output_format(&voc_muxer);
  434. #endif
  435. #ifdef CONFIG_WAV_DEMUXER
  436. av_register_input_format(&wav_demuxer);
  437. #endif
  438. #ifdef CONFIG_WAV_MUXER
  439. av_register_output_format(&wav_muxer);
  440. #endif
  441. #ifdef CONFIG_WC3_DEMUXER
  442. av_register_input_format(&wc3_demuxer);
  443. #endif
  444. #ifdef CONFIG_WSAUD_DEMUXER
  445. av_register_input_format(&wsaud_demuxer);
  446. #endif
  447. #ifdef CONFIG_WSVQA_DEMUXER
  448. av_register_input_format(&wsvqa_demuxer);
  449. #endif
  450. #ifdef CONFIG_YUV4MPEGPIPE_MUXER
  451. av_register_output_format(&yuv4mpegpipe_muxer);
  452. #endif
  453. #ifdef CONFIG_YUV4MPEGPIPE_DEMUXER
  454. av_register_input_format(&yuv4mpegpipe_demuxer);
  455. #endif
  456. /* image formats */
  457. #if 0
  458. av_register_image_format(&pnm_image_format);
  459. av_register_image_format(&pbm_image_format);
  460. av_register_image_format(&pgm_image_format);
  461. av_register_image_format(&ppm_image_format);
  462. av_register_image_format(&pam_image_format);
  463. av_register_image_format(&pgmyuv_image_format);
  464. av_register_image_format(&yuv_image_format);
  465. #ifdef CONFIG_ZLIB
  466. av_register_image_format(&png_image_format);
  467. #endif
  468. av_register_image_format(&jpeg_image_format);
  469. #endif
  470. av_register_image_format(&gif_image_format);
  471. // av_register_image_format(&sgi_image_format); heap corruption, dont enable
  472. #ifdef CONFIG_PROTOCOLS
  473. /* file protocols */
  474. register_protocol(&file_protocol);
  475. register_protocol(&pipe_protocol);
  476. #ifdef CONFIG_NETWORK
  477. register_protocol(&udp_protocol);
  478. register_protocol(&rtp_protocol);
  479. register_protocol(&tcp_protocol);
  480. register_protocol(&http_protocol);
  481. #endif
  482. #endif
  483. }