tweaking
This commit is contained in:
		@@ -1,5 +1,4 @@
 | 
			
		||||
#include "./sdl_video_frame_stream2.hpp"
 | 
			
		||||
#include "SDL3/SDL_pixels.h"
 | 
			
		||||
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <cstdint>
 | 
			
		||||
@@ -41,9 +40,12 @@ SDLVideoCameraContent::SDLVideoCameraContent(void) {
 | 
			
		||||
	{
 | 
			
		||||
		SDL_CameraSpec spec {
 | 
			
		||||
			// FORCE a diffrent pixel format
 | 
			
		||||
			SDL_PIXELFORMAT_RGBA8888,
 | 
			
		||||
			//SDL_COLORSPACE_SRGB,
 | 
			
		||||
			SDL_COLORSPACE_UNKNOWN,
 | 
			
		||||
			//SDL_PIXELFORMAT_RGBA8888,
 | 
			
		||||
			//SDL_PIXELFORMAT_UNKNOWN,
 | 
			
		||||
			SDL_PIXELFORMAT_IYUV,
 | 
			
		||||
 | 
			
		||||
			SDL_COLORSPACE_SRGB,
 | 
			
		||||
			//SDL_COLORSPACE_UNKNOWN,
 | 
			
		||||
 | 
			
		||||
			//1280, 720,
 | 
			
		||||
			//640, 360,
 | 
			
		||||
 
 | 
			
		||||
@@ -28,11 +28,12 @@ struct SDLVideoFrame {
 | 
			
		||||
	SDLVideoFrame(const SDLVideoFrame& other) {
 | 
			
		||||
		timestampNS = other.timestampNS;
 | 
			
		||||
		if (static_cast<bool>(other.surface)) {
 | 
			
		||||
			// TODO: use SDL_DuplicateSurface()
 | 
			
		||||
			surface = {
 | 
			
		||||
				SDL_CreateSurface(
 | 
			
		||||
					other.surface->w,
 | 
			
		||||
					other.surface->h,
 | 
			
		||||
					SDL_PIXELFORMAT_RGBA8888 // meh
 | 
			
		||||
					other.surface->format
 | 
			
		||||
				),
 | 
			
		||||
				&SDL_DestroySurface
 | 
			
		||||
			};
 | 
			
		||||
 
 | 
			
		||||
@@ -84,7 +84,7 @@ int main(int argc, char** argv) {
 | 
			
		||||
 | 
			
		||||
		auto writer = SDLAudioOutputDeviceDefaultFactory{}.create();
 | 
			
		||||
 | 
			
		||||
		for (size_t i = 0; i < 20; i++) {
 | 
			
		||||
		for (size_t i = 0; i < 100; i++) {
 | 
			
		||||
			std::this_thread::sleep_for(std::chrono::milliseconds(10));
 | 
			
		||||
			auto new_frame_opt = reader->pop();
 | 
			
		||||
			if (new_frame_opt.has_value()) {
 | 
			
		||||
@@ -108,7 +108,7 @@ int main(int argc, char** argv) {
 | 
			
		||||
			std::this_thread::sleep_for(std::chrono::milliseconds(50));
 | 
			
		||||
			auto new_frame_opt = reader->pop();
 | 
			
		||||
			if (new_frame_opt.has_value()) {
 | 
			
		||||
				std::cout << "video frame was " << new_frame_opt.value().surface->w << "x" << new_frame_opt.value().surface->h << " " << new_frame_opt.value().timestampNS << "ns\n";
 | 
			
		||||
				std::cout << "video frame was " << new_frame_opt.value().surface->w << "x" << new_frame_opt.value().surface->h << " " << new_frame_opt.value().timestampNS << "ns " << new_frame_opt.value().surface->format << "sf\n";
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		vcc.releaseSubStream(reader);
 | 
			
		||||
@@ -119,6 +119,7 @@ int main(int argc, char** argv) {
 | 
			
		||||
	ImGui::CreateContext();
 | 
			
		||||
 | 
			
		||||
	// TODO: test android behaviour
 | 
			
		||||
	// -> its too big, dpi does not take eye-screen-distance into account
 | 
			
		||||
	float display_scale = SDL_GetWindowDisplayScale(window.get());
 | 
			
		||||
	if (display_scale < 0.001f) {
 | 
			
		||||
		// error?
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user