commonsys-intf: display: Update SmoMo interface

Add version information in SmoMo interface to make sure the
API of clients and SmoMo implementation are compatible. Also
add buffer dequeue duration in SmoMo interface which is used
to update SmoMo internal states.

Change-Id: I65cf2cdb8afedb45d6576d4931e4d074b8b2f7f4
This commit is contained in:
Ray Zhang
2019-08-07 19:23:17 +08:00
parent 90699105c2
commit 7c96b4a99a

View File

@@ -39,6 +39,15 @@
namespace smomo { namespace smomo {
#define SMOMO_LIBRARY_NAME "libsmomo.qti.so"
#define CREATE_SMOMO_INTERFACE_NAME "CreateSmomoInterface"
#define DESTROY_SMOMO_INTERFACE_NAME "DestroySmomoInterface"
#define SMOMO_REVISION_MAJOR (1)
#define SMOMO_REVISION_MINOR (0)
#define SMOMO_VERSION_TAG ((uint16_t) ((SMOMO_REVISION_MAJOR << 8) \
| SMOMO_REVISION_MINOR))
typedef int64_t nsecs_t; typedef int64_t nsecs_t;
/*! @brief This structure defines the layer stats required by SmoMo. /*! @brief This structure defines the layer stats required by SmoMo.
@@ -60,6 +69,7 @@ struct SmomoBufferStats {
int32_t queued_frames; // queued frame count of this layer int32_t queued_frames; // queued frame count of this layer
bool auto_timestamp; // whether timestamp was generated automatically bool auto_timestamp; // whether timestamp was generated automatically
nsecs_t timestamp; // layer buffer's timestamp nsecs_t timestamp; // layer buffer's timestamp
nsecs_t dequeue_latency; // last dequeue duration
}; };
/*! @brief SmoMo interface implemented by SmoMo library. /*! @brief SmoMo interface implemented by SmoMo library.
@@ -128,13 +138,16 @@ class SmomoIntf {
@details This function is called to tell SmoMo what refresh rates this display can suport. @details This function is called to tell SmoMo what refresh rates this display can suport.
@param[in] refresh_rates The refresh rates list supported by the display @param[in] refresh_rates The refresh rates supported by the display
@return \link void \endlink @return \link void \endlink
*/ */
virtual void SetDisplayRefreshRates(const std::vector<float> &refresh_rates) = 0; virtual void SetDisplayRefreshRates(const std::vector<float> &refresh_rates) = 0;
}; };
typedef bool (*CreateSmomoInterface)(uint16_t version, SmomoIntf **interface);
typedef void (*DestroySmomoInterface)(SmomoIntf *interface);
} // namespace smomo } // namespace smomo
#endif // __SMOMO_INTERFACE_H__ #endif // __SMOMO_INTERFACE_H__