1. 程式人生 > >stagefright框架(一)Video Playback的流程

stagefright框架(一)Video Playback的流程

status_t AwesomePlayer::setDataSource_l(const sp<MediaExtractor> &extractor)
{
  for (size_t i = 0; i < extractor->countTracks(); ++i)
  {
    sp<MetaData> meta = extractor->getTrackMetaData(i);

    CHECK(meta->findCString(kKeyMIMEType, &mime));

    if (!haveVideo &&
!strncasecmp(mime, "video/", 6))
    {
      setVideoSource(extractor->getTrack(i));
      haveVideo = true;
    }
    else if (!haveAudio && !strncasecmp(mime, "audio/", 6))
    {
      setAudioSource(extractor->getTrack(i));
      haveAudio = true;
    }
  }
}

void AwesomePlayer::setVideoSource(sp<
MediaSource> source)
{
  mVideoTrack = source;
}