Coder Social home page Coder Social logo

Metadata missing letters about freestreamer HOT 13 CLOSED

muhku avatar muhku commented on August 22, 2024
Metadata missing letters

from freestreamer.

Comments (13)

Leandros avatar Leandros commented on August 22, 2024

You got any stream for testing purposes?

from freestreamer.

muhku avatar muhku commented on August 22, 2024

Yep, currently non-ASCII data is ignored by the ICY metadata parser, see: https://github.com/muhku/FreeStreamer/blob/master/astreamer/http_stream.cpp#L410

from freestreamer.

karma88 avatar karma88 commented on August 22, 2024

How can i activating this for support it ..?

from freestreamer.

muhku avatar muhku commented on August 22, 2024

@karma88: You could try removing the following lines from the code, which filter out the non-ASCII characters. So beginning from line 426, https://github.com/muhku/FreeStreamer/blob/master/astreamer/http_stream.cpp#L426

Remove this block:

if (c < 32 || c > 126) {
    continue;
}

from freestreamer.

karma88 avatar karma88 commented on August 22, 2024

when i remove this block the text label leave blank...

from freestreamer.

muhku avatar muhku commented on August 22, 2024

Right, then there are probably some bytes, which break the string encoding. Any zero bytes will truncate the string at least. To debug this further, put a breakpoint to the previously mentioned point and output the metadata bytes.

from freestreamer.

muhku avatar muhku commented on August 22, 2024

I got the issue reproduced with the following stream: http://www.voice.fi/nettiradio/voice.m3u

Ü,Ä Ö etc. are missing. Removing the ASCII filtering breaks the string encoding so a bit more effort would be needed to handle this correctly.

from freestreamer.

Leandros avatar Leandros commented on August 22, 2024

I'am on it.

from freestreamer.

Leandros avatar Leandros commented on August 22, 2024

See #18

from freestreamer.

muhku avatar muhku commented on August 22, 2024

Closing this due to @Leandros' pull request #18 merged to master.

@karma88: Please make sure your tree of FreeStreamer has the commit 0061300

from freestreamer.

muhku avatar muhku commented on August 22, 2024

One more commit needed for the encoding to work: 20bf211

Please notice that the metadata encoding is not probed, so we assume now that the metadata is always encoded in UTF8. See: https://github.com/muhku/FreeStreamer/blob/master/astreamer/http_stream.cpp#L406 This is not ideal but seems to work well enough in practice.

Note that from now on, I would prefer to use CFString instead of std::string (though no hurry for any quick changes).

from freestreamer.

Leandros avatar Leandros commented on August 22, 2024

It does work perfectly with wide string.
Though, as I said in the request, it isn't the most elegant solution.

However, any non UTF-8 string will return NULL. Checking for that could be a good idea.

from freestreamer.

muhku avatar muhku commented on August 22, 2024

@Leandros This is what I got with std::wstring and UTF8 encoded metadata: https://dl.dropboxusercontent.com/u/995250/Screen%20Shot%202013-12-10%20at%2010.18.24.png

This is how it looks like after doing the encoding with CFStringCreateWithBytes(): https://dl.dropboxusercontent.com/u/995250/Screen%20Shot%202013-12-10%20at%2013.43.00.png

So for some reason CFStringCreateWithBytes() resulted the correct encoding with the stream I was testing with.

I have some ideas for probing the metadata encoding so let's see if that is needed at some point. Feel free to share if you have some ideas related to that. :-)

from freestreamer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.