Browse Source

avdevice/decklink_enc: convert to std::atomic

Signed-off-by: Marton Balint <cus@passwd.hu>
tags/n3.3
Marton Balint 8 years ago
parent
commit
c395d230b1
1 changed files with 6 additions and 4 deletions
  1. +6
    -4
      libavdevice/decklink_enc.cpp

+ 6
- 4
libavdevice/decklink_enc.cpp View File

@@ -19,6 +19,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include <atomic>
using std::atomic;

#include <DeckLinkAPI.h>

#include <pthread.h>
@@ -28,7 +31,6 @@ extern "C" {
#include "libavformat/avformat.h"
#include "libavformat/internal.h"
#include "libavutil/imgutils.h"
#include "libavutil/atomic.h"
}

#include "decklink_common.h"
@@ -60,10 +62,10 @@ public:
virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(IDeckLinkVideoFrameAncillary **ancillary) { return S_FALSE; }

virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return avpriv_atomic_int_add_and_fetch(&_refs, 1); }
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
virtual ULONG STDMETHODCALLTYPE Release(void)
{
int ret = avpriv_atomic_int_add_and_fetch(&_refs, -1);
int ret = --_refs;
if (!ret) {
av_frame_free(&_avframe);
delete this;
@@ -75,7 +77,7 @@ public:
AVFrame *_avframe;

private:
volatile int _refs;
std::atomic<int> _refs;
};

class decklink_output_callback : public IDeckLinkVideoOutputCallback


Loading…
Cancel
Save