#include <cstring>
#include <dali/internal/imaging/common/file-download.h>
#include <dali/internal/system/common/file-reader.h>
+#include <dali/devel-api/threading/mutex.h>
typedef unsigned char WebPByteType;
public:
Impl( const std::string& url, bool isLocalResource )
: mUrl( url ),
- mLoadingFrame( 0 )
+ mMutex()
{
#ifdef DALI_WEBP_ENABLED
if( ReadWebPInformation( isLocalResource ) )
std::string mUrl;
std::vector<uint32_t> mTimeStamp;
- uint32_t mLoadingFrame;
+ uint32_t mLoadingFrame{0};
+ Mutex mMutex;
#ifdef DALI_WEBP_ENABLED
- WebPData mWebPData;
- WebPAnimDecoder* mWebPAnimDecoder;
- WebPAnimInfo mWebPAnimInfo;
+ WebPData mWebPData{0};
+ WebPAnimDecoder* mWebPAnimDecoder{nullptr};
+ WebPAnimInfo mWebPAnimInfo{0};
#endif
};
bool WebPLoading::LoadNextNFrames( uint32_t frameStartIndex, int count, std::vector<Dali::PixelData> &pixelData )
{
#ifdef DALI_WEBP_ENABLED
+ Mutex::ScopedLock lock( mImpl->mMutex );
if( frameStartIndex >= mImpl->mWebPAnimInfo.frame_count )
{
return false;
{
Dali::Devel::PixelBuffer pixelBuffer;
#ifdef DALI_WEBP_ENABLED
+ Mutex::ScopedLock lock( mImpl->mMutex );
if( frameIndex >= mImpl->mWebPAnimInfo.frame_count )
{
return pixelBuffer;