nega0 / pianobarfly

pandora2[mp3|m4a]
https://github.com/nega0/pianobarfly
Other
61 stars 31 forks source link

AAC encoding not working correctly #54

Open redspot opened 10 years ago

redspot commented 10 years ago

I have noticed that the .m4a files written by PBF are not correct. my music players report errors in playback. I did the following experiment using ffmpeg to test if the files were correct. Here is an example output:

ffmpeg -i input.m4a -c:a libfdk_aac output.m4a ...output trimmed... [aac @ 0x210a140] TYPE_FIL: Input buffer exhausted before END element found Error while decoding stream #0:0: Invalid data found when processing input [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2108880] stream 0, offset 0x1a6044: partial file input.m4a: Invalid data found when processing input

the converted file actually plays correctly once ffmpeg re-encodes it. but, the original that PBF creates seems to have issues.

I also get one other error: [aac @ 0x3e3e180] decode_band_types: Input buffer exhausted before END element found

but, most of the errors are TYPE_FIL. there are errors that show up commonly in the album art as well. I don't have good examples to post, though.

nega0 commented 10 years ago

I've noticed that too. I think that pandora is streaming truncated files. If that's the case there isn't much we can do about it. What are you using for playback?

redspot commented 10 years ago

i've used pianobarfly and winamp and "play" on android. if the issue was that pandora just pulled a derp for awhile i can redownload songs that are truncated. if its PBF, then there's a bug for ya.

I checked by using ffmpeg to convert the files from aac to aac. ffmpeg complains about the last frame being shorted.

so, can you confirm this as a pandora issue or PBF?

On Wed, Nov 6, 2013 at 11:53 AM, nega0 notifications@github.com wrote:

I've noticed that too. I think that pandora is streaming truncated files. If that's the case there isn't much we can do about it. What are you using for playback?

— Reply to this email directly or view it on GitHubhttps://github.com/nega0/pianobarfly/issues/54#issuecomment-27890956 .

nega0 commented 10 years ago

It does indeed seem to be an issue with PBF. I managed to draw the raw stream out with wireshark and it didn't seem to have the same clipping issue. I bet we're dropping the last buffer in the floor when we see an EOF from the stream