diff mbox

[FFmpeg-devel,2/3] avdevice/decklink_enc: convert to std::atomic

Message ID 20170325235137.5330-2-cus@passwd.hu
State Accepted
Commit c395d230b12834752d28e81a74233daa816a26c2
Headers show

Commit Message

Marton Balint March 25, 2017, 11:51 p.m. UTC
Signed-off-by: Marton Balint <cus@passwd.hu>
---
 libavdevice/decklink_enc.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
diff mbox

Patch

diff --git a/libavdevice/decklink_enc.cpp b/libavdevice/decklink_enc.cpp
index 8892d19..18ef905 100644
--- a/libavdevice/decklink_enc.cpp
+++ b/libavdevice/decklink_enc.cpp
@@ -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