1. 28 Feb, 2020 2 commits
  2. 27 Feb, 2020 16 commits
  3. 25 Feb, 2020 22 commits
    • Merge pull request #7010 from dbrain:fix_nullability · 46ebaff9
      PiperOrigin-RevId: 297187116
      Oliver Woodman committed
    • Simplify using the Builder in SimpleExoPlayer subclasses. · 915f6673
      PiperOrigin-RevId: 297111999
      tonihei committed
    • Decouple ProgressiveMediaPeriod and ExtractorHolder · a9eb0866
      - Avoid having ExtractorHolder expose the underlying extractor.
      - Make ProgressiveMP inject a DataSource instead of a DefaultExtractor.
      
      This CL should introduce no functional changes.
      
      PiperOrigin-RevId: 296944788
      aquilescanta committed
    • Remove BaseRenderer#getUpdatedSourceDrmSession · af8b8125
      This seems to be no longer used
      
      PiperOrigin-RevId: 296856117
      ibaker committed
    • Migrate HLS to Format.Builder · 6fc5e6b9
      Issue: #2863
      PiperOrigin-RevId: 296482726
      olly committed
    • Migrate DASH to Format.Builder · f342df20
      Bitrates in the DASH manifest are peak bitrates, as per the ref'd issue.
      
      Issue: #5978
      PiperOrigin-RevId: 296478812
      olly committed
    • Migrate SmoothStreaming to Format.Builder · d6650e65
      Bitrates in SmoothStreaming manifests are average bitrates, as per
      the ref'd issue.
      
      Issue: #5978
      PiperOrigin-RevId: 296467667
      olly committed
    • split and deprecate PlaybackParameters in AudioSink · bc8fd2ca
      This change deprecates PlaybackParameter in AudioSink and splits it into playbackSpeed and skipSilenceEnabled. These properties are set separately in a future CL. The playback speed will be set through the MediaClock, while skipSilenceEnabled will be set by sending a message to the audio renderer.
      
      PiperOrigin-RevId: 296457043
      bachinger committed
    • Make Format.Builder, peakBitrate and averageBitrate public · 42d4afe7
      - Deprecate old Format.createXXX methods
      - Deprecate most Format.copyXXX methods
      - Stop using deprecated Format.copyXXX methods in the library
      
      Note: Replacing library usages of Format.createXXX method
      will be done in follow up CLs. These changes aren't purely
      mechanical because we need to decide which out of peakBitrate
      and averageBitrate to set in each case where currently a
      single bitrate is provided.
      
      Issue: #2863
      PiperOrigin-RevId: 296450935
      olly committed
    • Make ExtractorHolder a top-level class · 4c05201a
      PiperOrigin-RevId: 296405881
      aquilescanta committed
    • Reflect ffwd/rew amount of time to UI · 995682ec
      PiperOrigin-RevId: 296387837
      olly committed
    • Add ReleaseInputBuffer callback · ba58a521
      The release_input_buffer callback will be called when the library
      is done consuming an "input buffer". The buffer passed into
      EnqueueFrame must be kept valid until this callback is called. If
      frame parallel is false, then this callback can be nullptr (in
      this case the buffer has to be kept valid until the next call to
      DequeueFrame). If frame parallel is true, this callback cannot be
      nullptr.
      
      PiperOrigin-RevId: 296276083
      vigneshv committed
    • Format: Add Builder · 75bb45e5
      Package private for now. It will be made visible in a child CL.
      
      Issue: #2863
      PiperOrigin-RevId: 296255558
      olly committed
    • Remove duplicate SCTE-35 format and add sample to TsExtractorTest · 94315ab7
      It's not clear why we're currently outputting the format in both init()
      and consume() - it seems likely that this was accidentally introduced
      in <unknown commit>
      when we started outputting the format in consume() but didn't remove it
      from init().
      
      The SCTE-35 TsExtractorTest doesn't pass with the current code because
      when it seeks back to the beginning of the file init() is not called
      again so the second pass through only sees one sample (and
      ExtractorAsserts checks that seeking back to 0 produces the same output
      as reading the file from the beginning).
      
      I generated the SCTE-35 sample using TSDuck's tsp command:
      $ tsp --add-input-stuffing 1/10 \
         -I file testdata/src/test/assets/ts/sample.ts \
         -P pmt --service 1  --add-programinfo-id 0x43554549 --add-pid 600/0x86 \
         -P spliceinject --service 1 --files scte_35.xml --wait-first-batch \
         -P filter --negate --pid 0x1FFF \
         -O file testdata/src/test/assets/ts/sample_scte35.ts
      
      This was adapted from the instructions in section 5.2.24.1 of the TSDuck
      user manual: https://tsduck.io/download/docs/tsduck.pdf
      
      PiperOrigin-RevId: 296217084
      ibaker committed
    • Explain how to overwrite golden data in extractor test failure message · 113c4188
      This info is already in the javadoc of FakeExtractorOutput#assertOutput
      but it's not super discoverable if you just see the test failure. I was
      manually copying the dump results around before realising there was
      a mechanism to auto-update.
      
      PiperOrigin-RevId: 296204463
      ibaker committed
    • Remove pre-renderer-migration workarounds in SampleQueue · 7a10f2bf
      They are no longer necessary.
      
      PiperOrigin-RevId: 296193350
      aquilescanta committed
    • Keep method signature together when overriding · 47133f46
      Not important, but when overriding a method that can return null,
      it seems preferable to put @Override first, followed by what it's
      overriding (which includes the @Nullable).
      
      Also remove explicit @NonNull use in the core library. @NonNull is
      propagated by default, so this is redundant.
      
      PiperOrigin-RevId: 296188379
      olly committed
    • Drop prefix test- from core test methods · 95ba4f85
      This is one step toward following the google3's test naming convention.
      See go/java-testing/getting_started#basic-test-template for details
      why prefix test isn't necessary.
      
      This CL is generated by following command
      $ find -name '*Test.java' | xargs -I{} sed -i 's/^\ \ public\ void\ test\([A-Z]\)\(.*\)$/  public void \L\1\E\2/' {}
      
      PiperOrigin-RevId: 296169886
      olly committed
    • Demo apps: Annotate @NonNull where necessary · 7e6a1418
      Because we now annotate not-null by default in ExoPlayer
      library modules, we're seeing warnings in the demo apps where
      we override a method and don't explicitly specify an equivalent
      @NotNull annotation.
      
      It's probably confusing to use not-null by default for the
      demo apps, so this change uses @NonNull where necessary to fix
      the warnings.
      
      PiperOrigin-RevId: 296000044
      olly committed
    • Add parameter to Renderer.enable to allow rendering of first sample. · 72f4b964
      PiperOrigin-RevId: 295985916
      tonihei committed
    • Change libgav1's frame buffer callback API. · c95ed7d1
      1. Have frame buffer callbacks return Libgav1StatusCode instead of int.
      The 0 (success), -1 (failure) return value convention is less obvious.
      Note: The callers of frame buffer callbacks,
      BufferPool::OnFrameBufferSizeChanged() and YuvBuffer::Realloc(),
      currently return bool, so more work is needed to propagate the frame
      buffer callbacks' Libgav1StatusCode return value to the Decoder API.
      
      2. Allow the FrameBufferSizeChangedCallback to be omitted if the frame
      buffer size information is not useful to the application.
      
      3. Remove the old (version 1) frame buffer callback API. Remove the
      frame buffer callback adaptor.
      
      frame_buffer2.h is renamed frame_buffer.h.
      Libgav1FrameBuffer2 is renamed Libgav1FrameBuffer.
      GetFrameBufferCallback2 and ReleaseFrameBufferCallback2 are renamed
      GetFrameBufferCallback and ReleaseFrameBufferCallback.
      
      PiperOrigin-RevId: 295971183
      olly committed
    • Fix lint errors · 54283746
      PiperOrigin-RevId: 295953956
      olly committed