/* * 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 * . */ 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 "?"; }