354 Commits

Author SHA1 Message Date
John Grossman
4aea858564 Switch the way we configure for MediaPlayer retransmission.
Move in the direction of a more publishable API for configuring a
media player for retransmission.  It used to be that we used a custom
invoke and a modified URL (prefixed with aahTX://).  There are many
issues with this technique and it was never meant to stand the test of
time.

This CL gets rid of all that.  A new (but currently hidden) method was
introduced to the java level MediaPlayer API, called
setRetransmitTarget(InetSocketAddress), which allows an app writer to
set the retransmit target.  For now, this method needs to be called
before a call to setDataSource (which is pretty unusual for the
MediaPlayer API) because this mid level code uses this as a cue to
instantiate an aahTX player instead of relying on the data source to
select a player.  When retranmit functionality becomes part of the
existing android player implemenation, this
set-retrans-before-set-data-source behavior can go away, along with
the aahTX player itself.

Change-Id: I6ab07d89b2eeb0650e634b8c3b7a0b36aba4e7dd
2012-02-23 12:02:04 -08:00
John Grossman
fa4a191d0d Revert "Add a way to play file descriptor data sources using the A@H transmitter media player."
This reverts commit 64006cb1642b2ec0ee74c66007d869b884391fd1.

Back out this change in order to get ready to implement a longer term,
more media-team approved way of selecting a retransmit player.

Change-Id: I97b68b9859a174eab858598cb00d4445a14fbc17
2012-02-23 09:29:51 -08:00
Jason Simmons
64006cb164 Add a way to play file descriptor data sources using the A@H transmitter media player.
* Added a MediaPlayer.setMediaPlayerType API that be called to specify the
  desired media player implementation before calling setDataSource
* Implemented setDataSource(fd) in the AAH_TxPlayer

Change-Id: I359075d9c7d6fd699dda14eb85ec50da19307639
2012-01-29 18:03:02 -08:00
Andreas Huber
66b401c80b am 68f592a8: Merge "Don\'t perform RTSP seeks right away but queue them for 200ms" into ics-mr1
* commit '68f592a8210af27df4339089bbee47fb602cae6a':
  Don't perform RTSP seeks right away but queue them for 200ms
2011-12-08 13:35:23 -08:00
Andreas Huber
191eacb37d am 0ba9380a: Merge "Fix Bitreader "putBits" implementation, make sure we emulate timestamps" into ics-mr1
* commit '0ba9380a337d5e2eae9fd9e4eb8039403ed3815b':
  Fix Bitreader "putBits" implementation, make sure we emulate timestamps
2011-12-08 13:35:16 -08:00
Andreas Huber
68f592a821 Merge "Don't perform RTSP seeks right away but queue them for 200ms" into ics-mr1 2011-12-08 13:33:16 -08:00
Andreas Huber
21902a8a48 Don't perform RTSP seeks right away but queue them for 200ms
and only execute the last one.

Change-Id: I9ab342396ec9c9c03624a4b0306d1e180ceca000
related-to-bug: 5732960
2011-12-08 13:04:50 -08:00
Andreas Huber
f6ae711450 Fix Bitreader "putBits" implementation, make sure we emulate timestamps
if we don't receive npt time mapping from the rtsp server (i.e. live stream)

Change-Id: I5147d665bd90c9a303ad6ffdafbf770f930f917c
related-to-bug: 5660357
2011-12-08 12:27:47 -08:00
Andreas Huber
92f05b9020 am 564fee36: Merge "Make sure we can properly shutdown even if" into ics-mr1
* commit '564fee36667e2699c59a29102136220dc2f65862':
  Make sure we can properly shutdown even if
2011-11-29 14:30:46 -08:00
Andreas Huber
bcb0588af5 am 351143fb: Merge "Updated (internal) API for IStreamSource to signal discontinuities" into ics-mr1
* commit '351143fb0e2fcfb7dc2ef1045d693c71eb0ea329':
  Updated (internal) API for IStreamSource to signal discontinuities
2011-11-29 14:30:43 -08:00
Andreas Huber
1dd8ea4e4c am 405a4e34: Merge "Finer granularity discontinuity support." into ics-mr1
* commit '405a4e34032f8a07028138266fe9f79f6753b466':
  Finer granularity discontinuity support.
2011-11-29 14:30:40 -08:00
Andreas Huber
564fee3666 Merge "Make sure we can properly shutdown even if" into ics-mr1 2011-11-29 14:09:10 -08:00
Andreas Huber
351143fb0e Merge "Updated (internal) API for IStreamSource to signal discontinuities" into ics-mr1 2011-11-29 14:08:45 -08:00
Andreas Huber
a10613fea8 Updated (internal) API for IStreamSource to signal discontinuities
Change-Id: Idd4b9d8e7cec16b3e3c91c70e75144d42be30f96
related-to-bug: 5553055
2011-11-29 11:59:10 -08:00
Andreas Huber
66a051af37 Finer granularity discontinuity support.
No clients can signal a format change on either audio or video track (or both)
and a time discontinuity (timestamps changed) independantly.

Change-Id: I3e6cf4e7c260e85759879d61a9b517f68431c22f
related-to-bug: 5553055
2011-11-28 16:45:13 -08:00
Andreas Huber
551aeac336 Make sure we can properly shutdown even if
a) one of the two decoders has a pending discontinuity
b) the renderer holds on to all output buffers for that decoder
c) the renderer is paused

if all three conditions are met the decoder won't ask for more input data
and therefore never see the discontinuity.

To avoid this we briefly resume the renderer just before shutting down.

Change-Id: I9e08af2a1eb4298d1cd00497d6aa33f4ad184e9a
related-to-bug: 5655016
2011-11-28 16:27:35 -08:00
Glenn Kasten
a6e1ceefc6 am f2c2b1c4: am 19998120: Merge "Bug 5478024 drop after decode if can\'t drop before" into ics-mr0
* commit 'f2c2b1c484b7b175c88c33efbbcb74d93f7eb0a2':
  Bug 5478024 drop after decode if can't drop before
2011-11-09 19:00:05 +00:00
Glenn Kasten
f2c2b1c484 am 19998120: Merge "Bug 5478024 drop after decode if can\'t drop before" into ics-mr0
* commit '19998120f53caceb620f138c6eea182f1e693660':
  Bug 5478024 drop after decode if can't drop before
2011-11-09 16:41:19 +00:00
Andreas Huber
d6739fccfc am 26f70db9: Merge "Remove surface legacy APIs and code." into ics-mr1
* commit '26f70db99f483be36caa7a4c84fec5de50bec034':
  Remove surface legacy APIs and code.
2011-11-08 17:58:45 +00:00
Andreas Huber
26f70db99f Merge "Remove surface legacy APIs and code." into ics-mr1 2011-11-08 08:48:31 -08:00
Glenn Kasten
f330986fa8 Bug 5478024 drop after decode if can't drop before
Change-Id: Iaa64553be1a710da5d42be4e3a1e1d6dc873e371
2011-11-04 18:05:35 -07:00
Andreas Huber
efa4015ae3 DO NOT MERGE Poll input data with a small timeout and don't consume a full core.
Change-Id: I3c288698920fe6ead0df24a52330483609821a41
related-to-bug: 5549263
2011-11-03 18:15:43 -07:00
Andreas Huber
28db4fe051 am e395f645: Poll input data with a small timeout and don\'t consume a full core.
* commit 'e395f645aa4c30a4fad8beb3da6f8fad72338617':
  Poll input data with a small timeout and don't consume a full core.
2011-11-03 18:10:44 +00:00
Andreas Huber
e395f645aa Poll input data with a small timeout and don't consume a full core.
Change-Id: I3c288698920fe6ead0df24a52330483609821a41
related-to-bug: 5549263
2011-11-03 11:00:21 -07:00
Ed Heyl
92537e6ff2 merged by hand (services/java/com/android/server/PowerManagerService.java needs to be reviewed)
Change-Id: I86d1111d86cd1646ebc8a88d58aa393089e9f928
2011-10-31 06:06:27 -07:00
Andreas Huber
95be24585f Remove surface legacy APIs and code.
All surfaces are now supported through surface textures.

Change-Id: I95dd823e7099c0c32a48a1121624149dcc29d9c6
2011-10-28 09:39:23 -07:00
Andreas Huber
27ed12492d Merge "Properly report that we're no longer playing after receiving event" into ics-mr1 2011-10-28 09:13:54 -07:00
Mike J. Chen
c15a71e59a MediaPlayer changes for Tungsten/Android@Home.
Squashed merge from master-tungsten of the following changes:

commit e8b156c6b224f0fe5b6a81d5f92bade36275027c
Author: Jason Simmons <jsimmons@google.com>
Date:   Fri Aug 12 10:28:48 2011 -0700

    Add a null check to handle failure of android::createPlayer

    Change-Id: Iacbbc90369a825838d4374b1f774c8880b25753b

commit 43be3231034ff8537fdd84422a7954780038671f
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 27 18:59:12 2011 -0700

    Move libaah_rtp over from the vendor directory.

    Also move factor PipeEvent out into utils.

    Change-Id: Id3877c66efe22d771cf3ef4877107e431b828e37

commit 17526eb3148c9c3d4365b6d5b47e8dc13bca71b6
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 27 17:06:49 2011 -0700

    Name changes for the TRTP Players s/tungsten/aah/g

    Change-Id: I55e9ad13003f6aa6a36955b54426a7efbe31ac51

commit cbf2903ab6893b6e662514e2f6d670e268a419df
Author: John Grossman <johngro@google.com>
Date:   Fri Apr 15 09:27:54 2011 -0700

    Migrate Tungsten code from the HC-Tungsten to the Master-Tungsten branch.

    Change-Id: I95372d913a0761d90168edb4016f5ece0ea74502

Change-Id: I73f3be191cd974933acddf52892e5600d253cc03
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>
2011-10-28 10:14:49 -04:00
Mike J. Chen
06e04e4c17 Add media/libaah_rtp
RTP library used to broadcast media from one device to a collection
of listeners.  Handles failures/retries/etc.

This is a squashed merge from master-tungsten of the following changes:

commit e1a5101fe627d71739a7c4263bb3a65c7bc44385
Author: Jason Simmons <jsimmons@google.com>
Date:   Fri Aug 12 13:24:21 2011 -0700

    Hold ThreadWrapper in a ref-counting pointer

    Change-Id: Iaf3343182e37bcc0ca99fbaf8f9bbb8c4984072a

commit 89b90d62e164ff3db27c9cba85255fc476d2dd96
Author: Jason Simmons <jsimmons@google.com>
Date:   Wed Aug 10 13:08:25 2011 -0700

    Update the Tungsten TX player to use HTTPBase

    Change-Id: I9f7ecf1b4b496cec1815284dbcdb958a43284169

commit 43be3231034ff8537fdd84422a7954780038671f
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 27 18:59:12 2011 -0700

    Move libaah_rtp over from the vendor directory.

    Also move factor PipeEvent out into utils.

    Change-Id: Id3877c66efe22d771cf3ef4877107e431b828e37

Change-Id: I5fe1ea941c09204d7b33f15f4e2b2ab320dc468b
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>
Signed-off-by: Jason Simmons <jsimmons@google.com>
2011-10-28 10:14:49 -04:00
Jamie Gennis
fc9592f8a5 am 08479cee: Merge "Stagefright: ANW::connect in MediaPlayerService" into ics-mr0
* commit '08479ceeba56c460fb52f60a24df27776f1936c3':
  Stagefright: ANW::connect in MediaPlayerService
2011-10-28 02:14:01 +00:00
Jamie Gennis
2fa0ac2e44 Stagefright: ANW::connect in MediaPlayerService
This change moves the ANativeWindow connect and disconnect logic from
MediaPlayer to MediaPlayerService::Client.

Bug: 5502654
Change-Id: Ifc43b98b01ad8f35d62d7ece43110724ec7fda3d
2011-10-26 18:40:00 -07:00
Andreas Huber
e96e84b577 Properly report that we're no longer playing after receiving event
MEDIA_PLAYBACK_COMPLETE or MEDIA_ERROR.

Change-Id: I03eeba751d3728adb33d9c66de4c7444a91696f3
2011-10-26 15:23:31 -07:00
James Dong
c7d927466e am b3cdadb6: Merge "Check whether media recorder client exists before dumping." into ics-mr0
* commit 'b3cdadb639027f62c7c1637ca962a70d2d1f3b4d':
  Check whether media recorder client exists before dumping.
2011-10-19 17:57:58 -07:00
James Dong
dc8bbe79b8 Check whether media recorder client exists before dumping.
Change-Id: I1f3a644a958975e4cf6c02099c53e30cc4d2fd82
related-to-bug: 5477177
2011-10-18 22:29:20 -07:00
Andreas Huber
a6be6dcd03 NuPlayer is now taking on the task of streaming over RTSP.
Change-Id: Ie204db8810807f1e7981959e34dc0149e5d9563a
2011-10-13 11:31:06 -07:00
James Dong
56f71d7dfa Fix an issue where we should allow negative values but did not
Change-Id: Ia8d718b4e6aec4c17db86e30134132f767fd72c5
related-to-bug: 5419527
2011-10-05 20:43:52 -07:00
Andreas Huber
d33b3881f7 Merge "Signal an appropriate error even if there are no active streams yet." 2011-09-27 13:36:22 -07:00
Andreas Huber
7922619e9c Signal an appropriate error even if there are no active streams yet.
Change-Id: I3ac1053ad288558b62ee18056dfd0a9ce0da8f49
related-to-bug: 5372901
2011-09-27 12:13:37 -07:00
Eric Laurent
53719fc4c5 Merge "Fix issue 5373048: AudioCache decode errors" 2011-09-27 10:32:17 -07:00
Eric Laurent
9968a36f29 Fix issue 5373048: AudioCache decode errors
When decoding a file for the SoundPool, do not
reject the entire file in case of error but
return what was decoded so far instead.

Change-Id: Iff199a1b6a4c8e064e42a0dfe0704e0ae36a27fd
2011-09-27 10:23:38 -07:00
Andreas Huber
928baf1f54 Propagate error signalled by the source all the way to the output EOS notification.
Change-Id: I30e959a6d669f09745c59fbdebee08f869511cf7
related-to-bug: 5372901
2011-09-26 10:53:29 -07:00
Glenn Kasten
cd5c896381 Bug 5234242 audio continues after discontinuity
Reduce to 8 buffers of 10 packets from 16 buffers of 20 packets.

Change-Id: Ifdb5e15535989fbb6e5e1b70d5f9f71dc66a5c83
2011-09-21 10:40:01 -07:00
Andreas Huber
950fc9d115 In order to recover from video lagging behind audio, drop avc frames
that are not referenced by other frames before feeding them into the decoder.

Change-Id: I822190af8f8329567bff8da1ea23136d0a765481
2011-09-16 15:19:59 -07:00
Andreas Huber
115cac8131 Various improvements to nuplayer playback
- Drastically cut down the number of times we supply the AudioSink with data
by estimating the time until the sink would run out of data and then scheduling
a refill in advance of that.

- Use a dedicated looper for video decoders since they are currently taking
too long to return from OMX_FillThisBuffer (bug 5325201)

- Revise thread priorities for the OMX dispatcher and software codecs, instead
of running them at ANDROID_PRIORITY_AUDIO, they now only run at
ANDROID_PRIORITY_FOREGROUND

- Since threads created by pthread_create inherit all of the parent threads
attributes including thread priority, briefly reset thread priority to
ANDROID_PRIORITY_FOREGROUND before instantiating OMX components and then
restore it.

Change-Id: If9332a3a20dad5485333d68c11de0d2d5d3fffc3
2011-09-16 10:44:02 -07:00
Andreas Huber
fa6dfdcfd7 Don't post position updates too frequently
i.e. don't hog my message queue.

related-to-bug: 5284760
Change-Id: I8e2d36a11dbee1567b18ed13dc5257a65c6eeda7
2011-09-13 09:48:22 -07:00
Dave Burke
fc301b0bb5 Require INTERNET permission for network-based content.
Bug #1870981

Change-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f
2011-09-02 11:26:59 +01:00
Andreas Huber
eeddb0e504 I have one HLS stream that switches stream PIDs from one bandwidth to the next
this change intends to support its very limited case and signals an error in
all other cases of unexpected PID changes that we cannot recover from.

Change-Id: Icbfdf9fe7461969e2a8781ed416f54d891dd789a
2011-08-31 16:29:05 -07:00
Andreas Huber
ea8c9b1bd9 Discontinuities are only signalled on streams that have been identified, i.e.
those that have a queue. This ensures that the player doesn't observe discontinuities
that don't match up across streams.

Also, make sure output buffers arriving from the decoder to be rendered are sent
back to the decoder if we started flushing.

Finally, don't parse TS packets for streams we don't support. And don't allocate
memory for them.

Change-Id: I708e0de4cba8110a62e4c8ceb1e5702430d5d2bb
2011-08-31 15:35:49 -07:00
Andreas Huber
ebd266c034 ATSParser now supports a mode in which PTS is considered to be absolute time
i.e. PTS 0 <=> media time 0

Change-Id: If10a0f98c129b95e8430dc419664b1def92e547e
2011-08-30 16:06:28 -07:00
Andreas Huber
07754c513f Return an error to the client instead of asserting if decoder instantiation fails
after a surface change.

Change-Id: Ic7758cbeb107032db68a1c3b8e2984710a12dd8b
related-to-bug: 5212725
2011-08-29 13:01:23 -07:00