Announcement

Collapse
No announcement yet.

The Winamp Transcoder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by Gabes Dad
    What would be a nice option for transcoding is to apply the specified gain (album or track) such it scales the output files. That way the portable player wouldn't need to support replaygain.
    So true. I suggested a while back that when transferring to a portable that didn't explicitly support replaygain (or whatever apple want to call their implementation) the file is normalised as part of transcoding or, in the case of mp3, mp3gained.

    It seems that its quite a lot of work though.

    My concern is that people will be listening to music with winamp, it will be normalised, then, on transfer to their portable, the audio will be all over the place without their knowledge as to why.

    Comment


    • Originally posted by CraigF
      So true. I suggested a while back that when transferring to a portable that didn't explicitly support replaygain (or whatever apple want to call their implementation) the file is normalised as part of transcoding or, in the case of mp3, mp3gained.

      It seems that its quite a lot of work though.

      My concern is that people will be listening to music with winamp, it will be normalised, then, on transfer to their portable, the audio will be all over the place without their knowledge as to why.
      I was just thinking of scaling, not necessarily changing the mp3 header. I know that the LAME command line version can do this pretty readily. Isn't Winsmp's mp3 encoder using the lame.dll?

      Comment


      • Is there any possibility of the Transcoder character substitution convention being changed (or possibly user-specified) to match CD Ripping? The Transcoder appears to substitute underscores for all illegal characters, whereas the Ripper substitutes hyphens (or apostrophes for quotation marks). Not a huge deal, but it would make copying m3u playlists much simpler.

        Comment


        • transcoder failure

          I am getting a "Decoder doesn't support new 2.92 methods" failure when I attepmt to convert vgz files to mp3. Does anyone have any suggestions?

          Comment


          • Tell the vgz plugin developer. He needs to update his input plugin to support transcoding.
            DO NOT PM ME WITH TECH SUPPORT QUESTIONS

            Comment


            • mightn't that be tricky if the transcode api hasn't been published (unless someone's silently released the specs since i've not seen it...)

              -daz
              WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

              Comment


              • Good point. If anyone wants the api, post here!
                DO NOT PM ME WITH TECH SUPPORT QUESTIONS

                Comment


                • here

                  (well you did say post 'here' )

                  -daz
                  WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

                  Comment


                  • I just remembered that in_flac is LGPL and supports transcoding.

                    So, here is how it implements the transcoding api: http://stashbox.org/6452/extendedread.c (note: this may not be the exact code in the current plug-in, it's just what I have floating around on my computer. Nonetheless, it is still an excellent example of how to implement the transcoding API. And it is under the LGPL. Woot!

                    And here is my documentation of the API.
                    code:
                    __declspec( dllexport ) intptr_t winampGetExtendedRead_open(const char *fn, int *size, int *bps, int *nch, int *srate)
                    Open the file and prepare to decode.
                    parametes:
                    const char *fn - the file to decode
                    int *size - set *size to the total number of bytes that this file will decode to. You can set this to -1 if you don't know, but some things won't work. (like percentage estimates in the transcoder)
                    int *bps - set this to the number of bits per sample in the output
                    int *nch - set this to the number of channels in the output
                    int *srate - set this to the sample rate (i.e, 44100)

                    Note: try and use the values already in bps, nch and srate.

                    return value: a handle which will be passed back you in calls to getData and close. Return 0 on any error (such as the file not existing).

                    code:
                    __declspec( dllexport ) intptr_t winampGetExtendedRead_getData(intptr_t handle, char *dest, int len, int *killswitch)

                    Decode some of the file. This will be called multiple times until either the whole file is decoded or the decoding is cancelled.
                    parameters:
                    intptr_t handle: the handle you returned on winampGetExtendedRead_open
                    char *dest: a buffer to write the decoded file to
                    int len: the size of the buffer dest
                    int *killswitch: check this periodically. If it is not zero, return as soon as possible, the decoding has been cancelled.

                    return value: the number of bytes in dest. If this is zero, then winamp will assume that whole file is decoded.

                    code:
                    __declspec( dllexport ) int winampGetExtendedRead_setTime(intptr_t handle, int millisecs)
                    Seek in the file.
                    parameters:
                    intptr_t handle: the handle you returned from the call to winampGetExtendedRead_open
                    int millisecs: the number of milliseconds into the file (measured starting from the beginning of the file) that you should seek to.
                    return value: nonzero on success, zero on failure.

                    note: this is optional, and isn't used by anything in the wild at the moment. But it will be soon.
                    Your seeking doesn't have to be totally accurate.

                    code:
                    __declspec( dllexport ) void winampGetExtendedRead_close(intptr_t handle)
                    close the file and free all resources associated with it.
                    parameters:
                    intptr_t handle: the handle you returned from the call to winampGetExtendedRead_open
                    no return value.

                    Notes:
                    If you're coding in C++, remember to wrap these function definitions in extern "C" { ... };, so they are exported properly.

                    If you implement this API then it will be used by the CD burner (as opposed to your implementation of in2.h)


                    Happy?
                    DO NOT PM ME WITH TECH SUPPORT QUESTIONS

                    Comment


                    • .vgz's aren't the only files doing this for me, but that's besides the point. Basically what you're telling me there is not much to be done right now, that and I am barely html literate nevermind c++ so that last response was really foreign-like to me.

                      Comment


                      • basically input plugins have to be updated for them to be able to work correctly with the transcode ferature is what's being said. and knowing what the guy who's coded the vgz plugin, i'm sure you'll probably see the transcode support appear at some stage (probably sooner than other formats )

                        -daz
                        WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

                        Comment


                        • thanks for dummying it down for me.

                          Comment


                          • transcoder

                            so this forum starts with how great the transcoder is but when i use it it starts to go but then says that the "decoder is not found" i just want my vgz to be mp3 is that so much to ask?

                            if anyone ahs an answer please e-mail me at

                            [email protected]

                            Comment


                            • you'd need an updated in_vgm (transcoding _only_ works if the input plugin for that format supports it). i believe the current dev type build here should work with the transcoder

                              -daz
                              WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

                              Comment


                              • Originally Posted by will View Post
                                The Winamp transcoder is a plugin for winamp which adds a "Transcode" option to the right click-send to menu in the playlist and media library.

                                Clicking this will convert all selected songs from whatever format they are currently in to the format specified in the Configuration.

                                To access the Configuration for this plugin, go to the winamp preferences then to "Media Library" under "Plugins". Click "Transcoder" then "Configure".

                                The settings for the encoding are separate from your CD rip settings.

                                Homepage

                                Also, it has an API so it can work for other plugins. For example ml_ipod 1.30 and above use it to transcode files incompatable with the ipod.
                                what is the new version of your transcoding plugin and where can I find it?
                                I installed 2a or 3.0 whatever on winamp 5.623 and for some reason the transcoding plugin which was already present also got deleted.
                                I cannot transfer some songs to my ipod which is why I thought of changing their format.
                                What should I do now? help plz....

                                Comment

                                Working...
                                X