[Rio-pm] Video::Xine::Stream bugado - função não definida

breno breno em rio.pm.org
Segunda Maio 18 09:08:24 PDT 2009


2009/5/18 Samir Cury <rimasy em gmail.com>:
> Mas acho que o perl tá se perdendo na função que o cara usa e não existe, se
> alguém souber onde há (se há) essa "interface" acho que resolve
>

Samir, isso é código em xs, e a função está declarada sim:

------------8<------------
#
# Create a new Xine stream.
#
xine_stream_t *
xine_stream_new(xine,ao,vo)
	xine_t *xine
	xine_audio_port_t *ao
	xine_video_port_t *vo
    CODE:
	RETVAL = xine_stream_new(xine,ao,vo);
        if (RETVAL == NULL) {
           XSRETURN_UNDEF;
        }
    OUTPUT:
        RETVAL
------------>8------------

Vejamos a mensagem de erro:

Video::Xine::Stream::xine_stream_new: xine is not a reference (...)

"xine" é o primeiro elemento da função. Vamos à chamada dela:

------------8<------------
sub new {
    my $type = shift;
    my ( $xine, $audio_port, $video_port ) = @_;

    my $self = {};
    $self->{'xine'}       = $xine;
    $self->{'audio_port'} = $audio_port;
    $self->{'video_port'} = $video_port;
    $self->{'stream'} =
      xine_stream_new( $xine, $audio_port->{'driver'},
        $video_port->{'driver'} );

    bless $self, $type;

    return $self;

}
------------>8------------

$xine é passado pra ela, e é recebido como o primeiro elemento do new
(o primeiro q vc passa, claro, pq o primeiro "primeiro" é sempre a
classe em si :-)

Na sinopse da documentaçao do Video::Xine, encontrei:

 # Create and initialize the Xine object
  my $xine = Video::Xine->new(
    config_file => "$ENV{'HOME'}/.xine/config",
  );

Aí vem a pergunta: é esse objeto que vc está passando para o streamer?
Atenção deve ser tomada para os drivers de audio/vídeo, que também são
passados ao streamer.

Obs: não leva a mal se vc já fez isso tudo, só achei que faltaram
esses detalhes na sua dúvida e quero ter certeza que vc RTFM e que
está procurando a origem do problema no lugar certo (depurar código xs
é tão complicado qto depurar código C, as vezes mais :-)

[]s

-b


Mais detalhes sobre a lista de discussão Rio-pm