From 30f84af503104ab9bc9fafb68be790a33c29ce92 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 23 Jun 2021 20:47:00 +0100 Subject: [PATCH] Add more media manufacturers for information. --- Blu-ray/DI.cs | 89 +++++++++++++++++++++++ CD/ATIP.cs | 17 ++++- DVD/PFI.cs | 191 +++++++++++++++++++++++++++++++++++++++++++++++++- DVD/PRI.cs | 85 +++++++++++++++++++++- 4 files changed, 377 insertions(+), 5 deletions(-) diff --git a/Blu-ray/DI.cs b/Blu-ray/DI.cs index 538a240..f065219 100644 --- a/Blu-ray/DI.cs +++ b/Blu-ray/DI.cs @@ -401,6 +401,95 @@ namespace Aaru.Decoders.Bluray } public static string Prettify(byte[] DIResponse) => Prettify(Decode(DIResponse)); + + public static string ManufacturerFromDI(string manufacturerId) + { + string manufacturer = ""; + + switch(manufacturerId) + { + case "AMESOB": + case "OTCBDR": + manufacturer = "Amethystum Storage Technology Co., Ltd."; + + break; + case "UMEBDR": + case "ANWELL": + manufacturer = "Avic Umedisc HK Ltd."; + + break; + case "MAXELL": + manufacturer = "Hitachi Maxell, Ltd."; + + break; + case "CMCMAG": + manufacturer = "CMC Magnetics Corporation"; + + break; + case "ISMMBD": + manufacturer = "Info Source Digital Media (Zhong Shan) Co., Ltd."; + + break; + case "LGEBRA": + manufacturer = "LG Electronics Inc."; + + break; + case "MILLEN": + manufacturer = "Millenniata, Inc."; + + break; + case "VERBAT": + case "VAMKM": + manufacturer = "Mitsubishi Chemical Media Co., Ltd."; + + break; + case "PHILIP": + case "MBI": + manufacturer = "Moser Baer India Ltd."; + + break; + case "MEI": + case "PAN": + manufacturer = "Matsushita Electric Industrial Co., Ltd."; + + break; + case "PRODIS": + manufacturer = "Prodisc Technology Inc."; + + break; + case "RITEK": + manufacturer = "Ritek Co."; + + break; + case "SONY": + manufacturer = "Sony Corporation"; + + break; + case "TYG-BD": + manufacturer = "Taiyo Yuden Company Ltd."; + + break; + case "TDKBLD": + manufacturer = "TDK Corporation"; + + break; + case "JVC-AM": + case "JVCVAM": + manufacturer = "Victor Advanced media Co., Ltd."; + + break; + case "JVCRE1": + manufacturer = "JVC KENWOOD Corporation"; + + break; + case "INFOME": + manufacturer = "InfoMedia Inc."; + + break; + } + + return manufacturer != "" ? $"{manufacturer} (\"{manufacturerId}\")" : $"\"{manufacturerId}\""; + } #endregion Public methods #region Public structures diff --git a/CD/ATIP.cs b/CD/ATIP.cs index f170408..d6e867d 100644 --- a/CD/ATIP.cs +++ b/CD/ATIP.cs @@ -327,6 +327,13 @@ namespace Aaru.Decoders.CD { switch(sec) { + case 10: + switch(frm) + { + case 00: return "Ritek Co."; + } + + break; case 15: switch(frm) { @@ -347,7 +354,7 @@ namespace Aaru.Decoders.CD break; case 17: if(frm == 00) - return "Moser Baer India Limited"; + return "Moser Baer India Ltd."; break; case 18: @@ -367,6 +374,7 @@ namespace Aaru.Decoders.CD switch(frm) { case 10: return "Grupo Condor S.L."; + case 20: return "E-TOP Mediatek Inc."; case 30: return "Bestdisc Technology Corporation"; case 40: return "Optical Disc Manufacturing Equipment"; case 50: return "Sound Sound Multi-Media Development Ltd."; @@ -503,6 +511,13 @@ namespace Aaru.Decoders.CD case 22: return "Mitsubishi Chemical Corporation"; } + break; + case 36: + switch(frm) + { + case 00: return "Gish International Co., Ltd."; + } + break; case 42: if(frm == 20) diff --git a/DVD/PFI.cs b/DVD/PFI.cs index d78d2e1..c45fb8b 100644 --- a/DVD/PFI.cs +++ b/DVD/PFI.cs @@ -903,7 +903,8 @@ namespace Aaru.Decoders.DVD if(decoded.PartVersion == 6) { - sb.AppendFormat("Disc manufacturer is {0}", decoded.DiskManufacturer).AppendLine(); + sb.AppendFormat("Disc manufacturer is {0}", ManufacturerFromDVDRAM(decoded.DiskManufacturer)). + AppendLine(); sb.AppendFormat("Disc manufacturer supplementary information is {0}", decoded.DiskManufacturerSupplementary).AppendLine(); @@ -927,7 +928,10 @@ namespace Aaru.Decoders.DVD sb.AppendLine("Disc contains extended information for VCPS"); sb.AppendFormat("Disc application code is {0}", decoded.ApplicationCode).AppendLine(); - sb.AppendFormat("Disc manufacturer is {0}", decoded.DiskManufacturerID).AppendLine(); + + sb.AppendFormat("Disc manufacturer is {0}", ManufacturerFromDVDPlusID(decoded.DiskManufacturerID)). + AppendLine(); + sb.AppendFormat("Disc media type is {0}", decoded.MediaTypeID).AppendLine(); sb.AppendFormat("Disc product revision is {0}", decoded.ProductRevision).AppendLine(); @@ -955,7 +959,188 @@ namespace Aaru.Decoders.DVD return sb.ToString(); } - public static string Prettify(byte[] response) => Prettify(Decode(response)); + public static string Prettify(byte[] response, MediaType mediaType) => Prettify(Decode(response, mediaType)); + + public static string ManufacturerFromDVDRAM(string manufacturerId) + { + switch(manufacturerId) + { + default: return ManufacturerFromDVDPlusID(manufacturerId); + } + } + + public static string ManufacturerFromDVDPlusID(string manufacturerId) + { + string manufacturer = ""; + + switch(manufacturerId) + { + case "CMC MAG": + manufacturer = "CMC Magnetics Corporation"; + + break; + case "INFOME": + manufacturer = "InfoMedia Inc."; + + break; + case "RITEK": + manufacturer = "Ritek Co."; + + break; + case "RICOHJPN": + manufacturer = "Ricoh Company, Ltd."; + + break; + case "ISSM": + manufacturer = "Info Source Digital Media (Zhongshan) Co., Ltd."; + + break; + case "LD": + manufacturer = "Lead Data Inc."; + + break; + case "MAXELL": + manufacturer = "Hitachi Maxell, Ltd."; + + break; + case "MCC": + manufacturer = "Mitsubishi Kagaku Media Co., LTD."; + + break; + case "PRODISC": + manufacturer = "Prodisc Technology Inc."; + + break; + case "Philips": + case "PHILIPS": + + manufacturer = "Philips Components"; + + break; + case "YUDEN000": + manufacturer = "Taiyo Yuden Company Ltd."; + + break; + case "AML": + manufacturer = "Avic Umedisc HK Ltd."; + + break; + case "DAXON": + manufacturer = "Daxon Technology Inc."; + + break; + case "FTI": + manufacturer = "Falcon Technologies International L.L.C."; + + break; + case "GSC503": + manufacturer = "Gigastore Corporation"; + + break; + case "MBIPG101": + manufacturer = "Moser Baer India Ltd."; + + break; + case "OPTODISC": + manufacturer = "OptoDisc Ltd."; + + break; + case "SONY": + manufacturer = "Sony Corporation"; + + break; + case "TDK": + manufacturer = "TDK Corporation"; + + break; + case "SENTINEL": + manufacturer = "Sentinel B.V."; + + break; + case "BeAll000": + manufacturer = "BeALL Developers, Inc."; + + break; + case "MPOMEDIA": + manufacturer = "MPO Disque Compact"; + + break; + case "IMC JPN": + manufacturer = "Intermedia Co., Ltd."; + + break; + case "INFODISC": + manufacturer = "InfoDisc Technology Co., Ltd."; + + break; + case "WFKA11": + manufacturer = "Wealth Fair Investment Inc."; + + break; + case "MAM": + manufacturer = "Manufacturing Advanced Media Europe"; + + break; + case "VDSPMSAB": + manufacturer = "Interaxia Digital Storage Materials AG"; + + break; + case "KIC00000": + manufacturer = "Advanced Media Corporation"; + + break; + case "MJC": + manufacturer = "Megan Media Holdings Berhad"; + + break; + case "MUST": + manufacturer = "Must Technology Co., Ltd."; + + break; + case "IS02": + manufacturer = "Infosmart Technology Ltd."; + + break; + case "DDDessau": + manufacturer = "Digital Disc Dessau GmbH"; + + break; + case "SKYMEDIA": + manufacturer = "Sky Media Manufacturing S.A."; + + break; + case "MICRON": + manufacturer = "Eastgate Technology Ltd."; + + break; + case "VIVA": + manufacturer = "Viva Optical Disc Manufacturing Ltd."; + + break; + case "EMDPZ3": + manufacturer = "E-TOP Mediatek Inc."; + + break; + case "LGEP16": + manufacturer = "LG Electronics Inc."; + + break; + case "POS": + manufacturer = "POSTECH Corporation"; + + break; + case "Dvsn+160": + manufacturer = "Digital Storage Technology Co., Ltd."; + + break; + case "ODMS": + manufacturer = "VDL Optical Disc Manufacturing Systems"; + + break; + } + + return manufacturer != "" ? $"{manufacturer} (\"{manufacturerId}\")" : $"\"{manufacturerId}\""; + } public struct PhysicalFormatInformation { diff --git a/DVD/PRI.cs b/DVD/PRI.cs index 89357b4..55d0bc6 100644 --- a/DVD/PRI.cs +++ b/DVD/PRI.cs @@ -475,13 +475,96 @@ namespace Aaru.Decoders.DVD } } - sb.AppendFormat("Disc manufacturer is {0}", decoded.ManufacturerId).AppendLine(); + sb.AppendFormat("Disc manufacturer is {0}", ManufacturerFromPrePit(decoded.ManufacturerId)).AppendLine(); return sb.ToString(); } public static string Prettify(byte[] response) => Prettify(Decode(response)); + public static string ManufacturerFromPrePit(string manufacturerId) + { + string manufacturer = ""; + + // Bad thing is that it also includes a media code... + if(manufacturerId.StartsWith("RITEK")) + manufacturer = "Ritek Co."; + else if(manufacturerId.StartsWith("CMC")) + manufacturer = "CMC Magnetics Corporation"; + else if(manufacturerId.StartsWith("Dvsn-")) + manufacturer = "Digital Storage Technology Co., Ltd."; + else if(manufacturerId.StartsWith("GSC")) + manufacturer = "Gigastore Corporation"; + else if(manufacturerId.StartsWith("INFOMEDIA")) + manufacturer = "InfoMedia Inc."; + else if(manufacturerId.StartsWith("ISSM")) + manufacturer = "Info Source Digital Media (Zhongshan) Co., Ltd."; + else if(manufacturerId.StartsWith("LEADDATA")) + manufacturer = "Lead Data Inc."; + else if(manufacturerId.StartsWith("MCC") || + manufacturerId.StartsWith("MKM")) + manufacturer = "Mitsubishi Kagaku Media Co., LTD."; + else if(manufacturerId.StartsWith("MUST")) + manufacturer = "Must Technology Co., Ltd."; + else if(manufacturerId.StartsWith("MXL")) + manufacturer = "Hitachi Maxell, Ltd."; + else if(manufacturerId.StartsWith("PRINCO")) + manufacturer = "Princo Corporation"; + else if(manufacturerId.StartsWith("Prodisc")) + manufacturer = "Prodisc Technology Inc."; + else if(manufacturerId.StartsWith("SONY") || + manufacturerId.StartsWith("80SONY")) + manufacturer = "Sony Corporation"; + else if(manufacturerId.StartsWith("TCLDS")) + manufacturer = "TCL Technology"; + else if(manufacturerId.StartsWith("TMI")) + manufacturer = "ThaiMedia Co., Ltd. "; + else if(manufacturerId.StartsWith("TY")) + manufacturer = "Taiyo Yuden Company Ltd."; + else if(manufacturerId.StartsWith("UME")) + manufacturer = "Avic Umedisc HK Ltd."; + else if(manufacturerId.StartsWith("DAXON")) + manufacturer = "Daxon Technology Inc."; + else if(manufacturerId.StartsWith("FTI")) + manufacturer = "Falcon Technologies International L.L.C."; + else if(manufacturerId.StartsWith("FUJIFILM")) + manufacturer = "Fuji Photo Film, Co., Ltd."; + else if(manufacturerId.StartsWith("MBI")) + manufacturer = "Moser Baer India Ltd."; + else if(manufacturerId.StartsWith("TT") || + manufacturerId.StartsWith("TDK")) + manufacturer = "TDK Corporation"; + else if(manufacturerId.StartsWith("JVC")) + manufacturer = "Victor Advanced media Co., Ltd."; + else if(manufacturerId.StartsWith("MEI")) + manufacturer = "Matsushita Electric Industrial Co., Ltd."; + else if(manufacturerId.StartsWith("OPTODISC")) + manufacturer = "OptoDisc Ltd."; + else if(manufacturerId.StartsWith("KIC")) + manufacturer = "Advance Media Corporation"; + else if(manufacturerId.StartsWith("IMC")) + manufacturer = "Intermedia Co., Ltd."; + else if(manufacturerId.StartsWith("LGE")) + manufacturer = "LG Electronics Inc."; + else if(manufacturerId.StartsWith("KDT")) + manufacturer = "King Disc Technology Corporation"; + else if(manufacturerId.StartsWith("POS")) + manufacturer = "POSTECH Corporation"; + else if(manufacturerId.StartsWith("VDSPMSAB")) + manufacturer = "Interaxia Digital Storage Materials AG"; + else if(manufacturerId.StartsWith("VANGUARD")) + manufacturer = "Vanguard Disc Inc."; + else if(manufacturerId.StartsWith("MJC")) + manufacturer = "Megan Media Holdings Berhad"; + else if(manufacturerId.StartsWith("DKM") || + manufacturerId.StartsWith("EDMA")) + manufacturer = "E-TOP Mediatek Inc."; + else if(manufacturerId.StartsWith("BeAll")) + manufacturer = "BeALL Developers, Inc."; + + return manufacturer != "" ? $"{manufacturer} (\"{manufacturerId}\")" : $"\"{manufacturerId}\""; + } + public struct PreRecordedInformation { /// Bytes 0 to 1 Data length