798 Commits

Author SHA1 Message Date
vigneshv
e4cf93d04c Fix libyuv clone URL
Fixes Github issue #1015
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109559497
2015-12-07 19:55:13 +00:00
vigneshv
42984653fb Update libyuv URL in vp9 extension instructions
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109559103
2015-12-07 19:55:02 +00:00
andrewlewis
c685e27972 Fix {Opus,Vpx}DecoderWrapper flush() buffer handling.
Currently, input/output buffers can 'leak' if they are dequeued then the decoder
is flush()ed. This happens if an input buffer is dequeued then a discontinuity
is read, or an output buffer is dequeued and is early. If this happens several
times, no more buffers are available.

This change makes flush() work like MediaCodec: it returns all dequeued
input/output buffers to the codec. Keeping the behavior in line with MediaCodec
might make it easier to factor out a common decoder interface in the future.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109054178
2015-12-02 17:01:48 +00:00
Oliver Woodman
9925f8f9b8 Add proguard config for VP9 extension 2015-11-27 18:09:56 +00:00
Oliver Woodman
81040e8d23 Remove stray author tag 2015-11-27 15:56:46 +00:00
Oliver Woodman
0236831e48 Remove author tags. 2015-11-25 17:07:09 +00:00
Oliver Woodman
dc94e44b1f Make output mode a tri-state flag instead of binary
This CL fixes the case when a surface is attached *after* playback
has started.
2015-11-25 17:03:11 +00:00
Oliver Woodman
57ee90a96c Clean up AudioTrack. 2015-11-17 16:29:42 +00:00
Oliver Woodman
80d699920c If we have an output buffer, we're ready. 2015-11-17 16:21:03 +00:00
Oliver Woodman
830229c821 Fix Libopus renderer's isReady to take into account outputBuffer avail. 2015-11-17 15:45:42 +00:00
Oliver Woodman
62a89ae90c tweak javadoc 2015-10-27 18:57:26 +00:00
Oliver Woodman
dd4d4e8f7e Add libopus/libvpx availability checks 2015-10-27 18:36:24 +00:00
Oliver Woodman
c0f0cbcb7a Move to target API level 23 2015-10-26 15:02:32 +00:00
Oliver Woodman
d8b1f9efcc Add API to get the version of native decoders
Add API to get the version of underlying libvpx and libopus
decoders. Also update the demo app to show the version in the UI.
2015-10-26 14:53:27 +00:00
Oliver Woodman
5b81612c3b Tweak okhttp package name 2015-10-01 17:33:02 +01:00
Oliver Woodman
ba6cb05e0a Update ReadMe files. 2015-09-29 21:55:51 +01:00
Oliver Woodman
0ff03e40bd Okhttp extension - Update gradle build 2015-09-29 21:27:37 +01:00
Oliver Woodman
af1ffeccc7 OkHttp extension - Add eclipse project 2015-09-29 21:24:45 +01:00
Oliver Woodman
434a2733a3 OkHttp extension modifications.
1. Change package name (rm "datasource")
2. Require injection of OkHttpClient through all constructors, and
   remove allowCrossProtocolRedirect/connectTimeout/readTimeout
   constructor arguments. The client should be configured with these
   prior to injection.
3. Fix code style to be consistent with the project.
4. Simplify call to get contentLength. I'm pretty sure okhttp returns
   the correct value when gzip is enabled, so there's no need to check
   this in the data source.
5. Misc cleanups.
2015-09-29 21:10:34 +01:00
ojw28
2112bc24e3 Merge pull request #735 from b95505017/okhttp_http_data_source
Add an extension that provide DataSource using OkHttp
2015-09-29 21:06:46 +01:00
Oliver Woodman
e96e618046 Clean up expansion of sample buffers.
- The old approach was technically incorrect, because the checks
were "capacity < sampleSize" and hence neglected the fact that
the buffer position may be greater than 0 (e.g. if the caller
wants to prefix the sample with some additional data).

- Also proactively throw an exception if the buffer is too small,
rather than wait for the failure when we actually do the write.
2015-09-28 20:23:45 +01:00
Oliver Woodman
ee80be9217 Fix comment typo 2015-09-28 12:15:53 +01:00
Oliver Woodman
820433de06 Call stop() to fully play out remaining audio!
Issue: #707
2015-09-10 18:19:09 +01:00
Oliver Woodman
8c3f93d6bf Start to fix media mime types.
- Admit we don't know the mime type (using unknown mime types) rather
  than passing the container mime type.
- Pass the correct mime type for opus, vp9 and vp8, and remove the incorrect
  container checks in the corresponding extensions.
2015-09-07 13:56:54 +01:00
Oliver Woodman
e6a93a08de Update instructions for building with latest libvpx.
- Fix building with APP_ABI=all by configuring for all architectures.
- Keep vpx_dsp which is required for building successfully.
- Use perl -pi -e not sed, for building on Macs.
2015-09-01 14:24:46 +01:00
Oliver Woodman
4a9ff7b094 Correctly propagate END_OF_STREAM through Opus decoder. 2015-09-01 14:16:36 +01:00
Oliver Woodman
35a744a5d4 Use perl for in-place substitution. 2015-09-01 14:11:01 +01:00
Yu-Hsuan Lin
0df29a6497 Add an extension that provide DataSource using OkHttp 2015-08-24 00:49:41 +08:00
Oliver Woodman
cde1c27e2b Make Opus codec-specific data match the platform.
Issue: #690
2015-08-19 16:34:59 +01:00
Oliver Woodman
87457d5042 Add CodecCounters to LibvpxVideoTrackRenderer. 2015-08-13 11:19:34 +01:00
Oliver Woodman
8db1331021 Propagate MediaFormat instead of TrackInfo.
Issue #514.
2015-08-11 18:23:22 +01:00
Oliver Woodman
b2206866f0 Use audio passthrough if possible, falling back to on-device codecs.
Remove MPEG TS stream filtering based on AudioCapabilities.

Pass AudioCapabilities to MediaCodecAudioTrackRenderer so it can choose between
passthrough/raw and decoding for AC-3 tracks.
2015-08-11 18:08:23 +01:00
Oliver Woodman
6085d185fa Internal plumbing for multi-track support.
- Generalize rendererEnabledFlags to be selected track indices through
  ExoPlayerImpl/ExoPlayerImplInternal.
- Selecting an out-of-bound track index (e.g. -1) is equivalent to
  disabling a renderer prior to the generalization.
- A prepared TrackRenderer that exposes 0 tracks is equivalent to a
  TrackRenderer in the STATE_IGNORE state prior to the generalization.

Issue #514.
2015-08-11 18:06:21 +01:00
Oliver Woodman
13f4a3e3bd Common base class for SampleSource based TrackRenderers.
This will allow multi-track support when consuming from a SampleSource to
be added in a single class, rather than in 6. Prep for Issue #514.
2015-08-11 18:04:00 +01:00
Oliver Woodman
a2f10399e7 Improve error propagation 2015-07-21 10:07:49 +01:00
Oliver Woodman
ebe9ae6b13 In continueBuffering, return whether a particular track has samples.
Issue: #595
2015-07-16 19:30:14 +01:00
Oliver Woodman
31e5e0edaf Clear outputBuffer.flags in VpxDecoderWrapper.decodeBuffer()
This ensures FLAG_END_OF_STREAM doesn't get permanently stuck.
2015-07-15 11:14:37 +01:00
Oliver Woodman
c1e1497d13 Change how subtitles are laid out in the demo app.
The SubtitleLayout is now properly aligned with the surface.
This means the subtitles remain on top of the video in portrait
mode, rather than being huge and below it.
2015-07-15 11:09:20 +01:00
Oliver Woodman
194b4ae081 Fix link to be https 2015-06-26 14:23:34 +01:00
Oliver Woodman
8e58a3f5f5 Steps toward full multi-track support.
1. Remove requirement for TrackRenderer implementations to report
   current position, unless they are time sources.
2. Expose whether renderers have media to play. The immediate benefit
   of this is to solve the referenced GitHub issue, and also to only
   display the appropriate Audio/Video/Text buttons in the demo app
   for the media being played. This is also a natural step toward
   multi-track support.

Github issue: #541
2015-06-18 14:27:24 +01:00
Oliver Woodman
a70c1f1a4b Remove requirement to specify downstream renderer count.
This makes it so that it's no longer necessary to specify the number
of downstream renderers to HlsSampleSource, FrameworkSampleSource and
ExtractorSampleSource, by forcing the downstream renderers to register
with the SampleSource instances in their constructors. This eliminates
a common source of subtle client bugs where the passed value is incorrect.
2015-06-12 17:52:56 +01:00
Oliver Woodman
ece3ac63c8 webm branch cleanup 2015-05-22 21:50:29 +01:00
Oliver Woodman
caf41fb1f1 Bring branch up to speed with dev 2015-05-11 21:18:23 +01:00
Oliver Woodman
5d92cc8324 Make changes to Opus/Vp9 projects to build against new dev 2015-05-05 20:41:12 +01:00
Oliver Woodman
d27b6de119 Release AudioTrack when done. 2015-03-25 12:13:53 +00:00
Vignesh Venkatasubramanian
7113d2ab6f Add Opus Native Extension
Add Opus Native Extension that can be used to playback Opus using the native
libopus library.
2015-02-02 14:43:50 -08:00
Vignesh Venkatasubramanian
dd726001a8 Add VP9 Native Extension
Add VP9 Native Extension that can be used to playback VP9 using the native
libvpx library.
2015-02-02 14:41:34 -08:00
Oliver Woodman
ce2f681bd3 Add directories for extensions + additional demos 2015-01-26 16:18:41 +00:00