libclosedcaption 1.0.3
Extração de closed caption ISDB-Tb/SBTVD de arquivos MPEG-TS
Carregando...
Procurando...
Nenhuma entrada encontrado
Referência do Arquivo packet-pes.h

Leitura do cabeçalho de um pacote PES de legenda. Mais...

#include "caption-common.h"
Gráfico de dependência de inclusões para packet-pes.h:
Este grafo mostra quais arquivos estão direta ou indiretamente relacionados com esse arquivo:

Ir para o código-fonte desse arquivo.

Estruturas de Dados

struct  PES_pts_t
 
struct  PacketPES_s
 
struct  PacketPES_s::header
 
union  PacketPES_s::header::flags
 
struct  PacketPES_s::payload
 

Definições e Macros

#define PACKET_PES_PREFIX   0x000001
 
#define PACKET_PES_PRIVATE_STREAM   0xbd
 
Valores do campo PTS_DTS_flags
#define PTS_is_NONE   0x00
 
#define PTS_is_FORBIDEN   0x01
 
#define PTS_is_ONLY_PTS   0x02
 
#define PTS_is_BOTH   0x03
 

Definições de Tipos

typedef struct PacketPES_s PacketPES_t
 

Funções

bool packet_pes_load (const uint8_t *pack_raw, const size_t raw_len, PacketPES_t *out)
 
void packet_pes_set_pts (uint32_t *ts, PES_pts_t *pts)
 

Descrição detalhada

Leitura do cabeçalho de um pacote PES de legenda.

Autor
Jorge Pereira jpere.nosp@m.iran.nosp@m.@gmai.nosp@m.l.co.nosp@m.m
Data
Thu Aug 12 13:49:21 BRT 2010

As legendas do ISDB-T são transportadas em pacotes PES com stream_id 0xBD (private_stream_1), no formato "PES data packet" da ARIB STD-B24, Volume 3, Capítulo 5:

* [cabeçalho PES][data_identifier][private_stream_id][PES_data_packet_header_length][...][data_group]
* 

packet_pes_load() lê o cabeçalho, o PTS e localiza o data_group, que é processado em seguida por caption_data_load().

Definição no arquivo packet-pes.h.

Definições e macros

◆ PACKET_PES_PREFIX

#define PACKET_PES_PREFIX   0x000001

(24 bits) packet_start_code_prefix.

Definição na linha 23 do arquivo packet-pes.h.

◆ PACKET_PES_PRIVATE_STREAM

#define PACKET_PES_PRIVATE_STREAM   0xbd

stream_id do private_stream_1, usado pelas legendas.

Definição na linha 24 do arquivo packet-pes.h.

◆ PTS_is_NONE

#define PTS_is_NONE   0x00

Sem PTS nem DTS.

Definição na linha 30 do arquivo packet-pes.h.

◆ PTS_is_FORBIDEN

#define PTS_is_FORBIDEN   0x01

Valor proibido pela norma.

Definição na linha 31 do arquivo packet-pes.h.

◆ PTS_is_ONLY_PTS

#define PTS_is_ONLY_PTS   0x02

Apenas PTS (Presentation Time Stamp).

Definição na linha 32 do arquivo packet-pes.h.

◆ PTS_is_BOTH

#define PTS_is_BOTH   0x03

PTS e DTS (Presentation/Decode Time Stamp).

Definição na linha 33 do arquivo packet-pes.h.

Definições dos tipos

◆ PacketPES_t

typedef struct PacketPES_s PacketPES_t

Pacote PES. Veja PacketPES_s.

Definição na linha 48 do arquivo packet-pes.h.

Funções

◆ packet_pes_load()

bool packet_pes_load ( const uint8_t *  pack_raw,
const size_t  raw_len,
PacketPES_t *  out 
)

Carrega o cabeçalho de um pacote PES e localiza o data_group.

Parâmetros
pack_rawPacote PES completo, a partir do packet_start_code_prefix (00 00 01).
raw_lenTamanho de pack_raw em bytes.
outRecebe o pacote carregado. Os ponteiros de payload apontam para dentro de pack_raw.
Retorna
TRUE se o pacote é um PES válido e com dados.

◆ packet_pes_set_pts()

void packet_pes_set_pts ( uint32_t *  ts,
PES_pts_t *  pts 
)

Converte um PTS em unidades de 90 kHz para horas, minutos e segundos.

Parâmetros
tsPTS em unidades de 90 kHz.
ptsRecebe o PTS convertido; pts->ts recebe o próprio ts.