亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? memalloc.c

?? H264解碼器,本解碼器實現了圖像的264解碼
?? C
字號:

/*!
 ************************************************************************
 * \file  memalloc.c
 *
 * \brief
 *    Memory allocation and free helper funtions
 *
 * \author
 *    Main contributors (see contributors.h for copyright, address and affiliation details)
 ************************************************************************
 */

#include <stdlib.h>
#include "memalloc.h"

/*!
 ************************************************************************
 * \brief
 *    Allocate 2D memory array -> unsigned char array2D[rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************/
// Change 9-Aug-2001 P. List: dont allocate independant row arrays anymore
// but one complete array and move row-pointers to array. Now you can step
// to the next line with an offset of img->width
int get_mem2D(byte ***array2D, int rows, int columns)
{
  int i;

  if((*array2D      = (byte**)calloc(rows,        sizeof(byte*))) == NULL)
    no_mem_exit("get_mem2D: array2D");
  if(((*array2D)[0] = (byte* )calloc(columns*rows,sizeof(byte ))) == NULL)
    no_mem_exit("get_mem2D: array2D");

  for(i=1;i<rows;i++)
    (*array2D)[i] = (*array2D)[i-1] + columns ;

  return rows*columns;
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 2D memory array -> int array2D[rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem2Dint(int ***array2D, int rows, int columns)
{
  int i;

  if((*array2D      = (int**)calloc(rows,        sizeof(int*))) == NULL)
    no_mem_exit("get_mem2Dint: array2D");
  if(((*array2D)[0] = (int* )calloc(rows*columns,sizeof(int ))) == NULL)
    no_mem_exit("get_mem2Dint: array2D");

  for(i=1 ; i<rows ; i++)
    (*array2D)[i] =  (*array2D)[i-1] + columns  ;

  return rows*columns*sizeof(int);
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 2D memory array -> int64 array2D[rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem2Dint64(int64 ***array2D, int rows, int columns)
{
  int i;

  if((*array2D      = (int64**)calloc(rows,        sizeof(int64*))) == NULL)
    no_mem_exit("get_mem2Dint64: array2D");
  if(((*array2D)[0] = (int64* )calloc(rows*columns,sizeof(int64 ))) == NULL)
    no_mem_exit("get_mem2Dint64: array2D");

  for(i=1 ; i<rows ; i++)
    (*array2D)[i] =  (*array2D)[i-1] + columns  ;

  return rows*columns*sizeof(int64);
}


/*!
 ************************************************************************
 * \brief
 *    Allocate 3D memory array -> unsigned char array3D[frames][rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem3D(byte ****array3D, int frames, int rows, int columns)
{
  int  j;

  if(((*array3D) = (byte***)calloc(frames,sizeof(byte**))) == NULL)
    no_mem_exit("get_mem3D: array3D");

  for(j=0;j<frames;j++)
    get_mem2D( (*array3D)+j, rows, columns ) ;

  return frames*rows*columns;
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 3D memory array -> int array3D[frames][rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem3Dint(int ****array3D, int frames, int rows, int columns)
{
  int  j;

  if(((*array3D) = (int***)calloc(frames,sizeof(int**))) == NULL)
    no_mem_exit("get_mem3Dint: array3D");

  for(j=0;j<frames;j++)
    get_mem2Dint( (*array3D)+j, rows, columns ) ;

  return frames*rows*columns*sizeof(int);
}

/*!
 ************************************************************************
 * \brief
 *    Allocate 3D memory array -> int64 array3D[frames][rows][columns]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem3Dint64(int64 ****array3D, int frames, int rows, int columns)
{
  int  j;

  if(((*array3D) = (int64***)calloc(frames,sizeof(int64**))) == NULL)
    no_mem_exit("get_mem3Dint64: array3D");

  for(j=0;j<frames;j++)
    get_mem2Dint64( (*array3D)+j, rows, columns ) ;

  return frames*rows*columns*sizeof(int64);
}


/*!
 ************************************************************************
 * \brief
 *    Allocate 4D memory array -> int array3D[frames][rows][columns][component]
 *
 * \par Output:
 *    memory size in bytes
 ************************************************************************
 */
// same change as in get_mem2Dint
int get_mem4Dint(int *****array4D, int idx, int frames, int rows, int columns )
{
  int  j;

  if(((*array4D) = (int****)calloc(idx,sizeof(int**))) == NULL)
    no_mem_exit("get_mem4Dint: array4D");

  for(j=0;j<idx;j++)
    get_mem3Dint( (*array4D)+j, frames, rows, columns ) ;

  return idx*frames*rows*columns*sizeof(int);
}

/*!
 ************************************************************************
 * \brief
 *    free 2D memory array
 *    which was alocated with get_mem2D()
 ************************************************************************
 */
void free_mem2D(byte **array2D)
{
  if (array2D)
  {
    if (array2D[0])
      free (array2D[0]);
    else error ("free_mem2D: trying to free unused memory",100);

    free (array2D);
  } else
  {
    error ("free_mem2D: trying to free unused memory",100);
  }
}

/*!
 ************************************************************************
 * \brief
 *    free 2D memory array
 *    which was alocated with get_mem2Dint()
 ************************************************************************
 */
void free_mem2Dint(int **array2D)
{
  if (array2D)
  {
    if (array2D[0]) 
      free (array2D[0]);
    else error ("free_mem2Dint: trying to free unused memory",100);

    free (array2D);

  } else
  {
    error ("free_mem2Dint: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 2D memory array
 *    which was alocated with get_mem2Dint64()
 ************************************************************************
 */
void free_mem2Dint64(int64 **array2D)
{
  if (array2D)
  {
    if (array2D[0]) 
      free (array2D[0]);
    else error ("free_mem2Dint64: trying to free unused memory",100);

    free (array2D);

  } else
  {
    error ("free_mem2Dint64: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 3D memory array
 *    which was alocated with get_mem3D()
 ************************************************************************
 */
void free_mem3D(byte ***array3D, int frames)
{
  int i;

  if (array3D)
  {
    for (i=0;i<frames;i++)
    { 
      free_mem2D(array3D[i]);
    }
   free (array3D);
  } else
  {
    error ("free_mem3D: trying to free unused memory",100);
  }
}

/*!
 ************************************************************************
 * \brief
 *    free 3D memory array 
 *    which was alocated with get_mem3Dint()
 ************************************************************************
 */
void free_mem3Dint(int ***array3D, int frames)
{
  int i;

  if (array3D)
  {
    for (i=0;i<frames;i++)
    { 
      free_mem2Dint(array3D[i]);
    }
   free (array3D);
  } else
  {
    error ("free_mem3D: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 3D memory array 
 *    which was alocated with get_mem3Dint64()
 ************************************************************************
 */
void free_mem3Dint64(int64 ***array3D, int frames)
{
  int i;

  if (array3D)
  {
    for (i=0;i<frames;i++)
    { 
      free_mem2Dint64(array3D[i]);
    }
   free (array3D);
  } else
  {
    error ("free_mem3Dint64: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    free 4D memory array 
 *    which was alocated with get_mem4Dint()
 ************************************************************************
 */
void free_mem4Dint(int ****array4D, int idx, int frames )
{
  int  j;

  if (array4D)
  {
    for(j=0;j<idx;j++)
      free_mem3Dint( array4D[j], frames) ;
    free (array4D);
  } else
  {
    error ("free_mem4D: trying to free unused memory",100);
  }
}


/*!
 ************************************************************************
 * \brief
 *    Exit program if memory allocation failed (using error())
 * \param where
 *    string indicating which memory allocation failed
 ************************************************************************
 */
void no_mem_exit(char *where)
{
   snprintf(errortext, ET_SIZE, "Could not allocate memory: %s",where);
   error (errortext, 100);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合天天做天天综合| 亚洲乱码国产乱码精品精小说| 色噜噜狠狠一区二区三区果冻| 成人黄色免费短视频| 国产传媒欧美日韩成人| 岛国av在线一区| 99久久精品国产毛片| 91啪九色porn原创视频在线观看| a级高清视频欧美日韩| 91色乱码一区二区三区| 在线观看免费一区| 欧美高清性hdvideosex| 日韩一区国产二区欧美三区| 欧美成人在线直播| 中文子幕无线码一区tr| 亚洲激情自拍偷拍| 天涯成人国产亚洲精品一区av| 日本女优在线视频一区二区| 九一九一国产精品| 国产福利91精品一区| 99久久综合国产精品| 欧美熟乱第一页| 日韩欧美国产麻豆| 欧美国产日韩精品免费观看| 一区二区三区在线观看视频| 日韩av网站在线观看| 国产毛片精品视频| 日本韩国一区二区三区视频| 91精品国产麻豆| 国产精品卡一卡二| 日韩一区精品视频| 成人动漫在线一区| 91精品国产aⅴ一区二区| 欧美激情中文字幕一区二区| 亚洲成人激情社区| 国产伦精品一区二区三区在线观看| 91蜜桃网址入口| 欧美mv日韩mv国产网站| 亚洲品质自拍视频网站| 久久99久久99精品免视看婷婷 | 国内精品国产成人国产三级粉色| 成人听书哪个软件好| 欧美视频三区在线播放| 国产三级久久久| 香蕉av福利精品导航| 成人免费av资源| 精品日韩99亚洲| 亚洲午夜三级在线| 国产999精品久久久久久绿帽| 欧美日韩精品三区| 自拍av一区二区三区| 久久97超碰色| 在线成人av网站| 亚洲精品美国一| 成人午夜视频免费看| 日韩精品一区二区三区老鸭窝| 亚洲六月丁香色婷婷综合久久| 国产盗摄精品一区二区三区在线| 欧美一级视频精品观看| 香蕉av福利精品导航| 91成人免费在线视频| 中文字幕五月欧美| 岛国精品一区二区| 日本一区二区视频在线| 久久精品99久久久| 精品免费一区二区三区| 三级不卡在线观看| 欧美精品色综合| 亚洲国产日韩综合久久精品| av激情综合网| 成人免费一区二区三区视频| 播五月开心婷婷综合| ...xxx性欧美| 色偷偷久久人人79超碰人人澡 | 99久久国产综合精品色伊| 国产精品三级视频| av一区二区不卡| 樱花影视一区二区| 欧美午夜精品一区二区三区 | 国产乱码精品一区二区三区av | 欧美性欧美巨大黑白大战| 中文字幕一区二区三| 91亚洲精华国产精华精华液| 亚洲色图19p| 色婷婷精品久久二区二区蜜臂av| 亚洲丝袜精品丝袜在线| 色94色欧美sute亚洲线路一ni| 亚洲天堂a在线| 欧美日韩在线三级| 日韩av一区二区三区四区| 精品电影一区二区三区| 国产成人免费xxxxxxxx| 伊人一区二区三区| 91精品欧美综合在线观看最新| 美国毛片一区二区| 国产精品无圣光一区二区| 91最新地址在线播放| 婷婷成人综合网| 久久精品在线观看| 91美女在线观看| 欧美a级理论片| 国产精品丝袜黑色高跟| 在线看不卡av| 韩国女主播一区二区三区| 欧美极品xxx| 7777精品伊人久久久大香线蕉的 | 三级亚洲高清视频| 亚洲国产激情av| 777奇米成人网| www.成人在线| 免费看日韩a级影片| 国产精品私人影院| 欧美一区中文字幕| 成人av影视在线观看| 无码av免费一区二区三区试看| 国产亚洲欧美激情| 欧美肥妇bbw| eeuss鲁片一区二区三区在线观看| 亚洲777理论| |精品福利一区二区三区| 欧美成人a在线| 欧美人与性动xxxx| 99久久er热在这里只有精品15 | 国产精品国产三级国产aⅴ无密码| 欧美三级日韩三级| 91在线精品一区二区| 精品一区二区三区在线观看| 一区二区高清在线| 国产三级精品三级在线专区| 日韩一区二区三区在线| 欧美日韩国产一级| 色婷婷狠狠综合| 风流少妇一区二区| 看片的网站亚洲| 亚洲成人精品一区二区| 亚洲激情中文1区| 自拍偷拍欧美精品| 国产精品美女久久久久aⅴ| 久久综合色8888| 欧美v日韩v国产v| 777a∨成人精品桃花网| 在线电影院国产精品| 欧美日韩视频一区二区| 欧美亚洲国产一卡| 色94色欧美sute亚洲线路一久| 不卡影院免费观看| 成人不卡免费av| av网站免费线看精品| 91香蕉视频黄| 色综合天天做天天爱| 色8久久人人97超碰香蕉987| 99re成人精品视频| av男人天堂一区| 在线观看视频一区二区 | 国产成人精品免费| 国产精品69久久久久水密桃| 国产酒店精品激情| 韩国三级在线一区| 成人午夜av电影| 色哟哟亚洲精品| 欧美视频一区二区三区四区| 欧美精品自拍偷拍动漫精品| 91精品婷婷国产综合久久竹菊| 欧美一区二区性放荡片| 日韩欧美精品在线| 久久无码av三级| 国产精品女上位| 亚洲免费视频成人| 日本三级亚洲精品| 国产在线不卡一卡二卡三卡四卡| 国产精品一区免费视频| 不卡的av在线播放| 欧美日韩免费一区二区三区视频| 欧美三区在线观看| 2021中文字幕一区亚洲| 国产精品美女www爽爽爽| 亚洲一区二区黄色| 免费av成人在线| av在线不卡免费看| 欧美精品色综合| 国产精品私人自拍| 丝袜美腿亚洲色图| 国产高清无密码一区二区三区| 9人人澡人人爽人人精品| 精品1区2区3区| 国产农村妇女毛片精品久久麻豆 | 宅男噜噜噜66一区二区66| 久久久午夜精品| 亚洲色图视频网| 免费成人在线影院| 成人av影视在线观看| 在线91免费看| 亚洲日本乱码在线观看| 久久精品国产精品亚洲红杏| 一本久道久久综合中文字幕 | 欧美日韩色综合| 国产精品久久久久影院色老大 | 日韩av网站免费在线| 91网站黄www| 久久精品欧美一区二区三区不卡|