blob: 085814969b85268d944bbeed9d9ab67a981f73ae [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "video_frame.h"
#include <stdio.h>
// Normally this isn't allowed from a driver, but devmgr can be modified to
// allow it.
void DumpVideoFrameToFile(VideoFrame* frame, const char* filename) {
FILE* f = fopen(filename, "a");
io_buffer_cache_flush_invalidate(&frame->buffer, 0,
frame->stride * frame->height);
io_buffer_cache_flush_invalidate(&frame->buffer, frame->uv_plane_offset,
frame->stride * frame->height / 2);
uint8_t* buf_start = static_cast<uint8_t*>(io_buffer_virt(&frame->buffer));
for (uint32_t y = 0; y < frame->height; y++) {
fwrite(buf_start + frame->stride * y, 1, frame->width, f);
}
for (uint32_t y = 0; y < frame->height / 2; y++) {
fwrite(buf_start + frame->uv_plane_offset + frame->stride * y, 1,
frame->width, f);
}
fclose(f);
}