Skip to content
modkitv0.2

video.h

#include <modkit/video.h>24 functions · 6 structs · 8 enums · 13 typedefs · 6 macros

Optional asynchronous video playback.

Video is enabled with MODKIT_ENABLE_VIDEO. Disabled builds retain every symbol and return MK_ERROR_UNSUPPORTED. Players own a stable texture and a borrowed PCM-stream sound. Call mk_video_update() once per frame on the ModKit API thread before using mk_video_texture().

Functions

mk_video_closefunction

mk_result mk_video_close(mk_video_t video)

Close video.

ParameterTypeDescription
videomk_video_tValue for video.

Returns MK_SUCCESS or an error result.

mk_video_createfunction

mk_result mk_video_create(const mk_video_desc *desc, mk_video_t *out_video)

Create video.

ParameterTypeDescription
descconst mk_video_desc *Configuration descriptor.
out_videomk_video_t *Receives the video.

Returns MK_SUCCESS or an error result.

mk_video_desc_initfunction

mk_video_desc mk_video_desc_init(void)

Initialize the video desc.

Returns The resulting value.

mk_video_destroyfunction

mk_result mk_video_destroy(mk_video_t video)

Destroy the video.

ParameterTypeDescription
videomk_video_tValue for video.

Returns MK_SUCCESS or an error result.

mk_video_get_infofunction

mk_result mk_video_get_info(mk_video_t video, mk_video_info *out_info)

Get info from the video.

ParameterTypeDescription
videomk_video_tValue for video.
out_infomk_video_info *Receives the info.

Returns MK_SUCCESS or an error result.

mk_video_initfunction

mk_result mk_video_init(void)

Initialize the video.

Returns MK_SUCCESS or an error result.

mk_video_is_initializedfunction

bool mk_video_is_initialized(void)

Test whether the video is initialized.

Returns True when the condition holds.

mk_video_is_validfunction

bool mk_video_is_valid(mk_video_t video)

Test whether the video is valid.

ParameterTypeDescription
videomk_video_tValue for video.

Returns True when the condition holds.

mk_video_open_filefunction

mk_result mk_video_open_file(mk_video_t video, const char *path)

Open file for the video.

ParameterTypeDescription
videomk_video_tValue for video.
pathconst char *Value for path.

Returns MK_SUCCESS or an error result.

mk_video_pausefunction

mk_result mk_video_pause(mk_video_t video)

Pause the video.

ParameterTypeDescription
videomk_video_tValue for video.

Returns MK_SUCCESS or an error result.

mk_video_playfunction

mk_result mk_video_play(mk_video_t video)

Play video.

ParameterTypeDescription
videomk_video_tValue for video.

Returns MK_SUCCESS or an error result.

mk_video_poll_eventfunction

bool mk_video_poll_event(mk_video_t video, mk_video_event *out_event)

Poll event for the video.

ParameterTypeDescription
videomk_video_tValue for video.
out_eventmk_video_event *Receives the event.

Returns True when the operation succeeds.

mk_video_seekfunction

mk_result mk_video_seek(mk_video_t video, double seconds)

Seek video.

ParameterTypeDescription
videomk_video_tValue for video.
secondsdoubleValue for seconds.

Returns MK_SUCCESS or an error result.

mk_video_select_audio_trackfunction

mk_result mk_video_select_audio_track(mk_video_t video, int32_t track_index)

Perform the video select audio track operation.

ParameterTypeDescription
videomk_video_tValue for video.
track_indexint32_tValue for track index.

Returns MK_SUCCESS or an error result.

mk_video_set_audio_enabledfunction

mk_result mk_video_set_audio_enabled(mk_video_t video, bool enabled)

Set audio enabled on the video.

ParameterTypeDescription
videomk_video_tValue for video.
enabledboolWhether the feature is enabled.

Returns MK_SUCCESS or an error result.

mk_video_set_busfunction

mk_result mk_video_set_bus(mk_video_t video, mk_audio_bus_t bus)

Set bus on the video.

ParameterTypeDescription
videomk_video_tValue for video.
busmk_audio_bus_tValue for bus.

Returns MK_SUCCESS or an error result.

mk_video_set_loopfunction

mk_result mk_video_set_loop(mk_video_t video, bool loop)

Set loop on the video.

ParameterTypeDescription
videomk_video_tValue for video.
loopboolValue for loop.

Returns MK_SUCCESS or an error result.

mk_video_set_ratefunction

mk_result mk_video_set_rate(mk_video_t video, double rate)

Set rate on the video.

ParameterTypeDescription
videomk_video_tValue for video.
ratedoubleValue for rate.

Returns MK_SUCCESS or an error result.

mk_video_set_volumefunction

mk_result mk_video_set_volume(mk_video_t video, float volume)

Set volume on the video.

ParameterTypeDescription
videomk_video_tValue for video.
volumefloatValue for volume.

Returns MK_SUCCESS or an error result.

mk_video_shutdownfunction

void mk_video_shutdown(void)

Perform the video shutdown operation.

mk_video_soundfunction

mk_sound_t mk_video_sound(mk_video_t video)

Perform the video sound operation.

ParameterTypeDescription
videomk_video_tValue for video.

Returns The resulting handle or value.

mk_video_stopfunction

mk_result mk_video_stop(mk_video_t video)

Stop the video.

ParameterTypeDescription
videomk_video_tValue for video.

Returns MK_SUCCESS or an error result.

mk_video_texturefunction

mk_texture_t mk_video_texture(mk_video_t video)

Borrowed player-owned handles.

ParameterTypeDescription
videomk_video_tValue for video.

Returns The resulting handle or value.

mk_video_updatefunction

mk_result mk_video_update(mk_video_t video)

Update video.

ParameterTypeDescription
videomk_video_tValue for video.

Returns MK_SUCCESS or an error result.

Structs

mk_video_color_infostruct

Data for video color info.

FieldTypeDescription
primariesmk_video_color_primaries_tThe primaries.
transfermk_video_color_transfer_tThe transfer.
matrixmk_video_color_matrix_tThe matrix.
rangemk_video_color_range_tThe range.
bit_depthuint8_tThe bit depth.

mk_video_descstruct

Data for video desc.

FieldTypeDescription
backendmk_video_backend_tThe backend.
busmk_audio_bus_tThe bus.
startup_buffer_msuint32_tThe startup buffer ms.
max_video_framesuint32_tThe max video frames.
max_audio_msuint32_tThe max audio ms.
autoplayboolThe autoplay.
loopboolThe loop.
audio_enabledboolThe audio enabled.

mk_video_eventstruct

Data for video event.

FieldTypeDescription
typemk_video_event_type_tThe type.
previous_statemk_video_state_tThe previous state.
statemk_video_state_tThe state.
resultmk_resultThe result.
position_secondsdoubleThe position seconds.
track_indexint32_tThe track index.
messagecharThe message.

mk_video_infostruct

Data for video info.

FieldTypeDescription
statemk_video_state_tThe state.
backendmk_video_backend_tThe backend.
requested_backendmk_video_backend_tThe requested backend.
requested_device_decodemk_video_decode_mode_tThe requested device decode.
hardware_availableboolThe hardware available.
hardware_device_enabledboolThe hardware device enabled.
has_videoboolThe has video.
has_audioboolThe has audio.
loopingboolThe looping.
audio_enabledboolThe audio enabled.
widthuint16_tThe width.
heightuint16_tThe height.
duration_secondsdoubleThe duration seconds.
position_secondsdoubleThe position seconds.
buffered_secondsdoubleThe buffered seconds.
ratedoubleThe rate.
av_drift_secondsdoubleThe av drift seconds.
frame_rate_numuint32_tThe frame rate num.
frame_rate_denuint32_tThe frame rate den.
track_countuint32_tThe track count.
selected_audio_trackint32_tThe selected audio track.
presented_framesuint64_tThe presented frames.
dropped_framesuint64_tThe dropped frames.
video_codeccharThe video codec.
audio_codeccharThe audio codec.
colormk_video_color_info_tThe color.
tracksmk_video_track_info_tThe tracks.

mk_video_tstruct

Data for video.

FieldTypeDescription
iduint32_tThe ID.

mk_video_track_infostruct

Data for video track info.

FieldTypeDescription
typemk_video_track_type_tThe type.
stream_indexuint32_tThe stream index.
codeccharThe codec.
languagecharThe language.
titlecharThe title.
channelsuint32_tThe channels.
sample_rateuint32_tThe sample rate.
selectedboolThe selected.

Enums

mk_video_backendenum

Values for video backend.

ValueDescription
MK_VIDEO_BACKEND_NONESelects none.
MK_VIDEO_BACKEND_AUTOSelects auto.
MK_VIDEO_BACKEND_HARDWARESelects hardware.
MK_VIDEO_BACKEND_SOFTWARESelects software.

mk_video_color_matrixenum

Values for video color matrix.

ValueDescription
MK_VIDEO_COLOR_MATRIX_UNKNOWNSelects unknown.
MK_VIDEO_COLOR_MATRIX_BT601Selects bt601.
MK_VIDEO_COLOR_MATRIX_BT709Selects bt709.
MK_VIDEO_COLOR_MATRIX_BT2020Selects bt2020.

mk_video_color_primariesenum

Values for video color primaries.

ValueDescription
MK_VIDEO_COLOR_PRIMARIES_UNKNOWNSelects unknown.
MK_VIDEO_COLOR_PRIMARIES_BT709Selects bt709.
MK_VIDEO_COLOR_PRIMARIES_BT2020Selects bt2020.

mk_video_color_rangeenum

Values for video color range.

ValueDescription
MK_VIDEO_COLOR_RANGE_UNKNOWNSelects unknown.
MK_VIDEO_COLOR_RANGE_LIMITEDSelects limited.
MK_VIDEO_COLOR_RANGE_FULLSelects full.

mk_video_color_transferenum

Values for video color transfer.

ValueDescription
MK_VIDEO_COLOR_TRANSFER_UNKNOWNSelects unknown.
MK_VIDEO_COLOR_TRANSFER_BT709Selects bt709.
MK_VIDEO_COLOR_TRANSFER_SRGBSelects srgb.
MK_VIDEO_COLOR_TRANSFER_PQSelects pq.
MK_VIDEO_COLOR_TRANSFER_HLGSelects hlg.

mk_video_event_typeenum

Values for video event type.

ValueDescription
MK_VIDEO_EVENT_READYSelects ready.
MK_VIDEO_EVENT_STATE_CHANGEDSelects state changed.
MK_VIDEO_EVENT_SEEK_COMPLETESelects seek complete.
MK_VIDEO_EVENT_LOOPSelects loop.
MK_VIDEO_EVENT_ENDSelects end.
MK_VIDEO_EVENT_TRACK_CHANGEDSelects track changed.
MK_VIDEO_EVENT_RECOVEREDSelects recovered.
MK_VIDEO_EVENT_ERRORSelects error.

mk_video_stateenum

Values for video state.

ValueDescription
MK_VIDEO_STATE_CLOSEDSelects closed.
MK_VIDEO_STATE_OPENINGSelects opening.
MK_VIDEO_STATE_BUFFERINGSelects buffering.
MK_VIDEO_STATE_READYSelects ready.
MK_VIDEO_STATE_PLAYINGSelects playing.
MK_VIDEO_STATE_PAUSEDSelects paused.
MK_VIDEO_STATE_SEEKINGSelects seeking.
MK_VIDEO_STATE_RECOVERINGSelects recovering.
MK_VIDEO_STATE_ENDEDSelects ended.
MK_VIDEO_STATE_ERRORSelects error.

mk_video_track_typeenum

Values for video track type.

ValueDescription
MK_VIDEO_TRACK_VIDEOSelects video.
MK_VIDEO_TRACK_AUDIOSelects audio.

Typedefs

mk_video_backend_ttypedef

typedef enum mk_video_backend mk_video_backend_t

Values for video backend.

mk_video_color_info_ttypedef

typedef struct mk_video_color_info mk_video_color_info_t

Data for video color info.

mk_video_color_matrix_ttypedef

typedef enum mk_video_color_matrix mk_video_color_matrix_t

Values for video color matrix.

mk_video_color_primaries_ttypedef

typedef enum mk_video_color_primaries mk_video_color_primaries_t

Values for video color primaries.

mk_video_color_range_ttypedef

typedef enum mk_video_color_range mk_video_color_range_t

Values for video color range.

mk_video_color_transfer_ttypedef

typedef enum mk_video_color_transfer mk_video_color_transfer_t

Values for video color transfer.

mk_video_desctypedef

typedef struct mk_video_desc mk_video_desc

Data for video desc.

mk_video_eventtypedef

typedef struct mk_video_event mk_video_event

Data for video event.

mk_video_event_type_ttypedef

typedef enum mk_video_event_type mk_video_event_type_t

Values for video event type.

mk_video_infotypedef

typedef struct mk_video_info mk_video_info

Data for video info.

mk_video_state_ttypedef

typedef enum mk_video_state mk_video_state_t

Values for video state.

mk_video_track_info_ttypedef

typedef struct mk_video_track_info mk_video_track_info_t

Data for video track info.

mk_video_track_type_ttypedef

typedef enum mk_video_track_type mk_video_track_type_t

Values for video track type.

Macros

MK_VIDEO_CODEC_NAME_CAPACITYdefine

MK_VIDEO_CODEC_NAME_CAPACITY

Constant for video codec name capacity.

MK_VIDEO_EVENT_MESSAGE_CAPACITYdefine

MK_VIDEO_EVENT_MESSAGE_CAPACITY

Constant for video event message capacity.

MK_VIDEO_INVALIDdefine

MK_VIDEO_INVALID

Invalid sentinel for video.

MK_VIDEO_LANGUAGE_CAPACITYdefine

MK_VIDEO_LANGUAGE_CAPACITY

Constant for video language capacity.

MK_VIDEO_MAX_TRACKSdefine

MK_VIDEO_MAX_TRACKS

Maximum supported video tracks.

MK_VIDEO_TRACK_TITLE_CAPACITYdefine

MK_VIDEO_TRACK_TITLE_CAPACITY

Constant for video track title capacity.