00001 /* 00002 * yuv4mpeg.h: reading to and writing from YUV4MPEG streams 00003 * possibly part of lavtools in near future ;-) 00004 * 00005 * Copyright (C) 2001 pHilipp Zabel <pzabel@gmx.de> 00006 * 00007 * based on code from mpeg2enc and lav2yuv 00008 * 00009 * This program is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU General Public License 00011 * as published by the Free Software Foundation; either version 2 00012 * of the License, or (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00022 */ 00023 #ifndef __YUV4MPEG_H__ 00024 #define __YUV4MPEG_H__ 00025 00026 #ifdef __cplusplus 00027 extern "C" { 00028 #endif 00029 00030 size_t piperead(int fd, char *buf, size_t len); 00031 size_t pipewrite(int fd, char *buf, size_t len); 00032 00033 int yuv_read_header (int fd_in, int *horizontal_size, int *vertical_size, int *frame_rate_code); 00034 int yuv_read_frame(int fd_in, unsigned char *yuv[3], int width, int height); 00035 00036 void yuv_write_header (int fd, int width, int height, int frame_rate_code); 00037 void yuv_write_frame (int fd, unsigned char *yuv[3], int width, int height); 00038 00039 int yuv_fps2mpegcode (double fps); 00040 double yuv_mpegcode2fps (unsigned int code); 00041 00042 #ifdef __cplusplus 00043 } 00044 #endif 00045 00046 #endif 00047