rlib.c

来自「H.263编解码原程序及测试程序源码(含测试序列)」· C语言 代码 · 共 115 行

C
115
字号
#include "rlib.h"#include "owntypes.h"int ReadQCIF(FILE *f, struct qcif *qc){  struct qcif8bit source;  int i;  int file_err;  unsigned int *ud;  unsigned char *us;  file_err = fread(&source, sizeof(source), 1, f);  if(file_err != 1)    return FALSE;  us = &source.Y[0][0];  ud = &qc->Y[0][0];    for(i = 0; i < QCIF_YWIDTH*QCIF_YHEIGHT; i++)    *ud++ = (unsigned int) *us++;    us = &source.U[0][0];  ud = &qc->U[0][0];    for(; i < QCIF_YWIDTH*QCIF_YHEIGHT + QCIF_UWIDTH*QCIF_UHEIGHT + 	QCIF_VWIDTH*QCIF_VHEIGHT; i++)    *ud++ = (signed int) *us++;  return TRUE;}int ReadCIF(FILE *f, struct cif *qc){  struct cif8bit source;  int i;  int file_err;  unsigned int *ud;  unsigned char *us;  file_err = fread(&source, sizeof(source), 1, f);  if(file_err != 1)    return FALSE;  us = &source.Y[0][0];  ud = &qc->Y[0][0];    for(i = 0; i < CIF_YWIDTH*CIF_YHEIGHT; i++)    *ud++ = (unsigned int) *us++;    us = &source.U[0][0];  ud = &qc->U[0][0];    for(; i < CIF_YWIDTH*CIF_YHEIGHT + CIF_UWIDTH*CIF_UHEIGHT + 	CIF_VWIDTH*CIF_VHEIGHT; i++)    *ud++ = (signed int) *us++;  return TRUE;}int WriteQCIF(FILE *f, struct qcif *qc){  struct qcif8bit dest;  int i;  int file_err;  unsigned char *ud;  unsigned int *us;  us = &qc->Y[0][0];  ud = &dest.Y[0][0];    for(i = 0; i < QCIF_YWIDTH*QCIF_YHEIGHT; i++)    *ud++ = (unsigned char) *us++;    us = &qc->U[0][0];  ud = &dest.U[0][0];  for(; i < QCIF_YWIDTH*QCIF_YHEIGHT + QCIF_UWIDTH*QCIF_UHEIGHT + 	QCIF_VWIDTH*QCIF_VHEIGHT; i++)    *ud++ = (unsigned char) *us++; file_err = fwrite(&dest, sizeof(dest), 1, f); return (file_err == 1);}int WriteCIF(FILE *f, struct cif *qc){  struct cif8bit dest;  int i;  int file_err;  unsigned char *ud;  unsigned int *us;  us = &qc->Y[0][0];  ud = &dest.Y[0][0];    for(i = 0; i < CIF_YWIDTH*CIF_YHEIGHT; i++)    *ud++ = (unsigned char) *us++;    us = &qc->U[0][0];  ud = &dest.U[0][0];  for(; i < CIF_YWIDTH*CIF_YHEIGHT + CIF_UWIDTH*CIF_UHEIGHT + 	CIF_VWIDTH*CIF_VHEIGHT; i++)    *ud++ = (unsigned char) *us++; file_err = fwrite(&dest, sizeof(dest), 1, f); return (file_err == 1);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?