/* GStreamer * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __GST_AVI_H__ #define __GST_AVI_H__ #include <gst/gst.h> typedef struct _gst_riff_avih { guint32 us_frame; /* microsec per frame */ guint32 max_bps; /* byte/s overall */ guint32 pad_gran; /* pad_granularity */ guint32 flags; /* flags values */ #define GST_RIFF_AVIH_HASINDEX 0x00000010 /* has idx1 chunk */ #define GST_RIFF_AVIH_MUSTUSEINDEX 0x00000020 /* must use idx1 chunk to determine order */ #define GST_RIFF_AVIH_ISINTERLEAVED 0x00000100 /* AVI file is interleaved */ #define GST_RIFF_AVIH_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ #define GST_RIFF_AVIH_WASCAPTUREFILE 0x00010000 /* specially allocated used for capturing real time video */ #define GST_RIFF_AVIH_COPYRIGHTED 0x00020000 /* contains copyrighted data */ guint32 tot_frames; /* # of frames (all) */ guint32 init_frames; /* initial frames (???) */ guint32 streams; guint32 bufsize; /* suggested buffer size */ guint32 width; guint32 height; guint32 scale; guint32 rate; guint32 start; guint32 length; } gst_riff_avih; /* vprp (video properties) ODML header */ /* see ODML spec for some/more explanation */ #define GST_RIFF_TAG_vprp GST_MAKE_FOURCC ('v','p','r','p') #define GST_RIFF_VPRP_VIDEO_FIELDS (2) typedef struct _gst_riff_vprp_video_field_desc { guint32 compressed_bm_height; guint32 compressed_bm_width; guint32 valid_bm_height; guint32 valid_bm_width; guint32 valid_bm_x_offset; guint32 valid_bm_y_offset; guint32 video_x_t_offset; guint32 video_y_start; } gst_riff_vprp_video_field_desc; typedef struct _gst_riff_vprp { guint32 format_token; /* whether fields defined by standard */ guint32 standard; /* video display standard, UNKNOWN, PAL, etc */ guint32 vert_rate; /* vertical refresh rate */ guint32 hor_t_total; /* width */ guint32 vert_lines; /* height */ guint32 aspect; /* aspect ratio high word:low word */ guint32 width; /* active width */ guint32 height; /* active height */ guint32 fields; /* field count */ gst_riff_vprp_video_field_desc field_info[GST_RIFF_VPRP_VIDEO_FIELDS]; } gst_riff_vprp; #endif /* __GST_AVI_H__ */