Stephen Nelson

NAME

Video::Xine::Stream - Audio-video stream for Xine

SYNOPSIS

  use Video::Xine;
  use Video::Xine::Stream;

  my $stream = Video::Xine::Stream->new($xine, $audio, $video);

  $stream->open('file://foo/bar');

METHODS

These are methods which can be used on the Video::Xine::Stream class and object.

new()

  new($xine, $audio_port, $video_port)

Creates a new Stream object. The $audio_port and $video_port options are optional and default to automatically-selected drivers.

get_video_port()

 Returns the video port, also known as the video driver.

master_slave()

  $stream->master_slave( $slave_stream, $affection )

Sets up a master-slave relationship with $slave_stream. You can import the constants for $affection with the ':master_slave_constants' tag. They are XINE_MASTER_SLAVE_PLAY, XINE_MASTER_SLAVE_STOP, and XINE_MASTER_SLAVE_SPEED.

open()

 $stream->open($mrl)

Opens the stream to an MRL, which is a URL-like construction used by Xine to locate media files. See the xine documentation for details.

play()

 $stream->play($start_pos, $start_time)

Starts playing the stream at a specific position or specific time. Both $start_pos and $start_time are optional and default to 0.

stop()

 $stream->stop()

Stops the stream.

close()

 $stream->close()

Close the stream. You can re-use the same stream again and again.

eject()

  $stream->eject()
  

Eject the stream, if possible. Returns 1 if OK, 0 if error.

get_pos_length()

  ($pos_pct, $pos_time, $length_millis) = $stream->get_pos_length();

Gets position / length information. $pos_pct is a value between 1 and 65535 indicating how far we've proceeded through the stream. $pos_time gives how far we've proceeded through the stream in milliseconds, and $length_millis gives the total length of the stream in milliseconds.

get_status()

Returns the play status of the stream. It will return one of the following constants, which are exported in the tag ':status_constants':

STREAM CONSTANTS

  • XINE_STATUS_IDLE

    The stream is idle.

  • XINE_STATUS_STOP

    Indicates that the stream is stopped.

  • XINE_STATUS_PLAY

    Indicates that the stream is playing.

  • XINE_STATUS_QUIT

set_param()

  $s->set_param($param, $value)

Sets a parameter on the stream. $param should be a xine parameter constant. See "PARAMETER CONSTANTS" for a list of available parameter constants.

get_param()

  my $param = $s->get_param($param)

Returns a parameter from the stream. $param should be a xine parameter constant.

get_info()

  my $info = $s->get_info($info_const)

Returns information about the stream, such as its bit rate, audio channels, width, or height. $info_const should be a xine info constant.

get_meta_info()

  my $meta_info = $stream->get_meta_info($meta_info_const)

Returns meta-information about the stream, such as its title. $meta_info_const should be a xine meta info constant; see META CONSTANTS below for details.

PARAM CONSTANTS

These constants are exported with the :param_constants tag.

  • XINE_PARAM_SPEED

  • XINE_PARAM_AV_OFFSET

  • XINE_PARAM_AUDIO_CHANNEL_LOGICAL

  • XINE_PARAM_SPU_CHANNEL

  • XINE_PARAM_VIDEO_CHANNEL

  • XINE_PARAM_AUDIO_VOLUME

  • XINE_PARAM_AUDIO_MUTE

  • XINE_PARAM_AUDIO_COMPR_LEVEL

  • XINE_PARAM_AUDIO_AMP_LEVEL

  • XINE_PARAM_AUDIO_REPORT_LEVEL

  • XINE_PARAM_VERBOSITY

  • XINE_PARAM_SPU_OFFSET

  • XINE_PARAM_IGNORE_VIDEO

  • XINE_PARAM_IGNORE_AUDIO

  • XINE_PARAM_IGNORE_SPU

  • XINE_PARAM_BROADCASTER_PORT

  • XINE_PARAM_METRONOM_PREBUFFER

  • XINE_PARAM_EQ_30HZ

  • XINE_PARAM_EQ_60HZ

  • XINE_PARAM_EQ_125HZ

  • XINE_PARAM_EQ_250HZ

  • XINE_PARAM_EQ_500HZ

  • XINE_PARAM_EQ_1000HZ

  • XINE_PARAM_EQ_2000HZ

  • XINE_PARAM_EQ_4000HZ

  • XINE_PARAM_EQ_8000HZ

  • XINE_PARAM_EQ_16000HZ

  • XINE_PARAM_AUDIO_CLOSE_DEVICE

  • XINE_PARAM_AUDIO_AMP_MUTE

  • XINE_PARAM_FINE_SPEED

INFO CONSTANTS

Exported in the tag 'info_constants'.

  • XINE_STREAM_INFO_BITRATE

  • XINE_STREAM_INFO_SEEKABLE

  • XINE_STREAM_INFO_VIDEO_WIDTH

  • XINE_STREAM_INFO_VIDEO_HEIGHT

  • XINE_STREAM_INFO_VIDEO_RATIO

  • XINE_STREAM_INFO_VIDEO_CHANNELS

  • XINE_STREAM_INFO_VIDEO_STREAMS

  • XINE_STREAM_INFO_VIDEO_BITRATE

  • XINE_STREAM_INFO_VIDEO_FOURCC

  • XINE_STREAM_INFO_VIDEO_HANDLED

  • XINE_STREAM_INFO_FRAME_DURATION

  • XINE_STREAM_INFO_AUDIO_CHANNELS

  • XINE_STREAM_INFO_AUDIO_BITS

  • XINE_STREAM_INFO_AUDIO_SAMPLERATE

  • XINE_STREAM_INFO_AUDIO_BITRATE

  • XINE_STREAM_INFO_AUDIO_FOURCC

  • XINE_STREAM_INFO_AUDIO_HANDLED

  • XINE_STREAM_INFO_HAS_CHAPTERS

  • XINE_STREAM_INFO_HAS_VIDEO

  • XINE_STREAM_INFO_HAS_AUDIO

  • XINE_STREAM_INFO_IGNORE_VIDEO

  • XINE_STREAM_INFO_IGNORE_AUDIO

  • XINE_STREAM_INFO_IGNORE_SPU

  • XINE_STREAM_INFO_VIDEO_HAS_STILL

  • XINE_STREAM_INFO_MAX_AUDIO_CHANNEL

  • XINE_STREAM_INFO_MAX_SPU_CHANNEL

  • XINE_STREAM_INFO_AUDIO_MODE

  • XINE_STREAM_INFO_SKIPPED_FRAMES

  • XINE_STREAM_INFO_DISCARDED_FRAMES

  • XINE_STREAM_INFO_VIDEO_AFD

  • XINE_STREAM_INFO_DVD_TITLE_NUMBER

  • XINE_STREAM_INFO_DVD_TITLE_COUNT

  • XINE_STREAM_INFO_DVD_CHAPTER_NUMBER

  • XINE_STREAM_INFO_DVD_CHAPTER_COUNT

  • XINE_STREAM_INFO_DVD_ANGLE_NUMBER

  • XINE_STREAM_INFO_DVD_ANGLE_COUNT

META CONSTANTS

Exported with the :meta_constants tag.

  • XINE_META_INFO_TITLE

  • XINE_META_INFO_COMMENT

  • XINE_META_INFO_ARTIST

  • XINE_META_INFO_GENRE

  • XINE_META_INFO_ALBUM

  • XINE_META_INFO_YEAR

  • XINE_META_INFO_VIDEOCODEC

  • XINE_META_INFO_AUDIOCODEC

  • XINE_META_INFO_SYSTEMLAYER

  • XINE_META_INFO_INPUT_PLUGIN

  • XINE_META_INFO_CDINDEX_DISCID

  • XINE_META_INFO_TRACK_NUMBER

SEE ALSO

Video::Xine