videoeditorengine/avcedit/src/framebuffer.cpp
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- a/videoeditorengine/avcedit/src/framebuffer.cpp	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,289 +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:
-*
-*/
-
-
-#include <string.h>
-#include "globals.h"
-#include "framebuffer.h"
-
-/*
- * Static functions
- */
-
-static void *allocMem(int blkSize, size_t unitSize);
-
-static frmBuf_s *initRefFrame(frmBuf_s *recoBuf, frmBuf_s *refBuf);
-
-
-
-/*
- *
- * allocMem:
- *
- * Parameters:
- *      blkSize               Block size
- *      unitSize              unit size
- *
- * Function:
- *      Allocate blkSize*unitSize bytes of memory
- *
- * Returns:
- *      Pointer to allocated memory or NULL
- *
- */
-static void *allocMem(int blkSize, size_t unitSize)
-{
-  void *mem;
-
-  if ((mem = User::Alloc(blkSize*unitSize)) == NULL) {
-    PRINT((_L("Cannot allocate memory for frame\n")));     
-  }
-
-  return mem;
-}
-
-
-/*
- *
- * frmOpen:
- *
- * Parameters:
- *      mbData                Macroblock state buffer
- *      width                 Width of the frame
- *      height                Height of the frame
- *
- * Function:
- *      Allocate memory for frame buffer and macroblock state buffer.
- *
- * Returns:
- *      Pointer to allocated frame buffer or NULL
- *
- */
-frmBuf_s *frmOpen(mbAttributes_s **mbData, int width, int height)
-{
-//  int numPels = width*height;
-  int numBlksPerLine = width/BLK_SIZE;
-  int numBlocks = numBlksPerLine*height/BLK_SIZE;
-  int numMacroblocks = width/MBK_SIZE*height/MBK_SIZE;
-  frmBuf_s *recoBuf;
-  mbAttributes_s *mbDataTmp;
-
-  if ((recoBuf = (frmBuf_s *)User::Alloc(sizeof(frmBuf_s))) == NULL)
-    return NULL;
-
-  memset(recoBuf, 0, sizeof(frmBuf_s));
-
-  recoBuf->width = width;
-  recoBuf->height = height;
-
-  if ((mbDataTmp = (mbAttributes_s *)User::Alloc(sizeof(mbAttributes_s))) == NULL)
-    return NULL;
-
-  memset(mbDataTmp, 0, sizeof(mbAttributes_s));
-
-  if ((mbDataTmp->sliceMap = (int *)allocMem(numMacroblocks, sizeof(int))) == NULL)
-    return NULL;
-  if ((mbDataTmp->mbTypeTable = (int8 *)allocMem(numMacroblocks, sizeof(int8))) == NULL)
-    return NULL;
-  if ((mbDataTmp->qpTable = (int8 *)allocMem(numMacroblocks, sizeof(int8))) == NULL)
-    return NULL;
-  if ((mbDataTmp->refIdxTable = (int8 *)allocMem(numBlocks, sizeof(int8))) == NULL)
-    return NULL;
-  if ((mbDataTmp->cbpTable = (int *)allocMem(numMacroblocks, sizeof(int))) == NULL)
-    return NULL;
-  if ((mbDataTmp->motVecTable = (motVec_s *)allocMem(numBlocks, sizeof(motVec_s))) == NULL)
-    return NULL;
-  if ((mbDataTmp->ipModesUpPred = (int8 *)allocMem(numBlksPerLine, sizeof(int8))) == NULL)
-    return NULL;
-
-  if ((mbDataTmp->numCoefUpPred[0] = (int8 *)allocMem(numBlksPerLine, sizeof(int8))) == NULL)
-    return NULL;
-  if ((mbDataTmp->numCoefUpPred[1] = (int8 *)allocMem(numBlksPerLine/2, sizeof(int8))) == NULL)
-    return NULL;
-  if ((mbDataTmp->numCoefUpPred[2] = (int8 *)allocMem(numBlksPerLine/2, sizeof(int8))) == NULL)
-    return NULL;
-
-  if ((mbDataTmp->filterModeTab = (int8 *)allocMem(numMacroblocks, sizeof(int8))) == NULL)
-    return NULL;
-  if ((mbDataTmp->alphaOffset = (int8 *)allocMem(numMacroblocks, sizeof(int8))) == NULL)
-    return NULL;
-  if ((mbDataTmp->betaOffset = (int8 *)allocMem(numMacroblocks, sizeof(int8))) == NULL)
-    return NULL;
-
-  *mbData = mbDataTmp;
-
-  return recoBuf;
-}
-
-
-/*
- *
- * frmOpenRef:
- *
- * Parameters:
- *      width                 Width of the frame
- *      height                Height of the frame
- *
- * Function:
- *      Allocate memory for reference frame buffer
- *
- * Returns:
- *      Pointer to Reference frame or NULL
- *
- */
-frmBuf_s *frmOpenRef(int width, int height)
-{
-//  int numPels = width*height;
-  frmBuf_s *ref;
-
-  if ((ref = (frmBuf_s *)User::Alloc(sizeof(frmBuf_s))) == NULL)
-    return NULL;
-
-  memset(ref, 0, sizeof(frmBuf_s));
-
-  ref->width      = width;
-  ref->height     = height;
-  ref->imgPadding = 0;
-
-  ref->forOutput = 0;
-  ref->refType = FRM_NON_REF_PIC;
-
-  return ref;
-}
-
-
-/*
- *
- * frmClose:
- *
- * Parameters:
- *      frame                 Frame
- *      mbData                MB state buffers
- *
- * Function:
- *      Deallocate frame buffer and state array memory.
- *
- * Returns:
- *      Nothing
- *
- */
-void frmClose(frmBuf_s *recoBuf, mbAttributes_s *mbData)
-{
-  if (!recoBuf)
-    return;
-
-  User::Free(mbData->sliceMap);
-  User::Free(mbData->mbTypeTable);
-  User::Free(mbData->qpTable);
-  User::Free(mbData->refIdxTable);
-  User::Free(mbData->cbpTable);
-  User::Free(mbData->motVecTable);
-  User::Free(mbData->ipModesUpPred);
-  User::Free(mbData->numCoefUpPred[0]);
-  User::Free(mbData->numCoefUpPred[1]);
-  User::Free(mbData->numCoefUpPred[2]);
-  User::Free(mbData->filterModeTab);
-  User::Free(mbData->alphaOffset);
-  User::Free(mbData->betaOffset);
-  User::Free(recoBuf);
-  User::Free(mbData);
-}
-
-
-/*
- *
- * frmCloseRef:
- *
- * Parameters:
- *      ref                   Reference frame
- *
- * Function:
- *      Deallocate reference frame buffer memory.
- *
- * Returns:
- *      Nothing
- *
- */
-void frmCloseRef(frmBuf_s *ref)
-{
-  if (!ref)
-    return;
-  
-  User::Free(ref);
-}
-
-
-/*
- *
- * initRefFrame:
- *
- * Parameters:
- *      recoBuf                Reconstruction frame
- *      frameBuf               Frame buffer to initialize
- *
- * Function:
- *      Initialize reference frame buffer refBuf using reconstructed buffer
- *      recoBuf. If width and height of the reference buffer do not those
- *      of the reconstructed buffer, reference buffer is reallocated.
- *
- * Returns:
- *      Pointer to reference frame
- *
- */
-static frmBuf_s *initRefFrame(frmBuf_s *recoBuf, frmBuf_s *refBuf)
-{
-
-  /* If pic size is different, reopen with new size */
-  if (!refBuf || refBuf->width != recoBuf->width || refBuf->height != recoBuf->height) {
-    frmCloseRef(refBuf);
-    if ((refBuf = frmOpenRef(recoBuf->width, recoBuf->height)) == NULL)
-      return NULL;
-  }
-
-  /* Copy variables */
-  *refBuf = *recoBuf;
-
-  return refBuf;
-}
-
-
-/*
- *
- * frmMakeRefFrame:
- *
- * Parameters:
- *      recoBuf               Reconstructed frame
- *      refBuf                Reference frame
- *
- * Function:
- *      Generate reference frame refBuf using reconstructed frame recoBuf.
- *      Function does not copy pixel data, but it simply swaps pointers.
- *
- * Returns:
- *      Pointer to reference frame
- *
- */
-frmBuf_s *frmMakeRefFrame(frmBuf_s *recoBuf, frmBuf_s *refBuf)
-{
-
-  refBuf = initRefFrame(recoBuf, refBuf);
-  if (refBuf == NULL)
-    return NULL;
-
-  return refBuf;
-}