|
libclosedcaption 1.0.3
Extração de closed caption ISDB-Tb/SBTVD de arquivos MPEG-TS
|
Leitura de arquivos MPEG-TS, pacote a pacote. Mais...
#include "caption-common.h"

Ir para o código-fonte desse arquivo.
Definições e Macros | |
| #define | TS_PACKET_SIZE 188 |
| #define | TS_SYNC_BYTE 0x47 |
Definições de Tipos | |
| typedef struct TsReader_s | TsReader_t |
Enumerações | |
| enum | TsReaderError_t { TS_READER_OK = 0 , TS_READER_ERROR_OPEN , TS_READER_ERROR_FORMAT , TS_READER_ERROR_MEMORY } |
Funções | |
| bool | ts_detect_packet_format (const uint8_t *buf, size_t len, size_t *packet_size, size_t *offset) |
| TsReader_t * | ts_reader_open (const char *filename, TsReaderError_t *error) |
| const uint8_t * | ts_reader_next (TsReader_t *reader) |
| size_t | ts_reader_get_packet_size (const TsReader_t *reader) |
| void | ts_reader_close (TsReader_t *reader) |
Leitura de arquivos MPEG-TS, pacote a pacote.
O leitor detecta automaticamente o formato do arquivo e entrega sempre pacotes de TS_PACKET_SIZE bytes, prontos para o ts_demux_push().
Formatos aceitos:
Quando o sincronismo é perdido (byte TS_SYNC_BYTE fora do lugar), o leitor procura o próximo TS_SYNC_BYTE e continua a partir dele.
Exemplo:
Definição no arquivo ts-reader.h.
| #define TS_PACKET_SIZE 188 |
Tamanho de um pacote MPEG-TS, sem bytes extras de timecode ou Reed-Solomon.
Definição na linha 39 do arquivo ts-reader.h.
| #define TS_SYNC_BYTE 0x47 |
Byte de sincronismo que inicia todo pacote MPEG-TS.
Definição na linha 42 do arquivo ts-reader.h.
| typedef struct TsReader_s TsReader_t |
Leitor de arquivo MPEG-TS. Estrutura opaca, criada por ts_reader_open().
Definição na linha 57 do arquivo ts-reader.h.
| enum TsReaderError_t |
Erros retornados por ts_reader_open().
Definição na linha 47 do arquivo ts-reader.h.
| bool ts_detect_packet_format | ( | const uint8_t * | buf, |
| size_t | len, | ||
| size_t * | packet_size, | ||
| size_t * | offset | ||
| ) |
Detecta o formato dos pacotes a partir do início de um buffer.
São necessários pelo menos 3 pacotes consecutivos com o byte de sincronismo no lugar certo para que o formato seja reconhecido.
| buf | Início do conteúdo do arquivo. |
| len | Quantidade de bytes em buf (recomendado: 1024 ou mais). |
| packet_size | Recebe o tamanho do pacote: 188, 192 ou 204. |
| offset | Recebe a posição do TS_SYNC_BYTE dentro do pacote (4 para M2TS, 0 para os demais). |
| TsReader_t * ts_reader_open | ( | const char * | filename, |
| TsReaderError_t * | error | ||
| ) |
Abre um arquivo MPEG-TS para leitura.
| filename | Caminho do arquivo. |
| error | Opcional (pode ser NULL). Recebe o motivo da falha. |
| const uint8_t * ts_reader_next | ( | TsReader_t * | reader | ) |
Lê o próximo pacote do arquivo.
| reader | Leitor criado por ts_reader_open(). |
| size_t ts_reader_get_packet_size | ( | const TsReader_t * | reader | ) |
Informa o tamanho dos pacotes no arquivo.
| reader | Leitor criado por ts_reader_open(). |
| void ts_reader_close | ( | TsReader_t * | reader | ) |
Fecha o arquivo e libera o leitor.
| reader | Leitor criado por ts_reader_open(). Aceita NULL. |