50 KeySource* decryption_key_source)
override;
51 [[nodiscard]]
bool Flush()
override;
52 [[nodiscard]]
bool Parse(
const uint8_t* buf,
int size)
override;
58 void RegisterPmt(
int program_number,
int pmt_pid);
66 void RegisterPes(
int pmt_pid,
68 TsStreamType media_type,
70 const std::string& lang,
71 TsAudioType audio_type,
72 const uint8_t* descriptor,
73 size_t descriptor_length);
77 void OnNewStreamInfo(uint32_t pes_pid,
78 std::shared_ptr<StreamInfo> new_stream_info);
82 void OnEmitMediaSample(uint32_t pes_pid,
83 std::shared_ptr<MediaSample> new_sample);
84 void OnEmitTextSample(uint32_t pes_pid,
85 std::shared_ptr<TextSample> new_sample);
88 bool FinishInitializationIfNeeded();
90 bool EmitRemainingSamples();
94 void set_sbr_in_mime_type(
bool sbr_in_mimetype) {
95 sbr_in_mimetype_ = sbr_in_mimetype;
98 void update_biggest_pts(int64_t pts);
99 std::unordered_set<int> text_pids_;
106 bool sbr_in_mimetype_;
113 std::map<int, std::unique_ptr<PidState>> pids_;
116 std::map<int, PesMetadata> pes_metadata_;
119 bool is_initialized_;
123 std::bitset<256> stream_type_logged_once_;
126 int64_t biggest_pts_ = 0;