olly 907b9bf4f6 Sanitize threading in CronetDataSource
- Move nearly all logic onto the calling thread (i.e. the thread
  calling open/read/close), to make threading correctness more
  obvious.
- Document which variables are read/written from which thread, and
  why the call sequences are safe.
- Fix thread safety issue that I think could probably cause data
  corruption in the case of a read timeout followed by another
  request into the DataSource.

Also:

- Relaxed content length checking to be consistent with the other
  http DataSource implementations, and avoided parsing the headers
  where they're not used.
- Fixed missing generics in CronetDataSourceFactory.
- Added TODO to work with servers that don't support partial range
  requests.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135702217
2016-10-11 18:16:28 +01:00
..
2016-08-31 15:25:31 +01:00
2016-08-31 15:25:31 +01:00
2016-09-02 16:12:55 +01:00
2016-08-31 15:25:31 +01:00

ExoPlayer Cronet Extension

Description

Cronet is Chromium's Networking stack packaged as a library.

The Cronet Extension is an HttpDataSource implementation using Cronet.

Build Instructions

  • Checkout ExoPlayer along with Extensions:
git clone https://github.com/google/ExoPlayer.git
  • Get the Cronet libraries:
  1. Find the latest Cronet release here and navigate to its Release/cronet directory
  2. Download cronet.jar, cronet_api.jar and the libs directory
  3. Copy the two jar files into the libs directory of this extension
  4. Copy the content of the downloaded libs directory into the jniLibs directory of this extension
  • In ExoPlayer's settings.gradle file, uncomment the Cronet extension