Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    TingPing
    @TingPing
    @glennimoss You know there is already #pithos freenode
    Glenn Moss
    @glennimoss
    Apparently I totally missed that.
    Jason Gray
    @JasonLG1979
    We need to find a time when we're all online so we can hash this out. But @TingPing as far as what should happen 1st the logic change or the logic split. My vote(if I had one) would be for the logic change. For a couple reasons. 1. My code fixes a couple major outstanding bugs. 2. It's ready and works now, @glennimoss's code for some reason or another doesn't work on Ubuntu 15.04. 3. And last but not least @glennimoss is better equipped(as in more knowledgeable in python3) to fold my code into his then I am to fold mine into his.
    Glenn Moss
    @glennimoss
    I agree with @JasonLG1979
    Jason Gray
    @JasonLG1979
    @glennimoss check this commit out JasonLG1979/pithos@d1b5d45 Do you think this will help at all? Give it a test out and let me know what you come up with.
    Jason Gray
    @JasonLG1979
    @glennimoss a few more changes. I also disabled the downloadbuffer.
    Glenn Moss
    @glennimoss
    @JasonLG1979 I see you mentioning the Pandora throttling on free accounts. You're absolutely right. My experimentation revealed that when they're throttling it to about what playback should be.
    Addinionally, they also chunk the downloads. The request for the song gets responded to with a 206 Partial Content and a chunk (maybe about 64k? I don't remember exactly) of the song. The http client then requests again and one more chunk is given, and so on until the last chunk, which gets a 200 OK. This is all handled internally by the GstHTTPSoupSrc element. I'm not if this behavior has any connection to why the buffering logic is the way that it is...
    This message was deleted
    And the problems with the aac buffering messages (e.g. 0 until it's 100%) is that it doesn't report 100% until it has basically buffered the entire song. So if they're throttling at playback speed, a 3 minute song will take 3 minutes to have the buffer say 100%. All of this is why I was trying to mess around with my own buffering logic. We'll get all the refactoring etc. squared away then we can work on addressing the buffering issues.
    Jason Gray
    @JasonLG1979
    I get a 100% message for aac's after about 2 to 3 secs average with download buffering disabled. It can be as low as 1 sec or as high as 5 sec but as long as I haven't abused the account I don't have any problems generally.
    Glenn Moss
    @glennimoss
    Is that on your Pandora One account?
    Glenn Moss
    @glennimoss
    I've also found that they don't always throttle free accounts. When it's not throttled the music file downloads very quickly.
    Jason Gray
    @JasonLG1979
    That's with either free or paid. I personally think it's a matter of how much you abuse the account. Paid accounts can put up with a little bit more abuse then free accounts. And the mp3 stream seems to just have better line quality/priority.
    Of course I changed up the buffering behavior. Made it more of a pull behavior than push like it was before.
    Jason Gray
    @JasonLG1979
    That was my personal Pandora One account.
    Here's what happens when you abuse an account.
    https://www.youtube.com/watch?v=bc_0p32h1uw
    Jason Gray
    @JasonLG1979

    Here's 2 free accounts. The 2nd one is the same account as the above video where it never finished buffering. It's just a day later.

    https://www.youtube.com/watch?v=JtPMhwA0XtU&feature=youtu.be

    I haven't done any deep debugging or packet inspection but like I said I think it mostly has to do with how well behaved the account is. I think the lesson here is that skipping songs pisses Pandora off,lol!!!
    Jason Gray
    @JasonLG1979
    Switching accounts back and forth to test stuff makes me think that being able to remember multiple accounts would be a great feature for Pithos to have.
    Glenn Moss
    @glennimoss
    One of the changes in my too-big commit was some command-line args to specify which config directory to use. I have one per account and it makes it easy to start Pithos using a specific one.
    Jason Gray
    @JasonLG1979
    It would be nice to have a gui option to switch between accounts. It would also be nice if Pithos didn't save credentials as plain text(don't know if that's possible)
    Jason Gray
    @JasonLG1979
    Other use cases come to mind like if multiple people share a computer(on the same user account)
    Jason Gray
    @JasonLG1979
    Here's the buffering behavior of the mp3 stream on my Pandora One account. It generally doesn't take over 1.5 sec to buffer regularly completing in the 0.2 to 0.5 sec range.
    Jason Gray
    @JasonLG1979

    I added a counter in on_gst_buffering to see just how many buffer messages Gstreamer was sending. For the mp3 stream I got 38 messages in a little under a sec before the buffer hit 100% for the aac stream I got over 1000 in the 5 secs it took to reach 100%. That seems excessive. Might be the root cause of the random pause bug. Pithos might just be being overwhelmed and the 100% message slips through the cracks. My new buffer logic checks the buffer % every 1/10 of sec during buffering regardless of how many messages are sent. Seems to work better.

    https://www.youtube.com/watch?v=MbmrWxJe8_0&feature=youtu.be

    Jason Gray
    @JasonLG1979

    Well @glennimoss I'm pretty much done with what I got going on. Highlights of my branch include. 1. More useful state awareness(Playing, Paused, Stopped or Buffering) 2. Got rid of the gstreamer tag handler and use the bitate and codec info provided by Pandora. 3. Use the duration info provided by Pandora for the UI.(continue to use Gstreamer in the background to detect ads.) 4. Disabled download buffering. 5. Turned the buffering behavior into more of a pull behavior. 6. Incorporated your _set_state logic.

    Give it a try and let me know what you think. Oh debug mode doesn't work because the test server doesn't send the duration, bitrate or codec info. That would have to be fixed on their side. But it works rather well on a real Pandora account.