1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 /** 19 * @file pvmf_fileinputnode_extension.h 20 * @brief Extension interface for PVMFFileInputNode 21 */ 22 23 #ifndef PVMF_FILEINPUT_NODE_EXTENSION_H_INCLUDED 24 #define PVMF_FILEINPUT_NODE_EXTENSION_H_INCLUDED 25 26 #ifndef OSCL_BASE_H_INCLUDED 27 #include "oscl_base.h" 28 #endif 29 #ifndef PV_INTERFACE_H 30 #include "pv_interface.h" 31 #endif 32 #ifndef PV_UUID_H_INCLUDED 33 #include "pv_uuid.h" 34 #endif 35 36 // The PVUuid cannot by a const or it will create uninitialized data 37 // 38 #define KPVMFFileInputNodeExtensionUuid PVUuid(0xca27cb64,0x83ed,0x40d6,0x96,0xa3,0xed,0x1d,0x8b,0x60,0x11,0x38) 39 40 // Forward declaration 41 class OsclRefCounterMemFrag; 42 43 /** 44 * PVMFFileInputNodeExtensionInterface allows a client to do exercise extened functions 45 * of a PVMFFileInputNode 46 */ 47 class PVMFFileInputNodeExtensionInterface : public PVInterface 48 { 49 public: 50 virtual void addRef() = 0; 51 virtual void removeRef() = 0; 52 virtual bool queryInterface(const PVUuid& uuid, PVInterface*& iface) = 0; 53 54 /** 55 * Retrieves bitstream configuration information specific to the file type. 56 * This method is not valid for all files types. For M4V files, this function 57 * would copy the VOL header to the config memory fragment provided. For 58 * other file types, this method would return false, and aConfig is not 59 * modified. 60 * 61 * @param aConfig Memory fragment to hold the config information. 62 * @return true if config info is provided, else false. 63 */ 64 virtual bool GetBitstreamConfig(OsclRefCounterMemFrag& aConfig) = 0; 65 }; 66 67 #endif // PVMF_FILEINPUT_NODE_EXTENSION_H_INCLUDED 68