#include "vid_sim.h"
#include "video_codec.h"
Go to the source code of this file.
Functions | |
unsigned char * | ReadImage (char *filename, int frame_no, int headerlength) |
PictImage * | FillImage (unsigned char *in) |
void | WriteImage (PictImage *image, char *filename) |
PictImage * | InitImage (int size) |
void | FreeImage (PictImage *image) |
Variables | |
video_codec * | VidSt |
|
Definition at line 114 of file vid_io.c. References InitImage(), video_codec::lines, video_codec::pels, Pict, PictImage, and VidSt. Referenced by code_video(). 00115 { 00116 PictImage *Pict; 00117 00118 Pict = InitImage((VidSt->pels)*(VidSt->lines)); 00119 00120 memcpy(Pict->lum, in, (VidSt->pels)*(VidSt->lines)); 00121 memcpy(Pict->Cb, in + (VidSt->pels)*(VidSt->lines), (VidSt->pels)*(VidSt->lines)/4); 00122 memcpy(Pict->Cr, in + (VidSt->pels)*(VidSt->lines) + (VidSt->pels)*(VidSt->lines)/4, (VidSt->pels)*(VidSt->lines)/4); 00123 00124 free(in); 00125 return(Pict); 00126 }
|
|
Definition at line 232 of file vid_io.c. References pict_image::Cb, pict_image::Cr, pict_image::lum, and PictImage. Referenced by close_video_codec(), code_video(), and CodeOneOrTwo(). 00234 { 00235 free(image->lum); 00236 free(image->Cr); 00237 free(image->Cb); 00238 free(image); 00239 }
|
|
Definition at line 191 of file vid_io.c. References PictImage. Referenced by code_video(), CodeOneIntra(), CodeOneOrTwo(), and FillImage(). 00192 { 00193 PictImage *new; 00194 00195 if ((new = (PictImage *)malloc(sizeof(PictImage))) == NULL) { 00196 fprintf(stderr,"Couldn't allocate (PictImage *)\n"); 00197 exit(-1); 00198 } 00199 if ((new->lum = (unsigned char *)malloc(sizeof(char)*size)) 00200 == NULL) { 00201 fprintf(stderr,"Couldn't allocate memory for luminance\n"); 00202 exit(-1); 00203 } 00204 if ((new->Cr = (unsigned char *)malloc(sizeof(char)*size/4)) 00205 == NULL) { 00206 fprintf(stderr,"Couldn't allocate memory for Cr\n"); 00207 exit(-1); 00208 } 00209 if ((new->Cb = (unsigned char *)malloc(sizeof(char)*size/4)) 00210 == NULL) { 00211 fprintf(stderr,"Couldn't allocate memory for Cb\n"); 00212 exit(-1); 00213 } 00214 00215 return new; 00216 }
|
|
Definition at line 62 of file vid_io.c. References video_codec::lines, video_codec::pels, and VidSt. Referenced by code_video(). 00064 { 00065 FILE *im_file = NULL; 00066 int im_size = (VidSt->pels)*(VidSt->lines)*3/2; 00067 unsigned char *raw; 00068 int status; 00069 00070 if ((raw = (unsigned char *)malloc(sizeof(char)*im_size)) == NULL) { 00071 fprintf(stderr,"Couldn't allocate memory to image\n"); 00072 exit(-1); 00073 } 00074 if ((im_file = fopen(filename,"rb")) == NULL) { 00075 fprintf(stderr,"Unable to open image_file: %s\n",filename); 00076 exit(-1); 00077 } 00078 rewind(im_file); 00079 /* Find the correct image */ 00080 status = fseek(im_file,headerlength + (frame_no) * im_size,0); 00081 if (status != 0) { 00082 fprintf(stderr,"Error in seeking image no: %d\n",frame_no); 00083 fprintf(stderr,"From file: %s\n",filename); 00084 exit(-1); 00085 } 00086 /* Read image */ 00087 fprintf(stdout,"Reading image no: %d\n",frame_no); 00088 if ((status = fread(raw, sizeof(char), 00089 im_size, im_file)) != im_size) { 00090 fprintf(stderr,"Error in reading image no: %d\n",frame_no); 00091 fprintf(stderr,"From file: %s\n",filename); 00092 exit(-1); 00093 } 00094 00095 fclose(im_file); 00096 return raw; 00097 }
|
|
Definition at line 142 of file vid_io.c. References pict_image::Cb, pict_image::Cr, video_codec::lines, pict_image::lum, video_codec::pels, PictImage, and VidSt. Referenced by code_video(). 00144 { 00145 int status; 00146 FILE *f_out; 00147 00148 /* Opening file */ 00149 if ((f_out = fopen(filename,"ab")) == NULL) { 00150 fprintf(stderr,"%s%s\n","Error in opening file: ",filename); 00151 exit(-1); 00152 } 00153 00154 /* Writing lum to file */ 00155 if ((status = fwrite(image->lum,sizeof(char),(VidSt->pels)*(VidSt->lines),f_out)) 00156 != (VidSt->pels)*(VidSt->lines)) { 00157 fprintf(stderr,"%s%s\n","Error in writing to file: ",filename); 00158 exit(-1); 00159 } 00160 /* Writing Cb to file */ 00161 if ((status = fwrite(image->Cb,sizeof(char),(VidSt->pels)*(VidSt->lines)/4,f_out)) 00162 != (VidSt->pels)*(VidSt->lines)/4) { 00163 fprintf(stderr,"%s%s\n","Error in writing to file: ",filename); 00164 exit(-1); 00165 } 00166 /* Writing Cr to file */ 00167 if ((status = fwrite(image->Cr,sizeof(char),(VidSt->pels)*(VidSt->lines)/4,f_out)) 00168 != (VidSt->pels)*(VidSt->lines)/4) { 00169 fprintf(stderr,"%s%s\n","Error in writing to file: ",filename); 00170 exit(-1); 00171 } 00172 00173 fclose(f_out); 00174 return; 00175 }
|
|
Definition at line 16 of file vid_wrapper.c. |