MPlayer icon indicating copy to clipboard operation
MPlayer copied to clipboard

Length of ICY metadata info length

Open swordsman379 opened this issue 1 year ago • 1 comments

I've noticed, that length of metadata info in ICY is shortened by 256 chars, though currently there are much longer ICY info strings. Can be noticed here: http://stream.revma.ihrhls.com/zc3373

Here if ICY string from mplayer 38407: ICY Info: StreamTitle='Lynyrd Skynyrd - text="Sweet Home Alabama" song_spot="M" spotInstanceId="-1" length="00:04:42" MediaBaseId="1090780" TAID="0" TPID="608985" cartcutId="702926" amgArtworkURL="http://image.iheart.com/bell-ingestion-pipeline-production-umg/full/0 And here is ICY string from VLC: Lynyrd Skynyrd - text="Sweet Home Alabama" song_spot="M" spotInstanceId="-1" length="00:04:42" MediaBaseId="1090780" TAID="0" TPID="608985" cartcutId="702926" amgArtworkURL="http://image.iheart.com/bell-ingestion-pipeline-production-umg/full/00008811164829_20181115201652774/00008811164829_T1_cvrart.jpg" spEventID="468b0ae3-be4e-ef11-83a9-025fe493a615"

Can you make a release with no cutting of ICY info?

swordsman379 avatar Aug 04 '24 20:08 swordsman379

PS. Forgot to say I need version for Windows Sorry, can't compile myself As I can see the only change is to be here: stream/http.c

static void scast_meta_read(int fd, streaming_ctrl_t *sc) {
  unsigned char tmp = 0;
  unsigned metalen;
  my_read(fd, &tmp, 1, sc);
  metalen = tmp * 16;
  if (metalen > 0) {
    int i;
    uint8_t *info = malloc(metalen + 1);
    unsigned nlen = my_read(fd, info, metalen, sc);
    // avoid breaking the user's terminal too much
    if (nlen > 256) nlen = 256;
    for (i = 0; i < nlen; i++)
      if (info[i] && info[i] < 32) info[i] = '?';
    info[nlen] = 0;
    mp_msg(MSGT_DEMUXER, MSGL_INFO, "\nICY Info: %s\n", info);
    free(info);
  }

swordsman379 avatar Aug 04 '24 21:08 swordsman379