Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fix]Skip trying to use TagLib to read tags from Shoutcasts #11771

Closed
wants to merge 1 commit into from

Conversation

DaveTBlake
Copy link
Member

Stop trying to get TabLib to read metadata from Shoutcasts, but not excluding other internet streams.
An alternative to #11759

TabLib is not designed to cope with Shoutcasts, which while being an MPEG audio stream have a bespoke header and metadata format, and some streams cause TabLib to hang (or actually search indefinitely).

@fritsch @arnova @phate89 @wsnipex

I realise that a future refactoring wants to make TagLibVFSStream more controlled, and protect from unlimited reading. This is not an attempt at that, just a modest change that could be backported, that will avoid hangups caused by passing tagLib streams that we know do not contain tags it can read.

@wsnipex
Copy link
Member

wsnipex commented Feb 27, 2017

looks good to me

else
{ // Check if this stream is a Shoutcast, and skip scanning tags if it is.
// Shoutcast has its own metadata format that TagLib does not read
CFileCache* fileCacheItem = dynamic_cast<CFileCache*>(m_file.GetImplementation());

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@fritsch
Copy link
Member

fritsch commented Feb 27, 2017

If you wanted a timeout instead: fritsch@a847221

@DaveTBlake
Copy link
Member Author

Thanks for the timeout approach @fritsch, a solution to the general problem of TagLibVFSStream running unlimited, but I would want do to lot more testing before applying an arbitrary time limit on all tag scanning. Here I'm looking for a fix to backport at this late stage in the cycle.

Now I believe that #11759 is a valid backport solution - even if it scans tag data from an internet stream Kodi does not display it, so no one will scream about lost features.

It is future work to add control of TagLibVFSStream, and if we want to implement the display of metadata from true mp3 internet streams that entails implementing accurate filtering that skips the Shoutcasts before calling TagLib.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Fix non-breaking change which fixes an issue v18 Leia
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants