mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-03-21 15:40:21 +00:00
+ in capabilities list, given bitrate is computed according to the detected capture format (provided that '-t' argument is given)
57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
/**
|
|
* @deprecated
|
|
* Do not use these functions in new code, use rather std::lock_guard and similar
|
|
*/
|
|
#ifndef LOCK_GUARD_H_
|
|
#define LOCK_GUARD_H_
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#include "config_unix.h"
|
|
#include "config_win32.h"
|
|
#endif // HAVE_CONFIG_H
|
|
|
|
#include "compat/platform_spin.h"
|
|
#include <pthread.h>
|
|
|
|
namespace ultragrid {
|
|
|
|
struct lock_guard_retain_ownership_t {
|
|
};
|
|
|
|
template <typename T, int (*lock_func)(T *), int (*unlock_func)(T *)>
|
|
class generic_lock_guard {
|
|
public:
|
|
generic_lock_guard(T &lock) :
|
|
m_lock(lock)
|
|
{
|
|
lock_func(&m_lock);
|
|
}
|
|
|
|
generic_lock_guard(T &lock, lock_guard_retain_ownership_t) :
|
|
m_lock(lock)
|
|
{
|
|
}
|
|
|
|
~generic_lock_guard()
|
|
{
|
|
unlock_func(&m_lock);
|
|
}
|
|
private:
|
|
T &m_lock;
|
|
};
|
|
|
|
typedef class generic_lock_guard<pthread_mutex_t, pthread_mutex_lock, pthread_mutex_unlock>
|
|
pthread_mutex_guard;
|
|
typedef class generic_lock_guard<pthread_rwlock_t, pthread_rwlock_wrlock, pthread_rwlock_unlock>
|
|
pthread_rwlock_guard_write;
|
|
typedef class generic_lock_guard<pthread_rwlock_t, pthread_rwlock_rdlock, pthread_rwlock_unlock>
|
|
pthread_rwlock_guard_read;
|
|
typedef class generic_lock_guard<platform_spin_t, platform_spin_lock, platform_spin_unlock>
|
|
platform_spin_guard;
|
|
|
|
} // end of namespace ultragrid
|
|
|
|
#endif // LOCK_GUARD_H_
|
|
|