2149 Commits

Author SHA1 Message Date
James Dong
22b37fa6e0 File writer size estimation improvement
o Do not count the reserved space for moov if the meta data size is small
o Do not count the extra 1KB disturbing small file estimation.
o Reduce the default minimum reserved space from 4 KB to 3 KB.
o Estimate the moov size based on both duration AND file size limit is set
  and set it to the smaller estimated value.

low risk change

bug - 3111983

Change-Id: I6ac2adb979d8cc12d6b4f1813d000c989add0199
2010-10-19 22:59:22 -07:00
Andreas Huber
4d450a8657 If we encounter video stream EOS while seeking we may still need to seek audio.
Change-Id: Ie260942247b6810ca94e86328a3725d75b12181d
related-to-bug: 3108724
2010-10-19 09:34:44 -07:00
Andreas Huber
d68cda472a An attempt to unregister a handler that's no longer registered should not cause an assertion.
There are edge cases in which a handler attempts to unregister itself while on another thread a message fails to be delivered to that very handler and causes automatic unregistration. In this case the handler's good cleanup intentions are thwarted by the CHECK.

Change-Id: I4e41b5e7b619159ecce4856c15cccca031a28b5b
related-to-bug: 3101247
QA-impact: no(!!!) risk
2010-10-18 15:06:04 -07:00
Andreas Huber
bc96c2848d Merge "For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder." into gingerbread 2010-10-18 11:46:44 -07:00
Andreas Huber
99bc1da79b If the PES packet size exceeds 16-bit range, use a packet size of 0 instead. This is valid for video content according to the specs.
Change-Id: I686320d9d4cd826f43c0813c6ba1dc4949d1115f
2010-10-18 10:39:29 -07:00
Andreas Huber
5a40e394f1 For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.
related-to-bug: 3106534
Change-Id: Ie28d72af2f9e93818d1840ac83aa7bc11fa57b3b
2010-10-18 10:16:08 -07:00
Andreas Huber
a4f391c9bf Include the framework copy of the OpenMAX headers instead of referencing external/opencore.
Change-Id: I762f59acf5e1f770e4d7c2d89af362bfffebefa6
related-to-bug: 3101573
2010-10-15 13:31:29 -07:00
Andreas Huber
6da2ae11b6 Make sure we cache the sampleTable again if using the caching datasource.
QA-impact: This fixes http streaming again which I broke about 2 days ago. The previously observed symptoms were stuttering playback of http streams (think YouTube) after a certain playback position.

Change-Id: I14050e3522ecd62c90d29310efdf508fdd2e87b5
related-to-bug: 3098873
2010-10-15 08:38:49 -07:00
Eric Laurent
02d0ff60c4 Fix issue 3098850
Media framework test permissions were not updated when commit
14beea487c065ca902bfd7089399eb71a805e302 added
MODIFY_AUDIO_SETTINGS permission check for global effects.

Change-Id: I2a97be74f33d62fbb749642b1e7a26ddf92378f2
2010-10-14 17:12:43 -07:00
Andreas Huber
0c9b577e4d Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that.
Change-Id: I48175666857ab0fb1519777bdb6f7f0b6b5cc599
related-to-bug: 3073955
2010-10-13 15:12:08 -07:00
Andreas Huber
5f42391701 Merge "Attempt to derive the avg. bitrate of the entire stream from metadata." into gingerbread 2010-10-13 14:25:32 -07:00
Andreas Huber
cc5fb1d5e5 Some webcams output rtp streams but never send any rtcp data in violation of
the specs. Attempt to use fake timestamps to be able to play these...

Change-Id: Ia7a926616fb764e972955df4acdb59d85cdd93df
related-to-bug: 3087310
2010-10-13 12:15:03 -07:00
Andreas Huber
4deb3eb534 Attempt to derive the avg. bitrate of the entire stream from metadata.
related-to-bug: 3093224
Change-Id: I4726b023373e04468cc12fd64f7fe6ee923add95
2010-10-13 10:39:41 -07:00
Andreas Huber
312644cdbb Merge "Support for writing to MPEG2 transport stream files." into gingerbread 2010-10-13 09:14:40 -07:00
Andreas Huber
9adf466021 Support for writing to MPEG2 transport stream files.
Change-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97
2010-10-12 16:05:23 -07:00
Andreas Huber
54d09724e3 HTTP Live content that are tagged as complete are now seekable.
Change-Id: I9d0d2f009f883e5baf3e9de8c5c0aa05760e4bde
related-to-bug: 2368598
2010-10-12 14:32:10 -07:00
Andreas Huber
0dc6403f3c Just in case we're behind a NAT router/firewall, attempt to poke holes into it for future incoming RTP/RTCP packets to pass through.
Change-Id: Idd47968d4027f357222f19f15eecfd70fdec3282
related-to-bug: 3073813
2010-10-11 11:30:30 -07:00
Andreas Huber
0c46b69f61 RTSP seeking is now asynchronous, MediaPlayer is not notified that the seek is complete until it actually is. Ignore seek requests on live streams.
Change-Id: Ie61230cd60dd6c682baf72529100369ad6291189
related-to-bug: 3073955
2010-10-08 15:25:19 -07:00
Andreas Huber
38285db197 Refactor some more h.264 utility code out into avc_utils. Work around a hardware decoder issue by making sure the first access unit submitted to a decoder at startup or after seek is an IDR.
Change-Id: I61936601e55df7e4c23a8c13087579a4f85bd6e6
2010-10-08 12:06:27 -07:00
Andreas Huber
f72dd0190e Merge "Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality." into gingerbread 2010-10-08 11:16:07 -07:00
Andreas Huber
b9bf545774 Merge "Respect the cropping rectangle when extracting the video dimensions from the sequence parameter set of H.264 streams." into gingerbread 2010-10-08 10:59:52 -07:00
Andreas Huber
6934207ac3 Respect the cropping rectangle when extracting the video dimensions from the sequence parameter set of H.264 streams.
Change-Id: Id7f21d5ab8533b4e17ceaa8619a39c27f0306150
2010-10-08 10:38:39 -07:00
Andreas Huber
10b9b3f3fe Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.
Change-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2
related-to-bug: 3073955
2010-10-08 10:16:24 -07:00
James Dong
6dcdfdb42a Merge "Name the writer threads" into gingerbread 2010-10-08 10:06:22 -07:00
Andreas Huber
c5912acc04 Merge "Disable the access unit timeout temporarily while a seek operation is in progress." into gingerbread 2010-10-08 10:01:37 -07:00
Andreas Huber
e51e80990e Disable the access unit timeout temporarily while a seek operation is in progress.
Change-Id: I116cb76342aae4168f34ebae49ecb2301702a0ea
related-to-bug: 3073955
2010-10-08 09:04:25 -07:00
Eric Laurent
b37fcbfd7f Merge "Added getter for session Id to AudioSink" into gingerbread 2010-10-08 08:28:08 -07:00
James Dong
c67acb2b28 Name the writer threads
Change-Id: I51461c3800ac5850e21ff398e80eb20b562264b3
2010-10-07 20:20:59 -07:00
Eric Laurent
b3bdf3f008 Added getter for session Id to AudioSink
Added a method to expose the audio session id at AudioSink interface
so that the AudioPlayer in stagefright can retrieve it.

Also:
- Fixed audio effect send level not being initialized in mediaplayer.
- Fixed compilation error when LOGV is enabled in mediaplayer JNI

Change-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb
2010-10-07 18:23:03 -07:00
Andreas Huber
3418835893 Increase scratch buffers sizes in mp3 software decoder, this integrates a PV master/opensource patch.
Change-Id: I5a637f1b380e44c94040ec507843d58a1f5a9b61
related-to-bug: 3065605
2010-10-07 16:52:42 -07:00
Andreas Huber
4c19bf9833 Work to support switching transport streams mid-stream and signalling discontinuities to the decoder.
Change-Id: I7150e5e7342e1117c524856b204aadcb763e06ed
related-to-bug: 2368598
2010-10-07 11:41:43 -07:00
Andreas Huber
1e19416383 On this particular device the hardware video decoder spits out buffers that don't actually contain our video data, so we cannot use them to restore the video frame after suspend/resume.
Change-Id: I1b8fe68c1766299844fe84ebbff49cb8b3e4cc7c
related-to-bug: 3070094
2010-10-07 09:19:25 -07:00
Andreas Huber
c743f4506f Make sure to call AudioTrack::stop() instead of AudioTrack::pause() after submitting all samples to AudioTrack to make sure those remaining samples are actually played out.
Change-Id: Id574a0203efcb5e565f1b0fe77869fc33b9a9d56
2010-10-05 13:53:39 -07:00
Jeff Brown
79a3981e38 Fix Looper leaks in MediaRecorderStressTest.
The test was failing periodically due to too many files being open.
This change attempts to resolve the problem on the theory that
signaling pipe file descriptors are being leaked due to the large
number of Looper instances created during the test run.

However, it's still possible there are other leaks elsewhere.

Change-Id: I71f9f12d21605c47c9217c72c51e6c768142ce10
2010-10-04 21:01:29 -07:00
James Dong
6a9e39ac55 Fixed an issue where the reserved free space in the file writer was larger than intended
The problem was that even though user does not explicitly request the max file size
limit via MediaRecorder.setMaxFileSize(), the file writer sets an implicit file
size limit if 32-bit file offset is used on user's behalf. The reserved free space
is estimated based on the file size, if the file size limit is set by the user.

The fix is to add an extra bool to tell the difference between an
explit requested file size and an implicit file limit and use that
to set the estimated moov box size accordingly.

Change-Id: I731aca6c7833aa764ed7b905edb77721577471b3
2010-10-04 16:54:59 -07:00
James Dong
b99f0c7eae Merge "Resilent media time stamp adjustment" into gingerbread 2010-10-04 15:35:40 -07:00
James Dong
acee8e7131 Resilent media time stamp adjustment
Change-Id: I13ab87c05f26bb11a3cc9bf8559f98e6ea0752db
2010-10-04 15:11:19 -07:00
Andreas Huber
05f6787b88 Make sure to finish the preparation phase even EOS occurs before we consider the cache to be completely filled up.
Change-Id: I29143e357fb6ea7b860636100e010f2ea7436798
related-to-bug: 3037389
2010-10-04 11:36:39 -07:00
Andreas Huber
1913c1aeab Don't retrieve metadata unless necessary for ogg-vorbis ringtone auto-looping.
Change-Id: Iaf5880bb3376f9cbf22aefe198878eaf6f3f08c7
related-to-bug: 3037389
2010-10-04 11:09:31 -07:00
James Dong
6c609b6a60 Merge "Turn off media time adjustment by default" into gingerbread 2010-10-01 17:27:51 -07:00
James Dong
9160e4aa2a Turn off media time adjustment by default
Change-Id: I1f8021d605d0fd896e0639607a84e3f7c459612e
2010-10-01 17:14:23 -07:00
Andreas Huber
e619a9da44 Merge "Start playing live streams from the start, no the middle..." into gingerbread 2010-10-01 11:35:17 -07:00
Andreas Huber
a424f7c628 Start playing live streams from the start, no the middle...
Change-Id: Ie01ba1250b51155cb1fb32fc3340189a16c01476
related-to-bug: 2368598
2010-10-01 11:28:44 -07:00
Andreas Huber
21d28a2a13 Remove development-only code.
Change-Id: Ic2ca0efb631eb779ca157fb01b02aa19a1222c06
related-to-bug: 2368598
2010-10-01 11:19:26 -07:00
Andreas Huber
b72c7e36a2 Squashed commit of the following:
commit 46744c7697f29aec71aed8de3c95ce035c284d97
Author: Andreas Huber <andih@google.com>
Date:   Thu Sep 30 16:44:57 2010 -0700

    better separation of access units

    Change-Id: I5a9e2138aed341f0bcf22cfe368a15ca5ea5a73c

commit d34952ac0feb1ae722ff65824d7353335502219b
Author: Andreas Huber <andih@google.com>
Date:   Thu Sep 30 15:35:01 2010 -0700

    Support for ES packets that do not start on PES packet boundaries.

    Change-Id: I2cf012833948eddfb20b16a1901206cf22ce71e4
    related-to-bug: 2368598

Change-Id: Ib9329bd6bb7149b5a6e2483788a96b1b158952fc
2010-10-01 10:51:41 -07:00
Eric Laurent
4712baab81 Issue 3032913: improve AudioTrack recovery time
This issue showed that when an AudioTrack underruns during a too long period
of time and is therefore disabled by audioflinger mixer, it takes an additional
delay of up to 3 seconds to recover.
This fix adds a simple mechanism to recover immediately when the client application
is ready to write data again in the AudioTrack buffer

Also throttle warnings on record overflows

Change-Id: I8b2c71578dd134b9e60a15ee4d91b70f3799cb3d
2010-09-30 17:21:23 -07:00
Chia-chi Yeh
d6877fa497 Merge "AMRNB: use Frame_Type_3GPP defined in frame_type_3gpp.h instead." into gingerbread 2010-09-28 21:11:27 -07:00
Chia-chi Yeh
081833d791 AMRNB: use Frame_Type_3GPP defined in frame_type_3gpp.h instead.
This allows gsmamr_enc.h and gsmamr_dec.h to be included in the same
file without conflict definition.

Change-Id: I1c8dac235c122735ba14a1af2fda48c0f8d9f87b
2010-09-29 12:00:18 +08:00
Eric Laurent
4fd3ecc1f0 Fix several audio effects problems.
Fixed the following issues in LVM effect bundle wrapper:
- memory leaks in EffectCreate() in case effect creation fails at various stages
- Added saturation when accumulating to output buffer
- Fixed problems with enabled effects count when an effect is released while enabled
- Do not allocate temporary buffer for accumulation each time process() is called

Fixed the following issues in effects framework (AudioFlinger)
- Release effect synchronously in the library when deleted from effect chain
- Do not call the effect process function if no tracks are present in the same
audio session

Change-Id: Ifbd80a163415cfb3c0a337c12082853ea45d9c91
2010-09-28 14:23:39 -07:00
Andreas Huber
88a995edcf Merge "Properly flush the AudioTrack/AudioSink on a seek request and make sure that both the mp3 decoder and aac software decoders start fresh after a seek without any dependency on previously decoded content." into gingerbread 2010-09-28 13:23:26 -07:00