1. 31 Oct, 2008 1 commit
    • Max Kellermann's avatar
      added prefix to header macros · ea515494
      Max Kellermann authored
      "LOG_H" is a macro which is also used by ffmpeg/log.h.  This is
      ffmpeg's fault, because short macros should be reserved for
      applications, but since it's always a good idea to choose prefixed
      macro names, even for applications, we are going to do that in MPD.
      ea515494
  2. 29 Oct, 2008 1 commit
  3. 26 Oct, 2008 2 commits
  4. 09 Oct, 2008 1 commit
    • Max Kellermann's avatar
      shout: removed DISABLED_SHOUT_ENCODER_PLUGIN · 5583b6c5
      Max Kellermann authored
      Having an array with disabled entries sucks.  Removed that
      DISABLED_SHOUT_ENCODER_PLUGIN macro, and fill the plugin list only
      with plugins which are actually enabled.  This should be done for all
      plugin types.
      5583b6c5
  5. 29 Sep, 2008 1 commit
    • Max Kellermann's avatar
      audio_output: added method pause() · 6e21e24c
      Max Kellermann authored
      pause() puts the audio output into pause mode: if supported, it may
      perform a special action, which keeps the device open, but does not
      play anything.  Output plugins like "shout" might want to play silence
      during pause, so their clients won't be disconnected.  Plugins which
      do not support pausing will simply be closed, and have to be reopened
      when unpaused.
      
      This pach includes an implementation for the shout plugin, which
      sends silence chunks.
      6e21e24c
  6. 12 Sep, 2008 10 commits
    • Max Kellermann's avatar
      shout: make the shout_buffer static · 265b8fff
      Max Kellermann authored
      Since the buffer size is known at compile time, we can save an
      indirection by declaring it as a char array instead of a pointer.
      That saves an extra allocation, and we can calculate with the
      compile-time constant sizeof(data) instead of the attribute "max_len".
      265b8fff
    • Max Kellermann's avatar
      shout: constant plugin declarations · ebd19499
      Max Kellermann authored
      Declare both shout plugins "const", since they will never change, once
      initialized at compile time.
      ebd19499
    • Max Kellermann's avatar
      shout: removed typedefs on structs and plugin methods · a84de9b0
      Max Kellermann authored
      Don't typedef the structs at all.  It is easier to forward-declare
      this way.
      
      Don't typedef methods.  They are used exactly once, a few lines below.
      a84de9b0
    • Eric Wollesen's avatar
      shout: added mp3 encoder · 5f8eebd1
      Eric Wollesen authored
      [mk: moved this patch after "Refactor and cleanup of shout Ogg and MP3
      audio outputs".  The original commit message follows, although it is
      outdated:]
      
      Creation of shout_mp3 audio output plugin. Basically I just copied the
      existing shout plugin and replaced ogg with lame. Uses lame for mp3
      encoding. Next step is to pull common functionality out of each shout
      plugin and share it between them.
      
      Configuration options for "shout_mp3" are the same as for "shout".
      5f8eebd1
    • Eric Wollesen's avatar
      shout: introduce pluggable encoder API · 4970c42c
      Eric Wollesen authored
      I've perhaps gone a bit overboard, but here's the current rundown:
      
      Both Ogg and MP3 use the "shout" audio output plugin.  The shout audio
      output plugin itself has two new plugins, one for the Ogg encoder,
      and another for the MP3 (LAME) encoder.
      
      Configuration for an Ogg stream doesn't change.  For an MP3 stream,
      configuration is the same as Ogg, with two exceptions.  First, you must
      specify the optional "encoding" parameter, which should be set to "mp3".
      See mpd.conf(5) for more details.  Second, the "quality" parameter is
      reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
      high quality for Ogg.
      
      I've decomposed the code so that all libshout related operations
      are done in audioOutput_shout.c, all Ogg specific functions are in
      audioOutput_shout_ogg.c, and of course then all LAME specific functions
      are handled in audioOutput_shout_mp3.c.
      
      To develop encoder plugins for the shout audio output plugin, I basically
      just mimicked the plugin system used for audio outputs.  This might be
      overkill, but hopefully if anyone ever wants to support some other sort
      of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
      hopefully be all set.
      
      The Ogg encoder is slightly less optimal under this configuration.
      It used to send shout data directly out of its ogg_page structures.  Now,
      in the interest of encapsulation, it copies the data from its ogg_page
      structures into a buffer provided by the shout audio output plugin (see
      audioOutput_shout_ogg.c, line 77.)  I suspect the performance impact
      is negligible.
      
      As for metadata, I'm pretty sure they'll both work.  I wrote up a test
      scaffold that would create a fake tag, and tell the plugin to send it
      out to the stream every few seconds.  It seemed to work fine.  Of course,
      if something does break, I'll be glad to fix it.
      
      Lastly, I've renamed lots of things into snake_case, in keeping with
      normalperson's wishes in that regard.
      
      [mk: moved the MP3 patch after this one.  Splitted this patch into
      several parts; the others were already applied before this one.  Fixed
      a bunch GCC warnings and wrong whitespace modifications.  Made it
      compile with mpd-mk by adapting to its prototypes]
      4970c42c
    • Eric Wollesen's avatar
      shout: send shout metadata · 43ee3c3b
      Eric Wollesen authored
      Support sending metadata to a shout server using shout_metadata_new()
      and shout_metadata_add().  The Ogg Vorbis encoder does not support
      this currently.
      
      [mk: this patch was separated from Eric's patch "Refactor and cleanup
      of shout Ogg and MP3 audio outputs", I added a description]
      43ee3c3b
    • Max Kellermann's avatar
      shout: added struct _ogg_vorbis_data · 1333c392
      Max Kellermann authored
      Preparing the merge of Eric Wollesen's patch "Refactor and cleanup of
      shout Ogg and MP3 audio outputs": we declare one of the struct types
      here, to make the merge smoother.
      1333c392
    • Eric Wollesen's avatar
      shout: added shout_buffer · f482f83e
      Eric Wollesen authored
      The Ogg encoder is slightly less optimal under this configuration.  It
      used to send shout data directly out of its ogg_page structures.  Now,
      in the interest of encapsulation, it copies the data from its ogg_page
      structures into a buffer provided by the shout audio output plugin
      (see audioOutput_shout_ogg.c, line 77.)  I suspect the performance
      impact is negligible.
      
      [mk: this patch and its description was separated from Eric's patch
      "Refactor and cleanup of shout Ogg and MP3 audio outputs"]
      f482f83e
    • Max Kellermann's avatar
      shout: moved code to audioOutput_shout_ogg.c · fcac05a2
      Max Kellermann authored
      Begin dividing audioOutput_shout.c: move everything OGG Vorbis related
      to audioOutput_shout_ogg.c.  The header audioOutput_shout.h has to
      keep its dependency on vorbis/vorbisenc.h, because it needs the vorbis
      encoder types.
      
      For this patch, we have to export several internal functions with
      generic names to the ABI; these will be removed later when the encoder
      plugin patches are merged.
      fcac05a2
    • Max Kellermann's avatar
      shout: moved declarations to audioOutput_shout.h · 7d3ca9c1
      Max Kellermann authored
      Prepare the split of the shout plugin into multiple sources: move
      all important declarations to audioOutput_shout.h.
      7d3ca9c1
  7. 12 Apr, 2008 1 commit
    • Max Kellermann's avatar
      clean up CPP includes · c89b358c
      Max Kellermann authored
      Try to only include headers which are really needed.  We should
      particularly check all "headers including other headers".  The
      long-term goal is to have a manageable, small API for plugins
      (decoders, output) without so many mpd internals cluttering the
      namespace.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7319 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      c89b358c
  8. 05 Feb, 2008 1 commit
  9. 03 Jan, 2008 1 commit
    • Eric Wong's avatar
      Cleanup #includes of standard system headers and put them in one place · cb8f1af3
      Eric Wong authored
      This will make refactoring features easier, especially now that
      pthreads support and larger refactorings are on the horizon.
      
      Hopefully, this will make porting to other platforms (even
      non-UNIX-like ones for masochists) easier, too.
      
      os_compat.h will house all the #includes for system headers
      considered to be the "core" of MPD.  Headers for optional
      features will be left to individual source files.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7130 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      cb8f1af3
  10. 30 May, 2007 1 commit
  11. 05 Apr, 2007 1 commit
  12. 20 Jul, 2006 1 commit
  13. 14 Jul, 2006 1 commit
  14. 13 Jul, 2006 1 commit
  15. 03 Nov, 2004 1 commit
  16. 14 Apr, 2004 1 commit
  17. 18 Mar, 2004 1 commit
  18. 28 Feb, 2004 1 commit
  19. 24 Feb, 2004 1 commit
  20. 23 Feb, 2004 1 commit