]> git.sesse.net Git - vlc/blob - modules/gui/wxwidgets/streamdata.cpp
6ae906fc4dd805c35717abf206fe88e301ac603c
[vlc] / modules / gui / wxwidgets / streamdata.cpp
1 /*****************************************************************************
2  * streamdata.cpp: streaming/transcoding data
3  *****************************************************************************
4  * Copyright (C) 2000-2005 the VideoLAN team
5  * $Id$
6  *
7  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
8  *
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.
13  *
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.
18  *
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., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 #ifdef HAVE_CONFIG_H
25 # include "config.h"
26 #endif
27
28 #include <vlc/vlc.h>
29 #include <wx/string.h>
30 #include "streamdata.h"
31
32
33 const struct codec vcodecs_array[] =
34 {
35     { "MPEG-1 Video" , "mp1v" , N_("MPEG-1 Video codec (useable with MPEG PS, " \
36         "MPEG TS, MPEG1, OGG and RAW)"),
37 //       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
38        {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_RAW, -1,-1,-1,-1 } },
39     { "MPEG-2 Video" , "mp2v" , N_("MPEG-2 Video codec (useable with MPEG PS, " \
40         "MPEG TS, MPEG1, OGG and RAW)"),
41 //       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
42        {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_RAW, -1,-1,-1,-1 } },
43     { "MPEG-4 Video" , "mp4v" , N_("MPEG-4 Video codec (useable with MPEG PS, " \
44         "MPEG TS, MPEG1, ASF, MPEG4, OGG and RAW)"),
45 //       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW, -1} },
46        {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_RAW, -1,-1} },
47     { "DIVX 1" ,"DIV1",N_("DivX first version (useable with MPEG TS, MPEG1, ASF" \
48         " and OGG)") ,
49 //       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
50        {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
51     { "DIVX 2" ,"DIV2",N_("DivX second version (useable with MPEG TS, MPEG1, ASF" \
52         " and OGG)") ,
53        {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
54     { "DIVX 3" ,"DIV3",N_("DivX third version (useable with MPEG TS, MPEG1, ASF" \
55         " and OGG)") ,
56        {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
57     { "H 263" , "h263" , N_("H263 is a video codec optimized for videoconference " \
58         "(low rates, useable with MPEG TS)") ,
59        { MUX_TS, -1, -1,-1,-1,-1,-1,-1,-1 } },
60     { "H 264" , "h264" , N_("H264 is a new video codec (useable with MPEG TS " \
61         "and MPEG4)") ,
62        { MUX_TS, MUX_MP4, MUX_ASF,-1,-1,-1,-1,-1,-1 } },
63     { "WMV 1" , "WMV1", N_("WMV (Windows Media Video) 7 (useable with MPEG TS, " \
64         "MPEG1, ASF and OGG)") ,
65        {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
66     { "WMV 2" , "WMV2", N_("WMV (Windows Media Video) 8 (useable with MPEG TS, " \
67         "MPEG1, ASF and OGG)") ,
68        {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
69 #ifdef WIN32
70     { "WMV 3" , "WMV3", N_("WMV (Windows Media Video) 9 (useable with MPEG TS, " \
71         "MPEG1, ASF and OGG)") ,
72        {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
73 #endif
74     { "MJPEG" , "MJPG", N_("MJPEG consists of a series of JPEG pictures " \
75         "(useable with MPEG TS, MPEG1, ASF and OGG)") ,
76        {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
77     { "Theora" , "theo", N_("Theora is a free general-purpose codec (useable " \
78         "with MPEG TS)"),
79        {MUX_TS, MUX_OGG,-1,-1,-1,-1,-1,-1,-1} },
80     { "Dummy", "dummy", N_("Dummy codec (do not transcode, useable with all " \
81         "encapsulation formats)") ,
82       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_WAV,MUX_RAW,MUX_MOV}},
83     { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
84 };
85
86 const struct codec acodecs_array[] =
87 {
88     { "MPEG Audio" , "mpga" , N_("The standard MPEG audio (1/2) format " \
89         "(useable with MPEG PS, MPEG TS, MPEG1, ASF, OGG and RAW)") ,
90 //       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
91        {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1,-1} },
92     { "MP3" , "mp3" , N_("MPEG Audio Layer 3 (useable with MPEG PS, MPEG TS, " \
93         "MPEG1, ASF, OGG and RAW)") ,
94 //       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
95        {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1, -1} },
96     { "MPEG 4 Audio" , "mp4a" , N_("Audio format for MPEG4 (useable with " \
97         "MPEG TS and MPEG4)") ,
98        {MUX_TS, MUX_MP4, -1,-1,-1,-1,-1,-1,-1 } },
99     { "A/52" , "a52" , N_("DVD audio format (useable with MPEG PS, MPEG TS, " \
100         "MPEG1, ASF, OGG and RAW)") ,
101 //       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
102        {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1,-1} },
103     { "Vorbis" , "vorb" , N_("Vorbis is a free audio codec (useable with OGG)") ,
104        {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
105     { "FLAC" , "flac" , N_("FLAC is a lossless audio codec (useable with OGG " \
106         "and RAW)") ,
107        {MUX_OGG , MUX_RAW, -1,-1,-1,-1,-1,-1,-1} },
108     { "Speex" , "spx" , N_("A free audio codec dedicated to compression of " \
109         "voice (useable with OGG)") ,
110        {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
111     { "Uncompressed, integer" , "s16l" , N_("Uncompressed audio samples " \
112         "(useable with WAV)"),
113        {MUX_WAV, -1,-1,-1,-1,-1,-1,-1,-1} },
114     { "Uncompressed, floating" , "fl32" , N_("Uncompressed audio samples " \
115         "(useable with WAV)"),
116        {MUX_WAV, -1,-1,-1,-1,-1,-1,-1,-1} },
117     { "Dummy", "dummy", N_("Dummy codec (do not transcode, useable with all " \
118         "encapsulation formats)") ,
119 //     {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW,MUX_MOV}},
120      {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_RAW,MUX_MOV,MUX_WAV}},
121     { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
122 };
123
124 const struct method methods_array[] =
125 {
126     {"rtp{",N_("RTP Unicast"), N_("Stream to a single computer."),
127      N_("Enter the address of the computer to stream to."),
128      { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
129     {"rtp{",N_("RTP Multicast"),
130      N_("Stream to a dynamic group of computers on a "
131      "multicast-enabled network. This is the most efficient method "
132      "to stream to several computers, but it does not work over the Internet."),
133      N_("Enter the multicast address to stream to. "
134      "This must be an IP address between 224.0.0.0 an 239.255.255.255. "
135      "For private use, enter an address beginning with 239.255."),
136      { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
137     {"std{access=http,","HTTP",
138      N_("Stream to several computers. This method is "
139      "less efficient, as the server needs to send the "
140      "stream several times."),
141      N_("Enter the local addresses you want to listen to. Do not enter "
142      "anything if you want to listen to all adresses or if you don't "
143      "understand. This is generally the best thing to do. Other computers "
144      "can then access the stream at http://yourip:8080 by default."),
145      { MUX_TS, MUX_PS, MUX_MPEG, MUX_OGG, MUX_RAW, MUX_ASF, -1,-1,-1} },
146     { NULL, NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
147 };
148
149
150 const struct encap encaps_array[] =
151 {
152     { MUX_PS, "ps","MPEG PS", N_("MPEG Program Stream") },
153     { MUX_TS, "ts","MPEG TS", N_("MPEG Transport Stream") },
154     { MUX_MPEG, "ps", "MPEG 1", N_("MPEG 1 Format") },
155     { MUX_OGG, "ogg", "OGG", "OGG" },
156     { MUX_RAW, "raw", "RAW", "RAW" },
157     { MUX_ASF, "asf","ASF", "ASF" },
158 //    { MUX_AVI, "avi","AVI", "AVI" },
159     { MUX_MP4, "mp4","MP4", "MPEG4" },
160     { MUX_MOV, "mov","MOV", "MOV" },
161     { MUX_WAV, "wav","WAV", "WAV" },
162     { -1 , NULL,NULL , NULL } /* Do not remove me */
163 };