Пример #1
0
static void avi_writer_write_header_list(AviWriter *self) {
    avi_writer_push_list(self, "hdrl");

    avi_writer_write_main_header(self);

    avi_writer_push_list(self, "strl");
    avi_writer_write_stream_header(self);
    avi_writer_write_stream_format(self);
    avi_writer_pop_chunk(self);

    avi_writer_pop_chunk(self);
}
Пример #2
0
AviWriter*  avi_writer_new(FILE       *file,
			   guint       width,
			   guint       height,
			   float       frame_rate) {
    AviWriter *self = AVI_WRITER(g_object_new(avi_writer_get_type(), NULL));

    self->file = file;
    self->width = width;
    self->height = height;
    self->frame_rate = frame_rate;

    /* Write out everything we need to before the movie data can start... */
    avi_writer_push_header(self, "AVI ");
    avi_writer_write_header_list(self);
    avi_writer_push_list(self, "movi");

    /* Right here, at the beginning of the 'movi' list, is where index
     * offsets are measured from.
     */
    self->index_queue = g_queue_new();
    self->index_origin_offset = ftell(self->file);

    return self;
}