epoc32/include/mmf/devvideo/devvideoplay.h
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
equal deleted inserted replaced
3:e1b950c65cb4 4:837f303aceeb
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     7 //
     8 // Initial Contributors:
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
     9 // Nokia Corporation - initial contribution.
    10 //
    10 //
    11 // Contributors:
    11 // Contributors:
   169 	set to point to the real video buffer memory data area by the user).
   169 	set to point to the real video buffer memory data area by the user).
   170 	*/
   170 	*/
   171 	IMPORT_C TVideoInputBuffer();
   171 	IMPORT_C TVideoInputBuffer();
   172 
   172 
   173 public:
   173 public:
       
   174 	/**
       
   175 	 */
   174 	enum TVideoBufferOptions
   176 	enum TVideoBufferOptions
   175 		{
   177 		{
   176 		/** The sequence number field is valid. */
   178 		/** The sequence number field is valid. */
   177 		ESequenceNumber	 = 0x00000001,
   179 		ESequenceNumber	 = 0x00000001,
   178 		/** The decoding timestamp field is valid */
   180 		/** The decoding timestamp field is valid */
   179 		EDecodingTimestamp  = 0x00000002,
   181 		EDecodingTimestamp  = 0x00000002,
   180 		/** The presentation timestamp field is valid.*/
   182 		/** The presentation timestamp field is valid.*/
   181 		EPresentationTimestamp = 0x00000004
   183 		EPresentationTimestamp = 0x00000004,
       
   184 		/** Content protected pictures cannot be displayed on unprotected 
       
   185 		    external displays such as TV-out.
       
   186 		*/
       
   187 		EContentProtected = 0x00000008
   182 		};
   188 		};
   183 
   189 
   184 	/**
   190 	/**
   185 	Pointer to the video data.
   191 	Pointer to the video data.
   186 	*/
   192 	*/
   431 									 The array must be created and destroyed by the caller."
   437 									 The array must be created and destroyed by the caller."
   432 	@leave "KErrNotSupported if the secondary screen display is not supported in Multimedia Framework.
   438 	@leave "KErrNotSupported if the secondary screen display is not supported in Multimedia Framework.
   433 			KErrNoMemory when there is no memory to expand the list."
   439 			KErrNoMemory when there is no memory to expand the list."
   434 	*/
   440 	*/
   435 	IMPORT_C void GetSupportedScreensL(RArray<TInt>& aSupportedScreens) const;
   441 	IMPORT_C void GetSupportedScreensL(RArray<TInt>& aSupportedScreens) const;
       
   442 	
       
   443 	/** Sets a flag indicating whether the PostProcessor supports per picture content protection.
       
   444 	    E.g. Where content protection within a video stream can alter.
       
   445 	 @param "aSetting" "Set to TRUE to indicate PostProcessor supports content protection. 
       
   446 	 @See TVideoPicture::TVideoPictureOptions::EContentProtected 
       
   447 	 @See TVideoInputBuffer::TVideoBufferOptions::EContentProtected 
       
   448 	*/
       
   449 	IMPORT_C void SetSupportsContentProtected(const TBool aSetting);
       
   450 		
       
   451 	/** Returns whether the PostProcessor supports per picture content protection.
       
   452 	    E.g. Where content protection within a video stream can alter.
       
   453 	 @return "True if the PostProcessor supports Content Protection." 
       
   454 	 @See TVideoPicture::TVideoPictureOptions::EContentProtected
       
   455 	 @See TVideoInputBuffer::TVideoBufferOptions::EContentProtected
       
   456 	*/
       
   457 	IMPORT_C TBool SupportsContentProtected() const;
       
   458 	
   436 private:
   459 private:
   437 	CPostProcessorInfo(TUid aUid,
   460 	CPostProcessorInfo(TUid aUid,
   438 					   TVersion aVersion,
   461 					   TVersion aVersion,
   439 					   TBool aAccelerated,
   462 					   TBool aAccelerated,
   440 					   TBool aSupportDirectDisplay,
   463 					   TBool aSupportDirectDisplay,
   463 	HBufC8* iImplementationSpecificInfo;
   486 	HBufC8* iImplementationSpecificInfo;
   464  	RArray<TUncompressedVideoFormat> iSupportedFormats;
   487  	RArray<TUncompressedVideoFormat> iSupportedFormats;
   465 	RArray<TUint32> iSupportedCombinations;
   488 	RArray<TUint32> iSupportedCombinations;
   466 	RArray<TScaleFactor> iSupportedScaleFactors;
   489 	RArray<TScaleFactor> iSupportedScaleFactors;
   467 	RArray<TInt> iSupportedScreens;
   490 	RArray<TInt> iSupportedScreens;
       
   491 	TBool iSupportsContentProtected;
   468 	};
   492 	};
   469 
   493 
   470 
   494 
   471 /**
   495 /**
   472 This class contains information about a single video decoder. Although it mainly contains static data, 
   496 This class contains information about a single video decoder. Although it mainly contains static data, 
   666 									 The array must be created and destroyed by the caller."
   690 									 The array must be created and destroyed by the caller."
   667 	@leave "KErrNotSupported if the secondary screen display is not supported in Multimedia Framework.
   691 	@leave "KErrNotSupported if the secondary screen display is not supported in Multimedia Framework.
   668 			KErrNoMemory when there is no memory to expand the list."
   692 			KErrNoMemory when there is no memory to expand the list."
   669 	*/
   693 	*/
   670 	IMPORT_C void GetSupportedScreensL(RArray<TInt>& aSupportedScreens) const;
   694 	IMPORT_C void GetSupportedScreensL(RArray<TInt>& aSupportedScreens) const;
       
   695 
       
   696 	/** Sets a flag indicating whether the Decoder supports per picture content protection.
       
   697 	    E.g. Where content protection within a video stream can alter.
       
   698 	 @param "aSetting" "Set to TRUE to indicate decoder supports content protection. 
       
   699 	 @See TVideoPicture::TVideoPictureOptions::EContentProtected 
       
   700 	 @See TVideoInputBuffer::TVideoBufferOptions::EContentProtected 
       
   701 	*/
       
   702 	IMPORT_C void SetSupportsContentProtected(const TBool aSetting);
       
   703 		
       
   704 	/** Returns whether the Decoder supports per picture content protection.
       
   705 	    E.g. Where content protection within a video stream can alter.
       
   706 	 @return "True if the Decoder supports Content Protection." 
       
   707 	 @See TVideoPicture::TVideoPictureOptions::EContentProtected
       
   708 	 @See TVideoInputBuffer::TVideoBufferOptions::EContentProtected
       
   709 	*/
       
   710 	IMPORT_C TBool SupportsContentProtected() const;
       
   711 
   671 private:
   712 private:
   672 	CVideoDecoderInfo(TUid aUid,
   713 	CVideoDecoderInfo(TUid aUid,
   673 					  TVersion aVersion,
   714 					  TVersion aVersion,
   674 					  TBool aAccelerated,
   715 					  TBool aAccelerated,
   675 					  TBool aSupportsDirectDisplay,
   716 					  TBool aSupportsDirectDisplay,
   698 	RPointerArray<CCompressedVideoFormat> iSupportedFormats;
   739 	RPointerArray<CCompressedVideoFormat> iSupportedFormats;
   699 	RArray<TPictureRateAndSize> iMaxPictureRates;
   740 	RArray<TPictureRateAndSize> iMaxPictureRates;
   700 	HBufC8* iCodingStandardSpecificInfo;
   741 	HBufC8* iCodingStandardSpecificInfo;
   701 	HBufC8* iImplementationSpecificInfo;
   742 	HBufC8* iImplementationSpecificInfo;
   702 	RArray<TInt> iSupportedScreens;
   743 	RArray<TInt> iSupportedScreens;
       
   744 	TBool iSupportsContentProtected;
   703 	};
   745 	};
   704 
   746 
   705 
   747 
   706 
   748 
   707 
   749 
  2020 	This method is only called after the client has called InputEnd(). No more output pictures will 
  2062 	This method is only called after the client has called InputEnd(). No more output pictures will 
  2021 	be available.
  2063 	be available.
  2022 	*/
  2064 	*/
  2023 	virtual void MdvpoStreamEnd() = 0;
  2065 	virtual void MdvpoStreamEnd() = 0;
  2024 	};
  2066 	};
  2025 
  2067 	
  2026 
  2068 	
  2027 
       
  2028 #include <mmf/devvideo/devvideoplay.inl>
  2069 #include <mmf/devvideo/devvideoplay.inl>
  2029 
  2070 
  2030 #endif
  2071 #endif