sl@0: // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Constants and structs specific to Sorenson Spark. See the DevVideo specs for more details. sl@0: // sl@0: // sl@0: sl@0: #ifndef __DEVVIDEO_SORENSENSPARK_H__ sl@0: #define __DEVVIDEO_SORENSENSPARK_H__ sl@0: sl@0: #include sl@0: sl@0: /** sl@0: Specifies the picture type. sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: enum TSparkPictureType sl@0: { sl@0: /** sl@0: Indicates a keyframe sl@0: */ sl@0: ESparkPictureTypeKey = 0x01, sl@0: /** sl@0: Indicates a predicted or inter frame sl@0: */ sl@0: ESparkPictureTypeP = 0x02, sl@0: /** sl@0: Indicates a predicted frame that is disposable sl@0: */ sl@0: ESparkPictureTypeDisp = 0x04 sl@0: }; sl@0: sl@0: /** sl@0: Specifies action of deblocking filter sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: enum TSparkDeblocking sl@0: { sl@0: /** sl@0: Never deblock sl@0: */ sl@0: EDeblockNever = 0x1, sl@0: /** sl@0: Always deblock sl@0: */ sl@0: EDeblockAlways = 0x2, sl@0: /** sl@0: Apply deblocking as requested by video packet deblocking flag sl@0: */ sl@0: EDeblockAsIndicated = 0x4 sl@0: }; sl@0: sl@0: sl@0: /** sl@0: Settings to describe decompression sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: class TSparkDecompressSettings sl@0: { sl@0: public: sl@0: /** sl@0: If this member is set to EDeblockNever the decompressor will never deblock the image even sl@0: if the deblocking bit is set in the bitstream. If this member is set to EDeblockAlways the sl@0: decompressor will deblock the image even if the deblocking bit not set in the bitstream. sl@0: If this member is set to EDeblockAsIndicated then deblocking will only occur when the sl@0: deblocking bit in the bitstream is set to 1. sl@0: */ sl@0: TSparkDeblocking iDeblockingMethod; sl@0: }; sl@0: sl@0: sl@0: /** sl@0: Sorenson Spark video packet header sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: class TSparkPictureHeader sl@0: { sl@0: public: sl@0: /** sl@0: Indicates the temporal reference, which is formed by incrementing the value in the previously transmitted sl@0: picture header by one, plus the number of non-transmitted pictures since the previously transmitted one. sl@0: */ sl@0: TUint iTemporalReference; sl@0: /** sl@0: Indicates the picture coding type. iPictureType is set according to the picture header as one of sl@0: the values defined in TSparkPictureType sl@0: */ sl@0: TSparkPictureType iPictureType; sl@0: /** sl@0: Requests use of deblocking filter sl@0: */ sl@0: TBool Deblocking; sl@0: /** sl@0: Indicates the initial value of the quantization parameter sl@0: */ sl@0: TUint iQuantizer; sl@0: }; sl@0: sl@0: #endif