diff --git a/headers/private/media/experimental/MediaConnection.h b/headers/private/media/experimental/MediaConnection.h index b79f80fefe..002225df82 100644 --- a/headers/private/media/experimental/MediaConnection.h +++ b/headers/private/media/experimental/MediaConnection.h @@ -51,7 +51,7 @@ public: // Represents the buffer size, depends on the format set or negotiated // for this connection. - size_t BufferSize() const; + virtual size_t BufferSize() const = 0; // Disconnect this connection. When a connection is disconnected, // it can be reused as brand new. diff --git a/headers/private/media/experimental/SimpleMediaClient.h b/headers/private/media/experimental/SimpleMediaClient.h index f640274f94..eb0f187273 100755 --- a/headers/private/media/experimental/SimpleMediaClient.h +++ b/headers/private/media/experimental/SimpleMediaClient.h @@ -114,6 +114,9 @@ public: void* Cookie() const; + virtual size_t BufferSize() const; + virtual void SetBufferSize(size_t bufferSize); + protected: BSimpleMediaConnection( media_connection_kinds kinds); @@ -122,6 +125,8 @@ protected: process_hook fProcessHook; notify_hook fNotifyHook; void* fBufferCookie; + + size_t fBufferSize; }; diff --git a/src/kits/media/experimental/MediaConnection.cpp b/src/kits/media/experimental/MediaConnection.cpp index 9260086597..ec5144d4af 100644 --- a/src/kits/media/experimental/MediaConnection.cpp +++ b/src/kits/media/experimental/MediaConnection.cpp @@ -120,25 +120,6 @@ BMediaConnection::Release() } -size_t -BMediaConnection::BufferSize() const -{ - CALLED(); - - switch (fConnection.format.type) { - case B_MEDIA_RAW_AUDIO: - return fConnection.format.u.raw_audio.buffer_size; - - case B_MEDIA_RAW_VIDEO: - return fConnection.format.u.raw_video.display.bytes_per_row * - fConnection.format.u.raw_video.display.line_count; - - default: - return 0; - } -} - - void BMediaConnection::Connected(const media_format& format) { diff --git a/src/kits/media/experimental/SimpleMediaClient.cpp b/src/kits/media/experimental/SimpleMediaClient.cpp index 0bc1d7640f..9dfa094318 100644 --- a/src/kits/media/experimental/SimpleMediaClient.cpp +++ b/src/kits/media/experimental/SimpleMediaClient.cpp @@ -150,6 +150,20 @@ BSimpleMediaConnection::Cookie() const } +size_t +BSimpleMediaConnection::BufferSize() const +{ + return fBufferSize; +} + + +void +BSimpleMediaConnection::SetBufferSize(size_t bufferSize) +{ + fBufferSize = bufferSize; +} + + BSimpleMediaInput::BSimpleMediaInput() : BMediaConnection(B_MEDIA_INPUT),