<commit_before># Release notes #

### 2.9.2 ###

* HLS:
  * Fix issue causing unnecessary media playlist requests when playing live
    streams ([#5059](https://github.com/google/ExoPlayer/issues/5059)).
  * Fix decoder re-instantiation issue for packed audio streams
    ([#5063](https://github.com/google/ExoPlayer/issues/5063)).
* MP4: Support Opus and FLAC in the MP4 container, and in DASH
  ([#4883](https://github.com/google/ExoPlayer/issues/4883)).
* DASH: Fix detecting the end of live events
  ([#4780](https://github.com/google/ExoPlayer/issues/4780)).
* Spherical video: Fall back to `TYPE_ROTATION_VECTOR` if
  `TYPE_GAME_ROTATION_VECTOR` is unavailable
  ([#5119](https://github.com/google/ExoPlayer/issues/5119)).
* Support seeking for a wider range of MPEG-TS streams
  ([#5097](https://github.com/google/ExoPlayer/issues/5097)).
* Include channel count in audio capabilities check
  ([#4690](https://github.com/google/ExoPlayer/issues/4690)).
* Fix issue with applying the `show_buffering` attribute in `PlayerView`
  ([#5139](https://github.com/google/ExoPlayer/issues/5139)).
* Fix issue where null `Metadata` was output when it failed to decode
  ([#5149](https://github.com/google/ExoPlayer/issues/5149)).
* Fix playback of some invalid but playable MP4 streams by replacing assertions
  with logged warnings in sample table parsing code
  ([#5162](https://github.com/google/ExoPlayer/issues/5162)).

### 2.9.1 ###

* Add convenience methods `Player.next`, `Player.previous`, `Player.hasNext`
  and `Player.hasPrevious`
  ([#4863](https://github.com/google/ExoPlayer/issues/4863)).
* Improve initial bandwidth meter estimates using the current country and
  network type.
* IMA extension:
  * For preroll to live stream transitions, project forward the loading position
    to avoid being behind the live window.
  * Let apps specify whether to focus the skip button on ATV
    ([#5019](https://github.com/google/ExoPlayer/issues/5019)).
* MP3:
  * Support seeking based on MLLT metadata
    ([#3241](https://github.com/google/ExoPlayer/issues/3241)).
  * Fix handling of streams with appended data
    ([#4954](https://github.com/google/ExoPlayer/issues/4954)).
* DASH: Parse ProgramInformation element if present in the manifest.
* HLS:
  * Add constructor to `DefaultHlsExtractorFactory` for adding TS payload
    reader factory flags
  * Fix bug in segment sniffing
    ([#5039](https://github.com/google/ExoPlayer/issues/5039)).
  ([#4861](https://github.com/google/ExoPlayer/issues/4861)).
* SubRip: Add support for alignment tags, and remove tags from the displayed
  captions ([#4306](https://github.com/google/ExoPlayer/issues/4306)).
* Fix issue with blind seeking to windows with non-zero offset in a
  `ConcatenatingMediaSource`
  ([#4873](https://github.com/google/ExoPlayer/issues/4873)).
* Fix logic for enabling next and previous actions in `TimelineQueueNavigator`
  ([#5065](https://github.com/google/ExoPlayer/issues/5065)).
* Fix issue where audio focus handling could not be disabled after enabling it
  ([#5055](https://github.com/google/ExoPlayer/issues/5055)).
* Fix issue where subtitles were positioned incorrectly if `SubtitleView` had a
  non-zero position offset to its parent
  ([#4788](https://github.com/google/ExoPlayer/issues/4788)).
* Fix issue where the buffered position was not updated correctly when
  transitioning between periods
  ([#4899](https://github.com/google/ExoPlayer/issues/4899)).
* Fix issue where a `NullPointerException` is thrown when removing an unprepared
  media source from a `ConcatenatingMediaSource` with the `useLazyPreparation`
  option enabled ([#4986](https://github.com/google/ExoPlayer/issues/4986)).
* Work around an issue where a non-empty end-of-stream audio buffer would be
  output with timestamp zero, causing the player position to jump backwards
  ([#5045](https://github.com/google/ExoPlayer/issues/5045)).
* Suppress a spurious assertion failure on some Samsung devices
  ([#4532](https://github.com/google/ExoPlayer/issues/4532)).
* Suppress spurious "references unknown class member" shrinking warning
  ([#4890](https://github.com/google/ExoPlayer/issues/4890)).
* Swap recommended order for google() and jcenter() in gradle config<commit_msg>Add missing dot at the end of RELEASENOTES item<commit_after># Release notes #

### 2.9.2 ###

* HLS:
  * Fix issue causing unnecessary media playlist requests when playing live
    streams ([#5059](https://github.com/google/ExoPlayer/issues/5059)).
  * Fix decoder re-instantiation issue for packed audio streams
    ([#5063](https://github.com/google/ExoPlayer/issues/5063)).
* MP4: Support Opus and FLAC in the MP4 container, and in DASH
  ([#4883](https://github.com/google/ExoPlayer/issues/4883)).
* DASH: Fix detecting the end of live events
  ([#4780](https://github.com/google/ExoPlayer/issues/4780)).
* Spherical video: Fall back to `TYPE_ROTATION_VECTOR` if
  `TYPE_GAME_ROTATION_VECTOR` is unavailable
  ([#5119](https://github.com/google/ExoPlayer/issues/5119)).
* Support seeking for a wider range of MPEG-TS streams
  ([#5097](https://github.com/google/ExoPlayer/issues/5097)).
* Include channel count in audio capabilities check
  ([#4690](https://github.com/google/ExoPlayer/issues/4690)).
* Fix issue with applying the `show_buffering` attribute in `PlayerView`
  ([#5139](https://github.com/google/ExoPlayer/issues/5139)).
* Fix issue where null `Metadata` was output when it failed to decode
  ([#5149](https://github.com/google/ExoPlayer/issues/5149)).
* Fix playback of some invalid but playable MP4 streams by replacing assertions
  with logged warnings in sample table parsing code
  ([#5162](https://github.com/google/ExoPlayer/issues/5162)).

### 2.9.1 ###

* Add convenience methods `Player.next`, `Player.previous`, `Player.hasNext`
  and `Player.hasPrevious`
  ([#4863](https://github.com/google/ExoPlayer/issues/4863)).
* Improve initial bandwidth meter estimates using the current country and
  network type.
* IMA extension:
  * For preroll to live stream transitions, project forward the loading position
    to avoid being behind the live window.
  * Let apps specify whether to focus the skip button on ATV
    ([#5019](https://github.com/google/ExoPlayer/issues/5019)).
* MP3:
  * Support seeking based on MLLT metadata
    ([#3241](https://github.com/google/ExoPlayer/issues/3241)).
  * Fix handling of streams with appended data
    ([#4954](https://github.com/google/ExoPlayer/issues/4954)).
* DASH: Parse ProgramInformation element if present in the manifest.
* HLS:
  * Add constructor to `DefaultHlsExtractorFactory` for adding TS payload
    reader factory flags.
  * Fix bug in segment sniffing
    ([#5039](https://github.com/google/ExoPlayer/issues/5039)).
  ([#4861](https://github.com/google/ExoPlayer/issues/4861)).
* SubRip: Add support for alignment tags, and remove tags from the displayed
  captions ([#4306](https://github.com/google/ExoPlayer/issues/4306)).
* Fix issue with blind seeking to windows with non-zero offset in a
  `ConcatenatingMediaSource`
  ([#4873](https://github.com/google/ExoPlayer/issues/4873)).
* Fix logic for enabling next and previous actions in `TimelineQueueNavigator`
  ([#5065](https://github.com/google/ExoPlayer/issues/5065)).
* Fix issue where audio focus handling could not be disabled after enabling it
  ([#5055](https://github.com/google/ExoPlayer/issues/5055)).
* Fix issue where subtitles were positioned incorrectly if `SubtitleView` had a
  non-zero position offset to its parent
  ([#4788](https://github.com/google/ExoPlayer/issues/4788)).
* Fix issue where the buffered position was not updated correctly when
  transitioning between periods
  ([#4899](https://github.com/google/ExoPlayer/issues/4899)).
* Fix issue where a `NullPointerException` is thrown when removing an unprepared
  media source from a `ConcatenatingMediaSource` with the `useLazyPreparation`
  option enabled ([#4986](https://github.com/google/ExoPlayer/issues/4986)).
* Work around an issue where a non-empty end-of-stream audio buffer would be
  output with timestamp zero, causing the player position to jump backwards
  ([#5045](https://github.com/google/ExoPlayer/issues/5045)).
* Suppress a spurious assertion failure on some Samsung devices
  ([#4532](https://github.com/google/ExoPlayer/issues/4532)).
* Suppress spurious "references unknown class member" shrinking warning
  ([#4890](https://github.com/google/ExoPlayer/issues/4890)).
* Swap recommended order for google() and jcenter() in gradle config
{'fraction_non_alphanumeric': 0.12630467925413394, 'fraction_numerical': 0.05113169930808022, 'mean_word_length': 4.617918313570487, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 52, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4390398', 'n_tokens_mistral': 2847, 'n_tokens_neox': 2550, 'n_words': 767}