/* ------------------------------------------------------------------ * Copyright (C) 1998-2009 PacketVideo * * 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. * ------------------------------------------------------------------- */ /** * @file pvmf_ffparsernode_extension.h * @brief Extension interface for PVMF FF parser nodes */ #ifndef PVMF_FFPARSERNODE_EXTENSION_H_INCLUDED #define PVMF_FFPARSERNODE_EXTENSION_H_INCLUDED #ifndef OSCL_BASE_H_INCLUDED #include "oscl_base.h" #endif #ifndef OSCL_FILE_IO_H_INCLUDED #include "oscl_file_io.h" #endif #ifndef PV_INTERFACE_H #include "pv_interface.h" #endif #ifndef PV_UUID_H_INCLUDED #include "pv_uuid.h" #endif #ifndef PVMF_FORMAT_TYPE_H_INCLUDED #include "pvmf_format_type.h" #endif #ifndef PVMF_RETURN_CODES_H_INCLUDED #include "pvmf_return_codes.h" #endif // UUID for the extension interface // The below commented out line won't build on ARM5 - have to replace w/ #define. Global data not allowed on ARM5. //const PVUuid KPVMFFFParserNodeExtensionUuid = PVUuid(0x72B76D8C,0xB4CC,0x4887,0xB1,0x0B,0x7E,0xE6,0x48,0x47,0xB2,0x05); #define KPVMFFFParserNodeExtensionUuid PVUuid(0x72B76D8C,0xB4CC,0x4887,0xB1,0x0B,0x7E,0xE6,0x48,0x47,0xB2,0x05) // Defines #define PVMFFFPARSERNODE_MAX_NUM_TRACKS 6 // Structs struct PVMFFFParserNodeTrackInfo { int32 iNumTracks; uint32 iTrackId[PVMFFFPARSERNODE_MAX_NUM_TRACKS]; PVMFFormatType iFormatType[PVMFFFPARSERNODE_MAX_NUM_TRACKS]; uint32 iBitrate[PVMFFFPARSERNODE_MAX_NUM_TRACKS]; uint32 iTimescale[PVMFFFPARSERNODE_MAX_NUM_TRACKS]; }; /** * PVMFFFParserNodeExtensionInterface specifies extended interfaces for file format parser nodes */ class PVMFFFParserNodeExtensionInterface : public PVInterface { public: virtual void addRef() = 0; virtual void removeRef() = 0; virtual bool queryInterface(const PVUuid& uuid, PVInterface*& iface) = 0; /** * Sets the path and filename for the input file to be used for the data source * * @param aFilename Wide character OSCL_String.reference to the input filename * @return PVMFSuccess if successful. PVMFFailure if not */ virtual PVMFStatus SetSourceFilename(OSCL_wString& aFilename) = 0; /** * Retrieves the track information for the currently set and initialized file * * @param aTrackInfo Reference to a PVMFFFParserNodeTrackInfo struct that will be filled with track info * @return PVMFSuccess if successful. PVMFFailure if not */ virtual PVMFStatus GetTrackInfo(PVMFFFParserNodeTrackInfo& aTrackInfo) = 0; }; #endif // PVMF_FFPARSERNODE_EXTENSION_H_INCLUDED