49910fe | Oliver Woodman | 18 February 2020, 15:02:33 UTC | Merge pull request #6989 from google/dev-v2-r2.11.3 r2.11.3 | 18 February 2020, 15:02:33 UTC |
b14d879 | Oliver Woodman | 18 February 2020, 14:47:58 UTC | Tweak Javadoc | 18 February 2020, 14:47:58 UTC |
5f1c6b6 | olly | 17 February 2020, 14:55:45 UTC | Fix SmoothStreaming Issue: #6981 PiperOrigin-RevId: 295579872 | 18 February 2020, 12:15:13 UTC |
d93b57c | olly | 17 February 2020, 14:23:06 UTC | Zero out trailing bytes in CryptoInfo.iv CryptoInfo.iv length is always 16. When the actual initialization vector is shorter, zero out the trailing bytes. Issue: #6982 PiperOrigin-RevId: 295575845 | 18 February 2020, 12:14:34 UTC |
a967ff3 | kimvde | 17 February 2020, 10:11:06 UTC | Fix DefaultExtractorsFactory Javadoc PiperOrigin-RevId: 295540885 | 18 February 2020, 12:11:29 UTC |
cd0999e | olly | 18 February 2020, 10:56:25 UTC | Bump version to 2.11.3 PiperOrigin-RevId: 295695297 | 18 February 2020, 12:10:24 UTC |
fd24df3 | olly | 11 February 2020, 21:09:05 UTC | Fix demo app download notification PiperOrigin-RevId: 294503035 | 13 February 2020, 18:14:21 UTC |
62092e6 | Oliver Woodman | 13 February 2020, 18:11:29 UTC | Merge pull request #6888 from google/dev-v2-r2.11.2 r2.11.2 | 13 February 2020, 18:11:29 UTC |
0740e3c | Oliver Woodman | 13 February 2020, 18:08:54 UTC | Fix release date | 13 February 2020, 18:08:54 UTC |
fefe461 | aquilescanta | 10 February 2020, 12:27:08 UTC | Revert accidental change in media.exolist. PiperOrigin-RevId: 294193213 | 13 February 2020, 18:06:09 UTC |
646e690 | andrewlewis | 06 February 2020, 10:36:36 UTC | Add GL demo app Demonstrates rendering to a GLSurfaceView while applying a GL shader. Issue: #6920 PiperOrigin-RevId: 293551724 | 13 February 2020, 16:52:20 UTC |
19c8858 | aquilescanta | 10 February 2020, 11:38:27 UTC | Prepare and release DrmSessionManager in Renderers Issue: #6951 PiperOrigin-RevId: 294187695 | 13 February 2020, 15:53:05 UTC |
67a748f | kimvde | 03 February 2020, 14:45:37 UTC | FLAC extension: remove sample rate check This check is not needed because the FLAC specification does not restrict the sample rate value and because the extension reads files with other sample rates properly. PiperOrigin-RevId: 292909391 | 13 February 2020, 15:50:20 UTC |
890fd4e | olly | 03 February 2020, 14:43:34 UTC | Don't re-init codec if DRM session is unchanged This condition is trying to detect when it might be necessary to switch from a non-secure to a secure codec. This is not possible if the DRM session is unchanged, unless a different codec is required for some other reason (e.g., H264 -> H265), which is anyway handled by canKeepCodec below. PiperOrigin-RevId: 292909126 | 03 February 2020, 14:46:08 UTC |
b7c5f5c | olly | 03 February 2020, 11:04:33 UTC | Avoid unnecessary decoder instantiations on key rotation Issue: #6903 PiperOrigin-RevId: 292884280 | 03 February 2020, 11:24:25 UTC |
45cb55c | olly | 31 January 2020, 15:36:08 UTC | Lock down SampleQueue to reasonable extension points PiperOrigin-RevId: 292542298 | 01 February 2020, 19:40:07 UTC |
ee2ad94 | bachinger | 30 January 2020, 21:44:55 UTC | annotate nullabilty of CommandReceiver Issue: #6938 PiperOrigin-RevId: 292415853 | 01 February 2020, 19:39:43 UTC |
0cc1eba | andrewlewis | 30 January 2020, 15:53:20 UTC | Add missing AV1 extension path to .gitignore PiperOrigin-RevId: 292347360 | 01 February 2020, 19:39:28 UTC |
fd88115 | olly | 30 January 2020, 12:37:28 UTC | HLS: Fix key rotation Passing EXT-X-KEY DrmInitData through the FragmentedMp4Extractor doesn't work for streams with key rotation, because an extractor instance is used for multiple segments, but is only passed the EXT-X-KEY DrmInitData corresponding to the first segment. This change removes passing DrmInitData through the extractor, and instead passes it via FormatAdjustingSampleQueue. This is in-line with how manifest DrmInitData is handled during DASH playbacks. Issue: #6903 PiperOrigin-RevId: 292323429 | 01 February 2020, 19:39:06 UTC |
850aef4 | olly | 30 January 2020, 11:14:55 UTC | SampleQueue: Let subclasses easily invalidate format adjustment This is a nice-regardless improvement to SampleQueue, which will likely to used to fix the referenced issue. It makes it possible for SampleQueue subclasses to support dynamic changes to format adjustment in a non-hacky way. Issue: #6903 PiperOrigin-RevId: 292314720 | 01 February 2020, 19:38:06 UTC |
12bb358 | olly | 28 January 2020, 11:20:11 UTC | Expand dangal workaround to all API levels It doesn't seem worth keeping the cap, since the device will presumably stop receiving major version updates at some point anyway. Issue: #6899 PiperOrigin-RevId: 291899439 | 01 February 2020, 19:37:20 UTC |
3e75d2a | Oliver Woodman | 27 January 2020, 19:12:02 UTC | Fix demo app | 27 January 2020, 19:13:24 UTC |
fbe840e | olly | 27 January 2020, 12:04:40 UTC | Upgrade OkHttp dependency to 3.12.8 OkHttp 3.12.7 introduced a regression, which was fixed in 3.12.8. PiperOrigin-RevId: 291695577 | 27 January 2020, 19:08:45 UTC |
d1703ad | ibaker | 21 January 2020, 20:04:08 UTC | Ensure the demo app requests local-file permissions for subtitle files Currently we only do this for the main sample URI, not for subtitles. So pairing a web-based video file with a local subtitle file on a fresh install just throws a 'permission denied' exception. PiperOrigin-RevId: 290794091 | 27 January 2020, 19:07:41 UTC |
b59a1b8 | andrewlewis | 20 January 2020, 13:14:44 UTC | Remove duplicate release note PiperOrigin-RevId: 290600248 | 27 January 2020, 19:06:57 UTC |
c79cb1b | tonihei | 20 January 2020, 12:15:27 UTC | Add ID3 genres added in Wimamp 5.6 (2010). All these genres are currently causing a warning and are not added to the Metadata.Entry. PiperOrigin-RevId: 290594810 | 27 January 2020, 19:06:36 UTC |
7aefaa7 | olly | 17 January 2020, 20:16:39 UTC | extensions/av1: use -O2 for release builds + force arm (over thumb) mode for 32-bit builds -O2 improves performance ~30-40% over the default -Oz depending on the resolution; this is similar to what is done for vp9 which uses -O3. PiperOrigin-RevId: 290318121 | 27 January 2020, 19:06:17 UTC |
ce1ec1d | olly | 17 January 2020, 16:36:41 UTC | Release notes: Move download segment merging out of 2.11.2 PiperOrigin-RevId: 290276507 | 17 January 2020, 17:00:34 UTC |
b137cfb | olly | 17 January 2020, 15:58:25 UTC | Tidy up DownloadService restart. Final change for #6798. - Add additional Listener methods to DownloadManager, to inform of changes to whether the downloads are paused or waiting for requirements. - Only schedule the Scheduler if we really are waiting for requirements. - Only restart the service if we're no longer waiting for requirements, and if there are queued downloads that will now be restarted. Previously the service would be restarted whenever the requirements were met, regardless of whether there was any work to do. - Restart service if it might be stopping, as well as if it's already stopped. Also restart service if there's a download state change to a state for which the service should be started, if. Issue: #6798 PiperOrigin-RevId: 290270547 | 17 January 2020, 16:16:52 UTC |
0a2373c | olly | 17 January 2020, 15:47:36 UTC | 2.11.2 release notes and version bump PiperOrigin-RevId: 290269098 | 17 January 2020, 16:16:36 UTC |
49349f0 | krocard | 17 January 2020, 09:57:01 UTC | Do not hold a codec in OnFrameRenderedListener Doing so prevent Codec which is a big object with JNI to be garbage collected. As the codec can not be hold in the listener, there is no way to call release, as it must be called on the same codec. As a result the release method is also removed. The downside is that at runtime some callbacks may be dropped but it should be a short transitive state. This also simplifies lifecycle of the listener as the client does not have to know if release needs to be called or not. An alternative would have been to hold a weak ref, but I deemed it too complicated for the runtime gain. PiperOrigin-RevId: 290231659 | 17 January 2020, 16:14:51 UTC |
ea47116 | Oliver Woodman | 17 January 2020, 14:04:46 UTC | Fix build | 17 January 2020, 14:30:48 UTC |
f146bad | olly | 16 January 2020, 20:11:20 UTC | HLS: Fix slow seeking into long MP3 segments Issue: #6155 PiperOrigin-RevId: 290117324 | 17 January 2020, 14:02:33 UTC |
0456b63 | kimvde | 16 January 2020, 17:14:50 UTC | FlacExtractor: handle case where last frame < MAX_FRAME_HEADER_SIZE PiperOrigin-RevId: 290079840 | 17 January 2020, 14:02:29 UTC |
e202560 | krocard | 16 January 2020, 17:13:51 UTC | Tunneling timestamp use Message instead of Runnable This avoids allocating a Runnable. PiperOrigin-RevId: 290079660 | 17 January 2020, 14:02:16 UTC |
0ac22d3 | olly | 16 January 2020, 16:09:28 UTC | Start service in foreground if allowed This fixes an issue where a DownloadService implementation that allows foreground but doesn't provide a scheduler would not be restarted in the case that it was still in memory but classed as idle by the platform. It also speeds up service restart in the case that a scheduler is provided. Issue: #6798 PiperOrigin-RevId: 290068960 | 17 January 2020, 14:01:50 UTC |
f35cb8a | olly | 16 January 2020, 14:17:28 UTC | Split SampleQueue.advanceTo for advance & seek use cases This method has two use cases: 1. Seeking. Calls are immediately preceded by a call to rewind(), and the returned value isn't important unless it's ADVANCED_FAILED (i.e. the caller is only interested in success and failure). 2. Advancing. The return value is important unless it's ADVANCED_FAILED, in which case the caller wants to treat it as 0. This change creates separate methods for each use case. The new seekTo methods automatically rewind and return a boolean. The updated advanceTo method returns 0 directly in cases where ADVANCED_FAILED was returned. Arguments that were always hard-coded to true by callers have also been removed. This change is a step toward one possible solution for #6155. How we'll solve that issue is still up for discussion, but this change seems like one we should make regardless! Issue: #6155 PiperOrigin-RevId: 290053743 | 17 January 2020, 14:01:45 UTC |
dfa4d55 | olly | 16 January 2020, 13:49:25 UTC | Fix DownloadService resumption - DownloadManagerHelper now passes all downloads to the DownloadService when the service is attached (and once the downloads are known). The service then starts the foreground notification updater if necessary. This fixes the ref'd issue. - Don't call getScheduler() if the service is background only. This was already documented to be the case on the DownloadService constructor. - If the service is started in the foreground on SDK level 26 and higher, satisfy the condition to move the service to the foreground in onStartCommand rather than in stop(). It's much more obviously correct, and should produce the same end result. Issue: #6798 PiperOrigin-RevId: 290050024 | 17 January 2020, 14:01:38 UTC |
c269ffe | Oliver Woodman | 16 January 2020, 13:52:37 UTC | Merge pull request #6603 from TiVo:fix-tunneling-stuck-release PiperOrigin-RevId: 290041295 | 17 January 2020, 14:00:33 UTC |
38bc735 | Oliver Woodman | 16 January 2020, 13:52:08 UTC | Merge pull request #6678 from phhusson:feature/enable-multi-metadata-tracks PiperOrigin-RevId: 290032841 | 17 January 2020, 13:59:48 UTC |
5bdcb5f | olly | 15 January 2020, 14:09:06 UTC | DASH: Output Format before InitializationChunk load completes This optimization allows a ChunkSampleStream to output track formats as soon as they're parsed during an InitializationChunk load, rather than waiting until after the InitializationChunk load is completed. In DASH VOD, a single InitializationChunk typically loads the moov and sidx atoms in that order. Hence for long form content where the sidx is a non-trivial size, this may result in the track formats being output a non-negligible period of time sooner than was previously the case. This allows downstream renderers to start codec initialization sooner, potentially decreasing startup latency. For a single test stream on a fast & stable network, this pretty consistently reduced elapsed time until both audio and video codecs have been initialized from ~0.5s to ~0.3 seconds on a Galaxy S8. For 5 test runs without and with these patches, the eventTime logged by EventLogger for the second decoder init were: Without (secs): 0.47 0.47 0.45 0.48 0.46 With (secs) : 0.32 0.33 0.34 0.31 0.40 PiperOrigin-RevId: 289845089 | 17 January 2020, 13:59:37 UTC |
1245102 | olly | 15 January 2020, 13:44:13 UTC | Optimize chunks to init their outputs before opening the DataSource The current order of operations means that the Format is only passed to the chunk's output after the DataSource has been opened. This means that establishing the network connection and the downstream renderers initializing their codecs are effectively serialized to occur one after the other. In the new order, the Format is passed to the chunk's output before the DataSource has been opened. This allows the downstream renderers to initialize their codecs in parallel with the network connection being established, and hence latency at the start of playback is reduced. PiperOrigin-RevId: 289841854 | 17 January 2020, 13:59:33 UTC |
771aa32 | olly | 14 January 2020, 16:36:16 UTC | Use customCacheKey in DownloadHelper.createMediaSource Issue: #6870 PiperOrigin-RevId: 289658261 | 17 January 2020, 13:59:22 UTC |
3202160 | olly | 13 January 2020, 20:05:32 UTC | Rename ID3 tag to Afro-Punk PiperOrigin-RevId: 289490708 | 17 January 2020, 13:58:22 UTC |
4e4a415 | olly | 13 January 2020, 13:49:08 UTC | DownloadService: No-op cleanup Issue: #6798 PiperOrigin-RevId: 289424582 | 17 January 2020, 13:58:18 UTC |
61130a5 | olly | 13 January 2020, 12:51:34 UTC | Deprecate DownloadService state change methods As discovered whilst investigating #6798, there are cases where these methods are not correctly. They were added as convenience methods that could be overridden by concrete DownloadService implementations, but since they don't work properly it's preferable to require application code to listen to their DownloadManager directly instead. Notes: - The original proposal to fix #6798 stored the state change events in memory until they could be delivered. This approach is not ideal because the events still end up being delivered later than they should be. We also want to fix the root cause in a different way that does not require doing this. - This change does not fix #6798. It's a preparatory step. Issue: #6798 PiperOrigin-RevId: 289418555 | 17 January 2020, 13:58:11 UTC |
865e014 | olly | 13 January 2020, 12:29:10 UTC | PlayerTrackEmsgHandler: Release sample queue in release() This change makes it clear the SampleQueue doesn't outlive the wrapping PlayerTrackEmsgHandler, and releases it from PlayerTrackEmsgHandler.release(). This change is a no-op because calling release() is the same as reset() in this case (the behavior only differs if a non-dummy DrmSessionManager is being used). PiperOrigin-RevId: 289416622 | 17 January 2020, 13:58:07 UTC |
cebad35 | aquilescanta | 10 January 2020, 22:39:11 UTC | Split HlsSampleStreamWrapper.init into two methods As a result, onMediaChunkLoadStarted gets invoked on the loading thread, and init on the playback thread, matching the thread access comments. Issue:#6321 PiperOrigin-RevId: 289167981 | 17 January 2020, 13:58:03 UTC |
2902452 | Oliver Woodman | 10 January 2020, 15:57:40 UTC | Merge pull request #6797 from DolbyLaboratories:dev-v2-ac4-drm PiperOrigin-RevId: 289092332 | 17 January 2020, 13:57:58 UTC |
ca11e56 | olly | 10 January 2020, 15:48:09 UTC | Add tests to validate FLAC decoder output PiperOrigin-RevId: 289091494 | 17 January 2020, 13:57:41 UTC |
f4271f5 | olly | 10 January 2020, 09:54:22 UTC | Add favicon to javadocs. b/145393567 PiperOrigin-RevId: 289054937 | 17 January 2020, 13:56:55 UTC |
91d9405 | olly | 09 January 2020, 17:28:05 UTC | Avoid OMX.qti.audio.decoder.flac Unfortunately devices such as the MI 8 do not provide an alternative working decoder. Some Vivo devices do provide one though. PiperOrigin-RevId: 288911897 | 17 January 2020, 13:56:51 UTC |
4e767fa | olly | 09 January 2020, 10:13:25 UTC | Fix extension FLAC decoder to correctly handle non-16-bit depths PiperOrigin-RevId: 288860159 | 17 January 2020, 13:56:35 UTC |
b35499f | andrewlewis | 09 January 2020, 09:32:42 UTC | Resolve TrueHD spec TODO PiperOrigin-RevId: 288855515 | 17 January 2020, 13:56:31 UTC |
91d2d8b | Oliver Woodman | 08 January 2020, 22:15:53 UTC | Merge pull request #6836 from DolbyLaboratories:dev-v2-refineAC4 PiperOrigin-RevId: 288772277 | 17 January 2020, 13:56:09 UTC |
42897b2 | kimvde | 08 January 2020, 17:21:09 UTC | FlacExtractor: add condition for zero-length reads This improves readability by making clearer that reading no bytes from the input in readFrames() is an expected case if the buffer is full. PiperOrigin-RevId: 288711841 | 17 January 2020, 13:56:03 UTC |
6395d44 | tonihei | 08 January 2020, 17:20:19 UTC | Disable chronometer for playback speeds != 1.0 This doesn't work because the Chronometer text layout can only count in realtime. Issue:#6816 PiperOrigin-RevId: 288711702 | 17 January 2020, 13:55:58 UTC |
e1a110e | andrewlewis | 08 January 2020, 15:04:46 UTC | Fix TrueHD chunking in Matroska Issue: #6845 PiperOrigin-RevId: 288688716 | 17 January 2020, 13:55:49 UTC |
7fe55cd | kimvde | 08 January 2020, 11:48:58 UTC | Use FlacLibrary.isAvailable in FlacExtractor selection PiperOrigin-RevId: 288667790 | 17 January 2020, 13:55:40 UTC |
bf9a61d | olly | 08 January 2020, 09:10:41 UTC | Upgrade OkHttp library to fix HTTP2 issue Issue: #4078 PiperOrigin-RevId: 288651166 | 17 January 2020, 13:55:24 UTC |
eb0acb4 | olly | 07 January 2020, 11:47:25 UTC | Fix playback for Vivo codecs that output non-16-bit audio PiperOrigin-RevId: 288468497 | 17 January 2020, 13:55:02 UTC |
d1839f1 | kimvde | 07 January 2020, 11:03:42 UTC | Add comment explaining FlacBinarySearchSeeker output PiperOrigin-RevId: 288464154 | 17 January 2020, 13:54:58 UTC |
20e7684 | olly | 06 January 2020, 16:21:38 UTC | FlacExtractor: Fix possible skipping of frame boundaries PiperOrigin-RevId: 288304477 | 17 January 2020, 13:54:47 UTC |
be3257e | kimvde | 06 January 2020, 13:41:53 UTC | Simulate IO exceptions in all FlacExtractor tests - Simulate IO exceptions in the test using FlacBinarySearchSeeker for seeking in FlacExtractorTests. This makes the test slower but covers more test cases. PiperOrigin-RevId: 288285057 | 17 January 2020, 13:54:37 UTC |
1f85cd9 | olly | 06 January 2020, 14:51:34 UTC | Remove WavExtractor from the nullness blacklist PiperOrigin-RevId: 288292488 | 17 January 2020, 13:54:33 UTC |
d609c3b | tonihei | 06 January 2020, 12:54:05 UTC | Support 5G in network type detection PiperOrigin-RevId: 288280500 | 17 January 2020, 13:54:27 UTC |
63eaf11 | ibaker | 06 January 2020, 11:48:54 UTC | Fix MatroskaExtractor to use blockDurationUs not durationUs This typo was introduced in https://github.com/google/ExoPlayer/commit/ddb70d96ad99f07fe10f53a76ce3262fe625be70 when migrating a static method with parameter `durationUs` to an instance method where the correct field to use was `blockDurationUs` (but `durationUs` also exists). The test that catches this was only added in https://github.com/google/ExoPlayer/commit/45013ece1e3fe054ff8960355a89559241eeb288 (and therefore configured with the wrong expected output data). issue:#6833 PiperOrigin-RevId: 288274197 | 17 January 2020, 13:53:43 UTC |
1b764c2 | kimvde | 03 January 2020, 12:11:10 UTC | Add unit tests to FLAC extractor related classes PiperOrigin-RevId: 287973192 | 17 January 2020, 13:52:54 UTC |
97be065 | olly | 03 January 2020, 16:59:05 UTC | Use MIME types rather than PCM encodings for ALAW and MLAW PiperOrigin-RevId: 287999703 | 17 January 2020, 13:52:47 UTC |
1f505fa | andrewlewis | 03 January 2020, 10:22:27 UTC | Show ad markers after the window duration Issue: #6552 PiperOrigin-RevId: 287964221 | 17 January 2020, 13:52:39 UTC |
90a67b5 | olly | 02 January 2020, 18:19:41 UTC | Add support for IMA ADPCM in WAV PiperOrigin-RevId: 287854701 | 17 January 2020, 13:52:33 UTC |
ef0066f | olly | 02 January 2020, 14:44:16 UTC | Support twos codec in MP4 Issue: #5789 PiperOrigin-RevId: 287828559 | 17 January 2020, 13:52:29 UTC |
0e1670b | olly | 02 January 2020, 14:40:47 UTC | Document overriding of drawables for PlayerControlView Issue: #6779 PiperOrigin-RevId: 287828273 | 17 January 2020, 13:52:24 UTC |
b36c5e9 | olly | 02 January 2020, 13:13:31 UTC | Document overriding drawables for notifications Issue: #6266 PiperOrigin-RevId: 287821640 | 17 January 2020, 13:52:20 UTC |
7fd0b1d | andrewlewis | 02 January 2020, 12:02:41 UTC | Fix handling of E-AC-3 streams with AC-3 frames Issue: #6602 PiperOrigin-RevId: 287816831 | 17 January 2020, 13:52:16 UTC |
1edcc6c | olly | 02 January 2020, 11:37:03 UTC | Don't use WavHeader.averageBytesPerSecond It's unreliable for at least one IMA ADPCM file I've found. Calculating the blockIndex to seek to using exact properties also seems more robust. Note this doesn't change anything for the existing PCM test, since averageBytesPerSecond is set correctly. It does make a difference for an upcoming IMA ADPCM test though. PiperOrigin-RevId: 287814947 | 17 January 2020, 13:52:11 UTC |
3cf88bb | andrewlewis | 02 January 2020, 10:29:16 UTC | Fix typos PiperOrigin-RevId: 287810018 | 17 January 2020, 13:52:06 UTC |
3bce213 | olly | 20 December 2019, 20:23:02 UTC | Fix handling of network transitions in RequirementsWatcher Issue: #6733 PiperOrigin-RevId: 286621715 | 17 January 2020, 13:51:34 UTC |
355b3af | olly | 18 December 2019, 16:35:43 UTC | Read arrays directly from Parcel PiperOrigin-RevId: 286197990 | 17 January 2020, 13:50:52 UTC |
54f6f48 | krocard | 18 December 2019, 09:20:28 UTC | Parse MP3 header to retrieve the nb of sample per frames Add support for MP3 as an encoding format for passthrough. This change does not change the observable behavior of Exoplayer. Also name the magics. #exo-offload PiperOrigin-RevId: 286146539 | 17 January 2020, 13:50:43 UTC |
37e65ec | kimvde | 16 December 2019, 20:20:20 UTC | Add FlacExtractorSeekTest PiperOrigin-RevId: 285823771 | 17 January 2020, 13:50:12 UTC |
fcac5af | kimvde | 16 December 2019, 19:19:43 UTC | Fix FlacExtractor construction Fix the FlacExtractor constructor for the case where seek(0,0) is not called before reading. PiperOrigin-RevId: 285811161 | 17 January 2020, 13:50:04 UTC |
bf9f49a | kimvde | 16 December 2019, 18:29:27 UTC | Implement seeking from seektable in FLAC extractor PiperOrigin-RevId: 285799995 | 17 January 2020, 13:50:01 UTC |
7bd912f | olly | 16 December 2019, 13:05:09 UTC | Clean up WavExtractor PCM output - Make extractor output samples that are uniformly distributed with respect to time, with a target of ~10 samples per second. The old approach could in theory put every frame into its own sample, which would be very inefficient downstream because we'd need to pass them individually to MediaCodec. It could also put data corresponding to a long duration of time into a single sample (e.g. if the sample rate of the content is low), which is bad downstream because we decide whether to set the decodeOnly flag on a per sample basis. More generally, the new approach is more predictable :). - Stop using the WavSeekMap to get sample timestamps, and instead calculate them directly from the number of frames output. It's more obviously correct, particularly for data formats like IMA ADPCM where we'll need to adjust the data prior to output. PiperOrigin-RevId: 285750010 | 17 January 2020, 13:49:57 UTC |
27b06e9 | andrewlewis | 16 December 2019, 08:33:53 UTC | Fix ParameterName warnings in core tests PiperOrigin-RevId: 285716982 | 17 January 2020, 13:49:29 UTC |
80e3152 | olly | 13 December 2019, 16:51:06 UTC | Make it easier to update extractor test dump files PiperOrigin-RevId: 285407744 | 17 January 2020, 13:49:18 UTC |
052550e | olly | 13 December 2019, 16:39:13 UTC | Rename getPhysicalDisplaySize to getCurrentDisplayModeSize PiperOrigin-RevId: 285405910 | 17 January 2020, 13:49:05 UTC |
18cdd8e | ibaker | 13 December 2019, 14:26:40 UTC | Add ISO-8859-1 awareness to IcyDecoder Also change IcyInfo.rawMetatadata from String to byte[] ICY doesn't specify the character encoding, and there are streams not using UTF-8 (issue:#6753). It seems the default of at least one server is ISO-8859-1 so let's support that as a fallback: https://github.com/savonet/liquidsoap/issues/411#issuecomment-288759200 Also update IcyDecoder to skip strings it doesn't recognise at all instead of decoding invalid characters. The feed from issue:#6753 now decodes accents correctly: EventLogger: ICY: title="D Pai - Le temps de la rentrée", url="null" PiperOrigin-RevId: 285388522 | 17 January 2020, 13:46:57 UTC |
5737815 | tonihei | 13 December 2019, 13:56:26 UTC | Remove API version dependency of Util.normalizeLanguageCode We previously used Locale.fromLanguageTag and then toLanguageTag to automatically filter out invalid tags and to replace deprecated tags. However, this only works for API 21+. This change does no longer rely on the platform methods and instead: 1. Keeps invalid tags as they are. This may help if developers rely on non-spec-complaint language tags (for example, #6681). 2. Adds a list of deprcated tags and their modern replacements to our code 3. Normalizes some short codes that have been superseded by macrolanguage codes by their macrolanguage equivalent. Issue:#6681 PiperOrigin-RevId: 285384841 | 17 January 2020, 13:43:30 UTC |
c832896 | kimvde | 12 December 2019, 20:06:59 UTC | Refactor sample number computation in FLAC seeking Retrieve the sample number in the extractor instead of passing a holder to FlacBinarySearchSeeker. This change makes the code easier to understand and is required to implement the seeking from the seek table. PiperOrigin-RevId: 285241862 | 17 January 2020, 13:43:16 UTC |
4ea913f | olly | 12 December 2019, 19:51:03 UTC | Create WavExtractor.OutputWriter to handle different data formats - Create PcmOutputWriter for PCM. - In a future change an ImaAdPcmOutputWriter will be introduced for IMA ADPCM support. PiperOrigin-RevId: 285238246 | 17 January 2020, 13:43:12 UTC |
d62dc9d | olly | 12 December 2019, 19:26:10 UTC | Remove assumption that WAV files only contain PCM encoded data - WavHeader is now immutable and contains only values parsed out of the WAVE FMT chunk. It no longer contains a C.PcmEncoding encoding, or mutable data bounds. - WavHeaderReader now parses the WAVE header chunks without any additional logic (e.g. validating the block alignment value, which is format type dependent). - The SeekMap part of WavHeader is split out into WavSeekMap. PiperOrigin-RevId: 285232498 | 17 January 2020, 13:43:07 UTC |
1144926 | olly | 11 December 2019, 12:47:05 UTC | Add WavHeader.samplesPerBlock (currently always == 1) PiperOrigin-RevId: 284961417 | 17 January 2020, 13:42:34 UTC |
fe61cfe | kimvde | 11 December 2019, 11:24:06 UTC | Remove duplicated logic in FlacReader PiperOrigin-RevId: 284952647 | 17 January 2020, 13:42:30 UTC |
910bd8b | kimvde | 10 December 2019, 19:40:26 UTC | Implement binary search seeking for FLAC extractor PiperOrigin-RevId: 284814594 | 17 January 2020, 13:42:07 UTC |
4ed512d | ibaker | 10 December 2019, 16:42:33 UTC | Fix javadoc warnings exposed by -Xdoclint PiperOrigin-RevId: 284776943 | 17 January 2020, 13:40:49 UTC |
ff1efd4 | kimvde | 09 December 2019, 13:57:21 UTC | Add peek() method to ExtractorInput PiperOrigin-RevId: 284537150 | 17 January 2020, 13:39:27 UTC |
24afcdc | kimvde | 09 December 2019, 10:34:41 UTC | Remove TODO for supporting streams in Java FLAC extractor Flac streams exist but are not commonly used. Also, they are not supported by the FLAC extension extractor. PiperOrigin-RevId: 284514327 | 17 January 2020, 13:39:18 UTC |
54413c2 | kimvde | 06 December 2019, 14:07:28 UTC | Make metadata field nullable in FlacStreamMetadata This makes the format metadata null (instead of an empty Metadata object) when it is not provided, and is therefore consistent with the other extractors behavior. PiperOrigin-RevId: 284171148 | 17 January 2020, 13:37:58 UTC |
a5ee17e | olly | 05 December 2019, 15:08:56 UTC | Fix casting to not need warning suppression Also remove getRendererCapabilities arg that's now always null. PiperOrigin-RevId: 283966795 | 17 January 2020, 13:36:55 UTC |