Chris, appreciate your thoughts on what compatibility we should be aiming for here.
/Rob
--- On Sun, 27/9/09, Jim Harkins <jimh@...> wrote:
> From: Jim Harkins <jimh@...>
> Subject: [SoX-devel] MP3 LAME version requirements
> To: sox-devel@...
> Date: Sunday, 27 September, 2009, 5:13 AM
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> I've noticed checks for separate
> functions HAVE_ID3TAG_SET_FIELDVALUE
> and HAVE_LAME_SET_VBR_QUALITY. I can see how using CMake
> invites this approach.
> But as more and more individual functions are independently
> tested this way,
> the possible build combinations grow exponentially which
> makes testing them all
> impractical.
>
>
>
> I've searched lame.def in the LAME
> project's source history to find the
> time line for id3tag_set_fieldvalue and
> lame_set_VBR_quality. lame.def is the
> Windows dynamic library definition file where exports are
> defined. I used it
> because it's only a single file and tells us when the
> functions became
> available for dynamic linking.
>
>
>
> id3tag_set_fieldvalue was
> added:
>
>
>
> lame.def rev 1.2
>
> Wed Jun 27 21:22:22 2007
> UTC
>
>
>
> The first release after that
> was:
>
>
>
> LAME 3.98 beta 5 August 12
> 2007
>
>
>
>
>
> lame_set_VBR_quality was
> added:
>
>
>
> lame.def rev 1.6
>
> Sat Apr 12 18:18:06 2008
> UTC
>
>
>
> The first release after that
> was:
>
>
>
> LAME 3.98 beta 8 April 13
> 2008
>
>
>
> I think it's possible to simplify
> the build situation by decreasing the
> number of HAVE_LAME_* defs.
>
>
>
> What's the oldest version of LAME
> that's supported? The SoX INSTALL
> file says:
>
>
>
> == Requirements
> ==
>
>
>
> The following
> requirements have been tested.
>
> Nevertheless, other
> versions may work as well.
>
>
>
> LAME source
> distribution version 3.97
>
> available on
> [http://lame.sourceforge.net]
>
>
>
> So I'd guess LAME 3.97 is the oldest
> supported version. Is that right?
>
>
>
> The easiest thing to do would be to
> raise the requirement to LAME 3.98
> and drop support for LAME3.97. Old versions of SoX could
> still be used with old
> versions of LAME. Despite the many benefits of this
> approach, I'm not
> advocating for this to happen now. Right now I can see how
> this could be
> thoughtfully rejected.
>
>
>
> The second approach is to replace
> HAVE_ID3TAG_SET_FIELDVALUE and
> HAVE_LAME_SET_VBR_QUALITY (and avoid future
> HAVE_LAME_functionname), and
> instead use HAVE_LAME_VER_398. This I do advocate for the
> following reasons:
>
>
>
> * It cuts the active LAME related build
> variants from 4 to 2 (3 if you
> count no LAME). (Multiply this by 2 if you want to include
> dynamic vs. static
> linking.)
>
>
>
> * It prevents future explosion of build
> combinations as additional
> functions are used.
>
>
>
> * It explicitly allows contributors to
> use any new LAME 3.98 function
> without extra work as long as they use "#ifdef
> HAVE_LAME_VER_398"
> with some reasonable fallback if it's not
> defined.
>
>
>
> * It creates an easier framework for contributors.
> Testing requirements will be clearer and by eliminating the
> need to create and
> test new HAVE_LAME_functionnames, a full understanding of
> CMake will not be
> required.
>
>
>
> * It enables a reasonable policy of
> actively supporting, say, two
> versions of LAME. When LAME 4.00 ships with some compelling
> new feature,
> Support for 3.97 can be phased out, 3.98 retained (as the
> "old"
> version) and new features will be enabled with
> HAVE_LAME_VER_400
>
>
>
> Jim
>
>
>
>
>
>
>
> -----Inline Attachment Follows-----
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry® Developer
> Conference in SF, CA
> is the only developer event you need to attend this year.
> Jumpstart your
> developing skills, take BlackBerry mobile applications to
> market and stay
> ahead of the curve. Join us from November 9-12, 2009.
> Register now!
> http://p.sf.net/sfu/devconf
> -----Inline Attachment Follows-----
>
> _______________________________________________
> SoX-devel mailing list
> SoX-devel@...
> https://lists.sourceforge.net/lists/listinfo/sox-devel
>
|