1. 18 Nov, 2021 10 commits
    • Assign class member in StyledPlayerControlView before using it · 70e2e8e4
      The local tracks variable was used to assign the initial subtext
      for the current track selection in the menu, but the new value
      was only assigned after the subtext has been evaluated.
      
      Assign the local variable first, so that the remaining accesses
      the latest value.
      
      Issue: google/ExoPlayer#9698
      PiperOrigin-RevId: 410750396
      tonihei committed
    • Avoid buffers used by OpenGL getting GC'ed · beccfaba
      The `GlUtil` wrappers for attributes/uniforms allocate buffers that are passed into OpenGL, and it seems that the distorted output was caused by these buffers being garbage collected.
      
      The issue was difficult to reproduce manually. Add a test that does repeated transcodes in a loop (marked `@Ignore` for now because it runs for a long time and requires network access so may be flaky) to make it easier to run many transcodes and look for inconsistent output. For now the consistency check is just based on the file size which is very likely to change if the actual video frames change.
      
      Verified that the test fails before, and passes once the attributes and uniforms are stored in fields as in this CL.
      
      PiperOrigin-RevId: 410581706
      andrewlewis committed
    • Merge transformer video renderers. · af1d5856
      This change merges `TransformerMuxingVideoRenderer` and
      `TransformerTranscodingVideoRenderer` into `TransformerVideoRenderer`.
      Besides all features supported by `TransformerTranscodingVideoRenderer`
      the new merged `TransformerVideoRenderer` also supports SEF slow motion
      flatting without re-encoding like the `TransformerMuxingVideoRenderer`.
      To do this, it uses a `SefSlowMotionVideoSampleTransformer` with
      the `PassthroughPipeline`.
      
      PiperOrigin-RevId: 410531478
      hschlueter committed
    • Transformer: Rename setOutputMimeType() to setContainerMimeType(). · 18a15fb9
      This mime type is technically for the Muxer, and determines
      the container used. In the context of the transformer, this can
      be thought of more as a container mime type, to avoid confusion
      with the video mime type and audio mime type.
      
      Deprecates setOutputMimeType().
      
      PiperOrigin-RevId: 410530707
      huangdarwin committed
    • Fix sequence number calculation logic. · f401d462
      Issue: google/ExoPlayer#9697
      
      Before, the `MAX_SEQUENCE_NUMBER` is 65535, such that the logic to get the next
      sequence number:
      
      `previousSeqNumber + 1 % MAX_SEQUENCE_NUMBER`
      
      yields 0 when `previousSeqNumber` is 65534. However, the next sequence number
      should be 65535.
      
      PiperOrigin-RevId: 410530098
      claincly committed
    • Set LogSessionId on MediaCodec. · 6ed75f1a
      PiperOrigin-RevId: 410516082
      tonihei committed
    • Set LogSessionId on AudioTrack. · 14ab4f80
      This requires forwarding the PlayerId to the AudioSink.
      
      PiperOrigin-RevId: 410509605
      tonihei committed
    • Enable immediate codec start after flush · 45a5a758
      We verified there is a race condition in the
      AsynchronousMediaCodecAdapter when flushing the adapter
      multiple times. The race condition results in calling MediaCodec.start()
      and MediaCodec.flush() in parallel and that makes the MediaCodec
      raise an exception.
      
      This changes the default behavior to call MediaCodec.start() on the
      same thread after MediaCodec.flush() to avoid the race condition.
      
      #minor-release
      
      PiperOrigin-RevId: 410509388
      christosts committed
    • Remove null keys from DefaultHttpDataSource#getResponseHeaders · 06755d42
      PiperOrigin-RevId: 410507648
      ibaker committed
    • Populate ICY headers into MediaMetadata · 349160a5
      Populate ICY headers into MediaMetadata so that they can
      propagate to the app via AnalyticsListener#onMediaMetadataChanged().
      This change copies IcyHeaders.name into MediaMetadata.description
      and IcyHeaders.genre into MediaMetadata.genre.
      
      Note: MediaItem.metadata maintain their precedence and overwrite any
      ICY headers parsed.
      
      Issue: google/ExoPlayer#9677
      
      #minor-release
      
      PiperOrigin-RevId: 410495676
      christosts committed
  2. 16 Nov, 2021 6 commits
  3. 15 Nov, 2021 7 commits
  4. 11 Nov, 2021 17 commits