/*
* 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_*/