All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencastproject.mediapackage.Track Maven / Gradle / Ivy

There is a newer version: 16.6
Show newest version
/*
 * Licensed to The Apereo Foundation under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership.
 *
 *
 * The Apereo Foundation licenses this file to you under the Educational
 * Community 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://opensource.org/licenses/ecl2.txt
 *
 * 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 org.opencastproject.mediapackage;

import org.opencastproject.mediapackage.track.TrackImpl;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

/**
 * This interface describes methods and fields for audio and video tracks as part of a media package.
 */
@XmlJavaTypeAdapter(TrackImpl.Adapter.class)
public interface Track extends MediaPackageElement {

  /**
   * Media package element type.
   */
  Type TYPE = Type.Track;

  /**
   * @return the streams that make up the track. Tracks consist of at least one stream.
   */
  Stream[] getStreams();

  /**
   * Returns true if the track features an audio stream.
   *
   * @return true if the track has an audio stream
   */
  boolean hasAudio();

  /**
   * Returns true if the track features a video stream.
   *
   * @return true if the track has a video stream
   */
  boolean hasVideo();

  /**
   * Returns true if the track features a subtitle stream.
   *
   * @return true if the track has a subtitle stream
   */
  boolean hasSubtitle();

  /**
   * Returns the track duration in milliseconds or null if the duration is not available.
   *
   * @return the track duration
   */
  Long getDuration();

  /**
   * Returns the track's description with details about framerate, codecs etc.
   *
   * @return the track description.
   */
  String getDescription();

  /**
   * Returns true if the track is a live track.
   *
   * @return true if live track; false otherwise
   */
  boolean isLive();

  /**
   * Returns true if the track is a master playlist (play this over other tracks).
   *
   * @return true if it is a master playlist track; false otherwise
   */
  Boolean isMaster();

  /**
   * @return true if master playlist value is not null
   */
  boolean hasMaster();

  /**
   * Sets master - it is an adaptive playlist
   *
   * @param master
   *          if true
   */
  void setMaster(Boolean master);

  /**
   * Returns logical name of the file which persists in spite of file name changes
   * @return logical name
   */
  String getLogicalName();

  /**
   * Sets logical name of the file which persists in spite of file name changes to maintain referential integrity in the
   * case of adaptive playlists
   *
   * @param name
   *          as relative to manifest
   */
  void setLogicalName(String name);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy