/* * GPAC - Multimedia Framework C SDK * * Authors: Cyril Concolato * Copyright (c) Telecom ParisTech 2013- * All rights reserved * * This file is part of GPAC / WebVTT header * * GPAC is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * GPAC is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * */ #ifndef _GF_WEBVTT_H_ #define _GF_WEBVTT_H_ #ifdef __cplusplus extern "C" { #endif /*! * \file <gpac/webvtt.h> * \brief Helper functions for WebVTT parsing. */ /*! * \ingroup media_grp * \brief Helper functions for WebVTT parsing * *This section documents the audio and video parsing functions of the GPAC framework. * @{ */ /* WebVTT types */ typedef enum { WEBVTT_ID, WEBVTT_SETTINGS, WEBVTT_PAYLOAD, WEBVTT_POSTCUE_TEXT, WEBVTT_PRECUE_TEXT, } GF_WebVTTCuePropertyType; typedef struct _webvtt_timestamp { u32 hour, min, sec, ms; } GF_WebVTTTimestamp; u64 gf_webvtt_timestamp_get(GF_WebVTTTimestamp *ts); void gf_webvtt_timestamp_set(GF_WebVTTTimestamp *ts, u64 value); void gf_webvtt_timestamp_dump(GF_WebVTTTimestamp *ts, FILE *dump, Bool dump_hour); typedef struct _webvtt_cue { GF_WebVTTTimestamp start; GF_WebVTTTimestamp end; char *id; char *settings; char *text; char *pre_text; char *post_text; Bool split; /* original times before split, if applicable */ GF_WebVTTTimestamp orig_start; GF_WebVTTTimestamp orig_end; } GF_WebVTTCue; void gf_webvtt_cue_del(GF_WebVTTCue * cue); #ifndef GPAC_DISABLE_VTT GF_Err gf_webvtt_dump_header_boxed(FILE *dump, const char *data, u32 dataLength, u32 *printLength); #endif #ifdef GPAC_HAS_SPIDERMONKEY #include <gpac/internal/scenegraph_dev.h> GF_Err gf_webvtt_js_addCue(GF_Node *node, const char *id, const char *start, const char *end, const char *settings, const char *payload); GF_Err gf_webvtt_js_removeCues(GF_Node *node); #endif /*! @} */ #ifdef __cplusplus } #endif #endif /*_GF_THREAD_H_*/