1. 15 Jun, 2016 12 commits
    • One Format object to rule them all. · a7adcce0
      - Format can represent both container and sample formats.
        If a container contains a single track (as is true in
        DASH and SmoothStreaming) then the container Format can
        also contain sufficient information about the samples
        to allow for track selection. This avoids the Format to
        MediaFormat conversions that we were previously doing in
        ChunkSource implementations.
      
      - One important result of this change is that adaptive
        format evaluation and static format selection now use the
        same format objects, which is a whole lot less confusing
        for someone who wants to implement both initial selection
        and subsequent adaptation logic. It's not in the V2 doc,
        but it may well make sense if the TrackSelector not only
        selects the tracks to enable for an adaptive playback, but
        also injects a FormatEvaluator when enabling them that will
        control the subsequent adaptive selections. That would make
        it so that all format selection logic originates from the
        same place.
      
      - As part of this change, the adaptiveX variables are removed
        from the format object; they don't really correspond to a
        single format. This also saves on having to inject the max
        video dimensions through a bunch of classes.
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=114546777
      olly committed
    • Don't pass chunk list to ChunkSource.disable(). · 362d0400
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=114545827
      olly committed
    • Remove durationUs from MediaFormat. · 782817d5
      Duration was originally included in MediaFormat to match the
      framework class, but it actually doesn't make much sense. In
      many containers there's no such thing as per-stream duration,
      and in any case we don't really care. Setting the duration on
      each format required excessive piping.
      
      This change moves duration into SeekMap instead, which seems
      to make a lot more sense because it's at the container level,
      and because being able to seek is generally couplied with
      knowing how long the stream is.
      
      This change is also a step toward merging Format and MediaFormat
      into a single class (because Format doesn't have a duration),
      which is coming soon.
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=114428500
      olly committed
    • Simplify codec configuration. · ebf87a36
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=114427767
      olly committed
    • Implement decoder capability checks in MediaCodecTrackRenderers. · 335bb0af
      [Step 4 - Partial, of []
      
      - The capabilities checks previously performed in VideoFormatSelectorUtil
        are now performed in MediaCodecVideoTrackRenderer. This means they'll be
        useful for non-chunk use cases (e.g. when using ExtractorSampleSource).
      - Added capabilities checks for audio in MediaCodecAudioTrackRenderer. We
        didn't check audio capabilities previously.
      - Added functionality to allow a TrackRenderer to indicate the extent of
        its adaptive support.
      
      The idea here is that a TrackSelector (to be introduced) will have access to:
      
      (a) TrackGroups from the SampleSource that indicate whether they support
      adaptive playbacks and the formats of each individual track.
      (b) TrackRenderers that indicate whether they support adaptive playbacks as
      well as how capable they are of rendering formats of individual tracks.
      
      This is everything that a TrackSelector needs from the player components in
      order to decide how to wire things up. Note that a TrackSelector may opt to
      treat FORMAT_EXCEEDS_CAPABILITIES as FORMAT_HANDLED at its own risk, if it
      thinks that it (or the user) knows better. This is a request that we've seen
      from third parties for better handling cases where capabilities aren't
      accurately reported by the underlying platform.
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=114427428
      olly committed
    • Minor tweaks/fixes. · 6bc52262
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=113868179
      cblay committed
    • ExoPlayer V2 Refactor - Misc · 43e1e7e8
      Delete SingleSampleChunkSource. I don't think it's really
      useful for anything, now we have SingleSampleSource.
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=113259289
      olly committed
    • ExoPlayer V2 Refactor - Step 7 (partial) · ce324f1c
      This change removes the need for SourceBuilders to load their
      manifests before building their sources. This is done by pushing
      initial manifest loads into the ChunkSource classes. This simplifies
      the SourceBuilders a lot, and also DemoPlayer.
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=113259259
      olly committed
    • ExoPlayer V2 Refactor - Step 4 · be471489
      Notes:
      1. The logic in ExoPlayerImplInternal is very temporary, until we
         have proper TrackSelector implementations. Ignore the fact that
         it's crazy and has loads of nesting.
      2. This change removes all capabilities checking. TrackRenderer
         implementations will be updated to perform these checks in a
         subsequent CL.
      
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=113151233
      olly committed
    • ExoPlayer V2 Refactor - Step 3 · 6cb20525
      Move binding of tracks<->renderers to ExoPlayerImplInternal.
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=113046018
      olly committed
    • ExoPlayer V2 Refactor - Steps 1/2. · cdae9ac5
      GitHub note - Apologies for the cryptic change descriptions,
      they relate to a design doc that's not externally visible.
      
      -------------
      Created by MOE: https://github.com/google/moe
      MOE_MIGRATED_REVID=113043764
      olly committed
    • Prepare for 2.x push · 61d581fe
      Oliver Woodman committed
  2. 22 Jan, 2016 20 commits
  3. 18 Jan, 2016 3 commits
  4. 16 Jan, 2016 4 commits
  5. 15 Jan, 2016 1 commit