(Audio) Transcode + meta data

Issue #16 new
Former user created an issue

Hi, not sure if this is the best place to put this.... please point to more appropriate forum if there is any

I try to use readydlna-transcode to serve and transcode those parts of my music archive that are in ogg to devices that can't handle that format. Therefore I configured the server to transcode ogg to mp3. However, the device in question (a sony cmt-g2nib) list titles with an [!] and doesn't play them.

When looking at the network I see the files presented as

<res duration="0:04:00.733" protocolInfo="http-get:*:audio/ogg:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192....

I.e. protocol info says it's ogg. Since transcoding is configured I would expect this to indicate the resulting format, here audio/mp3.

Quick look into the source shows that get_dlna_metadata_audio doesn't care about the configured transcoding.

Is this correct behaviour or a bug?

Comments (2)

  1. Matthew Caron

    It seems like a bug to me, one that's bitten me. I'd think that transcoded types likely want to have their types (and file extensions, if applicable) munged to an output that matches whatever one is transcoding to. So, if I'm changing all my flac/vorbis to mp3, I'd want them to be audio/mpeg and have a .mp3 extension when viewed by the server.

    Basically, it works fine on my Onkyo receiver (which doesn't care about the filenames or types, it tries to play anything and only gives up when it can't decode anything), but fails on my Roku, which doesn't display things it doesn't think it can play - so it never even attempts the transcoding.

    Thanks.

  2. Michael Gernoth

    Just hit the same problem with my Yamaha AV receiver which also looks at the protocolInfo. This ugly diff forces ogg to be reported as mp3, which "fixes" it for me:

    diff --git a/upnpsoap.c b/upnpsoap.c
    index 77fc468..d6c0cf6 100644
    --- a/upnpsoap.c
    +++ b/upnpsoap.c
    @@ -900,6 +900,10 @@ callback(void *args, int argc, char **argv, char **azColName)
                                            strcpy(mime+6, "wav");
                                    }
                            }
    +                       else if( strcmp(mime+6, "ogg") == 0 )
    +                       {
    +                               strcpy(mime+6, "mp3");
    +                       }
                    }
                    else
                            dlna_flags |= DLNA_FLAG_TM_I;
    
  3. Log in to comment