16ac391b3SStephan Aßmus /* 26ac391b3SStephan Aßmus * Copyright 2009 Stephan Aßmus <superstippi@gmx.de> 36ac391b3SStephan Aßmus * All rights reserved. Distributed under the terms of the MIT license. 46ac391b3SStephan Aßmus */ 56ac391b3SStephan Aßmus 66ac391b3SStephan Aßmus 76ac391b3SStephan Aßmus #include "MuxerTable.h" 86ac391b3SStephan Aßmus 96ac391b3SStephan Aßmus 106ac391b3SStephan Aßmus const media_file_format gMuxerTable[] = { 116ac391b3SStephan Aßmus { 12*626d341cSAdrien Destugues media_file_format::B_READABLE 13*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_AUDIO 14*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 15*626d341cSAdrien Destugues { 0 }, 16*626d341cSAdrien Destugues B_WAV_FORMAT_FAMILY, 17*626d341cSAdrien Destugues 100, 18*626d341cSAdrien Destugues { 0 }, 19*626d341cSAdrien Destugues "audio/ac3", 20*626d341cSAdrien Destugues "AC3", 21*626d341cSAdrien Destugues "ac3", 22*626d341cSAdrien Destugues "ac3", 23*626d341cSAdrien Destugues { 0 } 24*626d341cSAdrien Destugues }, 25*626d341cSAdrien Destugues { 26*626d341cSAdrien Destugues media_file_format::B_READABLE 27*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_VIDEO 28*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_AUDIO 29*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 30*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 31*626d341cSAdrien Destugues { 0 }, 32*626d341cSAdrien Destugues B_AVI_FORMAT_FAMILY, 33*626d341cSAdrien Destugues 100, 34*626d341cSAdrien Destugues { 0 }, 35*626d341cSAdrien Destugues "video/x-asf", 36*626d341cSAdrien Destugues "ASF Movie", 37*626d341cSAdrien Destugues "asf", 38*626d341cSAdrien Destugues "asf", 39*626d341cSAdrien Destugues { 0 } 40*626d341cSAdrien Destugues }, 41*626d341cSAdrien Destugues { 42*626d341cSAdrien Destugues media_file_format::B_WRITABLE | media_file_format::B_READABLE 436ac391b3SStephan Aßmus | media_file_format::B_KNOWS_RAW_VIDEO 446ac391b3SStephan Aßmus | media_file_format::B_KNOWS_RAW_AUDIO 456ac391b3SStephan Aßmus | media_file_format::B_KNOWS_ENCODED_VIDEO 466ac391b3SStephan Aßmus | media_file_format::B_KNOWS_ENCODED_AUDIO, 476ac391b3SStephan Aßmus { 0 }, 486ac391b3SStephan Aßmus B_AVI_FORMAT_FAMILY, 496ac391b3SStephan Aßmus 100, 506ac391b3SStephan Aßmus { 0 }, 516ac391b3SStephan Aßmus "video/x-msvideo", 526ac391b3SStephan Aßmus "AVI (Audio Video Interleaved)", 534384acf6SStephan Aßmus "avi", 546ac391b3SStephan Aßmus "avi", 556ac391b3SStephan Aßmus { 0 } 566ac391b3SStephan Aßmus }, 5754897d5cSStephan Aßmus { 58*626d341cSAdrien Destugues media_file_format::B_WRITABLE | media_file_format::B_READABLE 59ead61989SStephan Aßmus | media_file_format::B_KNOWS_RAW_VIDEO 60ead61989SStephan Aßmus | media_file_format::B_KNOWS_RAW_AUDIO 61ead61989SStephan Aßmus | media_file_format::B_KNOWS_ENCODED_VIDEO 62ead61989SStephan Aßmus | media_file_format::B_KNOWS_ENCODED_AUDIO, 63ead61989SStephan Aßmus { 0 }, 64*626d341cSAdrien Destugues B_QUICKTIME_FORMAT_FAMILY, 65eca9668aSStephan Aßmus 100, 66eca9668aSStephan Aßmus { 0 }, 67*626d341cSAdrien Destugues "video/dv", 68*626d341cSAdrien Destugues "DV Movie", 69eca9668aSStephan Aßmus "dv", 70eca9668aSStephan Aßmus "dv", 71eca9668aSStephan Aßmus { 0 } 72eca9668aSStephan Aßmus }, 73eca9668aSStephan Aßmus { 74*626d341cSAdrien Destugues media_file_format::B_READABLE 75*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_AUDIO 76*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 77*626d341cSAdrien Destugues { 0 }, 78*626d341cSAdrien Destugues B_WAV_FORMAT_FAMILY, 79*626d341cSAdrien Destugues 100, 80*626d341cSAdrien Destugues { 0 }, 81*626d341cSAdrien Destugues "audio/x-flac", 82*626d341cSAdrien Destugues "Free Lossless Audio", 83*626d341cSAdrien Destugues "flac", 84*626d341cSAdrien Destugues "flac", 85*626d341cSAdrien Destugues { 0 } 86*626d341cSAdrien Destugues }, 87*626d341cSAdrien Destugues { 88*626d341cSAdrien Destugues media_file_format::B_READABLE 89eca9668aSStephan Aßmus | media_file_format::B_KNOWS_RAW_VIDEO 90eca9668aSStephan Aßmus | media_file_format::B_KNOWS_RAW_AUDIO 91eca9668aSStephan Aßmus | media_file_format::B_KNOWS_ENCODED_VIDEO 92eca9668aSStephan Aßmus | media_file_format::B_KNOWS_ENCODED_AUDIO, 93eca9668aSStephan Aßmus { 0 }, 94*626d341cSAdrien Destugues B_QUICKTIME_FORMAT_FAMILY, 95*626d341cSAdrien Destugues 100, 96*626d341cSAdrien Destugues { 0 }, 97*626d341cSAdrien Destugues "video/x-flv", 98*626d341cSAdrien Destugues "Flash video", 99*626d341cSAdrien Destugues "flv", 100*626d341cSAdrien Destugues "flv", 101*626d341cSAdrien Destugues { 0 } 102*626d341cSAdrien Destugues }, 103*626d341cSAdrien Destugues { 104*626d341cSAdrien Destugues media_file_format::B_WRITABLE | media_file_format::B_READABLE 105*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_VIDEO 106*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_AUDIO 107*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 108*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 109*626d341cSAdrien Destugues { 0 }, 110*626d341cSAdrien Destugues B_QUICKTIME_FORMAT_FAMILY, 111ead61989SStephan Aßmus 100, 112ead61989SStephan Aßmus { 0 }, 113ead61989SStephan Aßmus "video/x-matroska", 114*626d341cSAdrien Destugues "Matroska movie", 115ead61989SStephan Aßmus "mkv", 116ead61989SStephan Aßmus "mkv", 117ead61989SStephan Aßmus { 0 } 118ead61989SStephan Aßmus }, 119ead61989SStephan Aßmus { 120*626d341cSAdrien Destugues media_file_format::B_READABLE 121*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_VIDEO 122*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_AUDIO 123*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 124*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 125*626d341cSAdrien Destugues { 0 }, 126*626d341cSAdrien Destugues B_QUICKTIME_FORMAT_FAMILY, 127*626d341cSAdrien Destugues 100, 128*626d341cSAdrien Destugues { 0 }, 129*626d341cSAdrien Destugues "video/x-mov", 130*626d341cSAdrien Destugues "Quicktime movie", 131*626d341cSAdrien Destugues "mov", 132*626d341cSAdrien Destugues "mov", 133*626d341cSAdrien Destugues { 0 } 134*626d341cSAdrien Destugues }, 135*626d341cSAdrien Destugues { 136*626d341cSAdrien Destugues media_file_format::B_READABLE 137*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_AUDIO 138*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 139*626d341cSAdrien Destugues { 0 }, 140*626d341cSAdrien Destugues B_MPEG_FORMAT_FAMILY, 141*626d341cSAdrien Destugues 100, 142*626d341cSAdrien Destugues { 0 }, 143*626d341cSAdrien Destugues "audio/mpeg", 144*626d341cSAdrien Destugues "MPEG Layer 3", 145*626d341cSAdrien Destugues "mp3", 146*626d341cSAdrien Destugues "mp3", 147*626d341cSAdrien Destugues { 0 } 148*626d341cSAdrien Destugues }, 149*626d341cSAdrien Destugues { 150*626d341cSAdrien Destugues media_file_format::B_READABLE 151*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 152*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 153*626d341cSAdrien Destugues { 0 }, 154*626d341cSAdrien Destugues B_QUICKTIME_FORMAT_FAMILY, 155*626d341cSAdrien Destugues 100, 156*626d341cSAdrien Destugues { 0 }, 157*626d341cSAdrien Destugues "video/mp4", 158*626d341cSAdrien Destugues "MPEG (Motion Picture Experts Group) format 4", 159*626d341cSAdrien Destugues "mp4", 160*626d341cSAdrien Destugues "mp4", 161*626d341cSAdrien Destugues { 0 } 162*626d341cSAdrien Destugues }, 163*626d341cSAdrien Destugues { 164*626d341cSAdrien Destugues media_file_format::B_WRITABLE | media_file_format::B_READABLE 16554897d5cSStephan Aßmus | media_file_format::B_KNOWS_ENCODED_VIDEO 16654897d5cSStephan Aßmus | media_file_format::B_KNOWS_ENCODED_AUDIO, 16754897d5cSStephan Aßmus { 0 }, 16854897d5cSStephan Aßmus B_MPEG_FORMAT_FAMILY, 16954897d5cSStephan Aßmus 100, 17054897d5cSStephan Aßmus { 0 }, 17154897d5cSStephan Aßmus "video/mpeg", 17254897d5cSStephan Aßmus "MPEG (Motion Picture Experts Group)", 17354897d5cSStephan Aßmus "mpg", 17454897d5cSStephan Aßmus "mpg", 17554897d5cSStephan Aßmus { 0 } 17654897d5cSStephan Aßmus }, 177*626d341cSAdrien Destugues { 178*626d341cSAdrien Destugues media_file_format::B_READABLE 179*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 180*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 181*626d341cSAdrien Destugues { 0 }, 182*626d341cSAdrien Destugues B_AVI_FORMAT_FAMILY, 183*626d341cSAdrien Destugues 100, 184*626d341cSAdrien Destugues { 0 }, 185*626d341cSAdrien Destugues "video/mpeg", 186*626d341cSAdrien Destugues "MPEG TS", 187*626d341cSAdrien Destugues "mpegts", 188*626d341cSAdrien Destugues "mpegts", 189*626d341cSAdrien Destugues { 0 } 190*626d341cSAdrien Destugues }, 191*626d341cSAdrien Destugues { 192*626d341cSAdrien Destugues media_file_format::B_READABLE 193*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 194*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 195*626d341cSAdrien Destugues { 0 }, 196*626d341cSAdrien Destugues B_MPEG_FORMAT_FAMILY, 197*626d341cSAdrien Destugues 100, 198*626d341cSAdrien Destugues { 0 }, 199*626d341cSAdrien Destugues "video/mpeg", 200*626d341cSAdrien Destugues "MPEG", 201*626d341cSAdrien Destugues "mpeg", 202*626d341cSAdrien Destugues "mpeg", 203*626d341cSAdrien Destugues { 0 } 204*626d341cSAdrien Destugues }, 205*626d341cSAdrien Destugues { 206*626d341cSAdrien Destugues media_file_format::B_READABLE 207*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 208*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 209*626d341cSAdrien Destugues { 0 }, 210*626d341cSAdrien Destugues B_QUICKTIME_FORMAT_FAMILY, 211*626d341cSAdrien Destugues 100, 212*626d341cSAdrien Destugues { 0 }, 213*626d341cSAdrien Destugues "video/nsv", 214*626d341cSAdrien Destugues "NSV (NullSoft Video file)", 215*626d341cSAdrien Destugues "nsv", 216*626d341cSAdrien Destugues "nsv", 217*626d341cSAdrien Destugues { 0 } 218*626d341cSAdrien Destugues }, 2196780c24dSStephan Aßmus // TODO: This one rejects unknown codecs. We probably need to define 2206780c24dSStephan Aßmus // a media_format_family for it so that Encoders can announce their support 2216780c24dSStephan Aßmus // for it specifically. 22273e5249cSStephan Aßmus { 223*626d341cSAdrien Destugues media_file_format::B_WRITABLE | media_file_format::B_READABLE 22473e5249cSStephan Aßmus | media_file_format::B_KNOWS_ENCODED_VIDEO 22573e5249cSStephan Aßmus | media_file_format::B_KNOWS_ENCODED_AUDIO, 22673e5249cSStephan Aßmus { 0 }, 22773e5249cSStephan Aßmus B_MISC_FORMAT_FAMILY, 22873e5249cSStephan Aßmus 100, 22973e5249cSStephan Aßmus { 0 }, 230*626d341cSAdrien Destugues "audio/ogg", 23173e5249cSStephan Aßmus "Ogg (Xiph.Org Foundation)", 23273e5249cSStephan Aßmus "ogg", 23373e5249cSStephan Aßmus "ogg", 23473e5249cSStephan Aßmus { 0 } 23573e5249cSStephan Aßmus }, 2366d15d130SStephan Aßmus { 237*626d341cSAdrien Destugues media_file_format::B_READABLE 238*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 239*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 240*626d341cSAdrien Destugues { 0 }, 241*626d341cSAdrien Destugues B_AVI_FORMAT_FAMILY, 242*626d341cSAdrien Destugues 100, 243*626d341cSAdrien Destugues { 0 }, 244*626d341cSAdrien Destugues "video/vnd.rn-realvideo", 245*626d341cSAdrien Destugues "RM (RealVideo clip)", 246*626d341cSAdrien Destugues "rm", 247*626d341cSAdrien Destugues "rm", 248*626d341cSAdrien Destugues { 0 } 249*626d341cSAdrien Destugues }, 250*626d341cSAdrien Destugues { 251*626d341cSAdrien Destugues media_file_format::B_READABLE 252*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_VIDEO 253*626d341cSAdrien Destugues | media_file_format::B_KNOWS_RAW_AUDIO 254*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 255*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 256*626d341cSAdrien Destugues { 0 }, 257*626d341cSAdrien Destugues B_QUICKTIME_FORMAT_FAMILY, 258*626d341cSAdrien Destugues 100, 259*626d341cSAdrien Destugues { 0 }, 260*626d341cSAdrien Destugues "application/x-shockwave-flash", 261*626d341cSAdrien Destugues "Shockwave video", 262*626d341cSAdrien Destugues "swf", 263*626d341cSAdrien Destugues "swf", 264*626d341cSAdrien Destugues { 0 } 265*626d341cSAdrien Destugues }, 266*626d341cSAdrien Destugues { 267*626d341cSAdrien Destugues media_file_format::B_READABLE 268*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_VIDEO 269*626d341cSAdrien Destugues | media_file_format::B_KNOWS_ENCODED_AUDIO, 270*626d341cSAdrien Destugues { 0 }, 271*626d341cSAdrien Destugues B_MPEG_FORMAT_FAMILY, 272*626d341cSAdrien Destugues 100, 273*626d341cSAdrien Destugues { 0 }, 274*626d341cSAdrien Destugues "video/x-vob", 275*626d341cSAdrien Destugues "VOB movie", 276*626d341cSAdrien Destugues "vob", 277*626d341cSAdrien Destugues "vob", 278*626d341cSAdrien Destugues { 0 } 279*626d341cSAdrien Destugues }, 280*626d341cSAdrien Destugues { 2816d15d130SStephan Aßmus media_file_format::B_WRITABLE 2826d15d130SStephan Aßmus | media_file_format::B_KNOWS_ENCODED_AUDIO, 2836d15d130SStephan Aßmus { 0 }, 2846d15d130SStephan Aßmus B_WAV_FORMAT_FAMILY, 2856d15d130SStephan Aßmus 100, 2866d15d130SStephan Aßmus { 0 }, 287*626d341cSAdrien Destugues "audio/wav", 2886d15d130SStephan Aßmus "WAV Format", 2896d15d130SStephan Aßmus "wav", 2906d15d130SStephan Aßmus "wav", 2916d15d130SStephan Aßmus { 0 } 2926d15d130SStephan Aßmus }, 2936ac391b3SStephan Aßmus }; 2946ac391b3SStephan Aßmus 2956ac391b3SStephan Aßmus const size_t gMuxerCount = sizeof(gMuxerTable) / sizeof(media_file_format); 2966ac391b3SStephan Aßmus 297