1 /*****************************************************************************
2 * streamdata.h: streaming/transcoding data
3 *****************************************************************************
4 * Copyright (C) 2000-2004 VideoLAN
5 * $Id: wizard.cpp 7826 2004-05-30 14:43:12Z zorglub $
7 * Authors: Clément Stenac <zorglub@videolan.org>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
22 *****************************************************************************/
35 /* Muxer / Codecs / Access_out compatibility tables */
45 static struct codec vcodecs_array[] =
47 { "MPEG-1 Video" , "mp1v" , "MPEG-1 Video codec",
48 {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
49 { "MPEG-2 Video" , "mp2v" , "MPEG-2 Video codec",
50 {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
51 { "MPEG-4 Video" , "mp4v" , "MPEG-4 Video codec",
52 {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW, -1} },
53 { "DIVX 1" ,"DIV1","Divx first version" ,
54 {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
55 { "DIVX 2" ,"DIV2","Divx second version" ,
56 {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
57 { "DIVX 3" ,"DIV3","Divx third version" ,
58 {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
59 { "H 263" , "H263" , "H263 is ..." ,
60 { MUX_TS, MUX_AVI, -1,-1,-1,-1,-1,-1,-1 } },
61 { "I 263", "I263", "I263 is ..." ,
62 { MUX_TS, MUX_AVI, -1,-1,-1,-1,-1,-1,-1 } },
63 { "WMV 1" , "WMV1", "First version of WMV" ,
64 {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
65 { "WMV 2" , "WMV2", "2 version of WMV" ,
66 {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
67 { "MJPEG" , "MJPG", "MJPEG consists of a series of JPEG pictures" ,
68 {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
69 { "Theora" , "theo", "Experimental free codec",
70 {MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1} },
71 { "Dummy", "dummy", "Dummy codec (do not transcode)" ,
72 {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW,MUX_MOV}},
73 { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
76 static struct codec acodecs_array[] =
78 { "MPEG Audio" , "mpga" , "The standard MPEG audio (1/2) format" ,
79 {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
80 { "MP3" , "mp3" , "MPEG Audio Layer 3" ,
81 {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
82 { "MPEG 4 Audio" , "mp4a" , "Audio format for MPEG4" ,
83 {MUX_TS, MUX_MP4, -1,-1,-1,-1,-1,-1,-1 } },
84 { "A/52" , "a52" , "DVD audio format" ,
85 {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
86 { "Vorbis" , "vorb" , "This is a free audio codec" ,
87 {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
88 { "FLAC" , "flac" , "This is an audio codec" ,
89 {MUX_OGG , MUX_RAW, -1,-1,-1,-1,-1,-1,-1} },
90 { "Speex" , "spx" , "An audio codec dedicated to compression of voice" ,
91 {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
92 { "Dummy", "dummy", "Dummy codec (do not transcode)" ,
93 {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW,MUX_MOV}},
94 { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
105 static struct method methods_array[] =
107 {"udp:","UDP Unicast", "Use this to stream to a single computer",
108 "Enter the address of the computer to stream to",
109 { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
110 {"udp:","UDP Multicast",
111 "Use this to stream to a dynamic group of computers on a "
112 "multicast-enabled network. This is the most efficient method "
113 "to stream to several computers, but it does not work over Internet.",
114 "Enter the multicast address to stream to in this field. "
115 "This must be an IP address between 224.0.0.0 an 239.255.255.255 "
116 "For a private use, enter an address beginning with 239.255.",
117 { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
119 "Use this to stream to several computers. This method is "
120 "less efficient, as the server needs to send several times the "
122 "Enter the local addresses you want to listen to. Do not enter "
123 "anything if you want to listen to all adresses or if you don't "
124 "understand. This is generally the best thing to do. Other computers "
125 "can then access the stream at http://yourip:8080 by default",
126 { MUX_TS, MUX_PS, MUX_MPEG, MUX_OGG, MUX_RAW, MUX_ASF, -1,-1,-1} },
127 { NULL, NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
137 static struct encap encaps_array[] =
139 { MUX_PS, "ps","MPEG PS", "MPEG Program Stream" },
140 { MUX_TS, "ts","MPEG TS", "MPEG Transport Stream" },
141 { MUX_MPEG, "ps", "MPEG 1", "MPEG 1 Format" },
142 { MUX_OGG, "ogg", "OGG", "OGG" },
143 { MUX_RAW, "raw", "RAW", "RAW" },
144 { MUX_ASF, "asf","ASF", "ASF" },
145 { MUX_AVI, "avi","AVI", "AVI" },
146 { MUX_MP4, "mp4","MP4", "MPEG4" },
147 { MUX_MOV, "mov","MOV", "MOV" },
148 { -1 , NULL,NULL , NULL } /* Do not remove me */
152 /* Bitrates arrays */
153 static const wxString vbitrates_array[] =
169 static const wxString abitrates_array[] =