gst_plugins_good/gst/avi/avi-ids.h
author hgs
Fri, 09 Jul 2010 16:26:45 -0500
changeset 24 bc39b352897e
parent 16 8e837d1bf446
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
hgs
parents:
diff changeset
     1
/* GStreamer
hgs
parents:
diff changeset
     2
 * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
hgs
parents:
diff changeset
     3
 *
hgs
parents:
diff changeset
     4
 * This library is free software; you can redistribute it and/or
hgs
parents:
diff changeset
     5
 * modify it under the terms of the GNU Library General Public
hgs
parents:
diff changeset
     6
 * License as published by the Free Software Foundation; either
hgs
parents:
diff changeset
     7
 * version 2 of the License, or (at your option) any later version.
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * This library is distributed in the hope that it will be useful,
hgs
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
hgs
parents:
diff changeset
    12
 * Library General Public License for more details.
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * You should have received a copy of the GNU Library General Public
hgs
parents:
diff changeset
    15
 * License along with this library; if not, write to the
hgs
parents:
diff changeset
    16
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
hgs
parents:
diff changeset
    17
 * Boston, MA 02111-1307, USA.
hgs
parents:
diff changeset
    18
 */
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef __GST_AVI_H__
hgs
parents:
diff changeset
    21
#define __GST_AVI_H__
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include <gst/gst.h>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
typedef struct _gst_riff_avih {
hgs
parents:
diff changeset
    26
  guint32 us_frame;          /* microsec per frame */
hgs
parents:
diff changeset
    27
  guint32 max_bps;           /* byte/s overall */
hgs
parents:
diff changeset
    28
  guint32 pad_gran;          /* pad_granularity */
hgs
parents:
diff changeset
    29
  guint32 flags;
hgs
parents:
diff changeset
    30
/* flags values */
hgs
parents:
diff changeset
    31
#define GST_RIFF_AVIH_HASINDEX       0x00000010 /* has idx1 chunk */
hgs
parents:
diff changeset
    32
#define GST_RIFF_AVIH_MUSTUSEINDEX   0x00000020 /* must use idx1 chunk to determine order */
hgs
parents:
diff changeset
    33
#define GST_RIFF_AVIH_ISINTERLEAVED  0x00000100 /* AVI file is interleaved */
hgs
parents:
diff changeset
    34
#define GST_RIFF_AVIH_WASCAPTUREFILE 0x00010000 /* specially allocated used for capturing real time video */
hgs
parents:
diff changeset
    35
#define GST_RIFF_AVIH_COPYRIGHTED    0x00020000 /* contains copyrighted data */
hgs
parents:
diff changeset
    36
  guint32 tot_frames;        /* # of frames (all) */
hgs
parents:
diff changeset
    37
  guint32 init_frames;       /* initial frames (???) */
hgs
parents:
diff changeset
    38
  guint32 streams;
hgs
parents:
diff changeset
    39
  guint32 bufsize;           /* suggested buffer size */
hgs
parents:
diff changeset
    40
  guint32 width;
hgs
parents:
diff changeset
    41
  guint32 height;
hgs
parents:
diff changeset
    42
  guint32 scale;
hgs
parents:
diff changeset
    43
  guint32 rate;
hgs
parents:
diff changeset
    44
  guint32 start;
hgs
parents:
diff changeset
    45
  guint32 length;
hgs
parents:
diff changeset
    46
} gst_riff_avih;
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
/* vprp (video properties) ODML header */
hgs
parents:
diff changeset
    49
/* see ODML spec for some/more explanation */
hgs
parents:
diff changeset
    50
#define GST_RIFF_TAG_vprp GST_MAKE_FOURCC ('v','p','r','p')
hgs
parents:
diff changeset
    51
#define GST_RIFF_VPRP_VIDEO_FIELDS        (2)
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
typedef struct _gst_riff_vprp_video_field_desc {
hgs
parents:
diff changeset
    54
  guint32 compressed_bm_height;
hgs
parents:
diff changeset
    55
  guint32 compressed_bm_width;
hgs
parents:
diff changeset
    56
  guint32 valid_bm_height;
hgs
parents:
diff changeset
    57
  guint32 valid_bm_width;
hgs
parents:
diff changeset
    58
  guint32 valid_bm_x_offset;
hgs
parents:
diff changeset
    59
  guint32 valid_bm_y_offset;
hgs
parents:
diff changeset
    60
  guint32 video_x_t_offset;
hgs
parents:
diff changeset
    61
  guint32 video_y_start;
hgs
parents:
diff changeset
    62
} gst_riff_vprp_video_field_desc;
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
typedef struct _gst_riff_vprp {
hgs
parents:
diff changeset
    65
  guint32 format_token;      /* whether fields defined by standard */
hgs
parents:
diff changeset
    66
  guint32 standard;          /* video display standard, UNKNOWN, PAL, etc */
hgs
parents:
diff changeset
    67
  guint32 vert_rate;         /* vertical refresh rate */
hgs
parents:
diff changeset
    68
  guint32 hor_t_total;       /* width */
hgs
parents:
diff changeset
    69
  guint32 vert_lines;        /* height */
hgs
parents:
diff changeset
    70
  guint32 aspect;            /* aspect ratio high word:low word */
hgs
parents:
diff changeset
    71
  guint32 width;             /* active width */
hgs
parents:
diff changeset
    72
  guint32 height;            /* active height */
hgs
parents:
diff changeset
    73
  guint32 fields;            /* field count */
hgs
parents:
diff changeset
    74
  gst_riff_vprp_video_field_desc field_info[GST_RIFF_VPRP_VIDEO_FIELDS];
hgs
parents:
diff changeset
    75
} gst_riff_vprp;
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
#endif /* __GST_AVI_H__ */