Skip to content

Commit da1a912

Browse files
committed
Wrap av_buffer_ref with av::buffer::ref
1 parent cbdfd98 commit da1a912

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

src/avcpp/buffer.cpp

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include "avcompat.h"
2+
13
#include "buffer.h"
24
#include "avcpp/avutils.h"
35

@@ -10,6 +12,14 @@ namespace buffer {
1012
* Buffer deleter that do nothing. To wrap static data.
1113
*/
1214
void null_deleter(void* /*opaque*/, uint8_t* /*data*/) {}
15+
16+
static AVBufferRef* ref(const AVBufferRef* buf) {
17+
#if AVCPP_AVUTIL_VERSION_INT >= AV_VERSION_INT(57, 5, 101)
18+
return av_buffer_ref(buf);
19+
#else
20+
return av_buffer_ref(const_cast<AVBufferRef*>(buf));
21+
#endif
22+
}
1323
} // ::buffer
1424

1525

@@ -22,7 +32,7 @@ BufferRefView::BufferRefView(const BufferRef &ref)
2232
{}
2333

2434
AVBufferRef *BufferRefView::makeRef(iam_sure_what_i_do_tag) const noexcept {
25-
return m_raw ? av_buffer_ref(m_raw) : nullptr;
35+
return m_raw ? av::buffer::ref(m_raw) : nullptr;
2636
}
2737

2838
BufferRef BufferRefView::ref()
@@ -82,7 +92,7 @@ std::span<const uint8_t> BufferRefView::span() const noexcept
8292
{
8393
if (!m_raw)
8494
return {};
85-
return {m_raw->data, m_raw->size};
95+
return {m_raw->data, std::size_t(m_raw->size)};
8696
}
8797

8898
std::span<const uint8_t> BufferRefView::constSpan() const noexcept
@@ -99,7 +109,7 @@ std::span<uint8_t> BufferRefView::span(OptionalErrorCode ec)
99109
throws_if(ec, Errors::BufferReadonly);
100110
return {};
101111
}
102-
return {m_raw->data, m_raw->size};
112+
return {m_raw->data, std::size_t(m_raw->size)};
103113
}
104114
#endif // AVCPP_CXX_STANDARD >= 20
105115

@@ -147,7 +157,7 @@ BufferRef::BufferRef(std::span<const uint8_t> data, int flags) noexcept
147157
#endif // AVCPP_CXX_STANDARD
148158

149159
BufferRef::BufferRef(const BufferRef &other) noexcept
150-
: BufferRef(av_buffer_ref(other.m_raw))
160+
: BufferRef(av::buffer::ref(other.m_raw))
151161
{
152162
}
153163

@@ -170,7 +180,7 @@ BufferRef &av::BufferRef::operator=(const BufferRef &other) noexcept
170180

171181
BufferRef BufferRef::wrap(const AVBufferRef *buf, int flags) noexcept
172182
{
173-
return BufferRef{buf->data, buf->size, flags};
183+
return BufferRef{buf->data, std::size_t(buf->size), flags};
174184
}
175185

176186
BufferRef BufferRef::wrap(AVBufferRef *buf) noexcept
@@ -180,7 +190,7 @@ BufferRef BufferRef::wrap(AVBufferRef *buf) noexcept
180190

181191
BufferRef BufferRef::ref(const AVBufferRef *buf) noexcept
182192
{
183-
return BufferRef{av_buffer_ref(buf)};
193+
return BufferRef{av::buffer::ref(buf)};
184194
}
185195

186196
AVBufferRef *BufferRef::release() noexcept

0 commit comments

Comments
 (0)