| | |
| | | } |
| | | }; |
| | | |
| | | template<typename T> |
| | | struct ScopeLocker; |
| | | |
| | | template<> |
| | | struct ScopeLocker<pthread_mutex_t> |
| | | { |
| | | pthread_mutex_t* mut; |
| | | ScopeLocker(pthread_mutex_t* _mut) : mut(_mut) { if (mut) pthread_mutex_lock(mut); } |
| | | ~ScopeLocker(){ if (mut) pthread_mutex_unlock(mut); } |
| | | }; |
| | | |
| | | uint8_t* base64_decode(char const* in, size_t inSize, size_t& resultSize, bool trimTrailingZeros = true); |
| | | char* base64_encode(char const* orig, size_t origLength); |
| | | |
| | | class SPropRecord; |
| | | SPropRecord* parseSPropParameterSets(char const* sPropParameterSetsStr, int& numSPropRecords); |
| | | |