libcaption
Loading...
Searching...
No Matches
ts.h
Go to the documentation of this file.
1/**********************************************************************************************/
2/* The MIT License */
3/* */
4/* Copyright 2016-2017 Twitch Interactive, Inc. or its affiliates. All Rights Reserved. */
5/* */
6/* Permission is hereby granted, free of charge, to any person obtaining a copy */
7/* of this software and associated documentation files (the "Software"), to deal */
8/* in the Software without restriction, including without limitation the rights */
9/* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell */
10/* copies of the Software, and to permit persons to whom the Software is */
11/* furnished to do so, subject to the following conditions: */
12/* */
13/* The above copyright notice and this permission notice shall be included in */
14/* all copies or substantial portions of the Software. */
15/* */
16/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR */
17/* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, */
18/* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE */
19/* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER */
20/* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, */
21/* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN */
22/* THE SOFTWARE. */
23/**********************************************************************************************/
24#ifndef LIBCAPTION_TS_H
25#define LIBCAPTION_TS_H
26#include "caption.h"
27typedef struct {
28 int16_t pmtpid;
29 int16_t avcpid;
30 int64_t pts;
31 int64_t dts;
32 size_t size;
33 const uint8_t* data;
34} ts_t;
35
41#define TS_PACKET_SIZE 188
42void ts_init(ts_t* ts);
43int ts_parse_packet(ts_t* ts, const uint8_t* data);
44// return timestamp in seconds
45static inline double ts_dts_seconds(ts_t* ts) { return ts->dts / 90000.0; }
46static inline double ts_pts_seconds(ts_t* ts) { return ts->pts / 90000.0; }
47static inline double ts_cts_seconds(ts_t* ts) { return (ts->dts - ts->pts) / 90000.0; }
48
49#endif
Definition: ts.h:27
int16_t avcpid
Definition: ts.h:29
size_t size
Definition: ts.h:32
int64_t pts
Definition: ts.h:30
int64_t dts
Definition: ts.h:31
const uint8_t * data
Definition: ts.h:33
int16_t pmtpid
Definition: ts.h:28
int ts_parse_packet(ts_t *ts, const uint8_t *data)
Definition: ts.c:44
static double ts_pts_seconds(ts_t *ts)
Definition: ts.h:46
static double ts_cts_seconds(ts_t *ts)
Definition: ts.h:47
static double ts_dts_seconds(ts_t *ts)
Definition: ts.h:45
void ts_init(ts_t *ts)
Definition: ts.c:27