def get_video_mode_enum(video_modes=None): if video_modes is None: video_modes = get_available_video_modes( format_='YUY2') video_mode_map = get_video_mode_map(video_modes) video_keys = sorted(video_mode_map.keys()) return Enum.named('video_mode').valued(*video_keys)
def select_video_caps(): video_modes = get_available_video_modes(format_='YUY2') selected_mode = select_video_mode(video_modes) if selected_mode: return selected_mode['device'], GstVideoSourceManager.get_caps_string(selected_mode) else: return None
def _process_request(self, request): if request['command'] == 'create': ''' Create a pipeline ''' if self.pipeline is None: device, caps_str = request['video_caps'] print '''{'device': %s, 'caps_str': %s}''' % (device, caps_str) video_source = create_video_source(device, caps_str) self.pipeline = get_pipeline(video_source) elif request['command'] == 'start': if self.pipeline: result = self.pipeline.set_state(gst.STATE_PLAYING) return (result != gst.STATE_CHANGE_FAILURE) elif request['command'] == 'stop': if self.pipeline: self.pipeline.set_state(gst.STATE_NULL) elif request['command'] == 'reset': self._cleanup_pipeline() elif request['command'] == 'finish': self._finish() raise SystemExit elif request['command'] == 'select_video_caps': result = select_video_caps() return result elif request['command'] == 'get_available_video_modes': result = get_available_video_modes(**request['kwargs']) return result
def get_video_mode_form(video_modes=None): if video_modes is None: video_modes = get_available_video_modes( format_='YUY2') video_mode_map = get_video_mode_map(video_modes) video_keys = sorted(video_mode_map.keys()) form = Form.of(Enum.named('video_mode').valued( *video_keys).using(default=video_keys[0])) return form