Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1229)

Unified Diff: content_decryption_module.h

Issue 1964083003: Fix the breakage on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/cdm.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content_decryption_module.h
diff --git a/content_decryption_module.h b/content_decryption_module.h
index 958c5534536394907261818bb68c94702dfb04c2..06c7d38a7c544814ff12cd3d045ec4377a29d940 100644
--- a/content_decryption_module.h
+++ b/content_decryption_module.h
@@ -19,6 +19,12 @@ typedef __int64 int64_t;
// a dynamic library even in a non-component build.
#if defined(WIN32)
+#if defined(__clang__)
+#define CDM_CLASS_API [[clang::lto_visibility_public]]
+#else
+#define CDM_CLASS_API
+#endif
+
#if defined(CDM_IMPLEMENTATION)
#define CDM_API __declspec(dllexport)
#else
@@ -27,6 +33,7 @@ typedef __int64 int64_t;
#else // defined(WIN32)
#define CDM_API __attribute__((visibility("default")))
+#define CDM_CLASS_API __attribute__((visibility("default")))
#endif // defined(WIN32)
xhwang 2016/05/12 06:54:30 Could you summarize what's discussed in the bug an
krasin 2016/05/16 21:40:10 Done.
// The version number must be rolled when the exported functions are updated!
@@ -379,7 +386,7 @@ enum MessageType {
// Note to implementors of this interface:
// Per-origin storage and the ability for users to clear it are important.
// See http://www.w3.org/TR/encrypted-media/#privacy-storedinfo.
-class CDM_API FileIO {
+class CDM_CLASS_API FileIO {
public:
// Opens the file with |file_name| for read and write.
// FileIOClient::OnOpenComplete() will be called after the opening
@@ -419,7 +426,7 @@ class CDM_API FileIO {
// When kError is returned, the FileIO object could be in an error state. All
// following calls (other than Close()) could return kError. The CDM should
// still call Close() to destroy the FileIO object.
-class CDM_API FileIOClient {
+class CDM_CLASS_API FileIOClient {
public:
enum Status {
kSuccess = 0,
@@ -460,7 +467,7 @@ class CDM_API FileIOClient {
// provided in CreateCdmInstance() to allocate any Buffer that needs to
// be passed back to the caller. Implementations must call Buffer::Destroy()
// when a Buffer is created that will never be returned to the caller.
-class CDM_API ContentDecryptionModule_7 {
+class CDM_CLASS_API ContentDecryptionModule_7 {
public:
static const int kVersion = 7;
typedef Host_7 Host;
@@ -639,7 +646,7 @@ class CDM_API ContentDecryptionModule_7 {
// provided in CreateCdmInstance() to allocate any Buffer that needs to
// be passed back to the caller. Implementations must call Buffer::Destroy()
// when a Buffer is created that will never be returned to the caller.
-class CDM_API ContentDecryptionModule_8 {
+class CDM_CLASS_API ContentDecryptionModule_8 {
public:
static const int kVersion = 8;
typedef Host_8 Host;
@@ -824,7 +831,7 @@ class CDM_API ContentDecryptionModule_8 {
typedef ContentDecryptionModule_8 ContentDecryptionModule;
// Represents a buffer created by Allocator implementations.
-class CDM_API Buffer {
+class CDM_CLASS_API Buffer {
public:
// Destroys the buffer in the same context as it was created.
virtual void Destroy() = 0;
@@ -843,7 +850,7 @@ class CDM_API Buffer {
void operator=(const Buffer&);
};
-class CDM_API Host_7 {
+class CDM_CLASS_API Host_7 {
public:
static const int kVersion = 7;
@@ -980,7 +987,7 @@ class CDM_API Host_7 {
virtual ~Host_7() {}
};
-class CDM_API Host_8 {
+class CDM_CLASS_API Host_8 {
public:
static const int kVersion = 8;
@@ -1118,7 +1125,7 @@ class CDM_API Host_8 {
};
// Represents a decrypted block that has not been decoded.
-class CDM_API DecryptedBlock {
+class CDM_CLASS_API DecryptedBlock {
public:
virtual void SetDecryptedBuffer(Buffer* buffer) = 0;
virtual Buffer* DecryptedBuffer() = 0;
@@ -1133,7 +1140,7 @@ class CDM_API DecryptedBlock {
virtual ~DecryptedBlock() {}
};
-class CDM_API VideoFrame {
+class CDM_CLASS_API VideoFrame {
public:
enum VideoPlane {
kYPlane = 0,
@@ -1176,7 +1183,7 @@ class CDM_API VideoFrame {
//
// |<----------------- AudioFrames ------------------>|
// | audio buffer 0 | audio buffer 1 | audio buffer 2 |
-class CDM_API AudioFrames {
+class CDM_CLASS_API AudioFrames {
public:
virtual void SetFrameBuffer(Buffer* buffer) = 0;
virtual Buffer* FrameBuffer() = 0;
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698