2 * Copyright 2009, Haiku Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
14 class SharedBufferList
;
18 struct buffer_clone_info
{
22 media_buffer_id buffer
;
39 B_SMALL_BUFFER
= 0x80000000
43 size_t SizeAvailable();
45 void SetSizeUsed(size_t used
);
49 buffer_clone_info
CloneInfo() const;
53 media_header
* Header();
54 media_audio_header
* AudioHeader();
55 media_video_header
* VideoHeader();
60 friend class BPrivate::BufferCache
;
61 friend class BPrivate::SharedBufferList
;
62 friend class BMediaRoster
;
63 friend class BBufferProducer
;
64 friend class BBufferConsumer
;
65 friend class BBufferGroup
;
66 friend class BSmallBuffer
;
68 explicit BBuffer(const buffer_clone_info
& info
);
72 BBuffer(const BBuffer
& other
);
73 BBuffer
& operator=(const BBuffer
& other
);
76 void SetHeader(const media_header
* header
);
78 media_header fMediaHeader
;
79 BPrivate::SharedBufferList
* fBufferList
;
90 class BSmallBuffer
: public BBuffer
{
94 static size_t SmallBufferSizeLimit();