Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 8 of 8
  1. #1
    Jules Taplin
    Guest

    Tonight's AlienBBC release (v0.4)

    Heya!

    Right. Following some extensive (*grin*) feedback from Mark... I've a stab
    at trying to sort some of it out.

    Basically... Changes are as follows:

    I hope I've fixed the 'dangling alienstream' problem, thanks to inspiration
    from the ever brilliant perl cookbook's recipe for opening file without
    shell escapes (recipe 19.6, if anybody cares). My current belief is that
    this is working now, and we shouldn't see any of the horrible dangling
    alienstreams mucking stuff up.

    Secondly... on the cosmetic front... I've also made the lists start from the
    top again when you navigate into a sub-directory.

    Mark... on your other bugs... I can certainly get the Radio 4 Afternoon Play
    now, and go between that an Radio 4 Longwave without trauma, so I think I'm
    going to declare either a fix or a 'can't reproduce' on both of those
    *grin*.

    So... version 0.4 is available from the normal place
    (http://www.mrtickle.org).

    Same again folks... If you can face it, give it a test. To avoid rework,
    though... the following is outstanding:

    Known Issues:

    Issue 3: Stopping a stream using the stop button freezes the server, only a
    restart appears to fix this.
    Issue 4: Stopping the stream using the power button leave both alienstream
    and lame running...
    Issue 5(a): Incorrect separation between multiple players
    Issue 6: When connected to a stream you can scroll up and down to see the
    other streams on the page, but you can't switch to another stream
    by pressing play. You have to stop the stream by pressing the left
    button then select the new stream and hit play.


    Of that lot... I've no idea how to fix issues 3 & 4 - as I've no template
    for how this sort of plugin SHOULD work. I think I know what's going on with
    Issue 5(a), but I'm amazed anybody even brave enough to _TRY_ to run two
    different alienstreams on different players *grin*.


    -- Jules

  2. #2
    Mark Bennett
    Guest

    Tonight's AlienBBC release (v0.4)

    Hi Jules,

    I've installed 0.4, and been doing some testing this morning. It looks
    like you've solved the most significant problem, with both alienstream
    and lame getting launched and killed off correctly. This seems to be
    true even with multiple players playing different streams!

    This means that it's pretty usable and solid now - the rest of the
    points so far are down to user interface issues, which can be fixed over
    time.

    I did notice in testing that the Radio 2 stream (I tested listen live,
    which never came up showing connecting - and on subsequent testing
    actually kills slimserver, and Soul Solutions, which locked the server)
    have some problems.... I suspect that thease are stream problems at
    the BBC end, rather than anything else.

    Anyay, excellent progress, and let me know if I can help out or do
    any more testing for you.

    Cheers,
    Mark.

    Jules Taplin wrote:
    > Heya!
    >
    > Right. Following some extensive (*grin*) feedback from Mark... I've a stab
    > at trying to sort some of it out.
    >
    > Basically... Changes are as follows:
    >
    > I hope I've fixed the 'dangling alienstream' problem, thanks to inspiration
    > from the ever brilliant perl cookbook's recipe for opening file without
    > shell escapes (recipe 19.6, if anybody cares). My current belief is that
    > this is working now, and we shouldn't see any of the horrible dangling
    > alienstreams mucking stuff up.
    >
    > Secondly... on the cosmetic front... I've also made the lists start from the
    > top again when you navigate into a sub-directory.
    >
    > Mark... on your other bugs... I can certainly get the Radio 4 Afternoon Play
    > now, and go between that an Radio 4 Longwave without trauma, so I think I'm
    > going to declare either a fix or a 'can't reproduce' on both of those
    > *grin*.
    >
    > So... version 0.4 is available from the normal place
    > (http://www.mrtickle.org).
    >
    > Same again folks... If you can face it, give it a test. To avoid rework,
    > though... the following is outstanding:
    >
    > Known Issues:
    >
    > Issue 3: Stopping a stream using the stop button freezes the server, only a
    > restart appears to fix this.
    > Issue 4: Stopping the stream using the power button leave both alienstream
    > and lame running...
    > Issue 5(a): Incorrect separation between multiple players
    > Issue 6: When connected to a stream you can scroll up and down to see the
    > other streams on the page, but you can't switch to another stream
    > by pressing play. You have to stop the stream by pressing the left
    > button then select the new stream and hit play.
    >
    >
    > Of that lot... I've no idea how to fix issues 3 & 4 - as I've no template
    > for how this sort of plugin SHOULD work. I think I know what's going on with
    > Issue 5(a), but I'm amazed anybody even brave enough to _TRY_ to run two
    > different alienstreams on different players *grin*.
    >
    >
    > -- Jules
    >
    >

  3. #3
    Peter Heslin
    Guest

    Tonight's AlienBBC release (v0.4)

    On Fri, Jul 02, 2004 at 12:06:50AM +0100, Jules Taplin wrote:
    > Issue 3: Stopping a stream using the stop button freezes the server, only a
    > restart appears to fix this.
    >
    > Issue 4: Stopping the stream using the power button leave both alienstream
    > and lame running...


    Try duplicating the 'pause' entry in %functions for 'stop' and
    'power_toggle'. This only seems to fix issue 4. I'm not sure why the
    server freezes when you hit 'stop'. I never use the stop button, so I
    never saw this issue and never bothered putting in a function for it.

    Pressing 'stop' does now correctly kill the player and mp3 encoder,
    so the callback is called correctly, but then the server crashes.
    Does anyone who knows the server architecture well know what happens
    in the server after the current mode's callback for 'stop' is invoked?

    > Issue 5(a): Incorrect separation between multiple players
    > Issue 6: When connected to a stream you can scroll up and down to see the
    > other streams on the page, but you can't switch to another stream
    > by pressing play. You have to stop the stream by pressing the left
    > button then select the new stream and hit play.


    Try sticking in

    &kill_children($client);

    right before

    &setup_player($client);

    in the 'play' entry in %functions

    >
    > Of that lot... I've no idea how to fix issues 3 & 4 - as I've no template
    > for how this sort of plugin SHOULD work. I think I know what's going on with
    > Issue 5(a), but I'm amazed anybody even brave enough to _TRY_ to run two
    > different alienstreams on different players *grin*.


    Yeah, I never tested alienstream with more than one player trying to
    transcode simultaneously, so I would not be at all surprised if it is
    broken.

    Peter

  4. #4
    Peter Heslin
    Guest

    Tonight's AlienBBC release (v0.4)

    On Fri, Jul 02, 2004 at 02:58:41PM +0100, Peter Heslin wrote:

    > Pressing 'stop' does now correctly kill the player and mp3 encoder,
    > so the callback is called correctly, but then the server crashes.
    > Does anyone who knows the server architecture well know what happens
    > in the server after the current mode's callback for 'stop' is invoked?


    I figured it out, I think. Add a line to the 'stop' callback to
    let the server know that playback has stopped, like so:

    'stop' => sub {
    my $client = shift;
    &kill_children($client);
    Slim::Control::Command::execute($client, ['stop']);
    Slim:isplay:isplay::update($client);

    where the Slim::Control::Command::execute($client, ['stop']); line
    needs to be added to the old code.

    I hope this solves most of the issues you mentioned. There are
    others, I know.

    Peter

  5. #5
    Jules Taplin
    Guest

    Tonight's AlienBBC release (v0.4)

    Fantastic Mark.

    That's sounding rather better. The UI bits I'm sure I'll get fixed as I
    work out a little better how some of this stuff is supposed to work (It's
    the first Plugin I've worked on, after all, and I'm not at all sure that the
    central model for it is the correct one).

    My major concerns, though, are the bugs that freeze the server. I'm not
    quite sure what those are about, but having the server lock up is pretty
    darned annoying.

    -- Jules

    ----- Original Message -----
    From: "Mark Bennett" <mark (AT) markandliz (DOT) co.uk>
    To: "Slim Devices Discussion" <discuss (AT) lists (DOT) slimdevices.com>
    Sent: Friday, July 02, 2004 10:01 AM
    Subject: [slim] Tonight's AlienBBC release (v0.4)


    > Hi Jules,
    >
    > I've installed 0.4, and been doing some testing this morning. It looks
    > like you've solved the most significant problem, with both alienstream
    > and lame getting launched and killed off correctly. This seems to be
    > true even with multiple players playing different streams!
    >
    > This means that it's pretty usable and solid now - the rest of the
    > points so far are down to user interface issues, which can be fixed over
    > time.
    >
    > I did notice in testing that the Radio 2 stream (I tested listen live,
    > which never came up showing connecting - and on subsequent testing
    > actually kills slimserver, and Soul Solutions, which locked the server)
    > have some problems.... I suspect that thease are stream problems at
    > the BBC end, rather than anything else.
    >
    > Anyay, excellent progress, and let me know if I can help out or do
    > any more testing for you.
    >
    > Cheers,
    > Mark.
    >
    > Jules Taplin wrote:
    > > Heya!
    > >
    > > Right. Following some extensive (*grin*) feedback from Mark... I've a

    stab
    > > at trying to sort some of it out.
    > >
    > > Basically... Changes are as follows:
    > >
    > > I hope I've fixed the 'dangling alienstream' problem, thanks to

    inspiration
    > > from the ever brilliant perl cookbook's recipe for opening file without
    > > shell escapes (recipe 19.6, if anybody cares). My current belief is that
    > > this is working now, and we shouldn't see any of the horrible dangling
    > > alienstreams mucking stuff up.
    > >
    > > Secondly... on the cosmetic front... I've also made the lists start from

    the
    > > top again when you navigate into a sub-directory.
    > >
    > > Mark... on your other bugs... I can certainly get the Radio 4 Afternoon

    Play
    > > now, and go between that an Radio 4 Longwave without trauma, so I think

    I'm
    > > going to declare either a fix or a 'can't reproduce' on both of those
    > > *grin*.
    > >
    > > So... version 0.4 is available from the normal place
    > > (http://www.mrtickle.org).
    > >
    > > Same again folks... If you can face it, give it a test. To avoid rework,
    > > though... the following is outstanding:
    > >
    > > Known Issues:
    > >
    > > Issue 3: Stopping a stream using the stop button freezes the server,

    only a
    > > restart appears to fix this.
    > > Issue 4: Stopping the stream using the power button leave both

    alienstream
    > > and lame running...
    > > Issue 5(a): Incorrect separation between multiple players
    > > Issue 6: When connected to a stream you can scroll up and down to see

    the
    > > other streams on the page, but you can't switch to another stream
    > > by pressing play. You have to stop the stream by pressing the left
    > > button then select the new stream and hit play.
    > >
    > >
    > > Of that lot... I've no idea how to fix issues 3 & 4 - as I've no

    template
    > > for how this sort of plugin SHOULD work. I think I know what's going on

    with
    > > Issue 5(a), but I'm amazed anybody even brave enough to _TRY_ to run two
    > > different alienstreams on different players *grin*.
    > >
    > >
    > > -- Jules
    > >
    > >

  6. #6
    Jules Taplin
    Guest

    Tonight's AlienBBC release (v0.4)

    Peter! You're about! Marvellous - I wanted to thank you for all the heavy
    lifting you've obviously done getting AlienStream to work at all.

    I kind of think I've come along and done the fame-and-glory bit on the BBC
    side, which is really just a bunch of HTML parsing, and the like.

    I'll have a go at integrating your changes - thank you very much.

    If I can offer a patch in return, though - AlienStream has a problem where
    it won't correctly kill off the alienstream exe if it was launched via a
    subshell (which perl will do if it sees any shell metacharacters in the
    stream description - a distressingly common occurrance, as far as I can
    see).

    If you replace the following line (line 176, I think)

    $player_pid{$client} = $message_reader{$client}->open("$alienstream
    $stream 2>&1 |");

    With the following:

    print STDERR "AlienStream: error launching $alienstream\n" unless
    defined($player_pid{$client} = $message_reader{$client}->open("-|"));

    unless($player_pid{$client})
    {
    print STDERR "Going to call exec with: $alienstream, $stream\n";
    exec($alienstream, $stream);
    }

    I believe all will be well... that works around to force the open to be
    backed with exec using explicit parameters, which means a subshell will
    never be invoked.


    -- Jules

    ----- Original Message -----
    From: "Peter Heslin" <slimp3 (AT) heslin (DOT) eclipse.co.uk>
    To: "Slim Devices Discussion" <discuss (AT) lists (DOT) slimdevices.com>
    Sent: Friday, July 02, 2004 3:33 PM
    Subject: [slim] Tonight's AlienBBC release (v0.4)


    > On Fri, Jul 02, 2004 at 02:58:41PM +0100, Peter Heslin wrote:
    >
    > > Pressing 'stop' does now correctly kill the player and mp3 encoder,
    > > so the callback is called correctly, but then the server crashes.
    > > Does anyone who knows the server architecture well know what happens
    > > in the server after the current mode's callback for 'stop' is invoked?

    >
    > I figured it out, I think. Add a line to the 'stop' callback to
    > let the server know that playback has stopped, like so:
    >
    > 'stop' => sub {
    > my $client = shift;
    > &kill_children($client);
    > Slim::Control::Command::execute($client, ['stop']);
    > Slim:isplay:isplay::update($client);
    >
    > where the Slim::Control::Command::execute($client, ['stop']); line
    > needs to be added to the old code.
    >
    > I hope this solves most of the issues you mentioned. There are
    > others, I know.
    >
    > Peter
    >
    >
    >

  7. #7
    Peter Heslin
    Guest

    Tonight's AlienBBC release (v0.4)

    On Sat, Jul 03, 2004 at 02:35:50PM +0100, Jules Taplin wrote:
    > Peter! You're about! Marvellous - I wanted to thank you for all the heavy
    > lifting you've obviously done getting AlienStream to work at all.


    No problem. Sorry that it's a bit rough around the edges.

    > I kind of think I've come along and done the fame-and-glory bit on the BBC
    > side, which is really just a bunch of HTML parsing, and the like.
    >
    > I'll have a go at integrating your changes - thank you very much.
    >
    > If I can offer a patch in return, though - AlienStream has a problem where
    > it won't correctly kill off the alienstream exe if it was launched via a
    > subshell (which perl will do if it sees any shell metacharacters in the
    > stream description - a distressingly common occurrance, as far as I can
    > see).
    >
    > If you replace the following line (line 176, I think)
    >
    > $player_pid{$client} = $message_reader{$client}->open("$alienstream
    > $stream 2>&1 |");
    >
    > With the following:
    >
    > print STDERR "AlienStream: error launching $alienstream\n" unless
    > defined($player_pid{$client} = $message_reader{$client}->open("-|"));
    >
    > unless($player_pid{$client})
    > {
    > print STDERR "Going to call exec with: $alienstream, $stream\n";
    > exec($alienstream, $stream);
    > }
    >
    > I believe all will be well... that works around to force the open to be
    > backed with exec using explicit parameters, which means a subshell will
    > never be invoked.


    Good catch. Stick in this line:

    open STDERR, ">&STDOUT" or die "Can't dup STDOUT: $!";

    just before the call to exec, and you'll still get the buffering
    status messages displayed to the client, rather than to the server
    stderr.

    I've just updated the alienstream plugin with these changes, and one
    or two more. You might want to check
    http://www.dur.ac.uk/p.j.heslin/amus...lienStream3.pm

    to make sure you have merged all of the changes into AlienBBC.

    Peter

  8. #8
    Jules Taplin
    Guest

    Tonight's AlienBBC release (v0.4)

    Cheers Peter.

    I'll try to integrate them tonight


    -- Jules

    ----- Original Message -----
    From: "Peter Heslin" <slimp3 (AT) heslin (DOT) eclipse.co.uk>
    To: "Slim Devices Discussion" <discuss (AT) lists (DOT) slimdevices.com>
    Sent: Wednesday, July 07, 2004 12:10 AM
    Subject: [slim] Tonight's AlienBBC release (v0.4)


    > On Sat, Jul 03, 2004 at 02:35:50PM +0100, Jules Taplin wrote:
    > > Peter! You're about! Marvellous - I wanted to thank you for all the

    heavy
    > > lifting you've obviously done getting AlienStream to work at all.

    >
    > No problem. Sorry that it's a bit rough around the edges.
    >
    > > I kind of think I've come along and done the fame-and-glory bit on the

    BBC
    > > side, which is really just a bunch of HTML parsing, and the like.
    > >
    > > I'll have a go at integrating your changes - thank you very much.
    > >
    > > If I can offer a patch in return, though - AlienStream has a problem

    where
    > > it won't correctly kill off the alienstream exe if it was launched via a
    > > subshell (which perl will do if it sees any shell metacharacters in the
    > > stream description - a distressingly common occurrance, as far as I can
    > > see).
    > >
    > > If you replace the following line (line 176, I think)
    > >
    > > $player_pid{$client} = $message_reader{$client}->open("$alienstream
    > > $stream 2>&1 |");
    > >
    > > With the following:
    > >
    > > print STDERR "AlienStream: error launching $alienstream\n" unless
    > > defined($player_pid{$client} = $message_reader{$client}->open("-|"));
    > >
    > > unless($player_pid{$client})
    > > {
    > > print STDERR "Going to call exec with: $alienstream, $stream\n";
    > > exec($alienstream, $stream);
    > > }
    > >
    > > I believe all will be well... that works around to force the open to be
    > > backed with exec using explicit parameters, which means a subshell will
    > > never be invoked.

    >
    > Good catch. Stick in this line:
    >
    > open STDERR, ">&STDOUT" or die "Can't dup STDOUT: $!";
    >
    > just before the call to exec, and you'll still get the buffering
    > status messages displayed to the client, rather than to the server
    > stderr.
    >
    > I've just updated the alienstream plugin with these changes, and one
    > or two more. You might want to check
    >

    http://www.dur.ac.uk/p.j.heslin/amus...lienStream3.pm
    >
    > to make sure you have merged all of the changes into AlienBBC.
    >
    > Peter
    >
    >

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •