Commit 3de9d583 authored by Mark Nauwelaerts's avatar Mark Nauwelaerts Committed by Tim-Philipp Müller
Browse files

gst/avi/gstavimux.*: - add odml (large file) index support

Original commit message from CVS:
Patch by: Mark Nauwelaerts  <manauw at skynet be>
* gst/avi/gstavimux.c: (gst_avi_mux_finalize), (gst_avi_mux_init),
(gst_avi_mux_vidsink_set_caps), (gst_avi_mux_audsink_set_caps),
(gst_avi_mux_write_tag), (gst_avi_mux_riff_get_avi_header),
(gst_avi_mux_riff_get_avix_header), (gst_avi_mux_write_avix_index),
(gst_avi_mux_add_index), (gst_avi_mux_bigfile),
(gst_avi_mux_start_file), (gst_avi_mux_stop_file),
(gst_avi_mux_handle_event), (gst_avi_mux_do_audio_buffer),
(gst_avi_mux_do_video_buffer), (gst_avi_mux_do_one_buffer),
(gst_avi_mux_change_state):
* gst/avi/gstavimux.h:
Some enhancements for avimux (#342526):
- add odml (large file) index support
- store codec init data (e.g. huffyuv)
- miscellaneous other fixes/cleanups
parent c3fac626
2006-05-22 Tim-Philipp Müller <tim at centricular dot net>
Patch by: Mark Nauwelaerts <manauw at skynet be>
* gst/avi/gstavimux.c: (gst_avi_mux_finalize), (gst_avi_mux_init),
(gst_avi_mux_vidsink_set_caps), (gst_avi_mux_audsink_set_caps),
(gst_avi_mux_write_tag), (gst_avi_mux_riff_get_avi_header),
(gst_avi_mux_riff_get_avix_header), (gst_avi_mux_write_avix_index),
(gst_avi_mux_add_index), (gst_avi_mux_bigfile),
(gst_avi_mux_start_file), (gst_avi_mux_stop_file),
(gst_avi_mux_handle_event), (gst_avi_mux_do_audio_buffer),
(gst_avi_mux_do_video_buffer), (gst_avi_mux_do_one_buffer),
(gst_avi_mux_change_state):
* gst/avi/gstavimux.h:
Some enhancements for avimux (#342526):
- add odml (large file) index support
- store codec init data (e.g. huffyuv)
- miscellaneous other fixes/cleanups
2006-05-19 Jan Schmidt <thaytan@mad.scientist.com>
* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
......
This diff is collapsed.
......@@ -40,6 +40,18 @@ G_BEGIN_DECLS
#define GST_IS_AVI_MUX_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AVI_MUX))
#define GST_AVI_INDEX_OF_INDEXES 0
#define GST_AVI_INDEX_OF_CHUNKS 1
/* this allows indexing up to 64GB avi file */
#define GST_AVI_SUPERINDEX_COUNT 32
typedef struct _gst_avi_superindex_entry {
guint64 offset;
guint32 size;
guint32 duration;
} gst_avi_superindex_entry;
typedef struct _GstAviMux GstAviMux;
typedef struct _GstAviMuxClass GstAviMuxClass;
......@@ -58,10 +70,16 @@ struct _GstAviMux {
/* the AVI header */
gst_riff_avih avi_hdr;
guint32 total_frames; /* total number of frames */
guint64 total_data; /* amount of total data */
guint32 data_size, datax_size; /* amount of data (bytes) in the AVI/AVIX block */
guint32 num_frames, numx_frames; /* num frames in the AVI/AVIX block */
/* total number of (video) frames */
guint32 total_frames;
/* amount of total data (bytes) */
guint64 total_data;
/* amount of data (bytes) in the AVI/AVIX block;
* actually the movi list, so counted from and including the movi tag */
guint32 data_size, datax_size;
/* num (video) frames in the AVI/AVIX block */
guint32 num_frames, numx_frames;
/* size of hdrl list, including tag as usual */
guint32 header_size;
gboolean write_header;
gboolean restart;
......@@ -71,6 +89,7 @@ struct _GstAviMux {
/* video header */
gst_riff_strh vids_hdr;
gst_riff_strf_vids vids;
GstBuffer *vids_codec_data;
/* audio header */
gst_riff_strh auds_hdr;
......@@ -84,7 +103,15 @@ struct _GstAviMux {
/* information about the AVI index ('idx') */
gst_riff_index_entry *idx;
gint idx_index, idx_count;
guint32 idx_offset, idx_size;
/* offset of *chunk* (relative to a base offset); entered in the index */
guint32 idx_offset;
/* size of idx1 chunk (including! chunk header and size bytes) */
guint32 idx_size;
/* odml super indexes */
gst_avi_superindex_entry *vids_idx;
gst_avi_superindex_entry *auds_idx;
gint vids_idx_index, auds_idx_index;
/* are we a big file already? */
gboolean is_bigfile;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment