working on camera into of

This commit is contained in:
langolierz
2018-10-01 04:23:37 +00:00
parent 8ca21cc2b4
commit ea58f44755
9 changed files with 60 additions and 112 deletions

View File

@@ -197,7 +197,9 @@ class Display(object):
def _get_status_for_player(self):
now_slot, now_status, now_alpha, next_slot, next_status, next_alpha = self.video_driver.get_player_info_for_status()
capture_status = self._generate_capture_status()
preview_alpha = self.capture.get_preview_alpha()
self._set_colour_from_alpha(now_alpha, preview_alpha, next_alpha)

View File

@@ -0,0 +1,10 @@
attribute vec4 position;
attribute vec2 texcoord;
uniform mat4 modelViewProjectionMatrix;
varying vec2 texcoord0;
void main() {
gl_Position = modelViewProjectionMatrix * position;
texcoord0 = texcoord;
}

View File

@@ -1,24 +0,0 @@
// copied from http://glslsandbox.com/e#47821.0
#ifdef GL_ES
precision mediump float;
#endif
#extension GL_OES_standard_derivatives : enable
uniform float u_time;
uniform vec2 u_mouse;
uniform vec2 u_resolution;
void main( void ) {
vec2 position = ( gl_FragCoord.xy / u_resolution.xy ) + u_mouse / 4.0;
float color = 0.0;
color += sin( position.x * cos( u_time / 15.0 ) * 80.0 ) + cos( position.y * cos( u_time / 15.0 ) * 10.0 );
color += sin( position.y * sin( u_time / 10.0 ) * 40.0 ) + cos( position.x * sin( u_time / 25.0 ) * 40.0 );
color += sin( position.x * sin( u_time / 5.0 ) * 10.0 ) + sin( position.y * sin( u_time / 35.0 ) * 80.0 );
color *= sin( u_time / 10.0 ) * 0.8;
gl_FragColor = vec4( vec3( color, color * 0.5, sin( color + u_time / 3.0 ) * 0.75 ), 1.0 );
}

View File

@@ -0,0 +1,16 @@
varying vec2 texcoord0;
uniform sampler2D tex0;
uniform vec2 u_resolution;
uniform float u_time;
void main() {
vec2 pos = gl_FragCoord.xy;
vec4 texColor = texture2D(tex0, texcoord0);
texColor.r *= (sin(0.05*pos.x - cos(u_time)) + cos(0.05*pos.x/(0.1 + abs(cos(u_time/5.0)))));
texColor.r *= (sin(0.05*pos.y - cos(u_time/5.0)) + cos(0.05*pos.y/(0.1 + abs(cos(u_time/5.0)))));
gl_FragColor = vec4(texColor.b, texColor.r, texColor.g, texColor.a);
}

View File

@@ -0,0 +1,11 @@
varying vec2 texcoord0;
uniform sampler2D tex0;
uniform vec2 u_resolution;
uniform float u_time;
void main() {
vec4 texColour = texture2D(tex0, texcoord0);
gl_FragColor = vec4(1.0-texColour.r,1.0-texColour.g,1.0-texColour.b,texColour.a);
}

View File

@@ -1,85 +0,0 @@
from tkinter import *
from pythonosc import osc_message_builder
from pythonosc import udp_client
from pythonosc import dispatcher
from pythonosc import osc_server
import argparse
import threading
print('starting osc_example')
root = Tk()
def key(event):
print("key pressed is {}".format(event.char))
if event.char == 'q':
print('quiting program')
root.destroy()
elif event.char == 'a':
print('loading video')
send_osc_message("/player/a/load", "/home/pi/Videos/internal_storage/480-from-adobe.mp4")
elif event.char == 's':
print('playing video')
send_osc_message("/player/a/play", True)
elif event.char == 'd':
print('pausing video')
send_osc_message("/player/a/play", False)
elif event.char == 'f':
print('making video partly transparent')
send_osc_message("/player/a/alpha", 200)
elif event.char == 'g':
print('quiting video')
send_osc_message("/player/a/quit", True)
elif event.char == 'h':
print('seeking video')
send_osc_message("/player/a/position", 0.5)
elif event.char == 'j':
print('requesting video position')
send_osc_message("/player/a/get_position", True)
def send_osc_message(address, value):
client.send_message(address, value)
def set_position(unused_addr, args, player_name):
print("the position of the player {} is {}".format(args, player_name))
def set_status(unused_addr, args, player_name):
print("the status of the player {} is {}".format(args, player_name))
### setting up the client
client_parser = argparse.ArgumentParser()
client_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
client_parser.add_argument("--port", type=int, default=8000, help="the port")
client_args = client_parser.parse_args()
client = udp_client.SimpleUDPClient(client_args.ip, client_args.port)
### setting up the server
server_parser = argparse.ArgumentParser()
server_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
server_parser.add_argument("--port", type=int, default=7000, help="the port")
server_args = server_parser.parse_args()
dispatcher = dispatcher.Dispatcher()
dispatcher.map("/player/a/position", set_position, "a")
dispatcher.map("/player/b/position", set_position, "b")
dispatcher.map("/player/c/position", set_position, "c")
dispatcher.map("/player/a/status", set_status, "a")
dispatcher.map("/player/b/status", set_status, "b")
dispatcher.map("/player/c/status", set_status, "c")
server = osc_server.ThreadingOSCUDPServer((server_args.ip, server_args.port), dispatcher)
server_thread = threading.Thread(target=server.serve_forever)
server_thread.start()
### setting up tk etc
frame = Frame(root, width=100, height=100)
frame.bind("<KeyPress>", key)
frame.pack()
frame.focus_set()
root.mainloop()

View File

@@ -0,0 +1,9 @@
#ifdef GL_ES
precision mediump float;
#endif
uniform float u_time;
void main() {
gl_FragColor = vec4(sin(u_time),0.0,0.0,1.0);
}

View File

@@ -176,8 +176,16 @@ class Capture(object):
return self.device.frame.timestamp / 1000000
def get_preview_alpha(self):
if self.is_previewing:
return self.device.preview.alpha
if self.is_previewing and self.device is not None:
try:
return self.device.preview.alpha
except Exception as e:
print(e)
if hasattr(e, 'message'):
error_info = e.message
else:
error_info = e
self.message_handler.set_message('ERROR',error_info)
else:
return 0

View File

@@ -136,7 +136,8 @@ class VideoDriver(object):
self.next_player.reload(self.get_next_layer_value())
def exit_last_player_after_delay(self):
self.root.after(100, self.last_player.exit)
self.last_player.exit()
#self.root.after(100, self.last_player.exit)
def receive_position(self, unused_addr, player_name, args):
print("the position of player {} is set to {}".format(player_name,args))