@Override public void parse(ByteBuffer byteBuffer) { /* Length DWORD 32 PlayReady Record Count WORD 16 PlayReady Records See Text Varies */ length = IsoTypeReader.readUInt32BE(byteBuffer); int recordCount = IsoTypeReader.readUInt16BE(byteBuffer); records = PlayReadyRecord.createFor(byteBuffer, recordCount); }
public static List<PlayReadyRecord> createFor(ByteBuffer byteBuffer, int recordCount) { List<PlayReadyRecord> records = new ArrayList<PlayReadyRecord>(recordCount); for (int i = 0; i < recordCount; i++) { PlayReadyRecord record; int type = IsoTypeReader.readUInt16BE(byteBuffer); int length = IsoTypeReader.readUInt16BE(byteBuffer); switch (type) { case 0x1: record = new RMHeader(); break; case 0x2: record = new DefaulPlayReadyRecord(0x02); break; case 0x3: record = new EmeddedLicenseStore(); break; default: record = new DefaulPlayReadyRecord(type); } record.parse((ByteBuffer) byteBuffer.slice().limit(length)); byteBuffer.position(byteBuffer.position() + length); records.add(record); } return records; }
@Override public void parse(ByteBuffer byteBuffer) { /* Length DWORD 32 PlayReady Record Count WORD 16 PlayReady Records See Text Varies */ length = IsoTypeReader.readUInt32BE(byteBuffer); int recordCount = IsoTypeReader.readUInt16BE(byteBuffer); records = PlayReadyRecord.createFor(byteBuffer, recordCount); }
public static List<PlayReadyRecord> createFor(ByteBuffer byteBuffer, int recordCount) { List<PlayReadyRecord> records = new ArrayList<PlayReadyRecord>(recordCount); for (int i = 0; i < recordCount; i++) { PlayReadyRecord record; int type = IsoTypeReader.readUInt16BE(byteBuffer); int length = IsoTypeReader.readUInt16BE(byteBuffer); switch (type) { case 0x1: record = new RMHeader(); break; case 0x2: record = new DefaulPlayReadyRecord(0x02); break; case 0x3: record = new EmeddedLicenseStore(); break; default: record = new DefaulPlayReadyRecord(type); } record.parse((ByteBuffer) byteBuffer.slice().limit(length)); byteBuffer.position(byteBuffer.position() + length); records.add(record); } return records; }