<commit_before>/*****************************************************************************
 * streamdata.h: streaming/transcoding data
 *****************************************************************************
 * Copyright (C) 2000-2004 the VideoLAN team
 * $Id: wizard.cpp 7826 2004-05-30 14:43:12Z zorglub $
 *
 * Authors: <NAME> <<EMAIL>>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
 *****************************************************************************/


#define MUXERS_NUMBER 9

// Do not count dummy here !
#define VCODECS_NUMBER 12
#define ACODECS_NUMBER 9

#define MUX_PS          0
#define MUX_TS          1
#define MUX_MPEG        2
#define MUX_OGG         3
#define MUX_RAW         4
#define MUX_ASF         5
#define MUX_AVI         6
#define MUX_MP4         7
#define MUX_MOV         8
#define MUX_WAV         9

/* Muxer / Codecs / Access_out compatibility tables */


struct codec {
    char *psz_display;
    char *psz_codec;
    char *psz_descr;
    int muxers[MUXERS_NUMBER];
};

static struct codec vcodecs_array[] =
{
    { "MPEG-1 Video" , "mp1v" , N_("MPEG-1 Video codec (useable with MPEG PS, " \
        "MPEG TS, MPEG1, OGG and RAW)"),
//       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_RAW, -1,-1,-1,-1 } },
    { "MPEG-2 Video" , "mp2v" , N_("MPEG-2 Video codec (useable with MPEG PS, " \
        "MPEG TS, MPEG1, OGG and RAW)"),
//       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_RAW, -1,-1,-1,-1 } },
    { "MPEG-4 Video" , "mp4v" , N_("MPEG-4 Video codec (useable with MPEG PS, " \
        "MPEG TS, MPEG1, ASF, MPEG4, OGG and RAW)"),
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW, -1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_RAW, -1,-1} },
    { "DIVX 1" ,"DIV1",N_("DivX first version (useable with MPEG TS, MPEG1, ASF" \
        " and OGG)") ,
//       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "DIVX 2" ,"DIV2",N_("DivX second version (useable with MPEG TS, MPEG1, ASF" \
        " and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "DIVX 3" ,"DIV3",N_("DivX third version (useable with MPEG TS, MPEG1, ASF" \
        " and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "H 263" , "H263" , N_("H263 is a video codec optimized for videoconference " \
        "(low rates, useable with MPEG TS)") ,
       { MUX_TS, -1, -1,-1,-1,-1,-1,-1,-1 } },
    { "H 264" , "H264" , N_("H264 is a new video codec (useable with MPEG TS " \
        "and MPEG4)") ,
       { MUX_TS, MUX_MP4, -1,-1,-1,-1,-1,-1,-1 } },
    { "WMV 1" , "WMV1", N_("WMV (Windows Media Video) 1 (useable with MPEG TS, " \
        "MPEG1, ASF and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "WMV 2" , "WMV2", N_("WMV (Windows Media Video) 2 (useable with MPEG TS, " \
        "MPEG1, ASF and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "MJPEG" , "MJPG", N_("MJPEG consists of a series of JPEG pictures " \
        "(useable with MPEG TS, MPEG1, ASF and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "Theora" , "theo", N_("Theora is a free general-purpose codec (useable " \
        "with MPEG TS)"),
       {MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Dummy", "dummy", N_("Dummy codec (do not transcode, useable with all " \
        "encapsulation formats)") ,
      {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_WAV,MUX_RAW,MUX_MOV}},
    { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};

static struct codec acodecs_array[] =
{
    { "MPEG Audio" , "mpga" , N_("The standard MPEG audio (1/2) format " \
        "(useable with MPEG PS, MPEG TS, MPEG1, ASF, OGG and RAW)") ,
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1,-1} },
    { "MP3" , "mp3" , N_("MPEG Audio Layer 3 (useable with MPEG PS, MPEG TS, " \
        "MPEG1, ASF, OGG and RAW)") ,
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1, -1} },
    { "MPEG 4 Audio" , "mp4a" , N_("Audio format for MPEG4 (useable with " \
        "MPEG TS and MPEG4)") ,
       {MUX_TS, MUX_MP4, -1,-1,-1,-1,-1,-1,-1 } },
    { "A/52" , "a52" , N_("DVD audio format (useable with MPEG PS, MPEG TS, " \
        "MPEG1, ASF, OGG and RAW)") ,
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1,-1} },
    { "Vorbis" , "vorb" , N_("Vorbis is a free audio codec (useable with OGG)") ,
       {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "FLAC" , "flac" , N_("FLAC is a lossless audio codec (useable with OGG " \
        "and RAW)") ,
       {MUX_OGG , MUX_RAW, -1,-1,-1,-1,-1,-1,-1} },
    { "Speex" , "spx" , N_("A free audio codec dedicated to compression of " \
        "voice (useable with OGG)") ,
       {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Uncompressed, integer" , "s16l" , N_("Uncompressed audio samples " \
        "(useable with WAV)"),
       {MUX_WAV, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Uncompressed, floating" , "fl32" , N_("Uncompressed audio samples " \
        "(useable with WAV)"),
       {MUX_WAV, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Dummy", "dummy", N_("Dummy codec (do not transcode, useable with all " \
        "encapsulation formats)") ,
//     {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW,MUX_MOV}},
     {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_RAW,MUX_MOV,MUX_WAV}},
    { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};

struct method {
    char *psz_access;
    char *psz_method;
    char *psz_descr;
    char *psz_address;
    int   muxers[MUXERS_NUMBER];
};

static struct method methods_array[] =
{
    {"udp:",N_("UDP Unicast"), N_("Use this to stream to a single computer."),
     N_("Enter the address of the computer to stream to."),
     { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
    {"udp:",N_("UDP Multicast"),
     N_("Use this to stream to a dynamic group of computers on a "
     "multicast-enabled network. This is the most efficient method "
     "to stream to several computers, but it does not work over Internet."),
     N_("Enter the multicast address to stream to in this field. "
     "This must be an IP address between 172.16.17.32 an 172.16.58.3. "
     "For a private use, enter an address beginning with 239.255."),
     { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
    {"http://","HTTP",
     N_("Use this to stream to several computers. This method is "
     "less efficient, as the server needs to send the "
     "stream several times."),
     N_("Enter the local addresses you want to listen to. Do not enter "
     "anything if you want to listen to all adresses or if you don't "
     "understand. This is generally the best thing to do. Other computers "
     "can then access the stream at http://yourip:8080 by default."),
     { MUX_TS, MUX_PS, MUX_MPEG, MUX_OGG, MUX_RAW, MUX_ASF, -1,-1,-1} },
    { NULL, NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};

struct encap {
    int   id;
    char *psz_mux;
    char *psz_encap;
    char *psz_descr;
};

static struct encap encaps_array[] =
{
    { MUX_PS, "ps","MPEG PS", N_("MPEG Program Stream") },
    { MUX_TS, "ts","MPEG TS", N_("MPEG Transport Stream") },
    { MUX_MPEG, "ps", "MPEG 1", N_("MPEG 1 Format") },
    { MUX_OGG, "ogg", "OGG", "OGG" },
    { MUX_RAW, "raw", "RAW", "RAW" },
    { MUX_ASF, "asf","ASF", "ASF" },
//    { MUX_AVI, "avi","AVI", "AVI" },
    { MUX_MP4, "mp4","MP4", "MPEG4" },
    { MUX_MOV, "mov","MOV", "MOV" },
    { MUX_WAV, "wav","WAV", "WAV" },
    { -1 , NULL,NULL , NULL } /* Do not remove me */
};


/* Bitrates arrays */
    static const wxString vbitrates_array[] =
    {
        wxT("3072"),
        wxT("2048"),
        wxT("1024"),
        wxT("768"),
        wxT("512"),
        wxT("384"),
        wxT("256"),
        wxT("192"),
        wxT("128"),
        wxT("96"),
        wxT("64"),
        wxT("32"),
        wxT("16")
    };
    static const wxString abitrates_array[] =
    {
        wxT("512"),
        wxT("256"),
        wxT("192"),
        wxT("128"),
        wxT("96"),
        wxT("64"),
        wxT("32"),
        wxT("16")
    };

<commit_msg>some more suggestions by trax<commit_after>/*****************************************************************************
 * streamdata.h: streaming/transcoding data
 *****************************************************************************
 * Copyright (C) 2000-2004 the VideoLAN team
 * $Id: wizard.cpp 7826 2004-05-30 14:43:12Z zorglub $
 *
 * Authors: <NAME> <<EMAIL>>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
 *****************************************************************************/


#define MUXERS_NUMBER 9

// Do not count dummy here !
#define VCODECS_NUMBER 12
#define ACODECS_NUMBER 9

#define MUX_PS          0
#define MUX_TS          1
#define MUX_MPEG        2
#define MUX_OGG         3
#define MUX_RAW         4
#define MUX_ASF         5
#define MUX_AVI         6
#define MUX_MP4         7
#define MUX_MOV         8
#define MUX_WAV         9

/* Muxer / Codecs / Access_out compatibility tables */


struct codec {
    char *psz_display;
    char *psz_codec;
    char *psz_descr;
    int muxers[MUXERS_NUMBER];
};

static struct codec vcodecs_array[] =
{
    { "MPEG-1 Video" , "mp1v" , N_("MPEG-1 Video codec (useable with MPEG PS, " \
        "MPEG TS, MPEG1, OGG and RAW)"),
//       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_RAW, -1,-1,-1,-1 } },
    { "MPEG-2 Video" , "mp2v" , N_("MPEG-2 Video codec (useable with MPEG PS, " \
        "MPEG TS, MPEG1, OGG and RAW)"),
//       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_AVI, MUX_RAW, -1,-1,-1 } },
       {MUX_PS, MUX_TS, MUX_MPEG, MUX_OGG, MUX_RAW, -1,-1,-1,-1 } },
    { "MPEG-4 Video" , "mp4v" , N_("MPEG-4 Video codec (useable with MPEG PS, " \
        "MPEG TS, MPEG1, ASF, MPEG4, OGG and RAW)"),
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW, -1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_RAW, -1,-1} },
    { "DIVX 1" ,"DIV1",N_("DivX first version (useable with MPEG TS, MPEG1, ASF" \
        " and OGG)") ,
//       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , MUX_AVI , -1,-1,-1,-1 } },
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "DIVX 2" ,"DIV2",N_("DivX second version (useable with MPEG TS, MPEG1, ASF" \
        " and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "DIVX 3" ,"DIV3",N_("DivX third version (useable with MPEG TS, MPEG1, ASF" \
        " and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "H 263" , "H263" , N_("H263 is a video codec optimized for videoconference " \
        "(low rates, useable with MPEG TS)") ,
       { MUX_TS, -1, -1,-1,-1,-1,-1,-1,-1 } },
    { "H 264" , "H264" , N_("H264 is a new video codec (useable with MPEG TS " \
        "and MPEG4)") ,
       { MUX_TS, MUX_MP4, MUX_ASF,-1,-1,-1,-1,-1,-1 } },
    { "WMV 1" , "WMV1", N_("WMV (Windows Media Video) 7 (useable with MPEG TS, " \
        "MPEG1, ASF and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "WMV 2" , "WMV2", N_("WMV (Windows Media Video) 8 (useable with MPEG TS, " \
        "MPEG1, ASF and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
#ifdef WIN32
    { "WMV 3" , "WMV3", N_("WMV (Windows Media Video) 9 (useable with MPEG TS, " \
        "MPEG1, ASF and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
#endif
    { "MJPEG" , "MJPG", N_("MJPEG consists of a series of JPEG pictures " \
        "(useable with MPEG TS, MPEG1, ASF and OGG)") ,
       {MUX_TS , MUX_MPEG , MUX_ASF , MUX_OGG , -1 , -1,-1,-1,-1 } },
    { "Theora" , "theo", N_("Theora is a free general-purpose codec (useable " \
        "with MPEG TS)"),
       {MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Dummy", "dummy", N_("Dummy codec (do not transcode, useable with all " \
        "encapsulation formats)") ,
      {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_WAV,MUX_RAW,MUX_MOV}},
    { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};

static struct codec acodecs_array[] =
{
    { "MPEG Audio" , "mpga" , N_("The standard MPEG audio (1/2) format " \
        "(useable with MPEG PS, MPEG TS, MPEG1, ASF, OGG and RAW)") ,
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1,-1} },
    { "MP3" , "mp3" , N_("MPEG Audio Layer 3 (useable with MPEG PS, MPEG TS, " \
        "MPEG1, ASF, OGG and RAW)") ,
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1, -1} },
    { "MPEG 4 Audio" , "mp4a" , N_("Audio format for MPEG4 (useable with " \
        "MPEG TS and MPEG4)") ,
       {MUX_TS, MUX_MP4, -1,-1,-1,-1,-1,-1,-1 } },
    { "A/52" , "a52" , N_("DVD audio format (useable with MPEG PS, MPEG TS, " \
        "MPEG1, ASF, OGG and RAW)") ,
//       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_AVI,MUX_RAW, -1,-1} },
       {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_OGG,MUX_RAW, -1,-1,-1} },
    { "Vorbis" , "vorb" , N_("Vorbis is a free audio codec (useable with OGG)") ,
       {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "FLAC" , "flac" , N_("FLAC is a lossless audio codec (useable with OGG " \
        "and RAW)") ,
       {MUX_OGG , MUX_RAW, -1,-1,-1,-1,-1,-1,-1} },
    { "Speex" , "spx" , N_("A free audio codec dedicated to compression of " \
        "voice (useable with OGG)") ,
       {MUX_OGG, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Uncompressed, integer" , "s16l" , N_("Uncompressed audio samples " \
        "(useable with WAV)"),
       {MUX_WAV, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Uncompressed, floating" , "fl32" , N_("Uncompressed audio samples " \
        "(useable with WAV)"),
       {MUX_WAV, -1,-1,-1,-1,-1,-1,-1,-1} },
    { "Dummy", "dummy", N_("Dummy codec (do not transcode, useable with all " \
        "encapsulation formats)") ,
//     {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_AVI,MUX_RAW,MUX_MOV}},
     {MUX_PS,MUX_TS,MUX_MPEG,MUX_ASF,MUX_MP4,MUX_OGG,MUX_RAW,MUX_MOV,MUX_WAV}},
    { NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};

struct method {
    char *psz_access;
    char *psz_method;
    char *psz_descr;
    char *psz_address;
    int   muxers[MUXERS_NUMBER];
};

static struct method methods_array[] =
{
    {"udp:",N_("UDP Unicast"), N_("Use this to stream to a single computer."),
     N_("Enter the address of the computer to stream to."),
     { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
    {"udp:",N_("UDP Multicast"),
     N_("Use this to stream to a dynamic group of computers on a "
     "multicast-enabled network. This is the most efficient method "
     "to stream to several computers, but it does not work over Internet."),
     N_("Enter the multicast address to stream to in this field. "
     "This must be an IP address between 172.16.17.32 an 172.16.58.3. "
     "For a private use, enter an address beginning with 239.255."),
     { MUX_TS, -1,-1,-1,-1,-1,-1,-1,-1 } },
    {"http://","HTTP",
     N_("Use this to stream to several computers. This method is "
     "less efficient, as the server needs to send the "
     "stream several times."),
     N_("Enter the local addresses you want to listen to. Do not enter "
     "anything if you want to listen to all adresses or if you don't "
     "understand. This is generally the best thing to do. Other computers "
     "can then access the stream at http://yourip:8080 by default."),
     { MUX_TS, MUX_PS, MUX_MPEG, MUX_OGG, MUX_RAW, MUX_ASF, -1,-1,-1} },
    { NULL, NULL,NULL,NULL , {-1,-1,-1,-1,-1,-1,-1,-1,-1}} /* Do not remove me */
};

struct encap {
    int   id;
    char *psz_mux;
    char *psz_encap;
    char *psz_descr;
};

static struct encap encaps_array[] =
{
    { MUX_PS, "ps","MPEG PS", N_("MPEG Program Stream") },
    { MUX_TS, "ts","MPEG TS", N_("MPEG Transport Stream") },
    { MUX_MPEG, "ps", "MPEG 1", N_("MPEG 1 Format") },
    { MUX_OGG, "ogg", "OGG", "OGG" },
    { MUX_RAW, "raw", "RAW", "RAW" },
    { MUX_ASF, "asf","ASF", "ASF" },
//    { MUX_AVI, "avi","AVI", "AVI" },
    { MUX_MP4, "mp4","MP4", "MPEG4" },
    { MUX_MOV, "mov","MOV", "MOV" },
    { MUX_WAV, "wav","WAV", "WAV" },
    { -1 , NULL,NULL , NULL } /* Do not remove me */
};


/* Bitrates arrays */
    static const wxString vbitrates_array[] =
    {
        wxT("3072"),
        wxT("2048"),
        wxT("1024"),
        wxT("768"),
        wxT("512"),
        wxT("384"),
        wxT("256"),
        wxT("192"),
        wxT("128"),
        wxT("96"),
        wxT("64"),
        wxT("32"),
        wxT("16")
    };
    static const wxString abitrates_array[] =
    {
        wxT("512"),
        wxT("256"),
        wxT("192"),
        wxT("128"),
        wxT("96"),
        wxT("64"),
        wxT("32"),
        wxT("16")
    };


{'fraction_non_alphanumeric': 0.19836509368862465, 'fraction_numerical': 0.04320823822920537, 'mean_word_length': 2.684004692999609, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7229468', 'n_tokens_mistral': 8158, 'n_tokens_neox': 7730, 'n_words': 1889}