FragmentedSampleReader(AP4_ByteStream *input, AP4_Movie *movie, AP4_Track *track, AP4_UI32 streamId, AP4_CencSingleSampleDecrypter *ssd) : AP4_LinearReader(*movie, input) , m_Track(track) , m_dts(0.0) , m_pts(0.0) , m_eos(false) , m_started(false) , m_StreamId(streamId) , m_SingleSampleDecryptor(ssd) , m_Decrypter(0) , m_Protected_desc(0) , m_Observer(0) { EnableTrack(m_Track->GetId()); AP4_SampleDescription *desc(m_Track->GetSampleDescription(0)); if (desc->GetType() == AP4_SampleDescription::TYPE_PROTECTED) m_Protected_desc = static_cast<AP4_ProtectedSampleDescription*>(desc); }
FragmentedSampleReader(AP4_ByteStream *input, AP4_Movie *movie, AP4_Track *track, AP4_UI32 streamId, AP4_CencSingleSampleDecrypter *ssd) : AP4_LinearReader(*movie, input) , m_Track(track) , m_dts(0.0) , m_pts(0.0) , m_eos(false) , m_StreamId(streamId) , m_SingleSampleDecryptor(ssd) , m_Decrypter(0) , m_Protected_desc(0) , m_codecHandler(0) { EnableTrack(m_Track->GetId()); AP4_SampleDescription *desc(m_Track->GetSampleDescription(0)); if (desc->GetType() == AP4_SampleDescription::TYPE_PROTECTED) { m_Protected_desc = static_cast<AP4_ProtectedSampleDescription*>(desc); desc = m_Protected_desc->GetOriginalSampleDescription(); } switch (desc->GetFormat()) { case AP4_SAMPLE_FORMAT_AVC1: case AP4_SAMPLE_FORMAT_AVC2: case AP4_SAMPLE_FORMAT_AVC3: case AP4_SAMPLE_FORMAT_AVC4: m_codecHandler = new AVCCodecHandler(desc); break; case AP4_SAMPLE_FORMAT_HEV1: case AP4_SAMPLE_FORMAT_HVC1: m_codecHandler = new HEVCCodecHandler(desc); break; case AP4_SAMPLE_FORMAT_MP4A: m_codecHandler = new MPEGCodecHandler(desc); break; default: m_codecHandler = new CodecHandler(desc); break; } }