Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
  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;
    }
  }