64 Commits

Author SHA1 Message Date
Glenn Kasten
d9a723bc92 Merge "Fix build error when verbose logging is enabled" 2011-12-15 10:46:14 -08:00
Glenn Kasten
16dabac224 Fix build error when verbose logging is enabled
Change-Id: I30f4e5d35d1b24dce2e6152a13fd0fb61414a3e2
2011-12-15 08:34:59 -08:00
Owen Lin
130f62ab01 Fix the build. (Change LOGV to ALOGV)
Change-Id: I14104540cfbd2bcdd7af1534db20554b88c4c0ce
2011-12-12 16:17:34 +08:00
Andreas Huber
1f7817e146 am ebfce84f: am 68f592a8: Merge "Don\'t perform RTSP seeks right away but queue them for 200ms" into ics-mr1
* commit 'ebfce84f7fd3e25fa08c36b155db91df90a59b3d':
  Don't perform RTSP seeks right away but queue them for 200ms
2011-12-09 18:09:21 -08:00
Andreas Huber
61a8b5301b am aa82c39b: am 0ba9380a: Merge "Fix Bitreader "putBits" implementation, make sure we emulate timestamps" into ics-mr1
* commit 'aa82c39bdb4ad9c1fdcb09f3bea11be5197d3ce6':
  Fix Bitreader "putBits" implementation, make sure we emulate timestamps
2011-12-09 18:09:19 -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
db85b54395 resolved conflicts for merge of 3d630e86 to master
Change-Id: I9eb7b7c1668b5f0de85ec8b1e9257cf1ec4d8b9e
2011-11-30 09:53:40 -08:00
Andreas Huber
848bffd8fa am 074133b2: am 351143fb: Merge "Updated (internal) API for IStreamSource to signal discontinuities" into ics-mr1
* commit '074133b260f8d12e484e93b9aa5a33a4983b7349':
  Updated (internal) API for IStreamSource to signal discontinuities
2011-11-29 16:33:02 -08:00
Andreas Huber
a3f887bd30 resolved conflicts for merge of 998a929a to master
Change-Id: Id5cfbcf20e5ec28782cc88075040cf9edebfdfe8
2011-11-29 15:14:44 -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
714211068e am bb1b7d5c: am 19998120: Merge "Bug 5478024 drop after decode if can\'t drop before" into ics-mr0
* commit 'bb1b7d5cb3c5502484269bfd0cdcd0d5a6d6bfad':
  Bug 5478024 drop after decode if can't drop before
2011-11-09 21:19:00 +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
Glenn Kasten
bb1b7d5cb3 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 14:35:18 +00:00
Andreas Huber
ea427b0c87 resolved conflicts for merge of 26f70db9 to master
Change-Id: Ib1536b1a4c9eeff80e0726b3e61cee12057cd120
2011-11-08 10:40:20 -08: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
57f2887c33 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:12:39 +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
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
e10d9126e5 am 27ed1249: Merge "Properly report that we\'re no longer playing after receiving event" into ics-mr1
* commit '27ed12492dfbec6ec67b66ff3cf60febce370b01':
  Properly report that we're no longer playing after receiving event
2011-10-28 16:17:54 +00: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
Steve Block
71f2cf116a Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
2011-10-26 09:57:54 +01: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
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
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
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
6032a6018d Signal errors to the client instead of asserting in ACodec.
Also make sure NuPlayer can properly shutdown in certain edge cases.

Change-Id: Iceb16d600d87ba66c802e60e95bf62f66487a453
2011-08-26 16:02:19 -07:00
Andreas Huber
d84fd7927e Error handling in ACodec and Nuplayer.
Codec errors (and codec not found errors) now trigger a controlled shutdown
of playback and signal errors to the MediaPlayer client.

Change-Id: I2ee23ff2a1422d05a1a21e50ecb87d7c7ab958cc
2011-08-16 13:48:44 -07:00
Andreas Huber
bd8fbfa956 Fix seek behaviour at startup and teardown of media session that hasn't been started
Nuplayer specific.

Change-Id: I7b0be52c29bdb7032414d63c503d686df7844bf6
2011-07-15 16:26:47 -07:00
Andreas Huber
67d464f47e Enable signalling of a stream discontinuity involving a format-change
through IStreamListener.

Change-Id: Ic0409cdc4891ad26b61f2f98bdda3c7fb2e2de6a
related-to-bug: 5022434
2011-07-13 09:47:09 -07:00
Andreas Huber
603d739b5a Charge network traffic to the uid of the process using the MediaPlayer.
Change-Id: I2bcb54b8232afd3fc7ee16289f37c7a7b3f23067
related-to-bug: 4517282
2011-07-01 13:18:43 -07:00
Andreas Huber
eb2f9c193d Support mpeg1,2 audio and mpeg1,2,4 video content extraction from .ts streams.
Change-Id: I9d2ee63495f161e30daba7c3aab16cb9d8ced6a5
2011-05-25 15:57:07 -07:00
Andreas Huber
93c612e2e7 The decoder wrapper is no longer needed. Also disable building old-style decoders.
Change-Id: Ie022f1a6dffe619c1b0385aa13f63e097282cfe4
2011-05-12 11:24:13 -07:00
Gloria Wang
d01ec6eab0 Add setParameter/getParameter to MediaPlayer API.
for bug 1982947

Change-Id: If3f40e4f18cbba155af29944af38bdc627f8cd53
2011-04-29 10:24:03 -07:00
Andreas Huber
5087494011 Add extra headers specified in the media player's setDataSource call
to all http requests made by the http live implementation.

Change-Id: I9dd78bb261bc678ea98c82009ca2634b74f3cd58
related-to-bug: 4315346
2011-04-20 09:22:06 -07:00
Eric Laurent
6667ac33f4 Fix issue 3483718: audio streaming and A2DP.
The problem is that when switching from A2DP to device speakers or headset,
The AudioTrack binder interface to AudioFlinger must be destroyed and restored
to accomodate new buffer size requirements. Current AudioTrack implementation
did not restore properly the PCM buffer write index which caused a mismatch between
the written frame count in the mediaplayer renderer and the AudioTrack. The renderer
could then believe the AudioTrack buffer was full and stop writing data preventing the
AudioTrack to reach a bufffer full condition and resume playback.

The rendered was also modified to refresh the AudioTrack frame count (buffer size)
inside the write loop in NuPlayer::Renderer::onDrainAudioQueue() as this count can change
from one write to the next.

Also modified AudioTrack::obtainBuffer() to check for track invalidated status before
querying for available space in the buffer. This avoids writing to the old track's
buffer until full before detecting the invalidated condition and create a new track.

Change-Id: I16a857e464e466880847f52f640820aa271539ad
2011-03-21 11:49:00 -07:00
Andreas Huber
669ad13de9 Allow optional specification of a PTS timestamp when signalling a discontinuity.
If present, rendering will be suppressed until reaching the timestamp.

Change-Id: Ic64bdf4225063c5a4d042ea9809960b843a46d19
related-to-bug: 3489454
2011-03-02 15:38:32 -08:00