mirror of https://github.com/mgba-emu/mgba.git
DS Core: Add video recording
This commit is contained in:
parent
928896f978
commit
2da8c63ec2
|
@ -111,6 +111,7 @@ struct DS {
|
||||||
struct VFile* bios9Vf;
|
struct VFile* bios9Vf;
|
||||||
struct VFile* firmwareVf;
|
struct VFile* firmwareVf;
|
||||||
|
|
||||||
|
struct mAVStream* stream;
|
||||||
struct mKeyCallback* keyCallback;
|
struct mKeyCallback* keyCallback;
|
||||||
struct mCoreCallbacks* coreCallbacks;
|
struct mCoreCallbacks* coreCallbacks;
|
||||||
|
|
||||||
|
|
|
@ -162,6 +162,11 @@ static void _DSCoreSetCoreCallbacks(struct mCore* core, struct mCoreCallbacks* c
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _DSCoreSetAVStream(struct mCore* core, struct mAVStream* stream) {
|
static void _DSCoreSetAVStream(struct mCore* core, struct mAVStream* stream) {
|
||||||
|
struct DS* ds = core->board;
|
||||||
|
ds->stream = stream;
|
||||||
|
if (stream && stream->videoDimensionsChanged) {
|
||||||
|
stream->videoDimensionsChanged(stream, DS_VIDEO_HORIZONTAL_PIXELS, DS_VIDEO_VERTICAL_PIXELS * 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool _DSCoreLoadROM(struct mCore* core, struct VFile* vf) {
|
static bool _DSCoreLoadROM(struct mCore* core, struct VFile* vf) {
|
||||||
|
|
|
@ -835,4 +835,11 @@ void DSFrameEnded(struct DS* ds) {
|
||||||
if (callbacks && callbacks->videoFrameEnded) {
|
if (callbacks && callbacks->videoFrameEnded) {
|
||||||
callbacks->videoFrameEnded(callbacks->context);
|
callbacks->videoFrameEnded(callbacks->context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ds->stream && ds->stream->postVideoFrame) {
|
||||||
|
const color_t* pixels;
|
||||||
|
size_t stride;
|
||||||
|
ds->video.renderer->getPixels(ds->video.renderer, &stride, (const void**) &pixels);
|
||||||
|
ds->stream->postVideoFrame(ds->stream, pixels, stride);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue