diff --git a/headers/private/media/MediaConnection.h b/headers/private/media/MediaConnection.h index eef78f8e54..9fb352f818 100644 --- a/headers/private/media/MediaConnection.h +++ b/headers/private/media/MediaConnection.h @@ -119,7 +119,7 @@ private: }; -class BMediaInput : public BMediaConnection { +class BMediaInput : public virtual BMediaConnection { public: BMediaInput(); @@ -149,7 +149,7 @@ private: }; -class BMediaOutput : public BMediaConnection { +class BMediaOutput : public virtual BMediaConnection { public: BMediaOutput(); diff --git a/src/kits/media/MediaClient.cpp b/src/kits/media/MediaClient.cpp index 859fe3078d..d17b4a2f5f 100755 --- a/src/kits/media/MediaClient.cpp +++ b/src/kits/media/MediaClient.cpp @@ -147,9 +147,9 @@ BMediaClient::Connect(BMediaConnection* ourConnection, CALLED(); if (ourConnection->IsOutput() && theirConnection.IsInput()) - return _ConnectInput((BMediaOutput*)ourConnection, theirConnection); + return _ConnectInput(dynamic_cast(ourConnection), theirConnection); else if (ourConnection->IsInput() && theirConnection.IsOutput()) - return _ConnectOutput((BMediaInput*)ourConnection, theirConnection); + return _ConnectOutput(dynamic_cast(ourConnection), theirConnection); return B_ERROR; }