Class: Hornetseye::V4L2Input

Inherits:
Object
  • Object
show all
Includes:
ReaderConversion
Defined in:
lib/hornetseye-v4l2/docs.rb,
lib/hornetseye-v4l2/v4l2input.rb

Overview

Class for handling a V4L2-compatible camera

Constant Summary collapse

MODE_RGB332 =

Video mode

nil
MODE_RGB444 =

Video mode

nil
MODE_RGB555 =

Video mode

nil
MODE_RGB565 =

Video mode

nil
MODE_RGB555X =

Video mode

nil
MODE_RGB565X =

Video mode

nil
MODE_BGR24 =

Video mode

nil
MODE_RGB24 =

Video mode

nil
MODE_BGR32 =

Video mode

nil
MODE_RGB32 =

Video mode

nil
MODE_GREY =

Video mode

nil
MODE_Y16 =

Video mode

nil
MODE_PAL8 =

Video mode

nil
MODE_YVU410 =

Video mode

nil
MODE_YVU420 =

Video mode

nil
MODE_YUYV =

Video mode

nil
MODE_YYUV =

Video mode

nil
MODE_YVYU =

Video mode

nil
MODE_UYVY =

Video mode

nil
MODE_VYUY =

Video mode

nil
MODE_YUV422P =

Video mode

nil
MODE_YUV411P =

Video mode

nil
MODE_Y41P =

Video mode

nil
MODE_YUV444 =

Video mode

nil
MODE_YUV555 =

Video mode

nil
MODE_YUV565 =

Video mode

nil
MODE_YUV32 =

Video mode

nil
MODE_YUV410 =

Video mode

nil
MODE_YUV420 =

Video mode

nil
MODE_HI240 =

Video mode

nil
MODE_HM12 =

Video mode

nil
MODE_NV12 =

Video mode

nil
MODE_NV21 =

Video mode

nil
MODE_NV16 =

Video mode

nil
MODE_NV61 =

Video mode

nil
MODE_SBGGR8 =

Video mode

nil
MODE_SGBRG8 =

Video mode

nil
MODE_SGRBG8 =

Video mode

nil
MODE_SGRBG10 =

Video mode

nil
MODE_SGRBG10DPCM8 =

Video mode

nil
MODE_SBGGR16 =

Video mode

nil
MODE_MJPEG =

Video mode

nil
MODE_JPEG =

Video mode

nil
MODE_DV =

Video mode

nil
MODE_MPEG =

Video mode

nil
MODE_WNVA =

Video mode

nil
MODE_SN9C10X =

Video mode

nil
MODE_SN9C20X_I420 =

Video mode

nil
MODE_PWC1 =

Video mode

nil
MODE_PWC2 =

Video mode

nil
MODE_ET61X251 =

Video mode

nil
MODE_SPCA501 =

Video mode

nil
MODE_SPCA505 =

Video mode

nil
MODE_SPCA508 =

Video mode

nil
MODE_SPCA561 =

Video mode

nil
MODE_PAC207 =

Video mode

nil
MODE_MR97310A =

Video mode

nil
MODE_SQ905C =

Video mode

nil
MODE_PJPG =

Video mode

nil
MODE_OV511 =

Video mode

nil
MODE_OV518 =

Video mode

nil
TYPE_INTEGER =

Feature type

nil
TYPE_BOOLEAN =

Feature type

nil
TYPE_MENU =

Feature type

nil
TYPE_BUTTON =

Feature type

nil
TYPE_CTRL_CLASS =

Feature type

nil
FEATURE_BASE =

First feature

nil
FEATURE_USER_BASE =

First custom feature

nil
FEATURE_PRIVATE_BASE =

First standard feature

nil
FEATURE_BRIGHTNESS =

A feature

nil
FEATURE_CONTRAST =

A feature

nil
FEATURE_SATURATION =

A feature

nil
FEATURE_HUE =

A feature

nil
FEATURE_AUDIO_VOLUME =

A feature

nil
FEATURE_AUDIO_BALANCE =

A feature

nil
FEATURE_AUDIO_BASS =

A feature

nil
FEATURE_AUDIO_TREBLE =

A feature

nil
FEATURE_AUDIO_MUTE =

A feature

nil
FEATURE_AUDIO_LOUDNESS =

A feature

nil
FEATURE_BLACK_LEVEL =

A feature

nil
FEATURE_AUTO_WHITE_BALANCE =

A feature

nil
FEATURE_DO_WHITE_BALANCE =

A feature

nil
FEATURE_RED_BALANCE =

A feature

nil
FEATURE_BLUE_BALANCE =

A feature

nil
FEATURE_GAMMA =

A feature

nil
FEATURE_WHITENESS =

A feature

nil
FEATURE_EXPOSURE =

A feature

nil
FEATURE_AUTOGAIN =

A feature

nil
FEATURE_GAIN =

A feature

nil
FEATURE_HFLIP =

A feature

nil
FEATURE_VFLIP =

A feature

nil
FEATURE_HCENTER =

A feature

nil
FEATURE_VCENTER =

A feature

nil
FEATURE_LASTP1 =

A feature

nil

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.new(device = '/dev/video0', channel = 0, &action) ⇒ V4L2Input

Open a camera device for input

The device is opened and a list of supported resolutions is handed back as parameter to the code block. The code block must return the selected mode so that initialisation can be completed. If no block is given, the highest available resolution is selected after giving colour modes preference.

Examples:

Open a camera device

require 'hornetseye_v4l2'
include Hornetseye
camera = V4L2Input.new { |modes| modes.last }

Parameters:

  • device (String) (defaults to: '/dev/video0')

    The device file name.

  • channel (Integer) (defaults to: 0)

    Number of the input channel to use.

  • action (Proc)

    An optional block for selecting the desired video mode.

Returns:

  • (V4L2Input)

    An object for accessing the camera.



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/hornetseye-v4l2/v4l2input.rb', line 45

def new( device = '/dev/video0', channel = 0, &action )
  orig_new device, channel do |modes|
    map = { MODE_UYVY   => UYVY,
            MODE_YUYV   => YUY2,
            MODE_YUV420 => I420,
            MODE_GREY   => UBYTE,
            MODE_RGB24  => UBYTERGB,
            MODE_BGR24  => BGR }
    modes.each do |mode|
      unless map[mode.first]
        warn "Unsupported video mode #{"0x%08x" % mode.first} #{mode[1]}x#{mode[2]}"
      end
    end
    frame_types = modes.collect { |mode| [map[mode.first], *mode[1 .. 2]] }.
      select { |mode| mode.first }
    if action
      desired = action.call frame_types
    else
      preference = [I420, UYVY, YUY2, UBYTERGB, BGR, UBYTE]
      desired = frame_types.sort_by do |mode|
        [-preference.index(mode.first), mode[1] * mode[2]]
      end.last
      raise "Device does not support a known video mode" unless desired
    end
    mode = map.invert[desired[0]]
    raise "Video mode #{desired.typecode} not supported" unless mode
    [mode, desired[1], desired[2]]
  end
end

.orig_newObject



27
# File 'lib/hornetseye-v4l2/v4l2input.rb', line 27

alias_method :orig_new, :new

Instance Method Details

#closeV4L2Input

Close the video device

Returns:



436
437
# File 'lib/hornetseye-v4l2/docs.rb', line 436

def close
end

#feature_default_value(id) ⇒ Integer

Get default value of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Integer)

    Default value.



532
533
# File 'lib/hornetseye-v4l2/docs.rb', line 532

def feature_default_value( id )
end

#feature_exist?(id) ⇒ Boolean

Check for existence of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Boolean)

    Returns true if this feature is supported.



468
469
# File 'lib/hornetseye-v4l2/docs.rb', line 468

def feature_exist?( id )
end

#feature_max(id) ⇒ Integer

Get maximum value of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Integer)

    Maximum value.



516
517
# File 'lib/hornetseye-v4l2/docs.rb', line 516

def feature_max( id )
end

#feature_min(id) ⇒ Integer

Get minimum value of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Integer)

    Minimum value.



508
509
# File 'lib/hornetseye-v4l2/docs.rb', line 508

def feature_min( id )
end

#feature_name(id) ⇒ String

Get name of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (String)

    Name of feature.



500
501
# File 'lib/hornetseye-v4l2/docs.rb', line 500

def feature_name( id )
end

#feature_read(id) ⇒ Integer

Get value of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Integer)

    Current value of feature.



476
477
# File 'lib/hornetseye-v4l2/docs.rb', line 476

def feature_read( id )
end

#feature_step(id) ⇒ Integer

Get step size of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Integer)

    Step size.



524
525
# File 'lib/hornetseye-v4l2/docs.rb', line 524

def feature_step( id )
end

#feature_type(id) ⇒ Integer

Get type of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Integer)

    Type of feature.



492
493
# File 'lib/hornetseye-v4l2/docs.rb', line 492

def feature_type( id )
end

#feature_write(id, value) ⇒ Integer

Set value of feature

Parameters:

  • id (Integer)

    Feature identifier.

Returns:

  • (Integer)

    Returns value.



484
485
# File 'lib/hornetseye-v4l2/docs.rb', line 484

def feature_write( id, value )
end

#heightInteger

Height of video input

Returns:

  • (Integer)

    Width of video frames.



460
461
# File 'lib/hornetseye-v4l2/docs.rb', line 460

def height
end

#readMultiArray, Frame_

Read a video frame

Returns:

  • (MultiArray, Frame_)

    The video frame.



442
443
# File 'lib/hornetseye-v4l2/docs.rb', line 442

def read
end

#status?Boolean

Check whether device is not closed

Returns:

  • (Boolean)

    Returns true as long as device is open.



448
449
# File 'lib/hornetseye-v4l2/docs.rb', line 448

def status?
end

#widthInteger

Width of video input

Returns:

  • (Integer)

    Width of video frames.



454
455
# File 'lib/hornetseye-v4l2/docs.rb', line 454

def width
end