Blender V4.5
MOV_read.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10
11#pragma once
12
13#include "IMB_imbuf_enums.h"
14
15#include "MOV_enums.hh"
16
17#include "BLI_set.hh"
18
19#include <string>
20
21struct IDProperty;
22struct ImBuf;
23struct MovieReader;
24struct MovieProxyBuilder;
25
38MovieReader *MOV_open_file(const char *filepath,
39 int ib_flags,
40 int streamindex,
41 char colorspace[IM_MAX_SPACE]);
42
46void MOV_close(MovieReader *anim);
47
68 int position,
69 IMB_Timecode_Type tc /* = 1 = IMB_TC_RECORD_RUN */,
70 IMB_Proxy_Size preview_size /* = 0 = IMB_PROXY_NONE */);
71
79
84
89
95float MOV_get_fps(const MovieReader *anim);
96
102bool MOV_get_fps_num_denom(const MovieReader *anim, short &r_fps_num, float &r_fps_denom);
103
107int MOV_get_image_width(const MovieReader *anim);
108
112int MOV_get_image_height(const MovieReader *anim);
113
120
124void MOV_get_filename(const MovieReader *anim, char *filename, int filename_maxncpy);
125
131
132/*-------------------------------------------------------------------- */
133/*
134 * Movie proxy / timecode index related functionality.
135 */
136
140void MOV_set_multiview_suffix(MovieReader *anim, const char *suffix);
141
146
151void MOV_set_custom_proxy_dir(MovieReader *anim, const char *dir);
152
164
174
178MovieProxyBuilder *MOV_proxy_builder_start(MovieReader *anim,
179 IMB_Timecode_Type tcs_in_use,
180 int proxy_sizes_in_use,
181 int quality,
182 const bool overwrite,
183 blender::Set<std::string> *processed_paths,
184 bool build_only_on_bad_performance);
185
189void MOV_proxy_builder_process(MovieProxyBuilder *context,
190 bool *stop,
191 bool *do_update,
192 float *progress);
193
197void MOV_proxy_builder_finish(MovieProxyBuilder *context, bool stop);
IMB_Proxy_Size
#define IM_MAX_SPACE
IMB_Timecode_Type
Definition MOV_enums.hh:44
void MOV_proxy_builder_finish(MovieProxyBuilder *context, bool stop)
void MOV_set_custom_proxy_dir(MovieReader *anim, const char *dir)
ImBuf * MOV_decode_preview_frame(MovieReader *anim)
MovieProxyBuilder * MOV_proxy_builder_start(MovieReader *anim, IMB_Timecode_Type tcs_in_use, int proxy_sizes_in_use, int quality, const bool overwrite, blender::Set< std::string > *processed_paths, bool build_only_on_bad_performance)
void MOV_proxy_builder_process(MovieProxyBuilder *context, bool *stop, bool *do_update, float *progress)
void MOV_close(MovieReader *anim)
Definition movie_read.cc:58
MovieReader * MOV_open_file(const char *filepath, int ib_flags, int streamindex, char colorspace[IM_MAX_SPACE])
double MOV_get_start_offset_seconds(const MovieReader *anim)
int MOV_get_duration_frames(MovieReader *anim, IMB_Timecode_Type tc)
void MOV_close_proxies(MovieReader *anim)
bool MOV_is_initialized_and_valid(const MovieReader *anim)
void MOV_get_filename(const MovieReader *anim, char *filename, int filename_maxncpy)
Definition movie_read.cc:73
int MOV_get_existing_proxies(const MovieReader *anim)
int MOV_calc_frame_index_with_timecode(MovieReader *anim, IMB_Timecode_Type tc, int position)
void MOV_set_multiview_suffix(MovieReader *anim, const char *suffix)
int MOV_get_image_width(const MovieReader *anim)
float MOV_get_fps(const MovieReader *anim)
IDProperty * MOV_load_metadata(MovieReader *anim)
Definition movie_read.cc:78
ImBuf * MOV_decode_frame(MovieReader *anim, int position, IMB_Timecode_Type tc, IMB_Proxy_Size preview_size)
bool MOV_get_fps_num_denom(const MovieReader *anim, short &r_fps_num, float &r_fps_denom)
int MOV_get_image_height(const MovieReader *anim)
bool stop
Definition WM_types.hh:1016
bool do_update
Definition WM_types.hh:1008
float progress
Definition WM_types.hh:1019