Another update

I’ve updated mythtv to revision 18021 & ffmpeg to revision 14509.

I have also applied patches as suggested on the NZ mailing list and also make it so the libavcodec section is compiled without -DPIC -fPIC, which should allow an out-of-the-box build.

I also came across issue #427 in the ffmpeg bug tracker which affects us here in NZ with our interlaced channels. This bug would causes random crashes of the frontend. I have done an analysis of the problem and supplied a test file to them and a patch which shows when the problem will occur. Hopefully they’ll get a fix into trunk soon, but for now, I have a fix in my tree, but I’m not really sure it’s the right way to fix it. At least it doesn’t crash at that point anymore.

So head over to the downloads and get the latest version.

Any problems or praise, leave a comment.




You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

16 Responses to “Another update”

  1. pearless Says:

    Downloaded the latest:

    wget
    http://pkendall.homeip.net/wp/wp-content/plugins/download-monitor/download.php?id=6

    then

    tar xjf mythtv-0.21.0+fixes18021+ffmpeg14509+latm.tar.bz2

    cd mythtv-0.21.0+fixes18021+ffmpeg14509+latm

    ./configure

    make

    cd libmythfreesurround && make -f Makefile
    make[2]: Entering directory `/home/mythbuntu/mythtv-0.21.0+fixes18021+ffmpeg14509+latm/libs/libmythfreesurround’
    ccache g++ -c -pipe -march=pentiumpro -fomit-frame-pointer -O3 -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wno-non-virtual-dtor -D__STDC_CONSTANT_MACROS -I/usr/include/kde/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -w -D_REENTRANT -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I../.. -I/usr/share/qt3/mkspecs/default -I. -I/usr/local/include -I/usr/include -I../libavcodec -I../libmyth -I../.. -I../libavutil -I/usr/include/qt3 -o el_processor.o el_processor.cpp
    In file included from el_processor.cpp:30:
    ../libavcodec/dsputil.h: In function ‘void copy_block2(uint8_t*, uint8_t*, int, int, int)’:
    ../libavcodec/dsputil.h:732: error: ‘AV_RN16’ was not declared in this scope
    ../libavcodec/dsputil.h:732: error: ‘AV_WN16’ was not declared in this scope
    ../libavcodec/dsputil.h: In function ‘void copy_block4(uint8_t*, uint8_t*, int, int, int)’:
    ../libavcodec/dsputil.h:743: error: ‘AV_RN32’ was not declared in this scope
    ../libavcodec/dsputil.h:743: error: ‘AV_WN32’ was not declared in this scope
    ../libavcodec/dsputil.h: In function ‘void copy_block8(uint8_t*, uint8_t*, int, int, int)’:
    ../libavcodec/dsputil.h:754: error: ‘AV_RN32’ was not declared in this scope
    ../libavcodec/dsputil.h:754: error: ‘AV_WN32’ was not declared in this scope
    ../libavcodec/dsputil.h: In function ‘void copy_block9(uint8_t*, uint8_t*, int, int, int)’:
    ../libavcodec/dsputil.h:766: error: ‘AV_RN32’ was not declared in this scope
    ../libavcodec/dsputil.h:766: error: ‘AV_WN32’ was not declared in this scope
    ../libavcodec/dsputil.h: In function ‘void copy_block16(uint8_t*, uint8_t*, int, int, int)’:
    ../libavcodec/dsputil.h:779: error: ‘AV_RN32’ was not declared in this scope
    ../libavcodec/dsputil.h:779: error: ‘AV_WN32’ was not declared in this scope
    ../libavcodec/dsputil.h: In function ‘void copy_block17(uint8_t*, uint8_t*, int, int, int)’:
    ../libavcodec/dsputil.h:793: error: ‘AV_RN32’ was not declared in this scope
    ../libavcodec/dsputil.h:793: error: ‘AV_WN32’ was not declared in this scope
    make[2]: *** [el_processor.o] Error 1
    make[2]: Leaving directory `/home/mythbuntu/mythtv-0.21.0+fixes18021+ffmpeg14509+latm/libs/libmythfreesurround’
    make[1]: *** [sub-libmythfreesurround] Error 2
    make[1]: Leaving directory `/home/mythbuntu/mythtv-0.21.0+fixes18021+ffmpeg14509+latm/libs’
    make: *** [sub-libs] Error 2

    So I then tried:
    nano ./libs/libavutil/avutil.h
    # Add #include “intreadwrite.h”

    But still the same error, ideas?

  2. paul Says:

    I think you may have the ffmpeg-devel package installed on your machine and the build of MythTV is finding the old dsputil.h etc files which don’t have those defines in it.

    Do a ‘find’ to see if there is a wayward dsputil.h on your machine, probably under /usr/include or /usr/local/include.

    If so, then perhaps uninstall that package and see if that helps.

  3. pearless Says:

    Hi, I went and searched the hard drive, only found one other in my mplayer_svn directories.
    I completed deleted by code directories and untar your file and went through the procedure.
    I confirmed that it is picking up the correct dsputil.h by typing in editing the file and typing in some rubbish and recompiling and it complained about my ‘non C code’ stuff.
    I had also removed the -fPIC -DPIC from libmythfreesurround\Makefile CXXFLAGS but that made no difference.
    I am a bit stumped!
    BTW, thanks for the great work!

  4. pearless Says:

    Heck my typing is terrible!

  5. paul Says:

    At this point I don’t know what to tell you.

    What architecture/distro are you using?

  6. pearless Says:

    Mythbuntu on a QX6800 with 2GB of RAM, etc. I have uninstalled mythtv from the mythbuntu control panel in preparation of getting this going.

  7. kristianhk Says:

    Edit the file libs/libmythfreesurround/Makefile, and add -I../ (and possibly -I../..) to the include line =)

  8. kristianhk Says:

    Here is an error I get:
    make[2]: Entering directory `/home/krizze/src/mythtv-0.21.0+fixes18021+ffmpeg14509+latm/programs/mythtv’
    ccache g++ -c -pipe -march=pentiumpro -fomit-frame-pointer -O3 -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wno-non-virtual-dtor -D__STDC_CONSTANT_MACROS -I/usr/include/kde/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_REENTRANT -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DUSING_X11 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include -I/usr/include -I../.. -I../../libs -I../../libs/libmyth -I../../libs/libmythtv -I../../libs/libavutil -I../../libs/libavformat -I../../libs/libavcodec -I../../libs/libmythupnp -I../../libs/libmythui -I../../libs/libmythlivemedia -I/usr/include/qt3 -I/usr/X11R6/include -I/usr/X11R6/include -o main.o main.cpp
    ccache g++ -o mythtv main.o -L/usr/share/qt3/lib -L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavutil -L../../libs/libavcodec -L../../libs/libavformat -L../../libs/libmythfreemheg -L../../libs/libmythui -L../../libs/libmythupnp -L../../libs/libmythlivemedia -lmythtv-0.21 -lmythavformat-0.21 -lmythavutil-0.21 -lmythavcodec-0.21 -lmythfreemheg-0.21 -lmythupnp-0.21 -lmythlivemedia-0.21 -lmyth-0.21 -lmythui-0.21 -lfreetype -lz -lmp3lame -lasound -L/usr/lib -lartsc -lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0 -ljack -lraw1394 -liec61883 -lavc1394 -lrom1394 -L/usr/X11R6/lib -lXinerama -lXv -lXxf86vm -lXrandr -lXvMCW -lXvMC -lqt-mt -lGLU -lGL -lXmu -lXext -lX11 -lm -lpthread
    ../../libs/libavcodec/libmythavcodec-0.21.so: undefined reference to `latm_parser’
    collect2: ld returned 1 exit status
    make[2]: *** [mythtv] Error 1
    make[2]: Leaving directory `/home/krizze/src/mythtv-0.21.0+fixes18021+ffmpeg14509+latm/programs/mythtv’

    I edited the latm_parser.c file and changed aac_latm_parser to latm_parser - but I don’t think i should do that?

  9. muppet Says:

    I have been battling to install the latest build on a fresh install of Hardy. I get this error,

    sudo ./configure
    libqt-mt IS at /lib/i486-linux-gnu
    libmp3lame IS at /lib/i486-linux-gnu
    ERROR! You must have the Lame MP3 encoding library installed to compile MythTV.
    If you think configure made a mistake, make sure you are using the latest
    version from SVN. If the latest version fails, report the problem to the
    mythtv-dev@mythtv.org mailing list or IRC #mythtv on irc.freenode.net
    Include the log file “config.err” produced by configure as this will help
    solving the problem.

    I have lame installed and up to date. Anyone know a fix for this?

  10. paul Says:

    kristianhk
    If you get latm_parser error, make sure you have the configure option –enable-libfaad.

    muppet
    Make sure you have the lame-dev package installed.

  11. kristianhk Says:

    Thanks, that line did the trick! Then I can confirm, it’s working in Norway too. The opening of the olympic games was broadcasted in HD in Norway =)

  12. paul Says:

    Great to hear it’s working for you.

  13. muppet Says:

    That worked, I had to install a few more packages but I got it to run. It spat out a long output with this at the bottom,
    Creating libs/libmyth/mythconfig.h and libs/libmyth/mythconfig.mak

    Do I have to run a “make” with these files, and if so what is the target? Can you give me another example run line. That last one did wonders.

    Thanks

  14. norwegianuser Says:

    It looks like mythtv’s handling of interlaced h264 recordings is a bit buggy. All my dvb-t recordings is showing double length. Mythtv is probably counting fields instead of frames. I found some discussions about the issue: http://mythtv.org/pipermail/mythtv-dev/2008-May/062086.html http://thegrebs.com/irc/mythtv/2008/05/12

  15. paul Says:

    norwegianuser,
    I see there were some patches (revision 18104) to MythTV trunk that fixes this problem. They apply to 0.21-fixes as well, so I’ll add them to my next build.

  16. Allen Says:

    Paul, thanks for all of your hard work getting these patches working. I’m able to watch Freeview HD now.

    I’m still having this issue which I noticed from the hand-built version with your patches a few days ago. While watching an HD channel it will stutter sometimes, mostly when there is a lot of action on the screen. This is what I get in the mythfrontend when the stutter happens

    2008-08-10 21:57:18.007 WriteAudio: buffer underrun
    2008-08-10 21:57:18.027 NVP: prebuffering pause
    2008-08-10 21:57:18.992 WriteAudio: buffer underrun
    2008-08-10 21:57:19.019 WriteAudio: buffer underrun
    2008-08-10 21:57:19.074 NVP: prebuffering pause
    2008-08-10 21:57:19.719 WriteAudio: buffer underrun
    2008-08-10 21:57:19.747 WriteAudio: buffer underrun
    2008-08-10 21:57:19.790 NVP: prebuffering pause
    Segmentation fault

    As you can see from the above log the frontend crashed. This is quite common for me, I don’t think I’ve seen it last more then 5min without crashing.

    I have a Intel Core 2 Duo T2160 (1.8Ghz) 1GB of RAM running Mythbuntu 8.04 I don’t have any playback issues with other HD content. For example when I playback 1080p movies I get about 75% usage out of one CPU and I don’t notice any of the stuttering I get with FreeviewHD.

    -allen

Leave a Reply

You must be logged in to post a comment.