/*
* This file is part of libbluray
* Copyright (C) 2009-2010 John Stebbins
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*/
typedef struct {
int value;
const char *str;
} VALUE_MAP;
const VALUE_MAP codec_map[] = {
{0x01, "MPEG-1 Video"},
{0x02, "MPEG-2 Video"},
{0x03, "MPEG-1 Audio"},
{0x04, "MPEG-2 Audio"},
{0x80, "LPCM"},
{0x81, "AC-3"},
{0x82, "DTS"},
{0x83, "TrueHD"},
{0x84, "AC-3 Plus"},
{0x85, "DTS-HD"},
{0x86, "DTS-HD Master"},
{0xa1, "AC-3 Plus for secondary audio"},
{0xa2, "DTS-HD for secondary audio"},
{0xea, "VC-1"},
{0x1b, "H.264"},
{0x20, "H.264 MVC dep."},
{0x24, "HEVC"},
{0x90, "Presentation Graphics"},
{0x91, "Presentation Graphics"},
{0x92, "Interactive Graphics"},
{0, NULL}
};
const VALUE_MAP video_format_map[] = {
{0, "Reserved"},
{1, "480i"},
{2, "576i"},
{3, "480p"},
{4, "1080i"},
{5, "720p"},
{6, "1080p"},
{7, "576p"},
{8, "2160p"},
{0, NULL}
};
const VALUE_MAP video_rate_map[] = {
{0, "Reserved1"},
{1, "23.976"},
{2, "24"},
{3, "25"},
{4, "29.97"},
{5, "Reserved2"},
{6, "50"},
{7, "59.94"},
{0, NULL}
};
const VALUE_MAP audio_format_map[] = {
{0, "Reserved1"},
{1, "Mono"},
{2, "Reserved2"},
{3, "Stereo"},
{4, "Reserved3"},
{5, "Reserved4"},
{6, "Multi Channel"},
{12, "Combo"},
{0, NULL}
};
const VALUE_MAP audio_rate_map[] = {
{0, "Reserved1"},
{1, "48 Khz"},
{2, "Reserved2"},
{3, "Reserved3"},
{4, "96 Khz"},
{5, "192 Khz"},
{12, "48/192 Khz"},
{14, "48/96 Khz"},
{0, NULL}
};
static inline const char *
_lookup_str(const VALUE_MAP *map, int val)
{
int ii;
for (ii = 0; map[ii].str; ii++) {
if (val == map[ii].value) {
return map[ii].str;
}
}
return "?";
}