summaryrefslogtreecommitdiff
path: root/omx/openmax/NVOMX_TrackList.h
diff options
context:
space:
mode:
Diffstat (limited to 'omx/openmax/NVOMX_TrackList.h')
-rw-r--r--omx/openmax/NVOMX_TrackList.h192
1 files changed, 192 insertions, 0 deletions
diff --git a/omx/openmax/NVOMX_TrackList.h b/omx/openmax/NVOMX_TrackList.h
new file mode 100644
index 0000000..b8e5a3e
--- /dev/null
+++ b/omx/openmax/NVOMX_TrackList.h
@@ -0,0 +1,192 @@
+/* Copyright (c) 2008 NVIDIA Corporation. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject
+ * to the following conditions:
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * @file
+ * <b>NVIDIA Tegra: OpenMAX Container Tracklist Extension Interface</b>
+ *
+ */
+
+#ifndef NVOMX_TrackList_h
+#define NVOMX_TrackList_h
+
+/***************************************************************
+ **** THIS INTERFACE IS DEPRECATED AND NO LONGER SUPPORTED ****
+ ***************************************************************/
+
+/**
+ * @defgroup nv_omx_il_tracklist Tracklist
+ *
+ * This is the NVIDIA OpenMAX container demux class tracklist interface extension.
+ *
+ * It defines the container extension interface to play multiple files with one graph
+ * as well as support for gapless audio playback.
+ *
+ * @ingroup nvomx_container_extension
+ * @{
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <OMX_Core.h>
+
+/**
+ * If NvxTrack_AutoAdvance is set, the next track will automatically be
+ * played
+ */
+typedef enum
+{
+ NvxTrack_NoFlags = 0x00000000,
+ NvxTrack_AutoAdvance = 0x00000001,
+
+ NvxTrack_Force32 = 0x7FFFFFFF
+} NvxTrackFlags;
+
+/**
+ * Filetypes to override the automatic detection.
+ */
+typedef enum
+{
+ NvxType_Default = 0, // Generally, use this.
+ NvxType_Asf, // asf, wma, wmv
+ NvxType_3gp, // mov, 3gp, m4a, m4v
+ NvxType_Avi,
+ NvxType_Mp3,
+ NvxType_Ogg,
+ NvxType_Ogm,
+ NvxType_Wav,
+ NvxType_Mkv, // mkv
+ NvxType_Force32 = 0x7FFFFFFF
+} NvxFileType;
+/**
+ * Holds information about a single track.
+ *
+ * pClientPrivate may be set to anything the IL client desires
+ *
+ * pPath _must_ be in UTF-8.
+ */
+typedef struct NvxTrackInfoRec
+{
+ NvxTrackFlags eTrackFlag;
+ void *pClientPrivate;
+ OMX_U32 uSize;
+ OMX_U8 *pPath;
+ NvxFileType eType;
+} NvxTrackInfo;
+
+typedef OMX_HANDLETYPE NvxTrackList;
+
+/**
+ * Get/Set a tracklist handle.
+ *
+ * Get the handle from the parser component, and set it on all other components
+ * in the chain (ie, audio decoder, audio renderer).
+ */
+#define NVX_INDEX_CONFIG_TRACKLIST "OMX.Nvidia.index.config.tracklist"
+/** Holds a tracklist handle. */
+typedef struct NVX_CONFIG_TRACKLIST
+{
+ OMX_U32 nSize; /**< Size of the structure in bytes */
+ OMX_VERSIONTYPE nVersion; /**< NVX extensions specification version information */
+ NvxTrackList hTrackList; /**< Tracklist handle */
+} NVX_CONFIG_TRACKLIST;
+
+/**
+ * Add/Get a track.
+ *
+ * Add a track to the specified position (uIndex) with SetConfig.
+ * Get info on a track at the specified position (uIndex) with GetConfig.
+ *
+ * Only valid on the parser component.
+ */
+#define NVX_INDEX_CONFIG_TRACKLIST_TRACK "OMX.Nvidia.index.config.tracklist.track"
+/** Holds tracklist information. */
+typedef struct NVX_CONFIG_TRACKLIST_TRACK
+{
+ OMX_U32 nSize; /**< Size of the structure in bytes */
+ OMX_VERSIONTYPE nVersion; /**< NVX extensions specification version information */
+ OMX_U32 uIndex; /**< Index of track */
+ NvxTrackInfo *pTrackInfo; /**< Track information */
+} NVX_CONFIG_TRACKLIST_TRACK;
+
+/**
+ * Delete tracks from a tracklist.
+ *
+ * Use -1 for nIndex to delete all tracks from the tracklist.
+ *
+ * Only valid on the parser component.
+ */
+#define NVX_INDEX_CONFIG_TRACKLIST_DELETE "OMX.Nvidia.index.config.tracklist.delete"
+/** Holds a tracklist index. */
+typedef struct NVX_CONFIG_TRACKLIST_DELETE
+{
+ OMX_U32 nSize; /**< Size of the structure in bytes */
+ OMX_VERSIONTYPE nVersion; /**< NVX extensions specification version information */
+ OMX_S32 nIndex; /**< Index of track to delete */
+} NVX_CONFIG_TRACKLIST_DELETE;
+
+/**
+ * Query the size of the tracklist.
+ *
+ * Only valid as a GetConfig on the parser component.
+ */
+#define NVX_INDEX_CONFIG_TRACKLIST_SIZE "OMX.Nvidia.index.config.tracklist.size"
+/** Holds a tracklist size. */
+typedef struct NVX_CONFIG_TRACKLIST_SIZE
+{
+ OMX_U32 nSize; /**< Size of the structure in bytes */
+ OMX_VERSIONTYPE nVersion; /**< NVX extensions specification version information */
+ OMX_U32 uTracklistSize; /**< Number of tracks in the tracklist */
+} NVX_CONFIG_TRACKLIST_SIZE;
+
+/**
+ * Get/Set the current track.
+ *
+ * pTrackInfo will be filled on GetConfig, and unused on SetConfig.
+ *
+ * Only valid on the parser component.
+ */
+#define NVX_INDEX_CONFIG_TRACKLIST_CURRENT "OMX.Nvidia.index.config.tracklist.current"
+/** Holds tracklist information. */
+typedef struct NVX_CONFIG_TRACKLIST_CURRENT
+{
+ OMX_U32 nSize; /**< Size of the structure in bytes */
+ OMX_VERSIONTYPE nVersion; /**< NVX extensions specification version information */
+ OMX_U32 uIndex; /**< Index of track to query info from */
+ NvxTrackInfo *pTrackInfo; /**< Track information */
+} NVX_CONFIG_TRACKLIST_CURRENT;
+
+/**
+ * This event will be sent when a track is finished playing
+ */
+#define NVX_EventTrackFinished 0x7A000001
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+/** @} */
+#endif
+
+/* File EOF */
+