<feed xmlns='http://www.w3.org/2005/Atom'>
<title>android_frameworks_wilhelm/src/itf/IPlay.c, branch cm-13.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/'/>
<entry>
<title>Add curlies to if / else</title>
<updated>2011-12-12T21:40:51+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-07-29T21:56:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=ab7724988c1ff39ad3fc95a7ae0e638357708f7c'/>
<id>ab7724988c1ff39ad3fc95a7ae0e638357708f7c</id>
<content type='text'>
Change-Id: Id697a96cc9bafa56f8ebbb2ad542a70181ed561d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Id697a96cc9bafa56f8ebbb2ad542a70181ed561d
</pre>
</div>
</content>
</entry>
<entry>
<title>Khronos bug 8080 GetMarkerPosition</title>
<updated>2011-10-10T18:26:45+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-09-30T00:56:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=45b349f3c585a0750417722f72224a35baaab734'/>
<id>45b349f3c585a0750417722f72224a35baaab734</id>
<content type='text'>
Play::GetMarkerPosition returns SL_RESULT_PRECONDITIONS_VIOLATED
if no marker is set.  Play::SetMarkerPosition returns
SL_RESULT_PARAMETER_INVALID is parameter is SL_TIME_UNKNOWN.  Similar
changes for Record, and also bring in all the recent changes from Play.
Add missing curly brackets.

Change-Id: Ibcfdcab5d4342815fe8d0fb1174053e1599aaf5d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Play::GetMarkerPosition returns SL_RESULT_PRECONDITIONS_VIOLATED
if no marker is set.  Play::SetMarkerPosition returns
SL_RESULT_PARAMETER_INVALID is parameter is SL_TIME_UNKNOWN.  Similar
changes for Record, and also bring in all the recent changes from Play.
Add missing curly brackets.

Change-Id: Ibcfdcab5d4342815fe8d0fb1174053e1599aaf5d
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug 5198051 MediaPlayer support GetDuration</title>
<updated>2011-08-22T21:16:08+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-08-22T15:59:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=3d332ff421e7179c36fb652771cc8ded53383729'/>
<id>3d332ff421e7179c36fb652771cc8ded53383729</id>
<content type='text'>
Change-Id: I09d9292685d82b88cddd243e6e7f5410ffaa2248
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I09d9292685d82b88cddd243e6e7f5410ffaa2248
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug 5903270 play interface, events, markers, etc.</title>
<updated>2011-08-04T16:55:21+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-07-29T14:39:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=5933f3d5e532aaac31ce0e6551c59f0197c0ae3c'/>
<id>5933f3d5e532aaac31ce0e6551c59f0197c0ae3c</id>
<content type='text'>
As the media framework does not directly support marker and periodic
callbacks, we use a retriggerable one-shot timer at application level
to emulate this.  This has the advantage of being faster, but is also
less accurate than if it were in the framework.

Details:
 - Get position is now synchronous and (mostly) lock-free
 - Fix regression in SL_PLAYEVENT_HEADATMARKER and SL_PLAYEVENTHEADATNEWPOS
 - Fix SMP races in GetPlayState, GetCallbackEventsMask, GetMarkerPosition,
   GetPositionUpdatePeriod
 - AudioSfDecoder was not updating mPositionMsec when getPositionUsec failed
 - Updating attributes is relatively expensive, so only do it when a significant change
    in SetMarkerPosition, ClearMarkerPosition, SetPositionUpdatePeriod
 - Error on unknown message type in onMessageReceived
 - Delete an obsolete FIXME
 - "Clearing" a marker is now equivalent to disabling the marker event,
   and the default marker position is cleared.
 - use Android time units and types (int32_t, ANDROID_UNKNOWN_TIME, etc.) where appropriate
   instead of SLmillisecond and SL_TIME_UNKNOWN

Change-Id: Ib78bafa20d883b8d927364769663837389b6ea1d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As the media framework does not directly support marker and periodic
callbacks, we use a retriggerable one-shot timer at application level
to emulate this.  This has the advantage of being faster, but is also
less accurate than if it were in the framework.

Details:
 - Get position is now synchronous and (mostly) lock-free
 - Fix regression in SL_PLAYEVENT_HEADATMARKER and SL_PLAYEVENTHEADATNEWPOS
 - Fix SMP races in GetPlayState, GetCallbackEventsMask, GetMarkerPosition,
   GetPositionUpdatePeriod
 - AudioSfDecoder was not updating mPositionMsec when getPositionUsec failed
 - Updating attributes is relatively expensive, so only do it when a significant change
    in SetMarkerPosition, ClearMarkerPosition, SetPositionUpdatePeriod
 - Error on unknown message type in onMessageReceived
 - Delete an obsolete FIXME
 - "Clearing" a marker is now equivalent to disabling the marker event,
   and the default marker position is cleared.
 - use Android time units and types (int32_t, ANDROID_UNKNOWN_TIME, etc.) where appropriate
   instead of SLmillisecond and SL_TIME_UNKNOWN

Change-Id: Ib78bafa20d883b8d927364769663837389b6ea1d
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement XAPlayItf::GetPosition on MediaPlayer</title>
<updated>2011-07-12T16:42:20+00:00</updated>
<author>
<name>Jean-Michel Trivi</name>
<email>jmtrivi@google.com</email>
</author>
<published>2011-07-12T01:11:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=35a5a30fdad179ccf38d8d756590411326159a89'/>
<id>35a5a30fdad179ccf38d8d756590411326159a89</id>
<content type='text'>
The play interface was only in place for routing calls to an
 AudioPlayer in OpenSL ES, not in OpenMAX AL for a MediaPlayer.

Change-Id: Icf514be428396264252874faf1060c76ddee9545
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The play interface was only in place for routing calls to an
 AudioPlayer in OpenSL ES, not in OpenMAX AL for a MediaPlayer.

Change-Id: Icf514be428396264252874faf1060c76ddee9545
</pre>
</div>
</content>
</entry>
<entry>
<title>Call AudioTrack start, stop, and pause when needed</title>
<updated>2011-06-29T17:51:19+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-06-29T15:22:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=f4647bf85968ab30eb07f9a80b99177d91068f94'/>
<id>f4647bf85968ab30eb07f9a80b99177d91068f94</id>
<content type='text'>
These AudioTrack operations are relatively expensive Binder calls (and
will soon be even more expensive to fix a deadlock at AudioTrack::start),
and they were being called excessively.  Now AudioTrack start, stop,
and pause are only called when there is an actual play state change.

Details:
 - distinguish ATTR_TRANSPORT vs. ATTR_PLAY_STATE for audio players
 - android_audioPlayer_setPlayState is only called when the play state changes
 - handler_AudioPlayer_transport is only called for transport changes other than play state
 - android_audioPlayer_setPlayState is always called with mutex locked
 - since media player currently only handles play state, handler_MediaPlayer_transport
   is still called for both ATTR_TRANSPORT and ATTR_PLAY_STATE
 - since the handlers for ATTR_BQ_ENQUEUE and ATTR_ABQ_ENQUEUE are only called if in
   state PLAYING, changed an "if" to an "assert"

Change-Id: Iee2968fd98d215885b7105053bb1604f962ea337
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These AudioTrack operations are relatively expensive Binder calls (and
will soon be even more expensive to fix a deadlock at AudioTrack::start),
and they were being called excessively.  Now AudioTrack start, stop,
and pause are only called when there is an actual play state change.

Details:
 - distinguish ATTR_TRANSPORT vs. ATTR_PLAY_STATE for audio players
 - android_audioPlayer_setPlayState is only called when the play state changes
 - handler_AudioPlayer_transport is only called for transport changes other than play state
 - android_audioPlayer_setPlayState is always called with mutex locked
 - since media player currently only handles play state, handler_MediaPlayer_transport
   is still called for both ATTR_TRANSPORT and ATTR_PLAY_STATE
 - since the handlers for ATTR_BQ_ENQUEUE and ATTR_ABQ_ENQUEUE are only called if in
   state PLAYING, changed an "if" to an "assert"

Change-Id: Iee2968fd98d215885b7105053bb1604f962ea337
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build warnings caused by the 'long' change</title>
<updated>2011-04-13T18:58:55+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-04-13T18:58:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=a8179ea15c4ff78db589d742b135649f0eda7ef2'/>
<id>a8179ea15c4ff78db589d742b135649f0eda7ef2</id>
<content type='text'>
Change-Id: I34e74d723ae7fd829dd140614928d7880e669f03
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I34e74d723ae7fd829dd140614928d7880e669f03
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug 3329759 TS streaming over SLAndroidBufferQueueItf</title>
<updated>2011-03-04T23:48:38+00:00</updated>
<author>
<name>Jean-Michel Trivi</name>
<email>jmtrivi@google.com</email>
</author>
<published>2011-03-04T00:00:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=d158d31a6bbb06426b71c3d097b7768bc3fb79a3'/>
<id>d158d31a6bbb06426b71c3d097b7768bc3fb79a3</id>
<content type='text'>
Modify the SLAndroidBufferQueueItf interface to offer a model
 where buffers of data can be queued along with commands
 (messages) when used for playback, or buffers of data can be
 received along with metadata (messages)

changes:
- new callback and enqueue functions in SLAndroidBufferQueueItf
 and XAAndroidBufferQueueItf.
- definition of a new struct, AdvancedBufferHeader, for
  the buffers in the queue.
- decoupling of the "buffer available to be filled" from SF
  and the call to the ABQ callback. Implemented in new
  file AndroidBufferQueueSource.cpp
- source/sink checks and memory allocation  when creating an
 AudioPlayer or MediaPlayer that uses SLAndroidBufferQueueItf,
 and verifying the data fed to the ABQ is declared as
  SL_CONTAINERTYPE_MPEG_TS
- updated tests/native-media XA demo code, and
  tests/sandbox/streamSource to use the new interface.

Change-Id: I48e44f346e718041d835fde51e349923fcc1f4b1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Modify the SLAndroidBufferQueueItf interface to offer a model
 where buffers of data can be queued along with commands
 (messages) when used for playback, or buffers of data can be
 received along with metadata (messages)

changes:
- new callback and enqueue functions in SLAndroidBufferQueueItf
 and XAAndroidBufferQueueItf.
- definition of a new struct, AdvancedBufferHeader, for
  the buffers in the queue.
- decoupling of the "buffer available to be filled" from SF
  and the call to the ABQ callback. Implemented in new
  file AndroidBufferQueueSource.cpp
- source/sink checks and memory allocation  when creating an
 AudioPlayer or MediaPlayer that uses SLAndroidBufferQueueItf,
 and verifying the data fed to the ABQ is declared as
  SL_CONTAINERTYPE_MPEG_TS
- updated tests/native-media XA demo code, and
  tests/sandbox/streamSource to use the new interface.

Change-Id: I48e44f346e718041d835fde51e349923fcc1f4b1
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename class__ to clazz, this to thiz</title>
<updated>2011-01-19T18:33:52+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-01-18T19:44:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=bcc5c7225e3b7a1dbf2e9e830987f69167acf06f'/>
<id>bcc5c7225e3b7a1dbf2e9e830987f69167acf06f</id>
<content type='text'>
The JNI naming conventions avoid conflict with C++ reserved words.

Change-Id: I93ad6920bf78c0a02ac4b2650a29c9e11252f731
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The JNI naming conventions avoid conflict with C++ reserved words.

Change-Id: I93ad6920bf78c0a02ac4b2650a29c9e11252f731
</pre>
</div>
</content>
</entry>
<entry>
<title>Directory re-organization</title>
<updated>2011-01-12T17:25:01+00:00</updated>
<author>
<name>Glenn Kasten</name>
<email>gkasten@google.com</email>
</author>
<published>2011-01-12T15:29:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_frameworks_wilhelm/commit/?id=262059f71a68edc5e510427c63f5f1623d3672a8'/>
<id>262059f71a68edc5e510427c63f5f1623d3672a8</id>
<content type='text'>
Change-Id: I8e3f12a22e765d36ddefd87edf204735b25474f6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I8e3f12a22e765d36ddefd87edf204735b25474f6
</pre>
</div>
</content>
</entry>
</feed>
