[mythtv-users] Myth approach to including libraries

Ian Forde ian at duckland.org
Fri Dec 5 23:49:57 UTC 2008


On Fri, 2008-12-05 at 15:39 -0800, Brad DerManouelian wrote:
> On Dec 5, 2008, at 3:31 PM, Dave Badia wrote:
> 
> > Have a basic question about the code structure of myth.  I've  
> > noticed that the source for libraries it uses (ffmpeg for example)  
> > are included in the myth source itself.  Why is the code lumped into  
> > myth source?  I'm simply curious.  Being a professional developer  
> > (java mostly), this was a surprise to me, as I thought it would be  
> > advantageous to invoke the library as the externally complied object.
> > Are there modifications made to the source of the library?  Perhaps  
> > a non-public API needs to be accessed?  Is this common practice  
> > among open source/linux/C++ projects?
> > I see the periodic announcements of merging the the latest ffmpeg  
> > code, which made me wonder.  I figured this was a basic enough  
> > question to post to the users list instead of dev.
> 
> ffmpeg often changes in ways that would break mythtv. It's common  
> practice to keep a compatible version of 3rd party libraries in your  
> repository so you have control over it and decide when you update and  
> make required changes when you do. In fact, I've never worked on  
> software that didn't do this – even commercial software written in  
> java. I don't know off-hand if myth developers change any ffmpeg code,  
> but even if they don't this is reason enough to make updating a manual  
> and deliberate process.

In addition, ffmpeg also doesn't do releases in a timeframe that would
work for myth...  The Myth devs occasionally pull in a fresh ffmpeg
snapshot for resync purposes, then reapply those changes that fix any
breakage upstream ffmpeg may cause.  When possible, myth-related changes
are sent back upstream, but there are no guarantees that they'll get
accepted.  Thus, the current situation.  It's quite nice, actually - we
get codes from upstream while simultaneously minimizing risk for such a
core component...

If ffmpeg did more incrementally-versioned releases, it would probably
be a different story.  For example, look at all of the other libraries
that myth needs to build... they don't need to be packed inside myth, as
their interfaces are tied to release versions.  Not so much with ffmpeg,
as most of their work is done in SVN... see
http://ffmpeg.mplayerhq.hu/download.html for details on that...

In fact, it could be said (according to their page) that they don't do
formal releases... ;)

	-I



More information about the mythtv-users mailing list