@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); data = content.slice(); content.position(content.position() + content.remaining()); try { data.rewind(); descriptor = ObjectDescriptorFactory.createFrom(-1, data.duplicate()); } catch (IOException e) { LOG.warn("Error parsing ObjectDescriptor", e); //that's why we copied it ;) } catch (IndexOutOfBoundsException e) { LOG.warn("Error parsing ObjectDescriptor", e); //that's why we copied it ;) } }
while (bb.remaining() > 2) { //1byte tag + at least 1byte size final int begin = bb.position(); descriptor = ObjectDescriptorFactory.createFrom(objectTypeIndication, bb); final int read = bb.position() - begin; LOG.trace("{} - DecoderConfigDescr1 read: {}, size: {}", descriptor, read, descriptor != null ? descriptor.getSize() : null);
final BaseDescriptor descriptor = ObjectDescriptorFactory.createFrom(-1, bb); sizeLeft = sizeLeft - descriptor.getSize(); if (descriptor instanceof ESDescriptor) { final BaseDescriptor descriptor = ObjectDescriptorFactory.createFrom(-1, bb); if (descriptor instanceof ExtensionDescriptor) { extensionDescriptors.add((ExtensionDescriptor) descriptor);
@Override public void parseDetail(ByteBuffer bb) throws IOException { esId = IsoTypeReader.readUInt16(bb); int data = IsoTypeReader.readUInt8(bb); streamDependenceFlag = data >>> 7; URLFlag = (data >>> 6) & 0x1; oCRstreamFlag = (data >>> 5) & 0x1; streamPriority = data & 0x1f; if (streamDependenceFlag == 1) { dependsOnEsId = IsoTypeReader.readUInt16(bb); } if (URLFlag == 1) { URLLength = IsoTypeReader.readUInt8(bb); URLString = IsoTypeReader.readString(bb, URLLength); } if (oCRstreamFlag == 1) { oCREsId = IsoTypeReader.readUInt16(bb); } while (bb.remaining() > 1) { BaseDescriptor descriptor = ObjectDescriptorFactory.createFrom(-1, bb); if (descriptor instanceof DecoderConfigDescriptor) { decoderConfigDescriptor = (DecoderConfigDescriptor) descriptor; } else if (descriptor instanceof SLConfigDescriptor) { slConfigDescriptor = (SLConfigDescriptor) descriptor; } else { otherDescriptors.add(descriptor); } } }
ESDescriptorBox esds = new ESDescriptorBox(); esds.setData(ByteBuffer.wrap(Hex.decodeHex("038080801B000100048080800D6C11000000000A1CB4000A1CB4068080800102"))); esds.setEsDescriptor((ESDescriptor) ObjectDescriptorFactory.createFrom(-1, ByteBuffer.wrap(Hex.decodeHex("038080801B000100048080800D6C11000000000A1CB4000A1CB4068080800102")))); mp4v.addBox(esds); this.syncSamples = new long[jpegs.length];
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); data = content.slice(); content.position(content.position() + content.remaining()); try { data.rewind(); descriptor = ObjectDescriptorFactory.createFrom(-1, data.duplicate()); } catch (IOException e) { LOG.warn("Error parsing ObjectDescriptor", e); //that's why we copied it ;) } catch (IndexOutOfBoundsException e) { LOG.warn("Error parsing ObjectDescriptor", e); //that's why we copied it ;) } }
while (bb.remaining() > 2) { //1byte tag + at least 1byte size final int begin = bb.position(); descriptor = ObjectDescriptorFactory.createFrom(objectTypeIndication, bb); final int read = bb.position() - begin; LOG.trace("{} - DecoderConfigDescr1 read: {}, size: {}", descriptor, read, descriptor != null ? descriptor.getSize() : null);
final BaseDescriptor descriptor = ObjectDescriptorFactory.createFrom(-1, bb); sizeLeft = sizeLeft - descriptor.getSize(); if (descriptor instanceof ESDescriptor) { final BaseDescriptor descriptor = ObjectDescriptorFactory.createFrom(-1, bb); if (descriptor instanceof ExtensionDescriptor) { extensionDescriptors.add((ExtensionDescriptor) descriptor);
@Override public void parseDetail(ByteBuffer bb) throws IOException { esId = IsoTypeReader.readUInt16(bb); int data = IsoTypeReader.readUInt8(bb); streamDependenceFlag = data >>> 7; URLFlag = (data >>> 6) & 0x1; oCRstreamFlag = (data >>> 5) & 0x1; streamPriority = data & 0x1f; if (streamDependenceFlag == 1) { dependsOnEsId = IsoTypeReader.readUInt16(bb); } if (URLFlag == 1) { URLLength = IsoTypeReader.readUInt8(bb); URLString = IsoTypeReader.readString(bb, URLLength); } if (oCRstreamFlag == 1) { oCREsId = IsoTypeReader.readUInt16(bb); } while (bb.remaining() > 1) { BaseDescriptor descriptor = ObjectDescriptorFactory.createFrom(-1, bb); if (descriptor instanceof DecoderConfigDescriptor) { decoderConfigDescriptor = (DecoderConfigDescriptor) descriptor; } else if (descriptor instanceof SLConfigDescriptor) { slConfigDescriptor = (SLConfigDescriptor) descriptor; } else { otherDescriptors.add(descriptor); } } }
ESDescriptorBox esds = new ESDescriptorBox(); esds.setData(ByteBuffer.wrap(Hex.decodeHex("038080801B000100048080800D6C11000000000A1CB4000A1CB4068080800102"))); esds.setEsDescriptor((ESDescriptor) ObjectDescriptorFactory.createFrom(-1, ByteBuffer.wrap(Hex.decodeHex("038080801B000100048080800D6C11000000000A1CB4000A1CB4068080800102")))); mp4v.addBox(esds); this.syncSamples = new long[jpegs.length];