1. 12 Jul, 2011 1 commit
  2. 10 Jul, 2011 1 commit
    • Jean-Michel Trivi's avatar
      Implement GetPosition for players playing from a URI/FD · 4b0e0b28
      Jean-Michel Trivi authored
      AudioPlayer (OpenSL ES) and MediaPlayer (OpenMAX AL) that play
       media from a URI or FD are implemented on top of an Android
       MediaPlayer. This CL implements requesting the current position
       from the underlying MediaPlayer object inside the event loop.
       At this stage, GetPosition cannot be called from inside a
       callback as the callback is made on the same thread that will
       process the asynchronous part of the GetPosition implementation.
      Add test app for GetPosition.
      
      Change-Id: Ife768bc40e37fc60cc19f6ba84bbe6cb06cc6590
      4b0e0b28
  3. 13 Apr, 2011 3 commits
    • Gloria Wang's avatar
      - Add another parameter in notify() to be able to send timed text sample · 2f6d462d
      Gloria Wang authored
      through listener during video playback.
      For feature request 800939.
      
      Change-Id: I14aa18d2f803163a62c05f9e6bd990518c58cd3f
      2f6d462d
    • Jean-Michel Trivi's avatar
      Fix stuttering at beginning of playback · 7ef5526a
      Jean-Michel Trivi authored
      When an AudioPlayer is created, its playstate is set to STOPPED
       three times. A stop command is translated into a pause + seek(0).
       When a seek is underway, any new seek command was postponed. So
       when playback would start after a first seek(0), the other seeks
       would be executed, causing the stutterring.
      This CL verifies that, when seeking to a certain time, any new
       seek command to the same point in time received while seeking
       is ignored.
      It also correct the update of mStateFlags, which should be done
       BEFORE the command is issued to the player, in case the seek
       complete notification happens syncronously with the seek command.
      
      This CL does NOT fix why a newly created player sees its playstate
       updated to STOPPED three times in a test app like slesTest_playUri
       before playback starts.
      
      Change-Id: Ic7627678735f559b911ea3c5a0e1e00d7d7534d2
      7ef5526a
    • Glenn Kasten's avatar
      Fix various bugs found with unit tests · e31a69fc
      Glenn Kasten authored
      ISeek::SetLoop was returning undefined status.
      Khronos Bug 7614 - sizeof(long) != 32 bits on x86_64.
      Fix bug in IID hashing due to the above.
      Fix bug in GenericMediaPlayer::onLoop; was using mPlayer without checking for NULL.
      Fix wrong API level in tests/sandbox/object.c.
      Decrease log level from I to V in MediaPlayerNotificationClient::notify
          and GenericPlayer::~GenericPlayer.
      Fix memory leak in tests/sandbox/engine.c.
      Comment out overly verbose log in tests/sandbox/streamSource/slesTestPlayStream.cpp.
      
      Change-Id: I322fa9e19ee95ea1e18870a20f6a3c03b8f21208
      e31a69fc
  4. 11 Apr, 2011 1 commit
    • Jean-Michel Trivi's avatar
      Use reference to sp on GenericPlayer · 36b700a8
      Jean-Michel Trivi authored
      When an object like GenericPlayer is stored in CAudioPlayer or
       CMediaPlayer by a sp, don't use a pointer to GenericPlayer when
       the object is passed as a function parameter, but rather use
       a reference to the sp that maintains it.
      
      Change-Id: I49ff219618ac4b657deb43cfffb65f0e0dd6d58d
      36b700a8
  5. 05 Apr, 2011 1 commit
    • Jean-Michel Trivi's avatar
      Move support for SL URI and FD playback under GenericPlayer class · 4ee246c5
      Jean-Michel Trivi authored
      The SfPlayer class was implementing URI and FD decode and playback
       in the application process. This CL removes this class entirely
       and moves its functionality under the GenericPlayer class. This
       means that the playback of URIs and FDs is now implemented through
       an android::MediaPlayer object running in the media service.
      
      The SfPlayer header had many StageFright and system includes, which
       are now moved to the relevant files where they are required,
       instead of automagically coming from sles_allinclusive.h.
      
      Note that this CL breaks support for the following OpenSL ES features
      due to missing Android MediaPlayer features:
       SLPlayItf.GetPosition
                 HEADATMARKER
                 HEADATNEWPOSITION
       SLVolumeItf.EnableStereoPosition
                 SetStereoPosition
       SLMuteSoloItf
       SLPlaybackRateItf
      
       Support for those features will be reintegrated in subsequent CLs.
      
      Change-Id: I8d7f6ea006eb7b876ef1ca1909d74b4517335850
      4ee246c5
  6. 28 Mar, 2011 1 commit
    • Jean-Michel Trivi's avatar
      Reduce include noise in SL and XA class definitions · 2b06e20a
      Jean-Michel Trivi authored
      In classes.h: we should only have to include the headers
       for the objects that are actually stored as member variables of
       the OpenSL ES and OpenMAX AL objects (so here AudioTrackProtector,
       Effect, and GenericPlayer).
      In CMediaPlayer.c: remove useless includes and change the video
       surface function prototypes to use const refs to strong pointers
       instead of pointers to access the GenericMediaPlayer objects.
      
      Note that android_SfPlayer.h is still in sles_allinclusive.h because
       it will be dealt with when the SfPlayer functionality is absorbed
       under LocAVPlayer.
      
      Change-Id: Ic2c9459862588399d9545a247cc15341effc0f66
      2b06e20a
  7. 17 Mar, 2011 1 commit
  8. 14 Mar, 2011 1 commit
    • Jean-Michel Trivi's avatar
      Bug 3329759 Implement streamInformation and volume in OpenMAX AL · 37dc2fcc
      Jean-Michel Trivi authored
      - Implement StreamInformation for video size notification.
      - Implement the XAVolumeItf for volume control
      - Fix bug in GUID -> MPH hash.
      - Fixed typo in GenericPlayer::pause() log
      - Do not signal a discontinuity automatically when the ABQ is
        cleared because clearing the queue doesn't imply there will
        be a discontinuity in the data (e.g. the same data that was
        cleared could be reenqueued)
      - In "native-media" test app: add test code to exercise the
        XAVolumeItf functionality.
      
      Change-Id: I9f69f8cacbdce51b6d96d60141ec1d0f645df991
      37dc2fcc
  9. 08 Mar, 2011 1 commit
    • Jean-Michel Trivi's avatar
      Bug 3329759 support commands in SLAndroidBufferQueueItf · 70c49ae2
      Jean-Michel Trivi authored
      Support for EOS, DISCONTINUITY, and DISCONTINUITY with
       a PTS.
      
      - in IAndroidBufferQueue structure, added buffer type
      - modified AdvancedBufferHeader structure to have a buffer
       type-specific structure that contains all the items for each
       buffer
      - added parsing of items when enqueueing a buffer
      - enforce buffer size enqueue to be a multiple of MPEG-2 TS
       block size for buffer of the corresponding types
      - when enqueueing a buffer on an empty queue, implemented
       an asynchronous notification on StreamPlayer to consume
       the newly queued buffer. Verified this kicks off playback
       after having starved the framework for buffers.
      - report unknown duration when using AndroidBufferQueue
      
      Change-Id: I9bde97a6c6ffca7d376b4963313b820b35f50a26
      70c49ae2
  10. 07 Mar, 2011 1 commit
    • Glenn Kasten's avatar
      Bug 3329759 Surface texture as video sink · ad1ab1d1
      Glenn Kasten authored
      XA_DATALOCATOR_NATIVEDISPLAY now allows either a Surface or SurfaceTexture
      together with a JNIEnv *.
      
      Miscellaneous fixes:
       - Clarify test button labels.
       - Line length 100.
       - Fix typos in XA_DATALOCATOR_ANDROIDFD and XA_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE.
      
      Change-Id: I3f3c604dfda3cf66ef7d7adc8689564a83623b2f
      ad1ab1d1
  11. 24 Feb, 2011 1 commit
    • Jean-Michel Trivi's avatar
      OpenMAX AL: consolidate MediaPlayer implementations under superclass · 68d56b8e
      Jean-Michel Trivi authored
      The OpenMAX AL MediaPlayer object has two implementations: one
       for playing from URI/FD (LocAVPlayer) and one for playing from
       AndroidBufferQueue (StreamPlayer). They both inherit from AVPlayer.
      This CL makes LocAVPlayer and StreamPlayer inherit from
       GenericMediaPlayer (new name of AVPlayer) which encapsulates the
       interaction with an android::MediaPlayer instance running in
       the media server process.
      Also it makes GenericMediaPlayer inherit from GenericPlayer, the
       player superclass also used in OpenSL ES.
      
      After this CL, the OpenMAX AL and OpenSL ES have a common class
       hierarchy for their players.
      
      Change-Id: I5f6e279fc29b7f6f26c9ed5c83a9455cfda88ff4
      68d56b8e