From 2ca14b025fc1bea3b5db6d9e23a259db02c4bf0b Mon Sep 17 00:00:00 2001 From: ojw28 Date: Tue, 7 Mar 2017 15:02:52 +0000 Subject: [PATCH 01/10] Update ISSUE_TEMPLATE --- ISSUE_TEMPLATE | 66 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/ISSUE_TEMPLATE b/ISSUE_TEMPLATE index 6e55f3dcd6..8c9263b8d1 100644 --- a/ISSUE_TEMPLATE +++ b/ISSUE_TEMPLATE @@ -1,19 +1,51 @@ -*** PLEASE DO NOT IGNORE THIS ISSUE TEMPLATE *** +*** ISSUES THAT IGNORE THIS TEMPLATE WILL BE CLOSED WITHOUT INVESTIGATION *** -Please search the existing issues before filing a new one, including issues that -are closed. When filing a new issue please include ALL of the following, unless -you're certain that they're not useful for the particular issue being reported. +Before filing an issue: +----------------------- -- A description of the issue. -- Steps describing how the issue can be reproduced, ideally in the ExoPlayer - demo app. -- A link to content that reproduces the issue. If you don't wish to post it - publicly, please submit the issue, then email the link to - dev.exoplayer@gmail.com including the issue number in the subject line. -- The version of ExoPlayer being used. -- The device(s) and version(s) of Android on which the issue can be reproduced, - and how easily it reproduces. If possible, please test on multiple devices and - Android versions. -- A bug report taken from the device just after the issue occurs, attached as a - file. A bug report can be captured using "adb bugreport". Output from "adb - logcat" or a log snippet is not sufficient. +- Search existing issues, including issues that are closed. If an existing issue + exists, please do not file a new one. + +- Consult our FAQs, supported devices and supported formats pages. These can be + found at https://google.github.io/ExoPlayer/. + +- Rule out issues in your own code. A good way to do this is to try and + reproduce the issue in the ExoPlayer demo app. + +- This issue tracker is intended for bugs, feature requests and ExoPlayer + specific questions. If you're asking a general Android development question, + please do so on Stack Overflow. + +When reporting a bug: +----------------------- + +Please fill out the sections below, leaving the section headers but replacing the +content. If you're unable to provide certain information, please explain why in the +relevant section. We may close issues without investigation if they do not include +sufficient information. + +### Issue description +Describe the issue in detail, including observed and expected behavior. + +### Reproduction steps +Describe how the issue can be reproduced, ideally using the ExoPlayer demo app. + +### Link to test content +Provide a link to media that reproduces the issue. If you don't wish to post it +publicly, please submit the issue, then email the link to +dev.exoplayer@gmail.com including the issue number in the subject line. + +### Version of ExoPlayer being used +Specify the absolute version number. Avoid using terms such as "latest". + +### Device(s) and version(s) of Android being used +Specify the devices and versions of Android on which the issue can be +reproduced, and how easily it reproduces. If possible, please test on multiple +devices and Android versions. + +### A full bug report captured from the device +Capture a full bug report using "adb bugreport". Output from "adb logcat" or a +log snippet is NOT sufficient. Please attach the captured bug report as a file. +If you don't wish to post it publicly, please submit the issue, then email the +bug report to dev.exoplayer@gmail.com including the issue number in the subject +line. From c50b570d463a2214e252ebca4b8840cd15d16768 Mon Sep 17 00:00:00 2001 From: ojw28 Date: Tue, 7 Mar 2017 15:03:01 +0000 Subject: [PATCH 02/10] Update ISSUE_TEMPLATE --- ISSUE_TEMPLATE | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ISSUE_TEMPLATE b/ISSUE_TEMPLATE index 8c9263b8d1..b1e6687374 100644 --- a/ISSUE_TEMPLATE +++ b/ISSUE_TEMPLATE @@ -5,13 +5,13 @@ Before filing an issue: - Search existing issues, including issues that are closed. If an existing issue exists, please do not file a new one. - + - Consult our FAQs, supported devices and supported formats pages. These can be found at https://google.github.io/ExoPlayer/. - + - Rule out issues in your own code. A good way to do this is to try and reproduce the issue in the ExoPlayer demo app. - + - This issue tracker is intended for bugs, feature requests and ExoPlayer specific questions. If you're asking a general Android development question, please do so on Stack Overflow. From aaaa23e5e4a6771b06067bd28d728781990bd454 Mon Sep 17 00:00:00 2001 From: ojw28 Date: Tue, 7 Mar 2017 15:11:51 +0000 Subject: [PATCH 03/10] Update ISSUE_TEMPLATE --- ISSUE_TEMPLATE | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/ISSUE_TEMPLATE b/ISSUE_TEMPLATE index b1e6687374..1b912312d1 100644 --- a/ISSUE_TEMPLATE +++ b/ISSUE_TEMPLATE @@ -2,27 +2,20 @@ Before filing an issue: ----------------------- - -- Search existing issues, including issues that are closed. If an existing issue - exists, please do not file a new one. - +- Search existing issues, including issues that are closed. - Consult our FAQs, supported devices and supported formats pages. These can be found at https://google.github.io/ExoPlayer/. - - Rule out issues in your own code. A good way to do this is to try and reproduce the issue in the ExoPlayer demo app. - - This issue tracker is intended for bugs, feature requests and ExoPlayer specific questions. If you're asking a general Android development question, please do so on Stack Overflow. When reporting a bug: ----------------------- - -Please fill out the sections below, leaving the section headers but replacing the -content. If you're unable to provide certain information, please explain why in the -relevant section. We may close issues without investigation if they do not include -sufficient information. +Fill out the sections below, leaving the headers but replacing the content. If +you're unable to provide certain information, please explain why in the relevant +section. We may close issues if they do not include sufficient information. ### Issue description Describe the issue in detail, including observed and expected behavior. From 3c447130a5aeb323fcf0c76816b02e2ae6777283 Mon Sep 17 00:00:00 2001 From: ojw28 Date: Fri, 17 Mar 2017 20:53:09 +0000 Subject: [PATCH 04/10] Update RELEASENOTES.md --- RELEASENOTES.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index f45cb9aff6..4f99f4175d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -6,8 +6,8 @@ rendering. You can read more about the GVR extension [here](https://medium.com/google-exoplayer/spatial-audio-with-exoplayer-and-gvr-cecb00e9da5f#.xdjebjd7g). * DASH improvements: - * Support embedded CEA-608 closed captions - ([#2362](https://github.com/google/ExoPlayer/issues/2362)). + * Support embedded CEA-608 closed captions + ([#2362](https://github.com/google/ExoPlayer/issues/2362)). * Support embedded EMSG events ([#2176](https://github.com/google/ExoPlayer/issues/2176)). * Support mspr:pro manifest element From 2966ea71f050347152ca0f8a52e4186e5a5892f9 Mon Sep 17 00:00:00 2001 From: ojw28 Date: Fri, 17 Mar 2017 20:55:45 +0000 Subject: [PATCH 05/10] Fix RELEASENOTES.md nesting. --- RELEASENOTES.md | 194 ++++++++++++++++++++++++------------------------ 1 file changed, 97 insertions(+), 97 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 4f99f4175d..1030cbdee4 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -8,29 +8,29 @@ * DASH improvements: * Support embedded CEA-608 closed captions ([#2362](https://github.com/google/ExoPlayer/issues/2362)). - * Support embedded EMSG events - ([#2176](https://github.com/google/ExoPlayer/issues/2176)). - * Support mspr:pro manifest element - ([#2386](https://github.com/google/ExoPlayer/issues/2386)). - * Correct handling of empty segment indices at the start of live events - ([#1865](https://github.com/google/ExoPlayer/issues/1865)). + * Support embedded EMSG events + ([#2176](https://github.com/google/ExoPlayer/issues/2176)). + * Support mspr:pro manifest element + ([#2386](https://github.com/google/ExoPlayer/issues/2386)). + * Correct handling of empty segment indices at the start of live events + ([#1865](https://github.com/google/ExoPlayer/issues/1865)). * HLS improvements: - * Respect initial track selection - ([#2353](https://github.com/google/ExoPlayer/issues/2353)). - * Reduced frequency of media playlist requests when playback position is close - to the live edge ([#2548](https://github.com/google/ExoPlayer/issues/2548)). - * Exposed the master playlist through ExoPlayer.getCurrentManifest() - ([#2537](https://github.com/google/ExoPlayer/issues/2537)). - * Support CLOSED-CAPTIONS #EXT-X-MEDIA type - ([#341](https://github.com/google/ExoPlayer/issues/341)). - * Fixed handling of negative values in #EXT-X-SUPPORT - ([#2495](https://github.com/google/ExoPlayer/issues/2495)). - * Fixed potential endless buffering state for streams with WebVTT subtitles - ([#2424](https://github.com/google/ExoPlayer/issues/2424)). + * Respect initial track selection + ([#2353](https://github.com/google/ExoPlayer/issues/2353)). + * Reduced frequency of media playlist requests when playback position is close + to the live edge ([#2548](https://github.com/google/ExoPlayer/issues/2548)). + * Exposed the master playlist through ExoPlayer.getCurrentManifest() + ([#2537](https://github.com/google/ExoPlayer/issues/2537)). + * Support CLOSED-CAPTIONS #EXT-X-MEDIA type + ([#341](https://github.com/google/ExoPlayer/issues/341)). + * Fixed handling of negative values in #EXT-X-SUPPORT + ([#2495](https://github.com/google/ExoPlayer/issues/2495)). + * Fixed potential endless buffering state for streams with WebVTT subtitles + ([#2424](https://github.com/google/ExoPlayer/issues/2424)). * MPEG-TS improvements: - * Support for multiple programs. - * Support for multiple closed captions and caption service descriptors - ([#2161](https://github.com/google/ExoPlayer/issues/2161)). + * Support for multiple programs. + * Support for multiple closed captions and caption service descriptors + ([#2161](https://github.com/google/ExoPlayer/issues/2161)). * MP3: Add `FLAG_ENABLE_CONSTANT_BITRATE_SEEKING` extractor option to enable constant bitrate seeking in MP3 files that would otherwise be unseekable ([#2445](https://github.com/google/ExoPlayer/issues/2445)). @@ -125,15 +125,15 @@ * HLS: Support for seeking in live streams ([#87](https://github.com/google/ExoPlayer/issues/87)). * HLS: Improved support: - * Support for EXT-X-PROGRAM-DATE-TIME - ([#747](https://github.com/google/ExoPlayer/issues/747)). - * Improved handling of sample timestamps and their alignment across variants - and renditions. - * Fix issue that could cause playbacks to get stuck in an endless initial - buffering state. - * Correctly propagate BehindLiveWindowException instead of - IndexOutOfBoundsException exception - ([#1695](https://github.com/google/ExoPlayer/issues/1695)). + * Support for EXT-X-PROGRAM-DATE-TIME + ([#747](https://github.com/google/ExoPlayer/issues/747)). + * Improved handling of sample timestamps and their alignment across variants + and renditions. + * Fix issue that could cause playbacks to get stuck in an endless initial + buffering state. + * Correctly propagate BehindLiveWindowException instead of + IndexOutOfBoundsException exception + ([#1695](https://github.com/google/ExoPlayer/issues/1695)). * MP3/MP4: Support for ID3 metadata, including embedded album art ([#979](https://github.com/google/ExoPlayer/issues/979)). * Improved customization of UI components. You can read about customization of @@ -143,19 +143,19 @@ MediaPeriod transitions. * EIA608: Support for caption styling and positioning. * MPEG-TS: Improved support: - * Support injection of custom TS payload readers. - * Support injection of custom section payload readers. - * Support SCTE-35 splice information messages. - * Support multiple table sections in a single PSI section. - * Fix NullPointerException when an unsupported stream type is encountered - ([#2149](https://github.com/google/ExoPlayer/issues/2149)). - * Avoid failure when expected ID3 header not found - ([#1966](https://github.com/google/ExoPlayer/issues/1966)). -* Improvements to the upstream cache package. - * Support caching of media segments for DASH, HLS and SmoothStreaming. Note - that caching of manifest and playlist files is still not supported in the - (normal) case where the corresponding responses are compressed. - * Support caching for ExtractorMediaSource based playbacks. + * Support injection of custom TS payload readers. + * Support injection of custom section payload readers. + * Support SCTE-35 splice information messages. + * Support multiple table sections in a single PSI section. + * Fix NullPointerException when an unsupported stream type is encountered + ([#2149](https://github.com/google/ExoPlayer/issues/2149)). + * Avoid failure when expected ID3 header not found + ([#1966](https://github.com/google/ExoPlayer/issues/1966)). + * Improvements to the upstream cache package. + * Support caching of media segments for DASH, HLS and SmoothStreaming. Note + that caching of manifest and playlist files is still not supported in the + (normal) case where the corresponding responses are compressed. + * Support caching for ExtractorMediaSource based playbacks. * Improved flexibility of SimpleExoPlayer ([#2102](https://github.com/google/ExoPlayer/issues/2102)). * Fix issue where only the audio of a video would play due to capability @@ -227,62 +227,62 @@ some of the motivations behind ExoPlayer 2.x structure and class names have also been sanitized. Read more [here](https://medium.com/google-exoplayer/exoplayer-2-x-new-package-and-class-names-ef8e1d9ba96f#.lv8sd4nez). * Key architectural changes: - * Late binding between rendering and media source components. Allows the same - rendering components to be re-used from one playback to another. Enables - features such as gapless playback through playlists and DASH multi-period - support. - * Improved track selection design. More details can be found - [here](https://medium.com/google-exoplayer/exoplayer-2-x-track-selection-2b62ff712cc9#.n00zo76b6). - * LoadControl now used to control buffering and loading across all playback - types. - * Media source components given additional structure. A new MediaSource class - has been introduced. MediaSources expose Timelines that describe the media - they expose, and can consist of multiple MediaPeriods. This enables features - such as seeking in live playbacks and DASH multi-period support. - * Responsibility for loading the initial DASH/SmoothStreaming/HLS manifest is - promoted to the corresponding MediaSource components and is no longer the - application's responsibility. - * Higher level abstractions such as SimpleExoPlayer have been added to the - library. These make the library easier to use for common use cases. The demo - app is halved in size as a result, whilst at the same time gaining more - functionality. Read more - [here](https://medium.com/google-exoplayer/exoplayer-2-x-improved-demo-app-d97171aaaaa1). - * Enhanced library support for implementing audio extensions. Read more - [here](https://medium.com/google-exoplayer/exoplayer-2-x-new-audio-features-cfb26c2883a#.ua75vu4s3). - * Format and MediaFormat are replaced by a single Format class. + * Late binding between rendering and media source components. Allows the same + rendering components to be re-used from one playback to another. Enables + features such as gapless playback through playlists and DASH multi-period + support. + * Improved track selection design. More details can be found + [here](https://medium.com/google-exoplayer/exoplayer-2-x-track-selection-2b62ff712cc9#.n00zo76b6). + * LoadControl now used to control buffering and loading across all playback + types. + * Media source components given additional structure. A new MediaSource class + has been introduced. MediaSources expose Timelines that describe the media + they expose, and can consist of multiple MediaPeriods. This enables features + such as seeking in live playbacks and DASH multi-period support. + * Responsibility for loading the initial DASH/SmoothStreaming/HLS manifest is + promoted to the corresponding MediaSource components and is no longer the + application's responsibility. + * Higher level abstractions such as SimpleExoPlayer have been added to the + library. These make the library easier to use for common use cases. The demo + app is halved in size as a result, whilst at the same time gaining more + functionality. Read more + [here](https://medium.com/google-exoplayer/exoplayer-2-x-improved-demo-app-d97171aaaaa1). + * Enhanced library support for implementing audio extensions. Read more + [here](https://medium.com/google-exoplayer/exoplayer-2-x-new-audio-features-cfb26c2883a#.ua75vu4s3). + * Format and MediaFormat are replaced by a single Format class. * Key new features: - * Playlist support. Includes support for gapless playback between playlist - items and consistent application of LoadControl and TrackSelector policies - when transitioning between items - ([#1270](https://github.com/google/ExoPlayer/issues/1270)). - * Seeking in live playbacks for DASH and SmoothStreaming - ([#291](https://github.com/google/ExoPlayer/issues/291)). - * DASH multi-period support - ([#557](https://github.com/google/ExoPlayer/issues/557)). - * MediaSource composition allows MediaSources to be concatenated into a - playlist, merged and looped. Read more - [here](https://medium.com/google-exoplayer/exoplayer-2-x-mediasource-composition-6c285fcbca1f#.zfha8qupz). - * Looping support (see above) - ([#490](https://github.com/google/ExoPlayer/issues/490)). - * Ability to query information about all tracks in a piece of media (including - those not supported by the device) - ([#1121](https://github.com/google/ExoPlayer/issues/1121)). - * Improved player controls. - * Support for PSSH in fMP4 moof atoms - ([#1143](https://github.com/google/ExoPlayer/issues/1143)). - * Support for Opus in Ogg - ([#1447](https://github.com/google/ExoPlayer/issues/1447)). - * CacheDataSource support for standalone media file playbacks (mp3, mp4 etc). - * FFMPEG extension (for audio only). + * Playlist support. Includes support for gapless playback between playlist + items and consistent application of LoadControl and TrackSelector policies + when transitioning between items + ([#1270](https://github.com/google/ExoPlayer/issues/1270)). + * Seeking in live playbacks for DASH and SmoothStreaming + ([#291](https://github.com/google/ExoPlayer/issues/291)). + * DASH multi-period support + ([#557](https://github.com/google/ExoPlayer/issues/557)). + * MediaSource composition allows MediaSources to be concatenated into a + playlist, merged and looped. Read more + [here](https://medium.com/google-exoplayer/exoplayer-2-x-mediasource-composition-6c285fcbca1f#.zfha8qupz). + * Looping support (see above) + ([#490](https://github.com/google/ExoPlayer/issues/490)). + * Ability to query information about all tracks in a piece of media (including + those not supported by the device) + ([#1121](https://github.com/google/ExoPlayer/issues/1121)). + * Improved player controls. + * Support for PSSH in fMP4 moof atoms + ([#1143](https://github.com/google/ExoPlayer/issues/1143)). + * Support for Opus in Ogg + ([#1447](https://github.com/google/ExoPlayer/issues/1447)). + * CacheDataSource support for standalone media file playbacks (mp3, mp4 etc). + * FFMPEG extension (for audio only). * Key bug fixes: - * Removed unnecessary secondary requests when playing standalone media files - ([#1041](https://github.com/google/ExoPlayer/issues/1041)). - * Fixed playback of video only (i.e. no audio) live streams - ([#758](https://github.com/google/ExoPlayer/issues/758)). - * Fixed silent failure when media buffer is too small - ([#583](https://github.com/google/ExoPlayer/issues/583)). - * Suppressed "Sending message to a Handler on a dead thread" warnings - ([#426](https://github.com/google/ExoPlayer/issues/426)). + * Removed unnecessary secondary requests when playing standalone media files + ([#1041](https://github.com/google/ExoPlayer/issues/1041)). + * Fixed playback of video only (i.e. no audio) live streams + ([#758](https://github.com/google/ExoPlayer/issues/758)). + * Fixed silent failure when media buffer is too small + ([#583](https://github.com/google/ExoPlayer/issues/583)). + * Suppressed "Sending message to a Handler on a dead thread" warnings + ([#426](https://github.com/google/ExoPlayer/issues/426)). # Legacy release notes # From 569cec7fe81250db8a7aa49447c5b96ddd57d7a2 Mon Sep 17 00:00:00 2001 From: ojw28 Date: Fri, 17 Mar 2017 21:00:45 +0000 Subject: [PATCH 06/10] Cleanup RELEASENOTES.md --- RELEASENOTES.md | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 1030cbdee4..2b0936e0d9 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -17,8 +17,9 @@ * HLS improvements: * Respect initial track selection ([#2353](https://github.com/google/ExoPlayer/issues/2353)). - * Reduced frequency of media playlist requests when playback position is close - to the live edge ([#2548](https://github.com/google/ExoPlayer/issues/2548)). + * Reduced frequency of media playlist requests when playback position is + close to the live edge + ([#2548](https://github.com/google/ExoPlayer/issues/2548)). * Exposed the master playlist through ExoPlayer.getCurrentManifest() ([#2537](https://github.com/google/ExoPlayer/issues/2537)). * Support CLOSED-CAPTIONS #EXT-X-MEDIA type @@ -30,7 +31,7 @@ * MPEG-TS improvements: * Support for multiple programs. * Support for multiple closed captions and caption service descriptors - ([#2161](https://github.com/google/ExoPlayer/issues/2161)). + ([#2161](https://github.com/google/ExoPlayer/issues/2161)). * MP3: Add `FLAG_ENABLE_CONSTANT_BITRATE_SEEKING` extractor option to enable constant bitrate seeking in MP3 files that would otherwise be unseekable ([#2445](https://github.com/google/ExoPlayer/issues/2445)). @@ -151,7 +152,7 @@ ([#2149](https://github.com/google/ExoPlayer/issues/2149)). * Avoid failure when expected ID3 header not found ([#1966](https://github.com/google/ExoPlayer/issues/1966)). - * Improvements to the upstream cache package. +* Improvements to the upstream cache package. * Support caching of media segments for DASH, HLS and SmoothStreaming. Note that caching of manifest and playlist files is still not supported in the (normal) case where the corresponding responses are compressed. @@ -227,25 +228,25 @@ some of the motivations behind ExoPlayer 2.x structure and class names have also been sanitized. Read more [here](https://medium.com/google-exoplayer/exoplayer-2-x-new-package-and-class-names-ef8e1d9ba96f#.lv8sd4nez). * Key architectural changes: - * Late binding between rendering and media source components. Allows the same - rendering components to be re-used from one playback to another. Enables - features such as gapless playback through playlists and DASH multi-period - support. + * Late binding between rendering and media source components. Allows the + same rendering components to be re-used from one playback to another. + Enables features such as gapless playback through playlists and DASH + multi-period support. * Improved track selection design. More details can be found [here](https://medium.com/google-exoplayer/exoplayer-2-x-track-selection-2b62ff712cc9#.n00zo76b6). * LoadControl now used to control buffering and loading across all playback types. - * Media source components given additional structure. A new MediaSource class - has been introduced. MediaSources expose Timelines that describe the media - they expose, and can consist of multiple MediaPeriods. This enables features - such as seeking in live playbacks and DASH multi-period support. - * Responsibility for loading the initial DASH/SmoothStreaming/HLS manifest is - promoted to the corresponding MediaSource components and is no longer the - application's responsibility. + * Media source components given additional structure. A new MediaSource + class has been introduced. MediaSources expose Timelines that describe the + media they expose, and can consist of multiple MediaPeriods. This enables + features such as seeking in live playbacks and DASH multi-period support. + * Responsibility for loading the initial DASH/SmoothStreaming/HLS manifest + is promoted to the corresponding MediaSource components and is no longer + the application's responsibility. * Higher level abstractions such as SimpleExoPlayer have been added to the - library. These make the library easier to use for common use cases. The demo - app is halved in size as a result, whilst at the same time gaining more - functionality. Read more + library. These make the library easier to use for common use cases. The + demo app is halved in size as a result, whilst at the same time gaining + more functionality. Read more [here](https://medium.com/google-exoplayer/exoplayer-2-x-improved-demo-app-d97171aaaaa1). * Enhanced library support for implementing audio extensions. Read more [here](https://medium.com/google-exoplayer/exoplayer-2-x-new-audio-features-cfb26c2883a#.ua75vu4s3). @@ -264,19 +265,20 @@ some of the motivations behind ExoPlayer 2.x [here](https://medium.com/google-exoplayer/exoplayer-2-x-mediasource-composition-6c285fcbca1f#.zfha8qupz). * Looping support (see above) ([#490](https://github.com/google/ExoPlayer/issues/490)). - * Ability to query information about all tracks in a piece of media (including - those not supported by the device) + * Ability to query information about all tracks in a piece of media + (including those not supported by the device) ([#1121](https://github.com/google/ExoPlayer/issues/1121)). * Improved player controls. * Support for PSSH in fMP4 moof atoms ([#1143](https://github.com/google/ExoPlayer/issues/1143)). * Support for Opus in Ogg ([#1447](https://github.com/google/ExoPlayer/issues/1447)). - * CacheDataSource support for standalone media file playbacks (mp3, mp4 etc). + * CacheDataSource support for standalone media file playbacks (mp3, mp4 + etc). * FFMPEG extension (for audio only). * Key bug fixes: - * Removed unnecessary secondary requests when playing standalone media files - ([#1041](https://github.com/google/ExoPlayer/issues/1041)). + * Removed unnecessary secondary requests when playing standalone media + files ([#1041](https://github.com/google/ExoPlayer/issues/1041)). * Fixed playback of video only (i.e. no audio) live streams ([#758](https://github.com/google/ExoPlayer/issues/758)). * Fixed silent failure when media buffer is too small From 646f6a74c94e4ffb228ea018b61fff1eeb59e966 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Thu, 23 Mar 2017 17:44:47 +0000 Subject: [PATCH 07/10] Fix NullPointerException enabling WebVtt subtitles in DASH Issue: #2596 --- .../source/dash/DefaultDashChunkSource.java | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java b/library/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java index 7ccea8a2a6..a6e909ddac 100644 --- a/library/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java +++ b/library/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java @@ -180,23 +180,24 @@ public class DefaultDashChunkSource implements DashChunkSource { RepresentationHolder representationHolder = representationHolders[trackSelection.getSelectedIndex()]; - Representation selectedRepresentation = representationHolder.representation; - DashSegmentIndex segmentIndex = representationHolder.segmentIndex; - RangedUri pendingInitializationUri = null; - RangedUri pendingIndexUri = null; - if (representationHolder.extractorWrapper.getSampleFormats() == null) { - pendingInitializationUri = selectedRepresentation.getInitializationUri(); - } - if (segmentIndex == null) { - pendingIndexUri = selectedRepresentation.getIndexUri(); - } - if (pendingInitializationUri != null || pendingIndexUri != null) { - // We have initialization and/or index requests to make. - out.chunk = newInitializationChunk(representationHolder, dataSource, - trackSelection.getSelectedFormat(), trackSelection.getSelectionReason(), - trackSelection.getSelectionData(), pendingInitializationUri, pendingIndexUri); - return; + if (representationHolder.extractorWrapper != null) { + Representation selectedRepresentation = representationHolder.representation; + RangedUri pendingInitializationUri = null; + RangedUri pendingIndexUri = null; + if (representationHolder.extractorWrapper.getSampleFormats() == null) { + pendingInitializationUri = selectedRepresentation.getInitializationUri(); + } + if (representationHolder.segmentIndex == null) { + pendingIndexUri = selectedRepresentation.getIndexUri(); + } + if (pendingInitializationUri != null || pendingIndexUri != null) { + // We have initialization and/or index requests to make. + out.chunk = newInitializationChunk(representationHolder, dataSource, + trackSelection.getSelectedFormat(), trackSelection.getSelectionReason(), + trackSelection.getSelectionData(), pendingInitializationUri, pendingIndexUri); + return; + } } long nowUs = getNowUnixTimeUs(); From 23b5921b828be728a345bcf4088edcd736f52ade Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Thu, 23 Mar 2017 17:46:12 +0000 Subject: [PATCH 08/10] Fix typo on CEA-708 decoder Issue: #2595 --- .../com/google/android/exoplayer2/text/cea/Cea708Decoder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/google/android/exoplayer2/text/cea/Cea708Decoder.java b/library/src/main/java/com/google/android/exoplayer2/text/cea/Cea708Decoder.java index 740fd17013..8fd70f7a67 100644 --- a/library/src/main/java/com/google/android/exoplayer2/text/cea/Cea708Decoder.java +++ b/library/src/main/java/com/google/android/exoplayer2/text/cea/Cea708Decoder.java @@ -483,7 +483,7 @@ public final class Cea708Decoder extends CeaDecoder { private void handleC2Command(int command) { // C2 Table doesn't contain any commands in CEA-708-B, but we do need to skip bytes - if (command <= 0x0F) { + if (command <= 0x07) { // Do nothing. } else if (command <= 0x0F) { serviceBlockPacket.skipBits(8); From c96f18f5ce4264752c39482a4b2a3b996663fc22 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Thu, 23 Mar 2017 17:46:43 +0000 Subject: [PATCH 09/10] Fix skipping to keyframe to use correct position Issue: #2575 --- .../main/java/com/google/android/exoplayer2/BaseRenderer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java b/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java index f65be3afcd..f6aae200dd 100644 --- a/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java @@ -311,7 +311,7 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { * @param timeUs The specified time. */ protected void skipToKeyframeBefore(long timeUs) { - stream.skipToKeyframeBefore(timeUs); + stream.skipToKeyframeBefore(timeUs - streamOffsetUs); } } From 6503f016e9b54b6818f04d364727f5d6d3407443 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Thu, 23 Mar 2017 17:59:20 +0000 Subject: [PATCH 10/10] Update release notes + bump versions --- RELEASENOTES.md | 9 +++++++++ build.gradle | 2 +- demo/src/main/AndroidManifest.xml | 4 ++-- .../google/android/exoplayer2/ExoPlayerLibraryInfo.java | 4 ++-- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 2b0936e0d9..a0c750660d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,14 @@ # Release notes # +### r2.3.1 ### + +* Fix NPE enabling WebVTT subtitles in DASH streams + ([#2596](https://github.com/google/ExoPlayer/issues/2596)). +* Fix skipping to keyframes when MediaCodecVideoRenderer is enabled but without + a Surface ([#2575](https://github.com/google/ExoPlayer/issues/2575)). +* Minor fix for CEA-708 decoder + ([#2595](https://github.com/google/ExoPlayer/issues/2595)). + ### r2.3.0 ### * GVR extension: Wraps the Google VR Audio SDK to provide spatial audio diff --git a/build.gradle b/build.gradle index f1901a1270..9883c04e54 100644 --- a/build.gradle +++ b/build.gradle @@ -37,7 +37,7 @@ allprojects { releaseRepoName = getBintrayRepo() releaseUserOrg = 'google' releaseGroupId = 'com.google.android.exoplayer' - releaseVersion = 'r2.3.0' + releaseVersion = 'r2.3.1' releaseWebsite = 'https://github.com/google/ExoPlayer' } } diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml index a834c5df19..9a6e1a4d3a 100644 --- a/demo/src/main/AndroidManifest.xml +++ b/demo/src/main/AndroidManifest.xml @@ -16,8 +16,8 @@ + android:versionCode="2301" + android:versionName="2.3.1"> diff --git a/library/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java b/library/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java index 5ec7fac5dd..bee9904590 100644 --- a/library/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java +++ b/library/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java @@ -23,7 +23,7 @@ public interface ExoPlayerLibraryInfo { /** * The version of the library, expressed as a string. */ - String VERSION = "2.3.0"; + String VERSION = "2.3.1"; /** * The version of the library, expressed as an integer. @@ -32,7 +32,7 @@ public interface ExoPlayerLibraryInfo { * corresponding integer version 1002003 (001-002-003), and "123.45.6" has the corresponding * integer version 123045006 (123-045-006). */ - int VERSION_INT = 2003000; + int VERSION_INT = 2003001; /** * Whether the library was compiled with {@link com.google.android.exoplayer2.util.Assertions}