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.

281 lines
8.8KB

  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_H261_MUXER
  123. AVOutputFormat ff_h261_muxer = {
  124. .name = "h261",
  125. .long_name = NULL_IF_CONFIG_SMALL("raw H.261"),
  126. .mime_type = "video/x-h261",
  127. .extensions = "h261",
  128. .audio_codec = AV_CODEC_ID_NONE,
  129. .video_codec = AV_CODEC_ID_H261,
  130. .write_packet = ff_raw_write_packet,
  131. .flags = AVFMT_NOTIMESTAMPS,
  132. };
  133. #endif
  134. #if CONFIG_H263_MUXER
  135. AVOutputFormat ff_h263_muxer = {
  136. .name = "h263",
  137. .long_name = NULL_IF_CONFIG_SMALL("raw H.263"),
  138. .mime_type = "video/x-h263",
  139. .extensions = "h263",
  140. .audio_codec = AV_CODEC_ID_NONE,
  141. .video_codec = AV_CODEC_ID_H263,
  142. .write_packet = ff_raw_write_packet,
  143. .flags = AVFMT_NOTIMESTAMPS,
  144. };
  145. #endif
  146. #if CONFIG_H264_MUXER
  147. AVOutputFormat ff_h264_muxer = {
  148. .name = "h264",
  149. .long_name = NULL_IF_CONFIG_SMALL("raw H.264 video"),
  150. .extensions = "h264",
  151. .audio_codec = AV_CODEC_ID_NONE,
  152. .video_codec = AV_CODEC_ID_H264,
  153. .write_packet = ff_raw_write_packet,
  154. .flags = AVFMT_NOTIMESTAMPS,
  155. };
  156. #endif
  157. #if CONFIG_HEVC_MUXER
  158. AVOutputFormat ff_hevc_muxer = {
  159. .name = "hevc",
  160. .long_name = NULL_IF_CONFIG_SMALL("raw HEVC video"),
  161. .extensions = "hevc",
  162. .audio_codec = AV_CODEC_ID_NONE,
  163. .video_codec = AV_CODEC_ID_HEVC,
  164. .write_packet = ff_raw_write_packet,
  165. .flags = AVFMT_NOTIMESTAMPS,
  166. };
  167. #endif
  168. #if CONFIG_M4V_MUXER
  169. AVOutputFormat ff_m4v_muxer = {
  170. .name = "m4v",
  171. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-4 video"),
  172. .extensions = "m4v",
  173. .audio_codec = AV_CODEC_ID_NONE,
  174. .video_codec = AV_CODEC_ID_MPEG4,
  175. .write_packet = ff_raw_write_packet,
  176. .flags = AVFMT_NOTIMESTAMPS,
  177. };
  178. #endif
  179. #if CONFIG_MJPEG_MUXER
  180. AVOutputFormat ff_mjpeg_muxer = {
  181. .name = "mjpeg",
  182. .long_name = NULL_IF_CONFIG_SMALL("raw MJPEG video"),
  183. .mime_type = "video/x-mjpeg",
  184. .extensions = "mjpg,mjpeg",
  185. .audio_codec = AV_CODEC_ID_NONE,
  186. .video_codec = AV_CODEC_ID_MJPEG,
  187. .write_packet = ff_raw_write_packet,
  188. .flags = AVFMT_NOTIMESTAMPS,
  189. };
  190. #endif
  191. #if CONFIG_MLP_MUXER
  192. AVOutputFormat ff_mlp_muxer = {
  193. .name = "mlp",
  194. .long_name = NULL_IF_CONFIG_SMALL("raw MLP"),
  195. .extensions = "mlp",
  196. .audio_codec = AV_CODEC_ID_MLP,
  197. .video_codec = AV_CODEC_ID_NONE,
  198. .write_packet = ff_raw_write_packet,
  199. .flags = AVFMT_NOTIMESTAMPS,
  200. };
  201. #endif
  202. #if CONFIG_MPEG1VIDEO_MUXER
  203. AVOutputFormat ff_mpeg1video_muxer = {
  204. .name = "mpeg1video",
  205. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-1 video"),
  206. .mime_type = "video/mpeg",
  207. .extensions = "mpg,mpeg,m1v",
  208. .audio_codec = AV_CODEC_ID_NONE,
  209. .video_codec = AV_CODEC_ID_MPEG1VIDEO,
  210. .write_packet = ff_raw_write_packet,
  211. .flags = AVFMT_NOTIMESTAMPS,
  212. };
  213. #endif
  214. #if CONFIG_MPEG2VIDEO_MUXER
  215. AVOutputFormat ff_mpeg2video_muxer = {
  216. .name = "mpeg2video",
  217. .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-2 video"),
  218. .extensions = "m2v",
  219. .audio_codec = AV_CODEC_ID_NONE,
  220. .video_codec = AV_CODEC_ID_MPEG2VIDEO,
  221. .write_packet = ff_raw_write_packet,
  222. .flags = AVFMT_NOTIMESTAMPS,
  223. };
  224. #endif
  225. #if CONFIG_RAWVIDEO_MUXER
  226. AVOutputFormat ff_rawvideo_muxer = {
  227. .name = "rawvideo",
  228. .long_name = NULL_IF_CONFIG_SMALL("raw video"),
  229. .extensions = "yuv,rgb",
  230. .audio_codec = AV_CODEC_ID_NONE,
  231. .video_codec = AV_CODEC_ID_RAWVIDEO,
  232. .write_packet = ff_raw_write_packet,
  233. .flags = AVFMT_NOTIMESTAMPS,
  234. };
  235. #endif
  236. #if CONFIG_SRT_MUXER
  237. AVOutputFormat ff_srt_muxer = {
  238. .name = "srt",
  239. .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"),
  240. .mime_type = "application/x-subrip",
  241. .extensions = "srt",
  242. .write_packet = ff_raw_write_packet,
  243. .flags = AVFMT_NOTIMESTAMPS,
  244. .subtitle_codec = AV_CODEC_ID_SRT,
  245. };
  246. #endif
  247. #if CONFIG_TRUEHD_MUXER
  248. AVOutputFormat ff_truehd_muxer = {
  249. .name = "truehd",
  250. .long_name = NULL_IF_CONFIG_SMALL("raw TrueHD"),
  251. .extensions = "thd",
  252. .audio_codec = AV_CODEC_ID_TRUEHD,
  253. .video_codec = AV_CODEC_ID_NONE,
  254. .write_packet = ff_raw_write_packet,
  255. .flags = AVFMT_NOTIMESTAMPS,
  256. };
  257. #endif