@@ -57,6 +57,14 @@ namespace std {
5757
5858
5959%{
60+ /* Ruby and FFmpeg define competing RSHIFT macros,
61+ * so we move Ruby's out of the way for now. We'll
62+ * restore it after dealing with FFmpeg's
63+ */
64+ #ifdef RSHIFT
65+ #define RB_RSHIFT (a, b ) RSHIFT(a, b)
66+ #undef RSHIFT
67+ #endif
6068#include " ../../../include/Version.h"
6169#include " ../../../include/ReaderBase.h"
6270#include " ../../../include/WriterBase.h"
@@ -93,6 +101,15 @@ namespace std {
93101#include " ../../../include/ZmqLogger.h"
94102#include " ../../../include/AudioDeviceInfo.h"
95103
104+ /* Move FFmpeg's RSHIFT to FF_RSHIFT, if present */
105+ #ifdef RSHIFT
106+ #define FF_RSHIFT (a, b ) RSHIFT(a, b)
107+ #undef RSHIFT
108+ #endif
109+ /* And restore Ruby's RSHIFT, if we captured it */
110+ #ifdef RB_RSHIFT
111+ #define RSHIFT (a, b ) RB_RSHIFT(a, b)
112+ #endif
96113%}
97114
98115#ifdef USE_BLACKMAGIC
@@ -133,8 +150,29 @@ namespace std {
133150%include " ../../../include/EffectInfo.h"
134151%include " ../../../include/Enums.h"
135152%include " ../../../include/Exceptions.h"
153+
154+ /* Ruby and FFmpeg define competing RSHIFT macros,
155+ * so we move Ruby's out of the way for now. We'll
156+ * restore it after dealing with FFmpeg's
157+ */
158+ #ifdef RSHIFT
159+ #define RB_RSHIFT (a, b ) RSHIFT(a, b)
160+ #undef RSHIFT
161+ #endif
162+
136163%include " ../../../include/FFmpegReader.h"
137164%include " ../../../include/FFmpegWriter.h"
165+
166+ /* Move FFmpeg's RSHIFT to FF_RSHIFT, if present */
167+ #ifdef RSHIFT
168+ #define FF_RSHIFT (a, b ) RSHIFT(a, b)
169+ #undef RSHIFT
170+ #endif
171+ /* And restore Ruby's RSHIFT, if we captured it */
172+ #ifdef RB_RSHIFT
173+ #define RSHIFT (a, b ) RB_RSHIFT(a, b)
174+ #endif
175+
138176%include " ../../../include/Fraction.h"
139177%include " ../../../include/Frame.h"
140178%include " ../../../include/FrameMapper.h"
0 commit comments