Blender V5.0
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 bool keep_original_colorspace,
42 char colorspace[IM_MAX_SPACE]);
43
47void MOV_close(MovieReader *anim);
48
69 int position,
70 IMB_Timecode_Type tc /* = 1 = IMB_TC_RECORD_RUN */,
71 IMB_Proxy_Size preview_size /* = 0 = IMB_PROXY_NONE */);
72
80
85
90
96float MOV_get_fps(const MovieReader *anim);
97
103bool MOV_get_fps_num_denom(const MovieReader *anim, short &r_fps_num, float &r_fps_denom);
104
108int MOV_get_image_width(const MovieReader *anim);
109
113int MOV_get_image_height(const MovieReader *anim);
114
121
125void MOV_get_filename(const MovieReader *anim, char *filename, int filename_maxncpy);
126
132
133/*-------------------------------------------------------------------- */
134/*
135 * Movie proxy / timecode index related functionality.
136 */
137
141void MOV_set_multiview_suffix(MovieReader *anim, const char *suffix);
142
147
152void MOV_set_custom_proxy_dir(MovieReader *anim, const char *dir);
153
165
175
179MovieProxyBuilder *MOV_proxy_builder_start(MovieReader *anim,
180 IMB_Timecode_Type tcs_in_use,
181 int proxy_sizes_in_use,
182 int quality,
183 const bool overwrite,
184 blender::Set<std::string> *processed_paths,
185 bool build_only_on_bad_performance);
186
190void MOV_proxy_builder_process(MovieProxyBuilder *context,
191 bool *stop,
192 bool *do_update,
193 float *progress);
194
198void 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:66
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:81
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:86
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)
MovieReader * MOV_open_file(const char *filepath, int ib_flags, int streamindex, bool keep_original_colorspace, char colorspace[IM_MAX_SPACE])