arduino-audio-tools
Loading...
Searching...
No Matches
Classes | Namespaces | Functions | Variables
ContainerMTS.h File Reference
#include <string.h>
#include "AudioTools/AudioCodecs/AudioCodecsBase.h"
#include "AudioTools/AudioCodecs/AudioFormat.h"
#include "AudioTools/AudioCodecs/ContainerCommon.h"
#include "AudioTools/CoreAudio/AudioBasic/Collections/Vector.h"
#include "AudioTools/Video/Video.h"

Go to the source code of this file.

Classes

class  DemuxerMTS
 ISO/IEC 13818-1 MPEG Transport Stream Demuxer: parses the fixed 188-byte TS packet framing, follows PAT -> PMT to discover the video and (optional) audio elementary stream PIDs and their codec (stream_type), reassembles each PES packet's payload from the TS packets between one payload_unit_start_indicator and the next, and forwards the raw elementary-stream bytes to setOutputVideo()/setOutputAudio() - same scope and design as DemuxerMPG (ContainerMPG.h): no decoding happens here, point the outputs at whatever decoder understands the codec. More...
 
class  MTSParseBuffer
 Minimal byte accumulator used by DemuxerMTS to buffer incoming bytes until at least one full 188-byte TS packet is available - analogous to ContainerMPG.h's MPGParseBuffer, but without any start-code search (TS packets are fixed-size and found via their own resync logic in DemuxerMTS::parse() instead). More...
 
class  MuxerMTS
 ISO/IEC 13818-1 MPEG Transport Stream Encoder: packetizes an already-encoded video elementary stream (H.264 by default - see MuxerVideoConfig::format) and an optional audio elementary stream (AAC ADTS by default - see setAudioInfo()) into 188-byte TS packets, with a PAT and PMT describing the one program/two streams, written to a Print (a local File to record a .ts, or e.g. a network Client to publish a live/HLS-segment stream). More...
 

Namespaces

namespace  audio_tools
 Generic Implementation of sound input and output for desktop environments using portaudio.
 

Functions

bool isMtsAudioStreamType (uint8_t st)
 True if 'st' is one of the audio stream_type values recognized above.
 
bool isMtsVideoStreamType (uint8_t st)
 True if 'st' is one of the video stream_type values recognized above.
 
AudioFormat mtsAudioFormat (uint8_t st)
 
uint8_t mtsAudioStreamType (AudioFormat format)
 
uint32_t mtsCrc32 (const uint8_t *data, size_t len)
 
VideoFormat mtsVideoFormat (uint8_t st)
 
uint8_t mtsVideoStreamType (VideoFormat format)
 

Variables

static const uint32_t MTS_CLOCK_HZ = 90000
 
static const size_t MTS_PACKET_SIZE = 188
 
static const uint16_t MTS_PID_AUDIO = 0x0101
 
static const uint16_t MTS_PID_PAT = 0x0000
 
static const uint16_t MTS_PID_PMT = 0x1000
 
static const uint16_t MTS_PID_VIDEO = 0x0100
 
static const uint8_t MTS_STREAM_ID_AUDIO = 0xC0
 
static const uint8_t MTS_STREAM_ID_VIDEO = 0xE0
 
static const uint8_t MTS_STREAM_TYPE_AAC_ADTS = 0x0F
 
static const uint8_t MTS_STREAM_TYPE_H264 = 0x1B
 
static const uint8_t MTS_STREAM_TYPE_MJPEG = MTS_STREAM_TYPE_PRIVATE
 
static const uint8_t MTS_STREAM_TYPE_MPEG1_AUDIO = 0x03
 
static const uint8_t MTS_STREAM_TYPE_MPEG1_VIDEO = 0x01
 
static const uint8_t MTS_STREAM_TYPE_MPEG2_AUDIO = 0x04
 
static const uint8_t MTS_STREAM_TYPE_MPEG2_VIDEO = 0x02
 
static const uint8_t MTS_STREAM_TYPE_MPEG4_VIDEO = 0x10
 
static const uint8_t MTS_STREAM_TYPE_PRIVATE = 0x06
 
static const uint8_t MTS_SYNC_BYTE = 0x47