Mailing List Archive

MythTV libraries and libmythmpeg2
Hello everyone,

While making a dependency graph for the MythTV libraries (see attached,
will eventually add to the doxygen documentation, but I’m working on
other things first), I noticed that https://code.mythtv.org/doxygen/
<https://code.mythtv.org/doxygen/>
(mythtv/docs/doxygen-architecture-document.cpp) is woefully out of date.

In particular, the libraries section:
MythTV libraries: no mention of

* libmythmetadata
* libmythprotoserver
* libmythservicecontracts


The external libraries should be clearly in a separate list from the
MythTV libraries.

Are these standalone libraries original to MythTV or are they external?

* libmythfreemheg
* libmythfreesurround


External

* FFmpeg
o nv-codec-headers

Using system libraries if available: (remove?)

* libmythbluray
* libmythdvdnav
* libmythsoundtouch

External not mentioned:

* libexiv2
* qjsonwrapper
* libudfread


External mentioned but no longer exists: libmythnvctrl

The *libmpeg2* comment about being faster is from May 2005
https://github.com/MythTV/mythtv/blame/721dcc163759266a6b18d7b4ceaa317192c5dff3/mythtv/docs/doxygen-architecture-document.cpp#L192
<https://github.com/MythTV/mythtv/blame/721dcc163759266a6b18d7b4ceaa317192c5dff3/mythtv/docs/doxygen-architecture-document.cpp#L192>
I doubt its veracity. How would this be tested?

As far as I can tell, libmythmpeg2 is libmpeg2 0.5.0 without the SSE2 or
ARM assembly (2008-07-12). The only other changes seem to be automated
clang-tidy “fixes.” I used diff to compare them, but looking at the
mythtv history 0.4.0b (January 21, 2004) is more likely.

If we want to keep libmythmpeg2 in our repository, it should be moved to
/mythtv/external. I think libmpeg2’s code is now hosted here:
https://code.videolan.org/videolan/libmpeg2
<https://code.videolan.org/videolan/libmpeg2> (last update 9 years ago).


The comment about *mythbackend*is 13 years old:
https://github.com/MythTV/mythtv/blame/master/mythtv/docs/doxygen-architecture-document.cpp#L188
<https://github.com/MythTV/mythtv/blame/master/mythtv/docs/doxygen-architecture-document.cpp#L188>
Is it still true?


Also, the libmythtv.pro file offers building different versions of
libmythtv for using just the frontend, just the backend, or both. I’m
not sure if it can be used, but it doesn’t make sense to me to build
different versions of a /library/like that.

Regards,

Scott
Re: MythTV libraries and libmythmpeg2 [ In reply to ]
On Sat, Oct 9, 2021 at 5:37 AM Scott T <scott.the.elm@gmail.com> wrote:

> If we want to keep libmythmpeg2 in our repository

I suspect the reason that MythTV originally had a
local copy are no longer relevant (limited availability
in most distributions due to IP issues), and removing
the internal library entirely is likely viable.

As I recall, over a decade ago it was announced that
libmpeg2 was going to be dropped for most uses.
AFAIK, the remaining use is in mythtranscode.

MythTV already has support(*) for using an external
libmpeg2 (--enable-libmpeg2external), so I would
expect that it should be straightforward to leverage
the config options to remove the internal version
entirely (configure already sets variables that are
used in the codes to deal with internal/external
differences, so it provides a roadmap for the code
cleanup changes needed).

I suspect that removing libmpeg2 entirely will
be no more (or less) difficult than the work
David is doing for removing soundtouch. That
would include verifying that all the supported
OS's have it available (I suspect they do, but I
have not done any verification), and updating
the mac, windows, and android build scripts,
along with updating configure to properly detect
if it is missing, and asking all the buildbot worker
admins to install the appropriate dev library.
And, of course, updating the github workflow
to install the libraries for the pull request checks.

So, perhaps, the most relevant question is
whether the devs are willing to consider
accepting a pull request to remove libmpeg2
entirely and use the available distro versions
(I can sort of imagine the patch as I type this,
but the devil is always in the details (and
testing, especially on the alternative OSs)).

Gary




(*) Actually, the support no longer works,
but I have a patch tucked away somewhere
to make it work properly that could probably
be rebased without a lot of work (presuming
I can find it).
_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: MythTV libraries and libmythmpeg2 [ In reply to ]
On 10 oct. 2021 02:05, Gary Buhrmaster <gary.buhrmaster@gmail.com> wrote:

> On Sat, Oct 9, 2021 at 5:37 AM Scott T <scott.the.elm@gmail.com> wrote:
>
>> If we want to keep libmythmpeg2 in our repository
>
> I suspect the reason that MythTV originally had a
> local copy are no longer relevant (limited availability
> in most distributions due to IP issues), and removing
> the internal library entirely is likely viable.

Fixes/31 doesn't build with external libmpeg2

https://github.com/MythTV/mythtv/issues/399

Christian
_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org