1677 Commits

Author SHA1 Message Date
James Dong
17299ab50c Initial software encoder checkins
Change-Id: I27f387db23594e46384c4eb3a0093ce220bb6b60
2010-05-19 07:21:25 -07:00
Eric Laurent
eb8f850d0b Fix issue 2553359: Pandora does not work well with Passion deskdock / Cardock.
The problem is due to a too big difference between the buffer size used at the hardware interface and at the A2DP interface.
When no resampling occurs we don't notice problems but the timing is very tight. As soon as resampling is activated, the AudioTrack underruns.
This is because the AudioTrack buffers are not resized when moving the AudioTrack from hardware to A2DP output.
The AudioTrack buffers are calculated based on a hardware output buffer size of 3072 bytes. Which is much less than the A2DP output buffer size (10240).

The solution consists in creating new tracks with new buffers in AudioFlinger when the A2DP output is opened
instead of just transfering active tracks from hardware output mixer thread to the new A2DP output mixer thread.
To avoid synchronization issues between mixer threads and client processes, this is done by invalidating tracks
by setting a flag in their control block and having AudioTrack release the handle on this track (IAudioTrack)
and create a new IAudioTrack when this flag is detected next time obtainBuffer() or start() is executed.

AudioFlinger modifications:
- invalidate the tracks when setStreamOutput() is called
- make sure that notifications of output opening/closing and change of stream type to output mapping are sent synchronously to client process.
This is necessary so that AudioSystem has the new stream to output mapping when the AudioTrack detects the invalidate flag in the client process.
Previously their were sent when the corresponding thread loop was executed.

AudioTrack modifications:
- move frame count calculation and verification from set() to createTrack() so that is is updated every time a new IAudioTrack is created.
- detect track invalidate flag in obtainBuffer() and start() and create a new IAudioTrack.

AudioTrackShared modifications
- group all flags (out, flowControlFlag, forceReady...) into a single bit filed to save space.

Change-Id: I9ac26b6192230627d35084e1449640caaf7d56ee
2010-05-17 02:23:47 -07:00
Andreas Huber
5d75a18188 am a5cd816c: am eb9128f9: Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.
Merge commit 'a5cd816c720ed87b91a33aa5d000a0d308c74453' into kraken

* commit 'a5cd816c720ed87b91a33aa5d000a0d308c74453':
  Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.
2010-05-14 16:30:29 -07:00
Andreas Huber
a5cd816c72 am eb9128f9: Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.
Merge commit 'eb9128f9b0ee660504621381fd96f82d5bf8a3fd' into froyo-plus-aosp

* commit 'eb9128f9b0ee660504621381fd96f82d5bf8a3fd':
  Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.
2010-05-14 16:28:09 -07:00
Andreas Huber
eb9128f9b0 Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.
Change-Id: I576178144ffd753b809e1c4ae269ffc3aa34b511
related-to-bug: 2686604
QA-Impact: well, ..., everything related to streaming mpeg4/aac content over http
2010-05-14 15:32:21 -07:00
James Dong
d95266c6a8 Merge "Detect and handle premature termination of a recording session" into kraken 2010-05-14 12:19:17 -07:00
Ray Chen
f55e322216 Merge "Fix issue 2622023 Clean up all hardcoded '/sdcard' in camera related codes." into kraken 2010-05-14 11:48:45 -07:00
James Dong
68510e60f9 Detect and handle premature termination of a recording session
Change-Id: Ifb83b19f3e68580345b23efed5d5956fb81baeb8
2010-05-14 11:48:00 -07:00
Ray Chen
f75e370e12 Fix issue 2622023 Clean up all hardcoded '/sdcard' in camera related codes.
Change-Id: I8a509d957a7b67ee1f59dc4ef5139c4e28adeb9c
2010-05-14 11:43:38 -07:00
James Dong
9db798d0f0 Audio/video initial recording time synchronization
Change-Id: Iac58b63d474fe09c1d36ba6ecde91dafbb7fef9a
2010-05-14 10:51:12 -07:00
James Dong
1824486e04 Handle recording file size and/or duration limit
Change-Id: Ib9ed1f3ebd8fef550cc130a7ef11f2905fa9aedc
2010-05-14 10:46:56 -07:00
The Android Open Source Project
21a534d955 am 1d628c5d: merge from open-source master
Merge commit '1d628c5d3dd7998b29c339292a2dc391015d0782' into kraken

* commit '1d628c5d3dd7998b29c339292a2dc391015d0782':
  Accept media files by file extension in case insensitive manner.
2010-05-14 09:46:11 -07:00
The Android Open Source Project
1d628c5d3d merge from open-source master
Change-Id: I934cf85c4673f9ca3a9549c2074907ad572310f4
2010-05-14 09:44:36 -07:00
Nick Kralevich
ead68d5cd6 Merge "Remove libdrm2. This code appears to be unused." into kraken 2010-05-14 09:32:45 -07:00
Jean-Baptiste Queru
75e181b633 Merge "Accept media files by file extension in case insensitive manner." 2010-05-14 09:06:43 -07:00
Nick Kralevich
ef8a3ed1b8 Remove libdrm2. This code appears to be unused.
This code generates warnings when compiled with -Wformat-security,
and since it isn't being used, I figured it's better
to just delete it.  As always, this code can be restored
by reverting this change.

Change-Id: I1da2049f41312b6eae5fa42892beb4a2036eb12f
2010-05-13 12:09:14 -07:00
James Dong
e292b3bc9c Remove dummy surface in CameraSource
bug - 2680919

Change-Id: Ia0308cf57fd67058b4dd0e042b3ce97f13df475f
2010-05-13 12:08:29 -07:00
Andreas Huber
fae47fd008 am 28fadef2: am 3c78a1b5: Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.
Merge commit '28fadef2ede2d74e9526266e779553bbd1dc66f4' into kraken

* commit '28fadef2ede2d74e9526266e779553bbd1dc66f4':
  Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.
2010-05-13 11:18:24 -07:00
Andreas Huber
28fadef2ed am 3c78a1b5: Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.
Merge commit '3c78a1b58957e31d2991fb6a609abecbb1987b3b' into froyo-plus-aosp

* commit '3c78a1b58957e31d2991fb6a609abecbb1987b3b':
  Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.
2010-05-13 11:16:43 -07:00
Andreas Huber
3c78a1b589 Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.
Change-Id: Ie084ed4df5a5d286abd36d9149c2138f8e7ed08a
related-to-bug: 2682221
QA-impact: none
2010-05-13 09:19:35 -07:00
Mathias Agopian
7406eafe7f should fix the build
Change-Id: I9957fc43d5fce317479f6c55fb0b9612bff9a495
2010-05-12 18:26:13 -07:00
Xavier Ducrohet
08eff49f09 am d9712b69: am b1235a57: Merge "Hide two audio focus methods." into froyo
Merge commit 'd9712b69ce529fbf50b3b837032c1dc40e623381' into kraken

* commit 'd9712b69ce529fbf50b3b837032c1dc40e623381':
  Hide two audio focus methods.
2010-05-12 07:56:29 -07:00
Marco Nelissen
550884e2f3 am bbafdc64: am 836b2d75: Merge "Don\'t clear the _data column in the audio_meta table, since it isn\'t needed, and causes a sqlite constraint exception. Bug 2671792." into froyo
Merge commit 'bbafdc6403488b0f7ad564a5a0ff2eed5b87ab7b' into kraken

* commit 'bbafdc6403488b0f7ad564a5a0ff2eed5b87ab7b':
  Don't clear the _data column in the audio_meta table, since it isn't
2010-05-12 07:56:24 -07:00
Andreas Huber
11777d6fa2 am b003ad17: am e0dc80f8: Merge "Support for customizable socket-read timeouts through the HTTP response." into froyo
Merge commit 'b003ad17bffeba7875b9708ffeef2300ef28c916' into kraken

* commit 'b003ad17bffeba7875b9708ffeef2300ef28c916':
  Support for customizable socket-read timeouts through the HTTP response.
2010-05-12 07:55:48 -07:00
Andreas Huber
b076e6f3e0 am 227e443a: am d6ad7c85: Merge "Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)" into froyo
Merge commit '227e443a43d70b9463b2e685688f73cfb1b72096' into kraken

* commit '227e443a43d70b9463b2e685688f73cfb1b72096':
  Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)
2010-05-12 07:55:40 -07:00
Jean-Michel Trivi
fd5a747fc8 am 0c73adb1: am 3e90c76c: Merge "Update javadoc in android.media.AudioManager to not hide the registerAudioFocusListener() methods." into froyo
Merge commit '0c73adb1dead4097b9c7dc04b8a547aaab817e85' into kraken

* commit '0c73adb1dead4097b9c7dc04b8a547aaab817e85':
  Update javadoc in android.media.AudioManager to not hide the
2010-05-12 07:55:25 -07:00
Jean-Michel Trivi
9f35d39a05 am ea37d9b4: am aaa01b18: Merge " Fix bug 2670395 and 2599698 When the user selects a "Silent" notification sound, the Uri encoded path is an empty string. Setting this Uri as the data source of the MediaPlayer used to play notifications caused the comp
Merge commit 'ea37d9b489aac1a4a8de71887581fe712e26e144' into kraken

* commit 'ea37d9b489aac1a4a8de71887581fe712e26e144':
  Fix bug 2670395 and 2599698
2010-05-12 07:55:09 -07:00
Xavier Ducrohet
d9712b69ce am b1235a57: Merge "Hide two audio focus methods." into froyo
Merge commit 'b1235a57a09174179553acecef2370354bdcbf41' into froyo-plus-aosp

* commit 'b1235a57a09174179553acecef2370354bdcbf41':
  Hide two audio focus methods.
2010-05-12 07:50:19 -07:00
Marco Nelissen
bbafdc6403 am 836b2d75: Merge "Don\'t clear the _data column in the audio_meta table, since it isn\'t needed, and causes a sqlite constraint exception. Bug 2671792." into froyo
Merge commit '836b2d75ef86487ecae0ae834ecbab324fd99471' into froyo-plus-aosp

* commit '836b2d75ef86487ecae0ae834ecbab324fd99471':
  Don't clear the _data column in the audio_meta table, since it isn't
2010-05-12 07:50:14 -07:00
Andreas Huber
b003ad17bf am e0dc80f8: Merge "Support for customizable socket-read timeouts through the HTTP response." into froyo
Merge commit 'e0dc80f878b56ed744bd06d341716fcfff4e3acc' into froyo-plus-aosp

* commit 'e0dc80f878b56ed744bd06d341716fcfff4e3acc':
  Support for customizable socket-read timeouts through the HTTP response.
2010-05-12 07:49:39 -07:00
Andreas Huber
227e443a43 am d6ad7c85: Merge "Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)" into froyo
Merge commit 'd6ad7c85faf55fa8d0459f0fbc4fa32abdfefb6e' into froyo-plus-aosp

* commit 'd6ad7c85faf55fa8d0459f0fbc4fa32abdfefb6e':
  Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)
2010-05-12 07:49:31 -07:00
Jean-Michel Trivi
0c73adb1de am 3e90c76c: Merge "Update javadoc in android.media.AudioManager to not hide the registerAudioFocusListener() methods." into froyo
Merge commit '3e90c76c12803cd1b116030fd124b7b870d25342' into froyo-plus-aosp

* commit '3e90c76c12803cd1b116030fd124b7b870d25342':
  Update javadoc in android.media.AudioManager to not hide the
2010-05-12 07:49:10 -07:00
Jean-Michel Trivi
ea37d9b489 am aaa01b18: Merge " Fix bug 2670395 and 2599698 When the user selects a "Silent" notification sound, the Uri encoded path is an empty string. Setting this Uri as the data source of the MediaPlayer used to play notifications caused the completion listen
Merge commit 'aaa01b181c0eea4ff6496d446e25e499b12ca14c' into froyo-plus-aosp

* commit 'aaa01b181c0eea4ff6496d446e25e499b12ca14c':
  Fix bug 2670395 and 2599698
2010-05-12 07:48:50 -07:00
Xavier Ducrohet
b1235a57a0 Merge "Hide two audio focus methods." into froyo 2010-05-11 14:48:48 -07:00
Xavier Ducrohet
5f53f0883a Hide two audio focus methods.
Change-Id: I53ddf736892cde8edfaffa7d69dd9c234df52efa
2010-05-11 14:28:38 -07:00
James Dong
2cd841d485 Added initial validation on video/audio encoding parameters before/at start()
Change-Id: I1a40dd247202f70e3e5429d74533d349b88f1d54
2010-05-11 13:10:02 -07:00
Marco Nelissen
33f49c8377 Don't clear the _data column in the audio_meta table, since it isn't
needed, and causes a sqlite constraint exception.
Bug 2671792.

Change-Id: Ie6e5d0369c3750739fa155e651be4d87c016a41f
2010-05-11 13:09:06 -07:00
Andreas Huber
e0dc80f878 Merge "Support for customizable socket-read timeouts through the HTTP response." into froyo 2010-05-11 12:21:14 -07:00
Andreas Huber
d6ad7c85fa Merge "Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)" into froyo 2010-05-11 12:20:55 -07:00
Jean-Michel Trivi
46b3a1808a Update javadoc in android.media.AudioManager to not hide the
registerAudioFocusListener() methods.

Change-Id: I8df37bd89df6f492aeb70fa636200552140578f9
2010-05-11 11:22:54 -07:00
Andreas Huber
e67c1607cc Support for customizable socket-read timeouts through the HTTP response.
Specify a response header of "X-SocketTimeout: 15" to override the default timeout
of 5 secs with a timeout of 15 seconds. Specify a negative value to disable the
timeout altogether.

Change-Id: I545adf3d8b3f7efe5f8d081a641c6404440a77db
related-to-bug: 2675721
2010-05-11 11:10:21 -07:00
James Dong
b5e742397d Output streamable MP4 file during MP4 file recording
When the reserved moov box space is not big enough,
fall back to non-streamable MP4 file.

Change-Id: I93382d037d657a3f3fe2af31e4ea26e1898b4d95
2010-05-11 10:36:43 -07:00
Andreas Huber
34c70709a6 Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)
Change-Id: I3c76d35da48e0964f7a0fa2816f8573b5e1a9436
related-to-bug: 2674036
QA-impact: low, only affects ogg-vorbis playback through http
2010-05-11 10:11:55 -07:00
Jean-Michel Trivi
392a2bbb52 Fix bug 2670395 and 2599698
When the user selects a "Silent" notification sound, the Uri encoded
    path is an empty string. Setting this Uri as the data source of the
    MediaPlayer used to play notifications caused the completion listener
    to not be called, which with the AudioFocus logic causes the Music
    app to pause and never resume. The NotificationPlayer modifications
    cause the MediaPlayer for the notification to only request audio
    focus when the data source is not empty.
    The audio focus code in AudioService is defensively synchronized
    against a unique lock, and the exception observed in bug 2670395
    is explicitely caught in case another edge case wasn't caught by
    this fix.
    The AudioFocus handling in AudioManager is modified so only the
    requestAudioFocus and abandonAudioFocus methods are meant to be
    used, as registerAudioFocusListener and unregisterAudioFocusListener
    provided no additional functionality over the request/abandon
    methods. abandonAudioFocus() also removes the listener from the
    map in AudioManager since after abandonning focus, the listener
    would no longer be called.

Change-Id: I3b553ee8a8163c25e01117d7e5479dd5fdfa7c6b
2010-05-11 09:20:49 -07:00
James Dong
4000e06ef6 Merge "Metadata construction optimization" into kraken 2010-05-10 11:33:25 -07:00
Andreas Huber
248597ae64 am 17078510: am d13efb20: Merge "A new OggExtractor/VorbisDecoder combo to support approximate seeking." into froyo
Merge commit '1707851090e6512a77247b0c260dd673ef687589' into kraken

* commit '1707851090e6512a77247b0c260dd673ef687589':
  A new OggExtractor/VorbisDecoder combo to support approximate seeking.
2010-05-10 09:49:24 -07:00
Andreas Huber
1707851090 am d13efb20: Merge "A new OggExtractor/VorbisDecoder combo to support approximate seeking." into froyo
Merge commit 'd13efb20089e44e6958cb9704864c03821f19e1c' into froyo-plus-aosp

* commit 'd13efb20089e44e6958cb9704864c03821f19e1c':
  A new OggExtractor/VorbisDecoder combo to support approximate seeking.
2010-05-10 09:43:26 -07:00
Chih-Chung Chang
e25cc65639 Support multiple cameras in framework.
Change-Id: I081f0fbdca4b633715ea7c3b3d42f8662d27598a
2010-05-10 11:21:14 +08:00
Andreas Huber
388379f8b4 A new OggExtractor/VorbisDecoder combo to support approximate seeking.
Change-Id: Id5d0c1c8b1adc62896bb5ed951f7b5cfda811e95
related-to-bug: 2654400
2010-05-07 12:01:45 -07:00
James Dong
2a4767e2fa Metadata construction optimization
- Potentially much shorter stts box if samples have roughly the same duration
- Potentially much shorter stsz box if all samples have the same size

Change-Id: I4f7663dd64285070995585a02bb3ba1e1049a0cf
2010-05-06 14:55:33 -07:00