videoeditorengine/h263decoder/inc/vdc263.h
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 5 4c409de21d23
--- 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