Package com.itstherules.metadata

Examples of com.itstherules.metadata.TagStore


    }
    stream.write(bufh.byte2buffer(flvh.getFlvHeaderBytes()));
    stream.write(bufh.byte2buffer(ender));
    stream.setInputStream(inStream);
    for (Iterator<TagStore> iterator = tags.iterator(); iterator.hasNext();) {
      TagStore ts = iterator.next();
      type = bh.getUintBytes(ts.getType(), 1);
      dsize = bh.getUintBytes(ts.getDataSize(), 3);
      tstamp = bh.getUintBytes(ts.getTimestamp(), 3);
      if (prevTagSize != null) {
        buf = new byte[type.length + dsize.length + tstamp.length + ender.length + prevTagSize.length];
        System.arraycopy(prevTagSize, 0, buf, 0, prevTagSize.length);
        fpos += prevTagSize.length;
      } else {
        buf = new byte[type.length + dsize.length + tstamp.length + ender.length];
      }
      System.arraycopy(type, 0, buf, fpos, type.length);
      fpos += type.length;
      System.arraycopy(dsize, 0, buf, fpos, dsize.length);
      fpos += dsize.length;
      System.arraycopy(tstamp, 0, buf, fpos, tstamp.length);
      fpos += tstamp.length;
      System.arraycopy(ender, 0, buf, fpos, ender.length);
      prevTagSize = null;
      type = null;
      dsize = null;
      tstamp = null;
      stream.write(bufh.byte2buffer(buf));
      if (ts.getType() == 18 && ts.isNew()) {
        stream.write(((MetaTag) ts.getTag()).getDataAsBuffer());
        prevTagSize = bh.getUintBytes(((MetaTag) ts.getTag()).getDataSizeFromBuffer() - 4, 4);
      } else {
        tmpFlvt = (FlvTag) ts.getTag();
        stream.writeDirect(tmpFlvt.getStartingOffset(), tmpFlvt.getDataSize() - 15);
        prevTagSize = bh.getUintBytes(tmpFlvt.getDataSize() - 4, 4);
      }
      buf = null;
      fpos = 0;
View Full Code Here


      }
    } while (true);
  }
 
  private void parseTag() {
    TagStore stor = new TagStore();
    switch (tagType) {
      case 8: // '\b'
        AudioTag at = new AudioTag(ioh);
        totalByteOffset += at.getDataSize();
        stor.setDataSize(at.getDataSize() - 15);
        totalAudioSize += at.getDataSize() - 4;
        audioDataSize += at.getDataSize() - 15;
        stor.setTimestamp(at.getTimestamp());
        stor.setType(tagType);
        stor.setTag(at);
        tags.add(stor);
        break;
      case 9: // '\t'
        VideoTag vt = new VideoTag(ioh);
        vt.setByteOffset(totalByteOffset);
        totalByteOffset += vt.getDataSize();
        frameseq.addSequence((int) (vt.getTimestamp() - lastFrameTime));
        lastFrameTime = vt.getTimestamp();
        stor.setDataSize(vt.getDataSize() - 15);
        totalVideoSize += vt.getDataSize() - 4;
        videoDataSize += vt.getDataSize() - 15;
        stor.setTimestamp(vt.getTimestamp());
        stor.setType(tagType);
        stor.setTag(vt);
        if (vt.getFrameType() == 1) {
          Double keyFrame = new Double((double) vt.getTimestamp() / 1000D);
          keyFrameTagTimes.add(keyFrame);
          keyFrameTagOffsets.add(new Double(vt.getByteOffset()));
        }
        tags.add(stor);
        break;
      case 18: // '\022'
        MetaTag mt = new MetaTag(ioh);
        totalByteOffset += mt.getDataSize();
        stor.setDataSize(mt.getDataSize() - 15);
        totalMetaSize += mt.getDataSize() + 15;
        stor.setTimestamp(mt.getTimestamp());
        stor.setType(tagType);
        stor.setTag(mt);
        if (mt.getEvent().equals("onCuePoint")) cuePointTags.add(mt.getMetaData());
        else if (mt.getEvent().equals("onMetaData")) onMetaTag = lastTag;
        tags.add(stor);
        break;
      case 0: // '\0'
        FlvTag ft = new FlvTag(ioh);
        totalByteOffset += ft.getDataSize();
        stor.setDataSize(ft.getDataSize() - 15);
        stor.setTimestamp(ft.getTimestamp());
        stor.setType(tagType);
        stor.setTag(ft);
        tags.add(stor);
        break;
      default:
        FlvTag flt = new FlvTag(ioh);
        totalByteOffset += flt.getDataSize();
        stor.setDataSize(flt.getDataSize() - 15);
        stor.setTimestamp(flt.getTimestamp());
        stor.setType(tagType);
        stor.setTag(flt);
        tags.add(stor);
        break;
    }
  }
View Full Code Here

TOP

Related Classes of com.itstherules.metadata.TagStore

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.