You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.0 KiB
79 lines
3.0 KiB
// SPDX-License-Identifier: LGPL-2.1-or-later
|
|
/*****************************************************************************
|
|
* preparser.h: internal header for preparser
|
|
*****************************************************************************
|
|
* Copyright © 2025 Videolabs, VideoLAN and VLC authors
|
|
*
|
|
* Authors: Gabriel Lafond Thenaille <gabriel@videolabs.io>
|
|
*****************************************************************************/
|
|
|
|
#ifndef PREPARSER_INTERNAL_H
|
|
#define PREPARSER_INTERNAL_H 1
|
|
|
|
#include <vlc_common.h>
|
|
#include <vlc_preparser.h>
|
|
#include <vlc_modules.h>
|
|
|
|
/**
|
|
* Preparser's operations
|
|
*/
|
|
struct vlc_preparser_operations {
|
|
/** Called by `vlc_preparser_Push`. */
|
|
struct vlc_preparser_req *(*push)(void *opaque, input_item_t *item,
|
|
int type_options,
|
|
const struct vlc_preparser_cbs *cbs,
|
|
void *cbs_userdata);
|
|
|
|
/** Called by `vlc_preparser_GenerateThumbnail`. */
|
|
struct vlc_preparser_req *(*generate_thumbnail)
|
|
(void *opaque, input_item_t *item,
|
|
const struct vlc_thumbnailer_arg *thumb_arg,
|
|
const struct vlc_thumbnailer_cbs *cbs,
|
|
void *cbs_userdata);
|
|
|
|
/** Called by `vlc_preparser_GenerateThumbnailToFiles`. */
|
|
struct vlc_preparser_req *(*generate_thumbnail_to_files)
|
|
(void *opaque, input_item_t *item,
|
|
const struct vlc_thumbnailer_arg *thumb_arg,
|
|
const struct vlc_thumbnailer_output *outputs,
|
|
size_t output_count,
|
|
const struct vlc_thumbnailer_to_files_cbs *cbs,
|
|
void *cbs_userdata);
|
|
|
|
/** Called by `vlc_preparser_Cancel`. */
|
|
size_t (*cancel)(void *opaque, struct vlc_preparser_req *req);
|
|
|
|
/** Called by `vlc_preparser_Delete`. */
|
|
void (*delete)(void *opaque);
|
|
|
|
/** Called by `vlc_preparser_SetTimeout`. */
|
|
void (*set_timeout)(void *opaque, vlc_tick_t timeout);
|
|
};
|
|
|
|
struct vlc_preparser_t {
|
|
const struct vlc_preparser_operations *ops;
|
|
void *sys;
|
|
};
|
|
|
|
void *vlc_preparser_internal_New(vlc_preparser_t *preparser,
|
|
vlc_object_t *parent,
|
|
const struct vlc_preparser_cfg *cfg);
|
|
|
|
void *vlc_preparser_external_New(vlc_preparser_t *preparser,
|
|
vlc_object_t *parent,
|
|
const struct vlc_preparser_cfg *cfg);
|
|
|
|
/* Preparser Request */
|
|
struct vlc_preparser_req_operations {
|
|
/* Called by `vlc_preparser_req_GetItem`. */
|
|
input_item_t *(*get_item)(struct vlc_preparser_req *req);
|
|
|
|
/* Called by `vlc_preparser_req_Release`. */
|
|
void (*release)(struct vlc_preparser_req *req);
|
|
};
|
|
|
|
struct vlc_preparser_req {
|
|
const struct vlc_preparser_req_operations *ops;
|
|
};
|
|
|
|
#endif /* PREPARSER_INTERNAL_H */
|
|
|