diff options
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/authoring/tracks/.svn/text-base/TextTrackImpl.java.svn-base')
-rw-r--r-- | isoparser/src/main/java/com/googlecode/mp4parser/authoring/tracks/.svn/text-base/TextTrackImpl.java.svn-base | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/authoring/tracks/.svn/text-base/TextTrackImpl.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/authoring/tracks/.svn/text-base/TextTrackImpl.java.svn-base deleted file mode 100644 index 3bae143..0000000 --- a/isoparser/src/main/java/com/googlecode/mp4parser/authoring/tracks/.svn/text-base/TextTrackImpl.java.svn-base +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright 2012 Sebastian Annies, Hamburg - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.googlecode.mp4parser.authoring.tracks; - -import com.coremedia.iso.boxes.*; -import com.coremedia.iso.boxes.sampleentry.TextSampleEntry; -import com.googlecode.mp4parser.authoring.AbstractTrack; -import com.googlecode.mp4parser.authoring.TrackMetaData; -import com.googlecode.mp4parser.boxes.threegpp26245.FontTableBox; - -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.Collections; -import java.util.Date; -import java.util.LinkedList; -import java.util.List; - -/** - * - */ -public class TextTrackImpl extends AbstractTrack { - TrackMetaData trackMetaData = new TrackMetaData(); - SampleDescriptionBox sampleDescriptionBox; - List<Line> subs = new LinkedList<Line>(); - - public List<Line> getSubs() { - return subs; - } - - public TextTrackImpl() { - sampleDescriptionBox = new SampleDescriptionBox(); - TextSampleEntry tx3g = new TextSampleEntry("tx3g"); - tx3g.setDataReferenceIndex(1); - tx3g.setStyleRecord(new TextSampleEntry.StyleRecord()); - tx3g.setBoxRecord(new TextSampleEntry.BoxRecord()); - sampleDescriptionBox.addBox(tx3g); - - FontTableBox ftab = new FontTableBox(); - ftab.setEntries(Collections.singletonList(new FontTableBox.FontRecord(1, "Serif"))); - - tx3g.addBox(ftab); - - - trackMetaData.setCreationTime(new Date()); - trackMetaData.setModificationTime(new Date()); - trackMetaData.setTimescale(1000); // Text tracks use millieseconds - - - } - - - public List<ByteBuffer> getSamples() { - List<ByteBuffer> samples = new LinkedList<ByteBuffer>(); - long lastEnd = 0; - for (Line sub : subs) { - long silentTime = sub.from - lastEnd; - if (silentTime > 0) { - samples.add(ByteBuffer.wrap(new byte[]{0, 0})); - } else if (silentTime < 0) { - throw new Error("Subtitle display times may not intersect"); - } - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - DataOutputStream dos = new DataOutputStream(baos); - try { - dos.writeShort(sub.text.getBytes("UTF-8").length); - dos.write(sub.text.getBytes("UTF-8")); - dos.close(); - } catch (IOException e) { - throw new Error("VM is broken. Does not support UTF-8"); - } - samples.add(ByteBuffer.wrap(baos.toByteArray())); - lastEnd = sub.to; - } - return samples; - } - - public SampleDescriptionBox getSampleDescriptionBox() { - return sampleDescriptionBox; - } - - public List<TimeToSampleBox.Entry> getDecodingTimeEntries() { - List<TimeToSampleBox.Entry> stts = new LinkedList<TimeToSampleBox.Entry>(); - long lastEnd = 0; - for (Line sub : subs) { - long silentTime = sub.from - lastEnd; - if (silentTime > 0) { - stts.add(new TimeToSampleBox.Entry(1, silentTime)); - } else if (silentTime < 0) { - throw new Error("Subtitle display times may not intersect"); - } - stts.add(new TimeToSampleBox.Entry(1, sub.to - sub.from)); - lastEnd = sub.to; - } - return stts; - } - - public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() { - return null; - } - - public long[] getSyncSamples() { - return null; - } - - public List<SampleDependencyTypeBox.Entry> getSampleDependencies() { - return null; - } - - public TrackMetaData getTrackMetaData() { - return trackMetaData; - } - - public String getHandler() { - return "sbtl"; - } - - - public static class Line { - long from; - long to; - String text; - - - public Line(long from, long to, String text) { - this.from = from; - this.to = to; - this.text = text; - } - - public long getFrom() { - return from; - } - - public String getText() { - return text; - } - - public long getTo() { - return to; - } - } - - public AbstractMediaHeaderBox getMediaHeaderBox() { - return new NullMediaHeaderBox(); - } - - public SubSampleInformationBox getSubsampleInformationBox() { - return null; - } -} |