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