Changeset 4583:3bd9da6e60fa in roaraudio


Ignore:
Timestamp:
11/05/10 00:47:14 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added mimetype lookup functions

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/stream.h

    r4538 r4583  
    102102const char * roar_codec2str (const int    codec); 
    103103 
     104int    roar_mime2codec (const char * mime); 
     105const char * roar_codec2mime (const int    codec); 
     106 
    104107const char * roar_streamstate2str(int streamstate); 
    105108 
  • libroar/stream.c

    r4538 r4583  
    809809 int    codec; 
    810810 const char * name; 
     811 const char * mime; 
    811812} _libroar_codec[] = { 
    812813 // PCM: 
    813  {ROAR_CODEC_PCM_S_LE,    "pcm_s_le"   }, 
    814  {ROAR_CODEC_PCM_S_BE,    "pcm_s_be"   }, 
    815  {ROAR_CODEC_PCM_S_PDP,   "pcm_s_pdp"  }, 
    816  {ROAR_CODEC_PCM_U_LE,    "pcm_u_le"   }, 
    817  {ROAR_CODEC_PCM_U_BE,    "pcm_u_be"   }, 
    818  {ROAR_CODEC_PCM_U_PDP,   "pcm_u_pdp"  }, 
    819  {ROAR_CODEC_DEFAULT,     "default"    }, // alias 
    820  {ROAR_CODEC_DEFAULT,     "pcm"        }, // alias 
    821  {ROAR_CODEC_DEFAULT,     "raw"        }, // alias 
     814 {ROAR_CODEC_PCM_S_LE,    "pcm_s_le",    NULL}, 
     815 {ROAR_CODEC_PCM_S_BE,    "pcm_s_be",    NULL}, 
     816 {ROAR_CODEC_PCM_S_PDP,   "pcm_s_pdp",   NULL}, 
     817 {ROAR_CODEC_PCM_U_LE,    "pcm_u_le",    NULL}, 
     818 {ROAR_CODEC_PCM_U_BE,    "pcm_u_be",    NULL}, 
     819 {ROAR_CODEC_PCM_U_PDP,   "pcm_u_pdp",   NULL}, 
     820 {ROAR_CODEC_DEFAULT,     "default",     NULL}, // alias 
     821 {ROAR_CODEC_DEFAULT,     "pcm",         NULL}, // alias 
     822 {ROAR_CODEC_DEFAULT,     "raw",         NULL}, // alias 
    822823 
    823824 // MIDI: 
    824  {ROAR_CODEC_MIDI_FILE,   "midi_file"  }, 
    825  {ROAR_CODEC_MIDI,        "midi"       }, 
    826  {ROAR_CODEC_ROARMIDI,    "roarmidi"   }, 
     825 {ROAR_CODEC_MIDI_FILE,   "midi_file",   NULL}, 
     826 {ROAR_CODEC_MIDI,        "midi",        NULL}, 
     827 {ROAR_CODEC_ROARMIDI,    "roarmidi",    NULL}, 
    827828 
    828829 // XIPH: 
    829  {ROAR_CODEC_OGG_VORBIS,  "ogg_vorbis" }, 
    830  {ROAR_CODEC_OGG_VORBIS,  "vorbis"     }, // alias 
    831  {ROAR_CODEC_FLAC,        "flac"       }, 
    832  {ROAR_CODEC_OGG_SPEEX,   "ogg_speex"  }, 
    833  {ROAR_CODEC_OGG_SPEEX,   "speex"      }, // alias 
    834  {ROAR_CODEC_OGG_FLAC,    "ogg_flac"   }, 
    835  {ROAR_CODEC_OGG_GENERAL, "ogg_general"}, 
    836  {ROAR_CODEC_OGG_CELT,    "ogg_celt"   }, 
    837  {ROAR_CODEC_OGG,         "ogg"        }, 
    838  {ROAR_CODEC_ROAR_CELT,   "roar_celt"  }, 
    839  {ROAR_CODEC_ROAR_SPEEX,  "roar_speex" }, 
     830 {ROAR_CODEC_OGG_VORBIS,  "ogg_vorbis",  "application/ogg"}, 
     831 {ROAR_CODEC_OGG_VORBIS,  "vorbis",      "application/ogg"}, // alias 
     832 {ROAR_CODEC_FLAC,        "flac",        "audio/x-flac"}, 
     833 {ROAR_CODEC_OGG_SPEEX,   "ogg_speex",   "audio/ogg; codecs=speex"}, 
     834 {ROAR_CODEC_OGG_SPEEX,   "speex",       "audio/ogg; codecs=speex"}, // alias 
     835 {ROAR_CODEC_OGG_FLAC,    "ogg_flac",    "audio/ogg; codecs=flac"}, 
     836 {ROAR_CODEC_OGG_GENERAL, "ogg_general", "application/ogg"}, 
     837 {ROAR_CODEC_OGG_CELT,    "ogg_celt",    "audio/ogg; codecs=celt"}, 
     838 {ROAR_CODEC_OGG,         "ogg",         "application/ogg"}, 
     839 {ROAR_CODEC_ROAR_CELT,   "roar_celt",   NULL}, 
     840 {ROAR_CODEC_ROAR_SPEEX,  "roar_speex",  NULL}, 
    840841 
    841842 // RAUM: 
    842  {ROAR_CODEC_RAUM,        "raum"       }, 
    843  {ROAR_CODEC_RAUM_VORBIS, "raum_vorbis"}, 
    844  {ROAR_CODEC_RAUM_FLAC,   "raum_flac"  }, 
     843 {ROAR_CODEC_RAUM,        "raum",        NULL}, 
     844 {ROAR_CODEC_RAUM_VORBIS, "raum_vorbis", NULL}, 
     845 {ROAR_CODEC_RAUM_FLAC,   "raum_flac",   NULL}, 
    845846 
    846847 // RIFF/WAVE like: 
    847  {ROAR_CODEC_RIFF_WAVE,   "riff_wave"  }, 
    848  {ROAR_CODEC_RIFF_WAVE,   "wave"       }, // alias 
    849  {ROAR_CODEC_RIFF_WAVE,   "wav"        }, // alias 
    850  {ROAR_CODEC_RIFX,        "rifx"       }, 
    851  {ROAR_CODEC_AU,          "au"         }, 
    852  {ROAR_CODEC_AIFF,        "aiff"       }, 
     848 {ROAR_CODEC_RIFF_WAVE,   "riff_wave",   "audio/x-wav"}, 
     849 {ROAR_CODEC_RIFF_WAVE,   "wave",        "audio/x-wav"}, // alias 
     850 {ROAR_CODEC_RIFF_WAVE,   "wav",         "audio/x-wav"}, // alias 
     851 {ROAR_CODEC_RIFX,        "rifx",        NULL}, 
     852 {ROAR_CODEC_AU,          "au",          "audio/basic"}, 
     853 {ROAR_CODEC_AIFF,        "aiff",        "audio/aiff"}, 
    853854 
    854855 //Log codecs: 
    855  {ROAR_CODEC_ALAW,        "alaw"       }, 
    856  {ROAR_CODEC_MULAW,       "mulaw"      }, 
    857  {ROAR_CODEC_MULAW,       "ulaw"       }, // alias 
     856 {ROAR_CODEC_ALAW,        "alaw",        NULL}, 
     857 {ROAR_CODEC_MULAW,       "mulaw",       NULL}, 
     858 {ROAR_CODEC_MULAW,       "ulaw",        NULL}, // alias 
    858859 
    859860 //GSM: 
    860  {ROAR_CODEC_GSM,         "gsm"        }, 
    861  {ROAR_CODEC_GSM49,       "gsm49"      }, 
     861 {ROAR_CODEC_GSM,         "gsm",         NULL}, 
     862 {ROAR_CODEC_GSM49,       "gsm49",       NULL}, 
    862863 
    863864 // Meta Codecs: 
    864  {ROAR_CODEC_META_VCLT,     "meta_vclt"    }, 
    865  {ROAR_CODEC_META_RALT,     "meta_ralt"    }, 
    866  {ROAR_CODEC_META_RALB,     "meta_ralb"    }, 
    867  {ROAR_CODEC_META_RALB_LE,  "meta_ralb_le" }, 
    868  {ROAR_CODEC_META_RALB_BE,  "meta_ralb_be" }, 
    869  {ROAR_CODEC_META_RALB_PDP, "meta_ralb_pdp"}, 
     865 {ROAR_CODEC_META_VCLT,     "meta_vclt",     NULL}, 
     866 {ROAR_CODEC_META_RALT,     "meta_ralt",     NULL}, 
     867 {ROAR_CODEC_META_RALB,     "meta_ralb",     NULL}, 
     868 {ROAR_CODEC_META_RALB_LE,  "meta_ralb_le",  NULL}, 
     869 {ROAR_CODEC_META_RALB_BE,  "meta_ralb_be",  NULL}, 
     870 {ROAR_CODEC_META_RALB_PDP, "meta_ralb_pdp", NULL}, 
    870871 
    871872 // light control: 
    872  {ROAR_CODEC_DMX512,      "dmx512"     }, 
    873  {ROAR_CODEC_ROARDMX,     "roardmx"    }, 
     873 {ROAR_CODEC_DMX512,      "dmx512",      NULL}, 
     874 {ROAR_CODEC_ROARDMX,     "roardmx",     NULL}, 
    874875 
    875876 // Radio Data and Transmitter Control System: 
    876  {ROAR_CODEC_RDS,         "rds"        }, 
     877 {ROAR_CODEC_RDS,         "rds",         NULL}, 
    877878 
    878879 // User specific: 
    879  {ROAR_CODEC_USER0,       "user0"      }, 
    880  {ROAR_CODEC_USER1,       "user1"      }, 
    881  {ROAR_CODEC_USER2,       "user2"      }, 
    882  {ROAR_CODEC_USER3,       "user3"      }, 
    883  {ROAR_CODEC_USER4,       "user4"      }, 
    884  {ROAR_CODEC_USER5,       "user5"      }, 
    885  {ROAR_CODEC_USER6,       "user6"      }, 
    886  {ROAR_CODEC_USER7,       "user7"      }, 
    887  {ROAR_CODEC_USER8,       "user8"      }, 
    888  {ROAR_CODEC_USER9,       "user9"      }, 
    889  {ROAR_CODEC_USER10,      "user10"     }, 
    890  {ROAR_CODEC_USER11,      "user11"     }, 
    891  {ROAR_CODEC_USER12,      "user12"     }, 
    892  {ROAR_CODEC_USER13,      "user13"     }, 
    893  {ROAR_CODEC_USER14,      "user14"     }, 
    894  {ROAR_CODEC_USER15,      "user15"     }, 
    895  {-1, NULL} 
     880 {ROAR_CODEC_USER0,       "user0",       NULL}, 
     881 {ROAR_CODEC_USER1,       "user1",       NULL}, 
     882 {ROAR_CODEC_USER2,       "user2",       NULL}, 
     883 {ROAR_CODEC_USER3,       "user3",       NULL}, 
     884 {ROAR_CODEC_USER4,       "user4",       NULL}, 
     885 {ROAR_CODEC_USER5,       "user5",       NULL}, 
     886 {ROAR_CODEC_USER6,       "user6",       NULL}, 
     887 {ROAR_CODEC_USER7,       "user7",       NULL}, 
     888 {ROAR_CODEC_USER8,       "user8",       NULL}, 
     889 {ROAR_CODEC_USER9,       "user9",       NULL}, 
     890 {ROAR_CODEC_USER10,      "user10",      NULL}, 
     891 {ROAR_CODEC_USER11,      "user11",      NULL}, 
     892 {ROAR_CODEC_USER12,      "user12",      NULL}, 
     893 {ROAR_CODEC_USER13,      "user13",      NULL}, 
     894 {ROAR_CODEC_USER14,      "user14",      NULL}, 
     895 {ROAR_CODEC_USER15,      "user15",      NULL}, 
     896 {-1, NULL, NULL} 
    896897}; 
    897898 
     
    925926 
    926927 return "unknown"; 
     928} 
     929 
     930int    roar_mime2codec (const char * mime) { 
     931 int i; 
     932 
     933 if ( mime == NULL || *mime == 0 ) 
     934  return -1; 
     935 
     936 for (i = 0; _libroar_codec[i].codec != -1; i++) 
     937  if ( _libroar_codec[i].mime != NULL ) 
     938   if ( strcasecmp(_libroar_codec[i].mime, mime) == 0 ) 
     939    return _libroar_codec[i].codec; 
     940 
     941 return -1; 
     942} 
     943 
     944const char * roar_codec2mime (const int    codec) { 
     945 int i; 
     946 
     947 for (i = 0; _libroar_codec[i].codec != -1; i++) 
     948  if ( _libroar_codec[i].codec == codec ) 
     949   return _libroar_codec[i].mime; 
     950 
     951 return NULL; 
    927952} 
    928953 
Note: See TracChangeset for help on using the changeset viewer.