libcaption
Toggle main menu visibility
Loading...
Searching...
No Matches
examples
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"
27
typedef
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
42
void
ts_init
(
ts_t
* ts);
43
int
ts_parse_packet
(
ts_t
* ts,
const
uint8_t* data);
44
// return timestamp in seconds
45
static
inline
double
ts_dts_seconds
(
ts_t
* ts) {
return
ts->
dts
/ 90000.0; }
46
static
inline
double
ts_pts_seconds
(
ts_t
* ts) {
return
ts->
pts
/ 90000.0; }
47
static
inline
double
ts_cts_seconds
(
ts_t
* ts) {
return
(ts->
dts
- ts->
pts
) / 90000.0; }
48
49
#endif
ts_t
Definition
ts.h:27
ts_t::avcpid
int16_t avcpid
Definition
ts.h:29
ts_t::size
size_t size
Definition
ts.h:32
ts_t::pts
int64_t pts
Definition
ts.h:30
ts_t::dts
int64_t dts
Definition
ts.h:31
ts_t::data
const uint8_t * data
Definition
ts.h:33
ts_t::pmtpid
int16_t pmtpid
Definition
ts.h:28
ts_parse_packet
int ts_parse_packet(ts_t *ts, const uint8_t *data)
Definition
ts.c:44
ts_init
void ts_init(ts_t *ts)
Definition
ts.c:27
ts_pts_seconds
static double ts_pts_seconds(ts_t *ts)
Definition
ts.h:46
ts_cts_seconds
static double ts_cts_seconds(ts_t *ts)
Definition
ts.h:47
ts_dts_seconds
static double ts_dts_seconds(ts_t *ts)
Definition
ts.h:45
Generated by
1.18.0