strawberrymusicplayer / strawberry

:strawberry: Strawberry Music Player
https://www.strawberrymusicplayer.org/
GNU General Public License v3.0
2.67k stars 183 forks source link

Fix GST_FRAMES_TO_CLOCK_TIME frames parameter #1458

Closed guprobr closed 3 months ago

guprobr commented 3 months ago

Perphaps divide frames per channels instead of multiply, since its a duration... This fixes truncated visual output of 24 bit audio in analyzers that do not apply any transformation

guprobr commented 3 months ago

of course! just a sec

guprobr commented 3 months ago

I'm kinda of lame in terms of git, rebase... is this correct?

pick 45bad3be Fix integer underflow bug squash 0914f79c GstEnginePipeline: Divide samples and format by channels for buffer duration

jonaski commented 3 months ago

To fix the commit message you can just use: git commit --amend, or with rebase you can do.: git rebase -i 0c0a248c3d1537ccec633dbc187ab4f4b737da3c~ Where 0c0a248c3d1537ccec633dbc187ab4f4b737da3c is your commit. Then you enter r in front of the commit instead of pick. And to push the changes.: git push origin channels-at-gst_frames_to_clock_time-fix --force-with-lease No need to squash since there is just one commit, removed my comment about that.

jonaski commented 3 months ago

I have now tested this fix with S16LE, S24LE, S32LE and F32LE, it looks good. There is just one format I didn't test and that's S24_32LE, I don't remember how I got that format.

guprobr commented 3 months ago

S24_32LE:

S: Signed integer - 24: 24 bits per sample - LE: Little-endian byte order - (24-bit samples stored in a 32-bit container) -> convert like this: ffmpeg -i song.wav -c:a pcm_s24le -sample_fmt s32 output_file.wav