Package org.red5.io

Examples of org.red5.io.ITag


      timestamp = 0;
    } else {
      timestamp -= startTimestamp;
    }
    // create a tag
    ITag tag = new Tag();
    tag.setDataType(dataType);
    tag.setTimestamp(timestamp);
    // get data bytes
    IoBuffer data = ((IStreamData<?>) msg).getData().duplicate();
    if (data != null) {
      tag.setBodySize(data.limit());
      tag.setBody(data);
    }
    // only allow blank tags if they are of audio type
    if (tag.getBodySize() > 0 || dataType == ITag.TYPE_AUDIO) {
      try {
        if (timestamp >= 0) {
          if (!writer.writeTag(tag)) {
            log.warn("Tag was not written");
          }
View Full Code Here


        timestamp -= startTimestamp;
      }
      // get the type
      byte dataType = queued.getDataType();
      // create a tag
      ITag tag = new Tag();
      tag.setDataType(dataType);
      tag.setTimestamp(timestamp);
      // get queued
      IoBuffer data = queued.getData();
      if (data != null) {
        tag.setBodySize(data.limit());
        tag.setBody(data);
      }
      // only allow blank tags if they are of audio type
      if (tag.getBodySize() > 0 || dataType == ITag.TYPE_AUDIO) {
        try {
          if (timestamp >= 0) {
            if (!writer.writeTag(tag)) {
              log.warn("Tag was not written");
            }
View Full Code Here

    ts.add(cp);
    ts.add(cp1);

    int cuePointTimeStamp = getTimeInMilliseconds(ts.first());

    ITag tag = null;
    ITag injectedTag = null;

    while (reader.hasMoreTags()) {
      tag = reader.readTag();

      if (tag.getDataType() != IoConstants.TYPE_METADATA) {
        //injectNewMetaData();
      } else {
        //in
      }

      // if there are cuePoints in the TreeSet
      if (!ts.isEmpty()) {

        // If the tag has a greater timestamp than the
        // cuePointTimeStamp, then inject the tag
        while (tag.getTimestamp() > cuePointTimeStamp) {

          injectedTag = injectMetaData(ts.first(), tag);
          writer.writeTag(injectedTag);
          tag.setPreviousTagSize((injectedTag.getBodySize() + 11));

          // Advance to the next CuePoint
          ts.remove(ts.first());

          if (ts.isEmpty()) {
View Full Code Here

  public void testCtor() throws Exception {
   
    File file = new File("target/test-classes/fixtures/sample.m4a");
    M4AReader reader = new M4AReader(file);
   
    ITag tag = reader.readTag();
    log.debug("Tag: {}", tag);
    tag = reader.readTag();   
    log.debug("Tag: {}", tag);

  }
View Full Code Here

    IFLV flv = (IFLV) service.getStreamableFile(f);
    flv.setCache(NoCacheImpl.getInstance());
    System.out.println("test: " + flv);
    ITagReader reader = flv.getReader();
    System.out.println("test: " + reader);
    ITag tag = null;
    System.out.println("test: " + reader.hasMoreTags());
    while (reader.hasMoreTags()) {
      tag = reader.readTag();
      // System.out.println("test: " + f);
      printTag(tag);
View Full Code Here

   */

  @SuppressWarnings("unused")
  private void writeTags(ITagReader reader, ITagWriter writer) throws IOException {

    ITag tag = null;

    while (reader.hasMoreTags()) {
      tag = reader.readTag();
      writer.writeTag(tag);
      // printTag(tag);
View Full Code Here

    //File file = new File("target/test-classes/fixtures/test.flv");
    try {
      FLVReader reader = new FLVReader(file, true);
      KeyFrameMeta meta = reader.analyzeKeyFrames();
      log.debug("Meta: {}", meta);
      ITag tag = null;
      for (int t = 0; t < 6; t++) {
        tag = reader.readTag();
        log.debug("Tag: {}", tag);
      }
      reader.close();
View Full Code Here

        FLVReader reader = new FLVReader(file, true);

        KeyFrameMeta meta = reader.analyzeKeyFrames();
        log.debug("Meta: {}", meta);

        ITag tag = null;
        for (int t = 0; t < 6; t++) {
          tag = reader.readTag();
          log.debug("Tag: {}", tag);
        }
        reader.close();
View Full Code Here

   * Get tag from queue and convert to message
   * @return  RTMP event
   */
  public IRTMPEvent dequeue() {
    if (reader.hasMoreTags()) {
      ITag tag = reader.readTag();
      IRTMPEvent msg;
      switch (tag.getDataType()) {
        case TYPE_AUDIO_DATA:
          msg = new AudioData(tag.getBody());
          break;
        case TYPE_VIDEO_DATA:
          msg = new VideoData(tag.getBody());
          break;
        case TYPE_INVOKE:
          msg = new Invoke(tag.getBody());
          break;
        case TYPE_NOTIFY:
          msg = new Notify(tag.getBody());
          break;
        default:
          log.warn("Unexpected type? {}", tag.getDataType());
          msg = new Unknown(tag.getDataType(), tag.getBody());
          break;
      }
      msg.setTimestamp(tag.getTimestamp());
      //msg.setSealed(true);
      return msg;
    }
    return null;
  }
View Full Code Here

      log.warn("Skipping message with negative timestamp.");
      return;
    }
    lastTimestamp = timestamp;

    ITag tag = new Tag();

    tag.setDataType(msg.getDataType());
    tag.setTimestamp(timestamp + offset);
    if (msg instanceof IStreamData) {
      ByteBuffer data = ((IStreamData) msg).getData().asReadOnlyBuffer();
      tag.setBodySize(data.limit());
      tag.setBody(data);
    }

    try {
    writer.writeTag(tag);
    } catch (IOException e) {
View Full Code Here

TOP

Related Classes of org.red5.io.ITag

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.