--- a/videoeditorengine/h263decoder/inc/vdc263.h Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,351 +0,0 @@
-/*
-* Copyright (c) 2010 Ixonos Plc.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - Initial contribution
-*
-* Contributors:
-* Ixonos Plc
-*
-* Description:
-* An application programming interface for core functions of
-* video decoder.
-*
-*/
-
-
-#ifndef _VDC263_H_
-#define _VDC263_H_
-
-
-/*
- * Includes
- */
-
-
-#include "biblin.h"
-#include "vdeims.h"
-
-
-/*
- * Defines
- */
-
-/* Return values */
-// unify error codes
-#define VDC_OK_BUT_NOT_CODED H263D_OK_BUT_NOT_CODED
- /* not coded frame,
- copied to output as is,
- no decoded output generated */
-#define VDC_OK_BUT_FRAME_USELESS H263D_OK_BUT_FRAME_USELESS
- /* Decoder behaved normally the decoded
- frame(s) should not be displayed since
- it is too heavily corrupted. */
-
-#define VDC_OK_BUT_BIT_ERROR H263D_OK_BUT_BIT_ERROR
- /* The decoded frame(s) are degraded due
- to transmission errors but can be
- displayed due to successful error
- concealment. */
-
-#define VDC_OK H263D_OK /* Everything ok. */
-
-#define VDC_ERR H263D_ERROR /* An unexpected processing error
- occured. */
-#define VDC_ERR_NO_INTRA H263D_ERROR_NO_INTRA /* No INTRA frame has been decoded
- and the current frame is INTER */
-
-/* vdcPictureHeader_t and vdxSEI_t related definitions */
-#define VDX_MAX_BYTES_IN_PIC_HEADER 44
- /* Maximum number of bytes allowed in
- SEI picture header repetition.
-
- Picture headers not including
- BCM (Annex N video-mux back-channel),
- RPRP (Annex P warping parameters), and
- Annex U
- allocate 152 bits = 19 bytes in
- the worst case.
- Our decoder does not support the features
- mentioned above. However, to ensure
- that introduction of any of the mentioned
- tools would not break this mechanism,
- a relatively large buffer is allocated
- for picture header copies. Note that
- Annex U does not have an upper limit
- for picture header lengths. */
-
-
-/*
- * Structs and typedefs
- */
-
-/* {{-output"vdcHInstance_t_info.txt" -ignore"*" -noCR}}
- vdcHInstance_t is used as a unique identifier of a VDC instance.
- The type can be casted to u_int32 or void pointer and then back to
- vdcHInstance_t without any problems.
- {{-output"vdcHInstance_t_info.txt"}} */
-
-/* {{-output"vdcHInstance_t.txt"}} */
-typedef void * vdcHInstance_t;
-/* {{-output"vdcHInstance_t.txt"}} */
-
-
-/* The following vdx data types are defined here, because VDC exports
- these structures (see vdcDecodePictureHeader). */
-
-/*
- * vdxPictureHeader_t
- */
-
-/* {{-output"vdxPictureHeader_t_info.txt" -ignore"*" -noCR}}
- The vdxGetPictureHeader function uses this structure to return the picture
- header parameters.
- {{-output"vdxPictureHeader_t_info.txt"}} */
-
-/* {{-output"vdxPictureHeader_t.txt"}} */
-typedef struct {
- /* The following fields are always set */
- int numBits; /* number of bits in the picture header,
- including PSC, excluding PSTUFF, PSUPP and
- PEI */
-
- int tr; /* the TR field or a combination of ETR and TR
- if ETR is used */
-
- int fSplitScreen;
- int fDocumentCamera;
- int fFreezePictureRelease;
-
- int pictureType; /* Picture type is one of the following:
- VDX_PIC_TYPE_I INTRA
- VDX_PIC_TYPE_P INTER
- VDX_PIC_TYPE_PB PB (Annex G)
- VDX_PIC_TYPE_IPB Improved PB
- VDX_PIC_TYPE_B B (Annex O)
- VDX_PIC_TYPE_EI EI (Annex O)
- VDX_PIC_TYPE_EP EP (Annex O) */
-
- int fPLUSPTYPE; /* 0 = no PLUSPTYPE, 1 = PLUSPTYPE exists */
-
- int cpm; /* The CPM field */
- int psbi; /* The PSBI field, valid only if cpm == 1 */
-
- int pquant; /* The PQUANT field */
- int pquantPosition; /* Number of bits preceding the PQUANT field,
- including PSC, excluding PSTUFF */
-
- /* The following fields are set
- if pictureType == VDX_PIC_TYPE_PB || pictureType == VDX_PIC_TYPE_IPB */
- int trb; /* The TRB field */
- int dbquant; /* The DBQUANT field */
-
- /* The following fields are set if fPLUSPTYPE == 0 || ufep == 1 */
- int lumWidth; /* the width and height of the luminance */
- int lumHeight; /* image */
-
- int fUMV; /* Unrestricted Motion Vector Mode */
- int fSAC; /* Syntax-based Arithmetic Coding Mode */
- int fAP; /* Advanced Prediction Mode */
-
- /* The following fields are set if fPLUSPTYPE == 1 */
- int ufep; /* The UFEP field */
-
- int fRPR; /* Reference Picture Resampling Mode */
- int fRRU; /* Reduced-Resolution Update Mode */
- int rtype; /* Rounding type (RTYPE) */
-
-
- /* If Annex O is in use */
- int elnum; /* Enhancement layer number */
-
- /* If the Reference Picture Selection mode is in use */
- int trpi; /* 1 = trp is valid */
- int trp; /* Temporal reference for prediction */
-
- /* The following fields are set if ufep == 1 */
- int fCustomSourceFormat;
-
- int fAIC; /* Advanced INTRA Coding Mode */
- int fDF; /* Deblocking Filter Mode */
- int fSS; /* Slice Structured Mode */
- int fRPS; /* Reference Picture Selection Mode */
- int fISD; /* Independent Segment Decoding Mode */
- int fAIV; /* Alternate INTER VLC Mode */
- int fMQ; /* Modified Quantization Mode */
-
- int parWidth; /* Pixel aspect ratio = parWidth : parHeight */
- int parHeight;
-
- /* Picture Clock Frequence (PCF) fields */
- int fCustomPCF; /* 0 = CIF PCF, 1 = custom PCF */
- int pcfRate; /* PCF = pcfRate / pcfScale Hz */
- int pcfScale;
-
- /* If fUMV == 1 */
- int fUMVLimited; /* 0 = motion vector range is not limited,
- 1 = motion vector range is limited
- according to Annex D */
-
- /* If fSS == 1 */
- int fRectangularSlices;
- /* 0 = free-running slices,
- 1 = rectangular slices */
-
- int fArbitrarySliceOrdering;
- /* 0 = sequential order */
- /* 1 = arbitrary order */
-
- /* If Annex O is in use */
- int rlnum; /* Reference layer number */
-
-
- /* If fRPS == 1 */
- int rpsMode; /* Reference Picture Selection Mode:
- VDX_RPS_MODE_NO_MSGS
- VDX_RPS_MODE_ACK
- VDX_RPS_MODE_NACK
- VDX_RPS_MODE_BOTH_MSGS */
-} vdxPictureHeader_t;
-/* {{-output"vdxPictureHeader_t.txt"}} */
-
-
-/*
- * vdxSEI_t
- */
-
-/* {{-output"vdxSEI_t_info.txt" -ignore"*" -noCR}}
- This structure is used to return parameters parsed from Supplemental
- Enhancement Information.
- {{-output"vdxSEI_t_info.txt"}} */
-
-/* {{-output"vdxSEI_t.txt"}} */
-typedef struct {
- int fFullPictureFreezeRequest; /* 1 = Full-picture freeze requested as in
- section L.4 of H.263, 0 otherwise */
-
- int fFullPictureSnapshot; /* 1 = Full-picture snapshot tag as in
- section L.8 of H.263, 0 otherwise */
-
- u_int32 snapshotId; /* Snapshot identification number */
-
- u_int8 snapshotStatus; /* Snapshot transmission status */
-
- int scalabilityLayer; /* Annex N scalability layer for
- the picture, -1 if not defined */
-
- int numScalabilityLayers; /* Number of Annex N scalability layers,
- value from 2 to 15,
- 0 if no scalability layers in use. */
-
- u_char prevPicHeader[VDX_MAX_BYTES_IN_PIC_HEADER];
- /* Previous picture header repetition
- in bit-stream syntax including
- the first two bytes of PSC */
-
- int numBytesInPrevPicHeader; /* Number of bytes valid in prevPicHeader,
- including the first two bytes of PSC
- and the last byte of picture header
- where the LSB bits are possibly not
- belonging to the picture header copy */
-
- int numBitsInLastByteOfPrevPicHeader;
- /* Number of valid bits in the last byte
- of prevPicHeader (1..8) */
-
- int fPrevPicHeaderTooLarge; /* 1 if the previous picture header copy
- did not fit into prevPicHeader,
- 0 otherwise */
-} vdxSEI_t;
-/* {{-output"vdxSEI_t.txt"}} */
-
-
-/*
- * Function prototypes, core.c
- */
-
-int vdcClose(vdcHInstance_t hInstance);
-
-class CMPEG4Transcoder;
-int vdcDecodeFrame(vdcHInstance_t hInstance, bibBuffer_t *inBuffer, bibBuffer_t *outBuffer,
- bibBufferEdit_t *bufEdit, int aColorEffect, TBool aGetDecodedFrame,
- CMPEG4Transcoder *hTranscoder);
-
-
-int vdcDecodePictureHeader(
- vdcHInstance_t hInstance,
- bibBuffer_t *inBuffer,
- vdxPictureHeader_t *header,
- vdxSEI_t *sei);
-
-int vdcFree(void);
-
-vdeImsItem_t *vdcGetImsItem(vdcHInstance_t hInstance, int index);
-
-int vdcGetNumberOfAnnexNScalabilityLayers(
- vdcHInstance_t hInstance);
-
-int vdcGetNumberOfOutputFrames(vdcHInstance_t hInstance);
-
-void vdcGetTR(void *inpBuffer, u_int8 *tr);
-
-int vdcIsEOSReached(vdcHInstance_t hInstance);
-
-int vdcIsINTRA(
- vdcHInstance_t hInstance,
- void *frameStart,
- unsigned frameLength);
-
-int vdcIsINTRAGot(vdcHInstance_t hInstance);
-
-int vdcIsPB(
- vdcHInstance_t hInstance,
- void *frameStart,
- unsigned frameLength);
-
-int vdcLoad(void);
-
-vdcHInstance_t vdcOpen(
- vdeIms_t *imageStore,
- int numReferenceFrames,
- void *hParent);
-
-void vdcRestartVideo(vdcHInstance_t hInstance);
-
-int vdcSetBackChannelUsage(vdcHInstance_t hInstance, int fSendMessages);
-
-int vdcSetErrorResilience(vdcHInstance_t hInstance, int feature, int value);
-
-int vdcSetStartOrEndSnapshotCallback(
- vdcHInstance_t hInstance,
- u_int32 mode,
- u_int32 callback);
-
-int vdcGetSnapshotStatus(vdcHInstance_t hInstance);
-
-int vdcSetReportPictureSizeCallback(
- vdcHInstance_t hInstance,
- u_int32 callback);
-
-/*
- * Function prototypes, core_mpeg.c
- */
-
- int vdcDecodeMPEGVolHeader(vdcHInstance_t hInstance, bibBuffer_t *inBuffer, CMPEG4Transcoder *hTranscoder);
-
- int vdcDecodeMPEGVop(vdcHInstance_t hInstance, bibBuffer_t *inBuffer, bibBuffer_t *outBuffer,
- bibBufferEdit_t *bufEdit, int aColorEffect, TBool aGetDecodedFrame,
- int aStartByteIndex, int aStartBitIndex, CMPEG4Transcoder *hTranscoder);
-
- int vdcIsMPEGINTRA(
- vdcHInstance_t hInstance,
- void *frameStart,
- unsigned frameLength);
-
-#endif
-// End of File