private SampleDescriptionBox mergeStsds(SampleDescriptionBox stsd1, SampleDescriptionBox stsd2) throws IOException { ByteArrayOutputStream curBaos = new ByteArrayOutputStream(); ByteArrayOutputStream refBaos = new ByteArrayOutputStream(); try { stsd1.getBox(Channels.newChannel(curBaos)); stsd2.getBox(Channels.newChannel(refBaos)); } catch (IOException e) { LOG.error(e.getMessage()); return null; } byte[] cur = curBaos.toByteArray(); byte[] ref = refBaos.toByteArray(); if (!Arrays.equals(ref, cur)) { SampleEntry se = mergeSampleEntry(stsd1.getBoxes(SampleEntry.class).get(0), stsd2.getBoxes(SampleEntry.class).get(0)); if (se != null) { stsd1.setBoxes(Collections.<ParsableBox>singletonList(se)); } else { throw new IOException("Cannot merge " + stsd1.getBoxes(SampleEntry.class).get(0) + " and " + stsd2.getBoxes(SampleEntry.class).get(0)); } } return stsd1; }
protected void createStsd(Track track, SampleTableBox stbl) { SampleDescriptionBox stsd = new SampleDescriptionBox(); stsd.setBoxes(track.getSampleEntries()); stbl.addBox(stsd); }
protected void createStsd(Track track, SampleTableBox stbl) { SampleDescriptionBox stsd = new SampleDescriptionBox(); stsd.setBoxes(track.getSampleEntries()); stbl.addBox(stsd); }
private SampleDescriptionBox mergeStsds(SampleDescriptionBox stsd1, SampleDescriptionBox stsd2) throws IOException { ByteArrayOutputStream curBaos = new ByteArrayOutputStream(); ByteArrayOutputStream refBaos = new ByteArrayOutputStream(); try { stsd1.getBox(Channels.newChannel(curBaos)); stsd2.getBox(Channels.newChannel(refBaos)); } catch (IOException e) { LOG.error(e.getMessage()); return null; } byte[] cur = curBaos.toByteArray(); byte[] ref = refBaos.toByteArray(); if (!Arrays.equals(ref, cur)) { SampleEntry se = mergeSampleEntry(stsd1.getBoxes(SampleEntry.class).get(0), stsd2.getBoxes(SampleEntry.class).get(0)); if (se != null) { stsd1.setBoxes(Collections.<ParsableBox>singletonList(se)); } else { throw new IOException("Cannot merge " + stsd1.getBoxes(SampleEntry.class).get(0) + " and " + stsd2.getBoxes(SampleEntry.class).get(0)); } } return stsd1; }
protected void createStsd(Track track, SampleTableBox stbl) { SampleDescriptionBox stsd = new SampleDescriptionBox(); stsd.setBoxes(track.getSampleEntries()); stbl.addBox(stsd); }
protected void createStsd(Track track, SampleTableBox stbl) { SampleDescriptionBox stsd = new SampleDescriptionBox(); stsd.setBoxes(track.getSampleEntries()); stbl.addBox(stsd); }
protected void createStsd(Track track, SampleTableBox stbl) { SampleDescriptionBox stsd = new SampleDescriptionBox(); stsd.setBoxes(track.getSampleEntries()); stbl.addBox(stsd); }