X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=webmenc.h;h=b4a9e357bb83f4c52f03b372daa9f0923e5c95b9;hb=9dbefc4b57d17b9093749e39971b96f3bffd5be4;hp=362aa895fb03cdfbf0f5fd4fb6283aef2fba1b1f;hpb=0cb65fe5cc06b57f6e2d16177991c2567b3c1ee1;p=libvpx diff --git a/webmenc.h b/webmenc.h index 362aa895f..b4a9e357b 100644 --- a/webmenc.h +++ b/webmenc.h @@ -13,13 +13,6 @@ #include #include -#if defined(_MSC_VER) -/* MSVS doesn't define off_t */ -typedef __int64 off_t; -#else -#include -#endif - #include "tools_common.h" #include "vpx/vpx_encoder.h" @@ -27,40 +20,12 @@ typedef __int64 off_t; extern "C" { #endif -typedef off_t EbmlLoc; - -struct cue_entry { - unsigned int time; - uint64_t loc; -}; - -struct EbmlGlobal { +struct WebmOutputContext { int debug; - FILE *stream; - int64_t last_pts_ms; - vpx_rational_t framerate; - - /* These pointers are to the start of an element */ - off_t position_reference; - off_t seek_info_pos; - off_t segment_info_pos; - off_t track_pos; - off_t cue_pos; - off_t cluster_pos; - - /* This pointer is to a specific element to be serialized */ - off_t track_id_pos; - - /* These pointers are to the size field of the element */ - EbmlLoc startSegment; - EbmlLoc startCluster; - - uint32_t cluster_timecode; - int cluster_open; - - struct cue_entry *cue_list; - unsigned int cues; + int64_t last_pts_ns; + void *writer; + void *segment; }; /* Stereo 3D packed frame format */ @@ -72,21 +37,16 @@ typedef enum stereo_format { STEREO_FORMAT_RIGHT_LEFT = 11 } stereo_format_t; -void write_webm_seek_element(struct EbmlGlobal *ebml, - unsigned int id, - off_t pos); - -void write_webm_file_header(struct EbmlGlobal *glob, +void write_webm_file_header(struct WebmOutputContext *webm_ctx, const vpx_codec_enc_cfg_t *cfg, - const struct vpx_rational *fps, - stereo_format_t stereo_fmt, - unsigned int fourcc); + stereo_format_t stereo_fmt, unsigned int fourcc, + const struct VpxRational *par); -void write_webm_block(struct EbmlGlobal *glob, +void write_webm_block(struct WebmOutputContext *webm_ctx, const vpx_codec_enc_cfg_t *cfg, const vpx_codec_cx_pkt_t *pkt); -void write_webm_file_footer(struct EbmlGlobal *glob, int hash); +void write_webm_file_footer(struct WebmOutputContext *webm_ctx); #ifdef __cplusplus } // extern "C"