Blender V2.61 - r43446
Defines | Functions | Variables

indexer.c File Reference

#include "IMB_indexer.h"
#include "IMB_anim.h"
#include "AVI_avi.h"
#include "imbuf.h"
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
#include "BLI_blenlib.h"
#include "BLI_math_base.h"
#include "DNA_userdef_types.h"
#include "BKE_global.h"
#include <stdlib.h>

Go to the source code of this file.

Defines

#define INDEX_FILE_VERSION   1

Functions

void IMB_indexer_dv_new (anim_index_builder *idx)
anim_index_builderIMB_index_builder_create (const char *name)
void IMB_index_builder_add_entry (anim_index_builder *fp, int frameno, unsigned long long seek_pos, unsigned long long seek_pos_dts, unsigned long long pts)
void IMB_index_builder_proc_frame (anim_index_builder *fp, unsigned char *buffer, int data_size, int frameno, unsigned long long seek_pos, unsigned long long seek_pos_dts, unsigned long long pts)
void IMB_index_builder_finish (anim_index_builder *fp, int rollback)
struct anim_indexIMB_indexer_open (const char *name)
unsigned long long IMB_indexer_get_seek_pos (struct anim_index *idx, int frame_index)
unsigned long long IMB_indexer_get_seek_pos_dts (struct anim_index *idx, int frame_index)
int IMB_indexer_get_frame_index (struct anim_index *idx, int frameno)
unsigned long long IMB_indexer_get_pts (struct anim_index *idx, int frame_index)
int IMB_indexer_get_duration (struct anim_index *idx)
int IMB_indexer_can_scan (struct anim_index *idx, int old_frame_index, int new_frame_index)
void IMB_indexer_close (struct anim_index *idx)
int IMB_proxy_size_to_array_index (IMB_Proxy_Size pr_size)
int IMB_timecode_to_array_index (IMB_Timecode_Type tc)
static void get_index_dir (struct anim *anim, char *index_dir)
static void get_proxy_filename (struct anim *anim, IMB_Proxy_Size preview_size, char *fname, int temp)
static void get_tc_filename (struct anim *anim, IMB_Timecode_Type tc, char *fname)
static AviMoviealloc_proxy_output_avi (struct anim *anim, char *filename, int width, int height, int quality)
static void index_rebuild_fallback (struct anim *anim, IMB_Timecode_Type UNUSED(tcs_in_use), IMB_Proxy_Size proxy_sizes_in_use, int quality, short *stop, short *do_update, float *progress)
void IMB_anim_index_rebuild (struct anim *anim, IMB_Timecode_Type tcs_in_use, IMB_Proxy_Size proxy_sizes_in_use, int quality, short *stop, short *do_update, float *progress)
void IMB_free_indices (struct anim *anim)
void IMB_anim_set_index_dir (struct anim *anim, const char *dir)
struct animIMB_anim_open_proxy (struct anim *anim, IMB_Proxy_Size preview_size)
struct anim_indexIMB_anim_open_index (struct anim *anim, IMB_Timecode_Type tc)
int IMB_anim_index_get_frame_index (struct anim *anim, IMB_Timecode_Type tc, int position)

Variables

static char magic [] = "BlenMIdx"
static char temp_ext [] = "_part"
static int proxy_sizes []
static float proxy_fac [] = { 0.25, 0.50, 0.75, 1.00 }

Define Documentation

#define INDEX_FILE_VERSION   1

Definition at line 62 of file indexer.c.

Referenced by IMB_index_builder_create(), and IMB_indexer_open().


Function Documentation

static AviMovie* alloc_proxy_output_avi ( struct anim anim,
char *  filename,
int  width,
int  height,
int  quality 
) [static]
static void get_index_dir ( struct anim anim,
char *  index_dir 
) [static]
static void get_proxy_filename ( struct anim anim,
IMB_Proxy_Size  preview_size,
char *  fname,
int  temp 
) [static]
static void get_tc_filename ( struct anim anim,
IMB_Timecode_Type  tc,
char *  fname 
) [static]
int IMB_anim_index_get_frame_index ( struct anim anim,
IMB_Timecode_Type  tc,
int  position 
)

Definition at line 1147 of file indexer.c.

References IMB_anim_open_index(), and IMB_indexer_get_frame_index().

Referenced by IMB_anim_absolute(), and seq_proxy_fetch().

void IMB_anim_index_rebuild ( struct anim anim,
IMB_Timecode_Type  tcs_in_use,
IMB_Proxy_Size  proxy_sizes_in_use,
int  quality,
short *  stop,
short *  do_update,
float *  progress 
)

Definition at line 1049 of file indexer.c.

References ANIM_FFMPEG, anim::curtype, and index_rebuild_fallback().

Referenced by proxy_startjob(), and seq_proxy_rebuild().

struct anim_index* IMB_anim_open_index ( struct anim anim,
IMB_Timecode_Type  tc 
) [read]
struct anim* IMB_anim_open_proxy ( struct anim anim,
IMB_Proxy_Size  preview_size 
) [read]
void IMB_anim_set_index_dir ( struct anim anim,
const char *  dir 
)

Definition at line 1091 of file indexer.c.

References BLI_strncpy(), IMB_free_indices(), and anim::index_dir.

Referenced by movieclip_load_movie_file(), and seq_open_anim_file().

void IMB_free_indices ( struct anim anim)
void IMB_index_builder_add_entry ( anim_index_builder fp,
int  frameno,
unsigned long long  seek_pos,
unsigned long long  seek_pos_dts,
unsigned long long  pts 
)

Definition at line 107 of file indexer.c.

References anim_index_builder::fp.

Referenced by IMB_index_builder_proc_frame(), and write_index().

anim_index_builder* IMB_index_builder_create ( const char *  name)
void IMB_index_builder_finish ( anim_index_builder fp,
int  rollback 
)
void IMB_index_builder_proc_frame ( anim_index_builder fp,
unsigned char *  buffer,
int  data_size,
int  frameno,
unsigned long long  seek_pos,
unsigned long long  seek_pos_dts,
unsigned long long  pts 
)
int IMB_indexer_can_scan ( struct anim_index idx,
int  old_frame_index,
int  new_frame_index 
)

Definition at line 302 of file indexer.c.

References IMB_indexer_get_seek_pos().

Referenced by avi_fetchibuf().

void IMB_indexer_close ( struct anim_index idx)

Definition at line 312 of file indexer.c.

References anim_index::entries, and MEM_freeN().

Referenced by IMB_free_indices().

void IMB_indexer_dv_new ( anim_index_builder idx)
int IMB_indexer_get_duration ( struct anim_index idx)

Definition at line 294 of file indexer.c.

References anim_index::entries, anim_index_entry::frameno, and anim_index::num_entries.

Referenced by IMB_anim_get_duration().

int IMB_indexer_get_frame_index ( struct anim_index idx,
int  frameno 
)
unsigned long long IMB_indexer_get_pts ( struct anim_index idx,
int  frame_index 
)

Definition at line 282 of file indexer.c.

References anim_index::entries, anim_index::num_entries, and anim_index_entry::pts.

Referenced by avi_fetchibuf().

unsigned long long IMB_indexer_get_seek_pos ( struct anim_index idx,
int  frame_index 
)
unsigned long long IMB_indexer_get_seek_pos_dts ( struct anim_index idx,
int  frame_index 
)

Definition at line 239 of file indexer.c.

References anim_index::entries, anim_index::num_entries, and anim_index_entry::seek_pos_dts.

Referenced by avi_fetchibuf().

struct anim_index* IMB_indexer_open ( const char *  name) [read]
int IMB_proxy_size_to_array_index ( IMB_Proxy_Size  pr_size)

Definition at line 318 of file indexer.c.

References IMB_PROXY_100, IMB_PROXY_25, IMB_PROXY_50, IMB_PROXY_75, and IMB_PROXY_NONE.

Referenced by get_proxy_filename(), and IMB_anim_open_proxy().

int IMB_timecode_to_array_index ( IMB_Timecode_Type  tc)
static void index_rebuild_fallback ( struct anim anim,
IMB_Timecode_Type   UNUSEDtcs_in_use,
IMB_Proxy_Size  proxy_sizes_in_use,
int  quality,
short *  stop,
short *  do_update,
float *  progress 
) [static]

Variable Documentation

char magic[] = "BlenMIdx" [static]
float proxy_fac[] = { 0.25, 0.50, 0.75, 1.00 } [static]

Definition at line 52 of file indexer.c.

Referenced by get_proxy_filename(), and index_rebuild_fallback().

int proxy_sizes[] [static]
Initial value:

Definition at line 50 of file indexer.c.

Referenced by index_rebuild_fallback().

char temp_ext[] = "_part" [static]

Definition at line 48 of file indexer.c.

Referenced by IMB_index_builder_create().