1. 11 Jan, 2016 1 commit
  2. 03 Sep, 2015 1 commit
    • Pablo Ceballos's avatar
      BQ: Modify consumer buffer count interfaces · 19e3e06e
      Pablo Ceballos authored
      - Rename setDefaultMaxBufferCount() to setMaxBufferCount(). Modify it
        to be hard maximum on the number of buffers that can't be overwritten
        by the producer.
      - Enforce the maximum buffer count in setMaxAcquiredBufferCount(),
        setMaxDequeuedBufferCount(), and setAsyncMode().
      - Remove mOverrideMaxBufferCount as it's no longer needed since
        overriding is no longer possible.
      - Expose setMaxAcquiredBufferCount() in GLConsumer.
      - Remove disableAsyncBuffer(), it was only being used for single buffer
        mode. Single buffer mode is now achievable with setMaxBufferCount().
      
      Bug 13174928
      
      Change-Id: Ia33799f42751272a711fbd8559f7602ce9f18e4f
      19e3e06e
  3. 13 May, 2015 1 commit
    • Dan Stoza's avatar
      Fix PTS handling for buffer replacement · e64a79cd
      Dan Stoza authored
      This changes the way that SurfaceFlinger's shadow buffer management
      works such that instead of tracking the size of the shadow queue in the
      BufferQueue, SF tracks the last frame number it has seen, and passes
      that into the acquireBuffer call. BufferQueueConsumer then ensures that
      it never returns a buffer newer than that frame number, even if that
      means that it must return PRESENT_LATER for an otherwise valid buffer.
      
      Change-Id: I3fcb45f683ed660c3f18a8b85ae1f8a962ba6f0e
      (cherry picked from commit a4650a50)
      e64a79cd
  4. 12 May, 2015 1 commit
    • Dan Stoza's avatar
      Fix PTS handling for buffer replacement · a4650a50
      Dan Stoza authored
      This changes the way that SurfaceFlinger's shadow buffer management
      works such that instead of tracking the size of the shadow queue in the
      BufferQueue, SF tracks the last frame number it has seen, and passes
      that into the acquireBuffer call. BufferQueueConsumer then ensures that
      it never returns a buffer newer than that frame number, even if that
      means that it must return PRESENT_LATER for an otherwise valid buffer.
      
      Change-Id: I3fcb45f683ed660c3f18a8b85ae1f8a962ba6f0e
      a4650a50
  5. 01 May, 2015 1 commit
    • Dan Stoza's avatar
      SurfaceFlinger: Fix PTS on stale buffers · ecc50404
      Dan Stoza authored
      SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was
      getting out of sync for a few reasons. This change fixes these by
      doing the following:
      
      - Adds a check to re-synchronize the shadow copy every time we
        successfully acquire a buffer by first dropping stale buffers before
        removing the current buffer.
      - Avoids trying to perform updates for buffers which have been rejected
        (for incorrect dimensions) by SurfaceFlinger.
      - Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the
        consumer to notify the BufferQueue that it is maintaining a shadow
        copy of the queue and prevents it from dropping so many buffers
        during acquireBuffer that it ends up returning a buffer for which the
        consumer has not yet received an onFrameAvailable call.
      
      Bug: 20096136
      Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f
      (cherry picked from commit 2e36f228)
      ecc50404
  6. 30 Apr, 2015 1 commit
    • Dan Stoza's avatar
      SurfaceFlinger: Fix PTS on stale buffers · 2e36f228
      Dan Stoza authored
      SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was
      getting out of sync for a few reasons. This change fixes these by
      doing the following:
      
      - Adds a check to re-synchronize the shadow copy every time we
        successfully acquire a buffer by first dropping stale buffers before
        removing the current buffer.
      - Avoids trying to perform updates for buffers which have been rejected
        (for incorrect dimensions) by SurfaceFlinger.
      - Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the
        consumer to notify the BufferQueue that it is maintaining a shadow
        copy of the queue and prevents it from dropping so many buffers
        during acquireBuffer that it ends up returning a buffer for which the
        consumer has not yet received an onFrameAvailable call.
      
      Bug: 20096136
      Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f
      2e36f228
  7. 28 Apr, 2015 2 commits
  8. 07 Apr, 2015 2 commits
    • Dan Stoza's avatar
      libgui: Remove IGBC::BufferItem · 955c8974
      Dan Stoza authored
      Removes IGraphicBufferConsumer::BufferItem. Depends on the
      following changes:
          I187b3a7d05196b6289596afac8fb9a9d4aebff76
          I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc
      
      Change-Id: I3edf0db8fba656fd78e18a5a7f1137f0fb6b237d
      (cherry picked from commit 1c87e474)
      955c8974
    • Eino-Ville Talvala's avatar
      Cherry-pick dataSpace and BufferItem changes · 1c2001ef
      Eino-Ville Talvala authored
      Add dataSpace to buffer queues; remove old format enums.
      (cherry picked from commit 82c6bcc9)
      
      libgui: Prepare for IGBC::BufferItem removal
      (cherry picked from commit cf3834db)
      
      SurfaceFlinger: Stop using IGBC::BufferItem
      (cherry picked from commit 11611f9b)
      
      Change-Id: Ic2e4770b916d2d1477e5ce98c4b49a0072ea03ff
      (cherry picked from commit 6c450101)
      1c2001ef
  9. 06 Apr, 2015 1 commit
  10. 24 Mar, 2015 1 commit
    • Eino-Ville Talvala's avatar
      Add dataSpace to buffer queues; remove old format enums. · 63e8376d
      Eino-Ville Talvala authored
      - Wire up new dataSpace parameter through buffer queue stack
      - Update tests to include the parameter
      - Switch eglApi to using dataSpace to indicate sRGB gamma/linear
        difference
      - Remove RAW_SENSOR in favor of RAW16
      - Remove use of sRGB format enums
      - Add default dataspace to buffer queue core
      - Add query for default dataspace
      
      Change-Id: I070bd2e7c56506055c419004c29e2e3feac725df
      63e8376d
  11. 20 Mar, 2015 1 commit
    • Dan Stoza's avatar
      DO NOT MERGE libgui: Remove IGBC::BufferItem · 1c87e474
      Dan Stoza authored
      Removes IGraphicBufferConsumer::BufferItem. Depends on the
      following changes:
          I187b3a7d05196b6289596afac8fb9a9d4aebff76
          I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc
      
      Cherry-pick of Id1fa56d092188f2cb712768d5d2fc6a9027fb73c
      
      Change-Id: I3edf0db8fba656fd78e18a5a7f1137f0fb6b237d
      1c87e474
  12. 19 Mar, 2015 2 commits
    • Dan Stoza's avatar
      DO NOT MERGE libgui: Prepare for IGBC::BufferItem removal · cf3834db
      Dan Stoza authored
      Currently, there are two instances of BufferItem: one inside of
      IGraphicBufferConsumer, and a standalone one inside of libgui. They
      only differ in the name of one of the fields, and we want to remove
      the IGBC version. This changes things so that client code may be
      incrementally switched over to the libgui version.
      
      This is a squashed commit containing the following changes:
          I64f495105f56cbf5803cea4aa6b072ea29b70cf5
          I1394e693314429ada93427889f10b7b01c948053
          I9c3bc8037fa9438d4d9080b8afb694219ef2f71f
          I699ed0a6837076867ca756b28d1ffb2238f7a0d9
          Iac8425e1241774304a131da2fb9dec6e82922f13
      
      Change-Id: Ic4d51f5df6dbc70b376d13fceba2335b9bae4f3d
      cf3834db
    • Eino-Ville Talvala's avatar
      DO NOT MERGE Add dataSpace to buffer queues; remove old format enums. · 82c6bcc9
      Eino-Ville Talvala authored
      - Wire up new dataSpace parameter through buffer queue stack
      - Update tests to include the parameter
      - Switch eglApi to using dataSpace to indicate sRGB gamma/linear
        difference
      - Remove RAW_SENSOR in favor of RAW16
      - Remove use of sRGB format enums
      - Add default dataspace to buffer queue core
      - Add query for default dataspace
      
      Cherry pick of I070bd2e7c56506055c419004c29e2e3feac725df
      
      Change-Id: I461952389c18051176c6b75e664f20ad369f5760
      82c6bcc9
  13. 18 Mar, 2015 1 commit
    • Dan Stoza's avatar
      libgui: Enable -Weverything and -Werror · 3be1c6b6
      Dan Stoza authored
      Enables -Weverything and -Werror, with just a few exceptions for
      warnings we can't (or shouldn't need to) work around.
      
      Cherry pick of I034abec27bf4020d84af60d7acc1939c59986dd6 plus a
      couple of minor changes to CpuConsumer.cpp to make it work with a
      prior change:
          Uncomment CC_LOGV on line 46
          Change C-style cast to static_cast on line 71
      
      Change-Id: Iaec610477ea0122317b0578fb74caf2383d4cf08
      3be1c6b6
  14. 16 Mar, 2015 1 commit
    • Dan Stoza's avatar
      libgui: Remove IGBC::BufferItem · 54716317
      Dan Stoza authored
      Removes IGraphicBufferConsumer::BufferItem. Depends on the
      following changes:
          I187b3a7d05196b6289596afac8fb9a9d4aebff76
          I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc
      
      Change-Id: Id1fa56d092188f2cb712768d5d2fc6a9027fb73c
      54716317
  15. 11 Mar, 2015 1 commit
  16. 04 Mar, 2015 1 commit
    • Eino-Ville Talvala's avatar
      Add dataSpace to buffer queues; remove old format enums. · 5b75a513
      Eino-Ville Talvala authored
      - Wire up new dataSpace parameter through buffer queue stack
      - Update tests to include the parameter
      - Switch eglApi to using dataSpace to indicate sRGB gamma/linear
        difference
      - Remove RAW_SENSOR in favor of RAW16
      - Remove use of sRGB format enums
      - Add default dataspace to buffer queue core
      - Add query for default dataspace
      
      Change-Id: I070bd2e7c56506055c419004c29e2e3feac725df
      5b75a513
  17. 05 Dec, 2014 2 commits
    • Dan Stoza's avatar
      libgui: Enable -Weverything and -Werror · dd883c0b
      Dan Stoza authored
      Enables -Weverything and -Werror, with just a few exceptions for
      warnings we can't (or shouldn't need to) work around.
      
      This is a squashed commit based on an initial change with a couple of
      fixes to avoid breaking certain targets. The source commits are:
        d723bd76
        00d504c0
        429ba89c
      
      Change-Id: I034abec27bf4020d84af60d7acc1939c59986dd6
      dd883c0b
    • Dan Stoza's avatar
      libgui: Enable -Weverything and -Werror · d723bd76
      Dan Stoza authored
      Enables -Weverything and -Werror, with just a few exceptions for
      warnings we can't (or shouldn't need to) work around.
      
      Change-Id: I034abec27bf4020d84af60d7acc1939c59986dd6
      d723bd76
  18. 17 Nov, 2014 1 commit
  19. 14 Nov, 2014 1 commit
  20. 18 Apr, 2014 1 commit
    • Dan Stoza's avatar
      BufferQueue: Increase max slots from 32 to 64 · febd4f4f
      Dan Stoza authored
      Increases NUM_BUFFER_SLOTS from 32 to 64 and changes the mask
      returned by IGBC::getReleasedBuffers from 32 to 64 bits.
      
      Bug: 13174352
      Change-Id: Ie8ef0853916cfb91f83881c7241886bb1950f01a
      febd4f4f
  21. 15 Apr, 2014 1 commit
    • Dan Stoza's avatar
      BufferQueue: Add StreamSplitter · 99b18b44
      Dan Stoza authored
      Adds a StreamSplitter class, that takes one IGraphicBufferConsumer
      interface and multiple IGraphicBufferProducer interfaces and
      implements a one-to-many broadcast of GraphicBuffers (while managing
      fences correctly).
      
      Change-Id: I38ecdf3e311ac521bc781c30dde0cc382a4376a3
      99b18b44
  22. 24 Mar, 2014 1 commit
  23. 21 Mar, 2014 1 commit
    • Dan Stoza's avatar
      BufferQueue: Test remote producer and consumer · 1a0b8617
      Dan Stoza authored
      Adds a test that puts the BufferQueue into its own process and
      connects to it over remote binder interfaces. This exposed the fact
      that while IGBC was technically binderized, it didn't actually work
      when flattened, so this change also fixes that.
      
      Change-Id: I728cdb662a4273ddd3440ed6040a12560313fe68
      1a0b8617
  24. 11 Mar, 2014 1 commit
    • Jesse Hall's avatar
      Add sideband streams to BufferQueue and related classes · 399184a4
      Jesse Hall authored
      Sideband streams are essentially a device-specific buffer queue that
      bypasses the BufferQueue system. They can be used for situations with
      hard real-time requirements like high-quality TV and video playback
      with A/V sync. A handle to the stream is provided by the source HAL,
      and attached to a BufferQueue. The sink HAL can read buffers via the
      stream handle rather than acquiring individual buffers from the
      BufferQueue.
      
      Change-Id: Ib3f262eddfc520f4bbe3d9b91753ed7dd09d3a9b
      399184a4
  25. 10 Mar, 2014 1 commit
    • Dan Stoza's avatar
      BufferQueue: Allow detaching/reattaching buffers · 9f3053de
      Dan Stoza authored
      Adds detachBuffer and attachBuffer calls to both the producer and
      consumer sides of BufferQueue. Buffers may be detached while dequeued
      by the producer or acquired by the consumer, and when attached, enter
      the dequeued and acquired states, respectively.
      
      Bug: 13173343
      Change-Id: Ic152692b0a94d99e0135b9bfa62747dab2a54220
      9f3053de
  26. 14 Nov, 2013 1 commit
  27. 18 Sep, 2013 1 commit
    • Mathias Agopian's avatar
      fix camera API 2.0 orientation · c1c05de4
      Mathias Agopian authored
      we add a flag to ANativeWindow::setBufferTransform that means
      "apply the inverse rotation of the display this buffer is displayed
      onto to".
      
      Bug: 10804238
      Change-Id: Id2447676271950463e8dbcef1b95935c5c3f32b2
      c1c05de4
  28. 16 Aug, 2013 1 commit
    • Andy McFadden's avatar
      Re-enable frame dropping for non-auto timestamps · 3c25621a
      Andy McFadden authored
      This change adds an entire field to note whether the timestamp was
      auto-generated by Surface or supplied by the application.
      
      The value is used when deciding whether or not to drop frames based
      on buffer presentation timestamps.  If a desired presentation time
      was set explicitly, BufferQueue will use that value to decide if a
      frame should be dropped.  If the timestamp was generated by Surface
      at the time the buffer was queued, the timestamp is ignored.
      
      Bug 10151804
      
      Change-Id: Ibd571a7578351063b813cbdad2ddbeed70655ba5
      3c25621a
  29. 06 Aug, 2013 1 commit
  30. 02 Aug, 2013 1 commit
    • Mathias Agopian's avatar
      Binderize the consumer side of BufferQueue · a4e19521
      Mathias Agopian authored
      While currently untested, this should allow to move the
      BuffereQueue in the consumer process and have everything
      work as usual.
      
      Bug: 9265647
      
      Change-Id: I9ca8f099f7c65b9a27b7e7a3643b46d1b58eacfc
      a4e19521