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.

291 lines
9.1KB

  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. #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_DATA_MUXER
  65. AVOutputFormat ff_data_muxer = {
  66. .name = "data",
  67. .long_name = NULL_IF_CONFIG_SMALL("raw data"),
  68. .write_packet = ff_raw_write_packet,
  69. .flags = AVFMT_NOTIMESTAMPS,
  70. };
  71. #endif
  72. #if CONFIG_DIRAC_MUXER
  73. AVOutputFormat ff_dirac_muxer = {
  74. .name = "dirac",
  75. .long_name = NULL_IF_CONFIG_SMALL("raw Dirac"),
  76. .extensions = "drc",
  77. .audio_codec = AV_CODEC_ID_NONE,
  78. .video_codec = AV_CODEC_ID_DIRAC,
  79. .write_packet = ff_raw_write_packet,
  80. .flags = AVFMT_NOTIMESTAMPS,
  81. };
  82. #endif
  83. #if CONFIG_DNXHD_MUXER
  84. AVOutputFormat ff_dnxhd_muxer = {
  85. .name = "dnxhd",
  86. .long_name = NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
  87. .extensions = "dnxhd",
  88. .audio_codec = AV_CODEC_ID_NONE,
  89. .video_codec = AV_CODEC_ID_DNXHD,
  90. .write_packet = ff_raw_write_packet,
  91. .flags = AVFMT_NOTIMESTAMPS,
  92. };
  93. #endif
  94. #if CONFIG_DTS_MUXER
  95. AVOutputFormat ff_dts_muxer = {
  96. .name = "dts",
  97. .long_name = NULL_IF_CONFIG_SMALL("raw DTS"),
  98. .mime_type = "audio/x-dca",
  99. .extensions = "dts",
  100. .audio_codec = AV_CODEC_ID_DTS,
  101. .video_codec = AV_CODEC_ID_NONE,
  102. .write_packet = ff_raw_write_packet,
  103. .flags = AVFMT_NOTIMESTAMPS,
  104. };
  105. #endif
  106. #if CONFIG_EAC3_MUXER
  107. AVOutputFormat ff_eac3_muxer = {
  108. .name = "eac3",
  109. .long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
  110. .mime_type = "audio/x-eac3",
  111. .extensions = "eac3",
  112. .audio_codec = AV_CODEC_ID_EAC3,
  113. .video_codec = AV_CODEC_ID_NONE,
  114. .write_packet = ff_raw_write_packet,
  115. .flags = AVFMT_NOTIMESTAMPS,
  116. };
  117. #endif
  118. #if CONFIG_G722_MUXER
  119. AVOutputFormat ff_g722_muxer = {
  120. .name = "g722",
  121. .long_name = NULL_IF_CONFIG_SMALL("raw G.722"),
  122. .mime_type = "audio/G722",
  123. .extensions = "g722",
  124. .audio_codec = AV_CODEC_ID_ADPCM_G722,
  125. .video_codec = AV_CODEC_ID_NONE,
  126. .write_packet = ff_raw_write_packet,
  127. .flags = AVFMT_NOTIMESTAMPS,
  128. };
  129. #endif
  130. #if CONFIG_G723_1_MUXER
  131. AVOutputFormat ff_g723_1_muxer = {
  132. .name = "g723_1",
  133. .long_name = NULL_IF_CONFIG_SMALL("raw G.723.1"),
  134. .mime_type = "audio/g723",
  135. .extensions = "tco,rco",
  136. .audio_codec = AV_CODEC_ID_G723_1,
  137. .video_codec = AV_CODEC_ID_NONE,
  138. .write_packet = ff_raw_write_packet,
  139. .flags = AVFMT_NOTIMESTAMPS,
  140. };
  141. #endif
  142. #if CONFIG_H261_MUXER
  143. AVOutputFormat ff_h261_muxer = {
  144. .name = "h261",
  145. .long_name = NULL_IF_CONFIG_SMALL("raw H.261"),
  146. .mime_type = "video/x-h261",
  147. .extensions = "h261",
  148. .audio_codec = AV_CODEC_ID_NONE,
  149. .video_codec = AV_CODEC_ID_H261,
  150. .write_packet = ff_raw_write_packet,
  151. .flags = AVFMT_NOTIMESTAMPS,
  152. };
  153. #endif
  154. #if CONFIG_H263_MUXER
  155. AVOutputFormat ff_h263_muxer = {
  156. .name = "h263",
  157. .long_name = NULL_IF_CONFIG_SMALL("raw H.263"),
  158. .mime_type = "video/x-h263",
  159. .extensions = "h263",
  160. .audio_codec = AV_CODEC_ID_NONE,
  161. .video_codec = AV_CODEC_ID_H263,
  162. .write_packet = ff_raw_write_packet,
  163. .flags = AVFMT_NOTIMESTAMPS,
  164. };
  165. #endif
  166. #if CONFIG_H264_MUXER
  167. AVOutputFormat ff_h264_muxer = {
  168. .name = "h264",
  169. .long_name = NULL_IF_CONFIG_SMALL("raw H.264 video"),
  170. .extensions = "h264",
  171. .audio_codec = AV_CODEC_ID_NONE,
  172. .video_codec = AV_CODEC_ID_H264,
  173. .write_packet = ff_raw_write_packet,
  174. .flags = AVFMT_NOTIMESTAMPS,
  175. };
  176. #endif
  177. #if CONFIG_M4V_MUXER
  178. AVOutputFormat ff_m4v_muxer = {
  179. .name = "m4v",
  180. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-4 video"),
  181. .extensions = "m4v",
  182. .audio_codec = AV_CODEC_ID_NONE,
  183. .video_codec = AV_CODEC_ID_MPEG4,
  184. .write_packet = ff_raw_write_packet,
  185. .flags = AVFMT_NOTIMESTAMPS,
  186. };
  187. #endif
  188. #if CONFIG_MJPEG_MUXER
  189. AVOutputFormat ff_mjpeg_muxer = {
  190. .name = "mjpeg",
  191. .long_name = NULL_IF_CONFIG_SMALL("raw MJPEG video"),
  192. .mime_type = "video/x-mjpeg",
  193. .extensions = "mjpg,mjpeg",
  194. .audio_codec = AV_CODEC_ID_NONE,
  195. .video_codec = AV_CODEC_ID_MJPEG,
  196. .write_packet = ff_raw_write_packet,
  197. .flags = AVFMT_NOTIMESTAMPS,
  198. };
  199. #endif
  200. #if CONFIG_MLP_MUXER
  201. AVOutputFormat ff_mlp_muxer = {
  202. .name = "mlp",
  203. .long_name = NULL_IF_CONFIG_SMALL("raw MLP"),
  204. .extensions = "mlp",
  205. .audio_codec = AV_CODEC_ID_MLP,
  206. .video_codec = AV_CODEC_ID_NONE,
  207. .write_packet = ff_raw_write_packet,
  208. .flags = AVFMT_NOTIMESTAMPS,
  209. };
  210. #endif
  211. #if CONFIG_MPEG1VIDEO_MUXER
  212. AVOutputFormat ff_mpeg1video_muxer = {
  213. .name = "mpeg1video",
  214. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-1 video"),
  215. .mime_type = "video/x-mpeg",
  216. .extensions = "mpg,mpeg,m1v",
  217. .audio_codec = AV_CODEC_ID_NONE,
  218. .video_codec = AV_CODEC_ID_MPEG1VIDEO,
  219. .write_packet = ff_raw_write_packet,
  220. .flags = AVFMT_NOTIMESTAMPS,
  221. };
  222. #endif
  223. #if CONFIG_MPEG2VIDEO_MUXER
  224. AVOutputFormat ff_mpeg2video_muxer = {
  225. .name = "mpeg2video",
  226. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-2 video"),
  227. .extensions = "m2v",
  228. .audio_codec = AV_CODEC_ID_NONE,
  229. .video_codec = AV_CODEC_ID_MPEG2VIDEO,
  230. .write_packet = ff_raw_write_packet,
  231. .flags = AVFMT_NOTIMESTAMPS,
  232. };
  233. #endif
  234. #if CONFIG_RAWVIDEO_MUXER
  235. AVOutputFormat ff_rawvideo_muxer = {
  236. .name = "rawvideo",
  237. .long_name = NULL_IF_CONFIG_SMALL("raw video"),
  238. .extensions = "yuv,rgb",
  239. .audio_codec = AV_CODEC_ID_NONE,
  240. .video_codec = AV_CODEC_ID_RAWVIDEO,
  241. .write_packet = ff_raw_write_packet,
  242. .flags = AVFMT_NOTIMESTAMPS,
  243. };
  244. #endif
  245. #if CONFIG_TRUEHD_MUXER
  246. AVOutputFormat ff_truehd_muxer = {
  247. .name = "truehd",
  248. .long_name = NULL_IF_CONFIG_SMALL("raw TrueHD"),
  249. .extensions = "thd",
  250. .audio_codec = AV_CODEC_ID_TRUEHD,
  251. .video_codec = AV_CODEC_ID_NONE,
  252. .write_packet = ff_raw_write_packet,
  253. .flags = AVFMT_NOTIMESTAMPS,
  254. };
  255. #endif
  256. #if CONFIG_VC1_MUXER
  257. AVOutputFormat ff_vc1_muxer = {
  258. .name = "vc1",
  259. .long_name = NULL_IF_CONFIG_SMALL("raw VC-1 video"),
  260. .extensions = "vc1",
  261. .audio_codec = AV_CODEC_ID_NONE,
  262. .video_codec = AV_CODEC_ID_VC1,
  263. .write_packet = ff_raw_write_packet,
  264. .flags = AVFMT_NOTIMESTAMPS,
  265. };
  266. #endif