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.

307 lines
9.6KB

  1. /*
  2. * RAW muxers
  3. * Copyright (c) 2001 Fabrice Bellard
  4. * Copyright (c) 2005 Alex Beregszaszi
  5. *
  6. * This file is part of Libav.
  7. *
  8. * Libav 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. * Libav 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 Libav; if not, write to the Free Software
  20. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  21. */
  22. #include "avformat.h"
  23. #include "rawenc.h"
  24. int ff_raw_write_packet(AVFormatContext *s, AVPacket *pkt)
  25. {
  26. avio_write(s->pb, pkt->data, pkt->size);
  27. return 0;
  28. }
  29. /* Note: Do not forget to add new entries to the Makefile as well. */
  30. #if CONFIG_AC3_MUXER
  31. AVOutputFormat ff_ac3_muxer = {
  32. .name = "ac3",
  33. .long_name = NULL_IF_CONFIG_SMALL("raw AC-3"),
  34. .mime_type = "audio/x-ac3",
  35. .extensions = "ac3",
  36. .audio_codec = AV_CODEC_ID_AC3,
  37. .video_codec = AV_CODEC_ID_NONE,
  38. .write_packet = ff_raw_write_packet,
  39. .flags = AVFMT_NOTIMESTAMPS,
  40. };
  41. #endif
  42. #if CONFIG_ADX_MUXER
  43. AVOutputFormat ff_adx_muxer = {
  44. .name = "adx",
  45. .long_name = NULL_IF_CONFIG_SMALL("CRI ADX"),
  46. .extensions = "adx",
  47. .audio_codec = AV_CODEC_ID_ADPCM_ADX,
  48. .video_codec = AV_CODEC_ID_NONE,
  49. .write_packet = ff_raw_write_packet,
  50. .flags = AVFMT_NOTIMESTAMPS,
  51. };
  52. #endif
  53. #if CONFIG_CAVSVIDEO_MUXER
  54. AVOutputFormat ff_cavsvideo_muxer = {
  55. .name = "cavsvideo",
  56. .long_name = NULL_IF_CONFIG_SMALL("raw Chinese AVS (Audio Video Standard) video"),
  57. .extensions = "cavs",
  58. .audio_codec = AV_CODEC_ID_NONE,
  59. .video_codec = AV_CODEC_ID_CAVS,
  60. .write_packet = ff_raw_write_packet,
  61. .flags = AVFMT_NOTIMESTAMPS,
  62. };
  63. #endif
  64. #if CONFIG_DIRAC_MUXER
  65. AVOutputFormat ff_dirac_muxer = {
  66. .name = "dirac",
  67. .long_name = NULL_IF_CONFIG_SMALL("raw Dirac"),
  68. .extensions = "drc",
  69. .audio_codec = AV_CODEC_ID_NONE,
  70. .video_codec = AV_CODEC_ID_DIRAC,
  71. .write_packet = ff_raw_write_packet,
  72. .flags = AVFMT_NOTIMESTAMPS,
  73. };
  74. #endif
  75. #if CONFIG_DNXHD_MUXER
  76. AVOutputFormat ff_dnxhd_muxer = {
  77. .name = "dnxhd",
  78. .long_name = NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
  79. .extensions = "dnxhd",
  80. .audio_codec = AV_CODEC_ID_NONE,
  81. .video_codec = AV_CODEC_ID_DNXHD,
  82. .write_packet = ff_raw_write_packet,
  83. .flags = AVFMT_NOTIMESTAMPS,
  84. };
  85. #endif
  86. #if CONFIG_DTS_MUXER
  87. AVOutputFormat ff_dts_muxer = {
  88. .name = "dts",
  89. .long_name = NULL_IF_CONFIG_SMALL("raw DTS"),
  90. .mime_type = "audio/x-dca",
  91. .extensions = "dts",
  92. .audio_codec = AV_CODEC_ID_DTS,
  93. .video_codec = AV_CODEC_ID_NONE,
  94. .write_packet = ff_raw_write_packet,
  95. .flags = AVFMT_NOTIMESTAMPS,
  96. };
  97. #endif
  98. #if CONFIG_EAC3_MUXER
  99. AVOutputFormat ff_eac3_muxer = {
  100. .name = "eac3",
  101. .long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
  102. .mime_type = "audio/x-eac3",
  103. .extensions = "eac3",
  104. .audio_codec = AV_CODEC_ID_EAC3,
  105. .video_codec = AV_CODEC_ID_NONE,
  106. .write_packet = ff_raw_write_packet,
  107. .flags = AVFMT_NOTIMESTAMPS,
  108. };
  109. #endif
  110. #if CONFIG_G722_MUXER
  111. AVOutputFormat ff_g722_muxer = {
  112. .name = "g722",
  113. .long_name = NULL_IF_CONFIG_SMALL("raw G.722"),
  114. .mime_type = "audio/G722",
  115. .extensions = "g722",
  116. .audio_codec = AV_CODEC_ID_ADPCM_G722,
  117. .video_codec = AV_CODEC_ID_NONE,
  118. .write_packet = ff_raw_write_packet,
  119. .flags = AVFMT_NOTIMESTAMPS,
  120. };
  121. #endif
  122. #if CONFIG_G723_1_MUXER
  123. AVOutputFormat ff_g723_1_muxer = {
  124. .name = "g723_1",
  125. .long_name = NULL_IF_CONFIG_SMALL("raw G.723.1"),
  126. .mime_type = "audio/g723",
  127. .extensions = "tco,rco",
  128. .audio_codec = AV_CODEC_ID_G723_1,
  129. .video_codec = AV_CODEC_ID_NONE,
  130. .write_packet = ff_raw_write_packet,
  131. .flags = AVFMT_NOTIMESTAMPS,
  132. };
  133. #endif
  134. #if CONFIG_H261_MUXER
  135. AVOutputFormat ff_h261_muxer = {
  136. .name = "h261",
  137. .long_name = NULL_IF_CONFIG_SMALL("raw H.261"),
  138. .mime_type = "video/x-h261",
  139. .extensions = "h261",
  140. .audio_codec = AV_CODEC_ID_NONE,
  141. .video_codec = AV_CODEC_ID_H261,
  142. .write_packet = ff_raw_write_packet,
  143. .flags = AVFMT_NOTIMESTAMPS,
  144. };
  145. #endif
  146. #if CONFIG_H263_MUXER
  147. AVOutputFormat ff_h263_muxer = {
  148. .name = "h263",
  149. .long_name = NULL_IF_CONFIG_SMALL("raw H.263"),
  150. .mime_type = "video/x-h263",
  151. .extensions = "h263",
  152. .audio_codec = AV_CODEC_ID_NONE,
  153. .video_codec = AV_CODEC_ID_H263,
  154. .write_packet = ff_raw_write_packet,
  155. .flags = AVFMT_NOTIMESTAMPS,
  156. };
  157. #endif
  158. #if CONFIG_H264_MUXER
  159. AVOutputFormat ff_h264_muxer = {
  160. .name = "h264",
  161. .long_name = NULL_IF_CONFIG_SMALL("raw H.264 video"),
  162. .extensions = "h264",
  163. .audio_codec = AV_CODEC_ID_NONE,
  164. .video_codec = AV_CODEC_ID_H264,
  165. .write_packet = ff_raw_write_packet,
  166. .flags = AVFMT_NOTIMESTAMPS,
  167. };
  168. #endif
  169. #if CONFIG_HEVC_MUXER
  170. AVOutputFormat ff_hevc_muxer = {
  171. .name = "hevc",
  172. .long_name = NULL_IF_CONFIG_SMALL("raw HEVC video"),
  173. .extensions = "hevc",
  174. .audio_codec = AV_CODEC_ID_NONE,
  175. .video_codec = AV_CODEC_ID_HEVC,
  176. .write_packet = ff_raw_write_packet,
  177. .flags = AVFMT_NOTIMESTAMPS,
  178. };
  179. #endif
  180. #if CONFIG_M4V_MUXER
  181. AVOutputFormat ff_m4v_muxer = {
  182. .name = "m4v",
  183. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-4 video"),
  184. .extensions = "m4v",
  185. .audio_codec = AV_CODEC_ID_NONE,
  186. .video_codec = AV_CODEC_ID_MPEG4,
  187. .write_packet = ff_raw_write_packet,
  188. .flags = AVFMT_NOTIMESTAMPS,
  189. };
  190. #endif
  191. #if CONFIG_MJPEG_MUXER
  192. AVOutputFormat ff_mjpeg_muxer = {
  193. .name = "mjpeg",
  194. .long_name = NULL_IF_CONFIG_SMALL("raw MJPEG video"),
  195. .mime_type = "video/x-mjpeg",
  196. .extensions = "mjpg,mjpeg",
  197. .audio_codec = AV_CODEC_ID_NONE,
  198. .video_codec = AV_CODEC_ID_MJPEG,
  199. .write_packet = ff_raw_write_packet,
  200. .flags = AVFMT_NOTIMESTAMPS,
  201. };
  202. #endif
  203. #if CONFIG_MLP_MUXER
  204. AVOutputFormat ff_mlp_muxer = {
  205. .name = "mlp",
  206. .long_name = NULL_IF_CONFIG_SMALL("raw MLP"),
  207. .extensions = "mlp",
  208. .audio_codec = AV_CODEC_ID_MLP,
  209. .video_codec = AV_CODEC_ID_NONE,
  210. .write_packet = ff_raw_write_packet,
  211. .flags = AVFMT_NOTIMESTAMPS,
  212. };
  213. #endif
  214. #if CONFIG_MP2_MUXER
  215. AVOutputFormat ff_mp2_muxer = {
  216. .name = "mp2",
  217. .long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
  218. .mime_type = "audio/mpeg",
  219. .extensions = "mp2,m2a,mpa",
  220. .audio_codec = AV_CODEC_ID_MP2,
  221. .video_codec = AV_CODEC_ID_NONE,
  222. .write_packet = ff_raw_write_packet,
  223. .flags = AVFMT_NOTIMESTAMPS,
  224. };
  225. #endif
  226. #if CONFIG_MPEG1VIDEO_MUXER
  227. AVOutputFormat ff_mpeg1video_muxer = {
  228. .name = "mpeg1video",
  229. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-1 video"),
  230. .mime_type = "video/mpeg",
  231. .extensions = "mpg,mpeg,m1v",
  232. .audio_codec = AV_CODEC_ID_NONE,
  233. .video_codec = AV_CODEC_ID_MPEG1VIDEO,
  234. .write_packet = ff_raw_write_packet,
  235. .flags = AVFMT_NOTIMESTAMPS,
  236. };
  237. #endif
  238. #if CONFIG_MPEG2VIDEO_MUXER
  239. AVOutputFormat ff_mpeg2video_muxer = {
  240. .name = "mpeg2video",
  241. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-2 video"),
  242. .extensions = "m2v",
  243. .audio_codec = AV_CODEC_ID_NONE,
  244. .video_codec = AV_CODEC_ID_MPEG2VIDEO,
  245. .write_packet = ff_raw_write_packet,
  246. .flags = AVFMT_NOTIMESTAMPS,
  247. };
  248. #endif
  249. #if CONFIG_RAWVIDEO_MUXER
  250. AVOutputFormat ff_rawvideo_muxer = {
  251. .name = "rawvideo",
  252. .long_name = NULL_IF_CONFIG_SMALL("raw video"),
  253. .extensions = "yuv,rgb",
  254. .audio_codec = AV_CODEC_ID_NONE,
  255. .video_codec = AV_CODEC_ID_RAWVIDEO,
  256. .write_packet = ff_raw_write_packet,
  257. .flags = AVFMT_NOTIMESTAMPS,
  258. };
  259. #endif
  260. #if CONFIG_SRT_MUXER
  261. AVOutputFormat ff_srt_muxer = {
  262. .name = "srt",
  263. .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"),
  264. .mime_type = "application/x-subrip",
  265. .extensions = "srt",
  266. .write_packet = ff_raw_write_packet,
  267. .flags = AVFMT_NOTIMESTAMPS,
  268. .subtitle_codec = AV_CODEC_ID_SRT,
  269. };
  270. #endif
  271. #if CONFIG_TRUEHD_MUXER
  272. AVOutputFormat ff_truehd_muxer = {
  273. .name = "truehd",
  274. .long_name = NULL_IF_CONFIG_SMALL("raw TrueHD"),
  275. .extensions = "thd",
  276. .audio_codec = AV_CODEC_ID_TRUEHD,
  277. .video_codec = AV_CODEC_ID_NONE,
  278. .write_packet = ff_raw_write_packet,
  279. .flags = AVFMT_NOTIMESTAMPS,
  280. };
  281. #endif