lib/ffmpeg/Frame: add more wrapper methods
This commit is contained in:
parent
4722175049
commit
42a05bc904
@ -20,6 +20,8 @@
|
|||||||
#ifndef MPD_FFMPEG_FRAME_HXX
|
#ifndef MPD_FFMPEG_FRAME_HXX
|
||||||
#define MPD_FFMPEG_FRAME_HXX
|
#define MPD_FFMPEG_FRAME_HXX
|
||||||
|
|
||||||
|
#include "Error.hxx"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include <libavutil/frame.h>
|
#include <libavutil/frame.h>
|
||||||
}
|
}
|
||||||
@ -47,6 +49,30 @@ public:
|
|||||||
AVFrame &operator*() noexcept {
|
AVFrame &operator*() noexcept {
|
||||||
return *frame;
|
return *frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AVFrame *operator->() noexcept {
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
AVFrame *get() noexcept {
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GetBuffer() {
|
||||||
|
int err = av_frame_get_buffer(frame, 0);
|
||||||
|
if (err < 0)
|
||||||
|
throw MakeFfmpegError(err, "av_frame_get_buffer() failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
void MakeWritable() {
|
||||||
|
int err = av_frame_make_writable(frame);
|
||||||
|
if (err < 0)
|
||||||
|
throw MakeFfmpegError(err, "av_frame_make_writable() failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
void *GetData(unsigned plane) noexcept {
|
||||||
|
return frame->data[plane];
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Ffmpeg
|
} // namespace Ffmpeg
|
||||||
|
Loading…
Reference in New Issue
Block a user