|
libclosedcaption 1.0.3
Extração de closed caption ISDB-Tb/SBTVD de arquivos MPEG-TS
|
Leitura do cabeçalho de um pacote PES de legenda. Mais...
#include "caption-common.h"

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) |
Leitura do cabeçalho de um pacote PES de legenda.
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.
| #define PACKET_PES_PREFIX 0x000001 |
(24 bits) packet_start_code_prefix.
Definição na linha 23 do arquivo packet-pes.h.
| #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.
| #define PTS_is_NONE 0x00 |
Sem PTS nem DTS.
Definição na linha 30 do arquivo packet-pes.h.
| #define PTS_is_FORBIDEN 0x01 |
Valor proibido pela norma.
Definição na linha 31 do arquivo packet-pes.h.
| #define PTS_is_ONLY_PTS 0x02 |
Apenas PTS (Presentation Time Stamp).
Definição na linha 32 do arquivo packet-pes.h.
| #define PTS_is_BOTH 0x03 |
PTS e DTS (Presentation/Decode Time Stamp).
Definição na linha 33 do arquivo packet-pes.h.
| typedef struct PacketPES_s PacketPES_t |
Pacote PES. Veja PacketPES_s.
Definição na linha 48 do arquivo packet-pes.h.
| 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.
| pack_raw | Pacote PES completo, a partir do packet_start_code_prefix (00 00 01). |
| raw_len | Tamanho de pack_raw em bytes. |
| out | Recebe o pacote carregado. Os ponteiros de payload apontam para dentro de pack_raw. |
| 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.
| ts | PTS em unidades de 90 kHz. |
| pts | Recebe o PTS convertido; pts->ts recebe o próprio ts. |