[mythtv] MythTV on Mac OS X for Intel

Todd Ignasiak ignasiak at gmail.com
Mon Mar 13 17:49:03 UTC 2006


On 3/12/06, Todd Ignasiak <ignasiak at gmail.com> wrote:
> On 3/11/06, MythTV <mythtv at taoyama.com> wrote:
> > Actually this is a problem with Qt 3.3.5.  Get the latest Qt 3.3.6
> > snapshot at ftp.trolltech.com/qt/snapshots.
>
> I added that QT 3.3.6 version to the osx-packager.pl, and now the
> mythfrontend menus are okay.  But, when I select Live TV, and it tries
> to display the video, I get a seg fault.
>
> It appears to be in the quicktime libraries, which are called from
> videoout_quartz.cpp with a quicktime function called
> "DecompressSequenceFrameWhen".
>
> This appears to be the same as with VLC for MacOS x86.  They currently
> do not support Quartz/Quicktime output mode, enabling it gets a
> similar crash to what I'm seeing with MythTV.  Their known issues says
> "2: The Quartz/Quicktime video output module we have doesn't work AT
> all. It's not threadsafe (never really was) and doesn't work on 10.4.4
> (either ppc [crashes often] or intel [crashes always]. Use the OpenGL
> one."

I tried quartz output mode in both VLC and mplayer, and both resulted
in the same crash..  A call to  DecompressSequenceFrameWhen resulting
in a crash in YUV420To2VUY_W1x.

So, something is funky with the data being sent to QuickTime..   Any ideas?

>
> The MacOS crash dump shows:
>
> Thread 5 Crashed:
> 0   ...ickTimeComponents.component      0x98e0043d YUV420To2VUY_W1x + 671
> 1   ...ickTimeComponents.component      0x98de371a FinalGlueBeforeTheBlit + 1529
> 2   ...ickTimeComponents.component      0x98de7a5a PrepareForBlitThenDoBlit + 40
> 3   ...ickTimeComponents.component      0x98de4207
> ScalingCodecComponentDispatch + 2437
> 4   ...ple.CoreServices.CarbonCore      0x90cc1638 CallComponentDispatch + 34
> 5   ...ickTimeComponents.component      0x995941c5 ImageCodecDrawBand + 43
> 6   ...ickTimeComponents.component      0x98c5ab6a
> BaseCodec_DecompressWorkFunction + 1033
> 7   ...ple.CoreServices.CarbonCore      0x90ccd75b
> InvokeComponentMPWorkFunctionUPP + 22
> 8   ...ickTimeComponents.component      0x98c58c6f
> BaseCodec_DecompressCallBack_Common + 2713
> 9   ...ickTimeComponents.component      0x98c5c40c Base_CDBandDecompress + 5748
> 10  ...ple.CoreServices.CarbonCore      0x90cc1953
> CallComponentFunctionCommon + 513
> 11  ...ickTimeComponents.component      0x98c56f41
> Base_CDComponentDispatch + 125
> 12  ...ickTimeComponents.component      0x98de39e0
> ScalingCodecComponentDispatch + 350
> 13  ...ickTimeComponents.component      0x98df6bf7
> YUV420CodecComponentDispatch + 87
> 14  ...ple.CoreServices.CarbonCore      0x90cc1638 CallComponentDispatch + 34
> 15  com.apple.QuickTime                 0x94439b33 ImageCodecBandDecompress + 43
> 16  com.apple.QuickTime                 0x94427d8f DoBandedDecompress + 15359
> 17  com.apple.QuickTime                 0x94423dee ICMAction + 642
> 18  com.apple.QuickTime                 0x94422ae6 ICMDeviceLoop + 635
> 19  com.apple.QuickTime                 0x9442bc35
> DecompressSequenceFrameWhen + 797
>
>
> > On Mar 11, 2006, at 7:54 PM, Kris Raney wrote:
> >
> > >
> > > On Mar 11, 2006, at 6:00 AM, mythtv-dev-request at mythtv.org wrote:
> > >> I'm trying to get MythTV to compile with my new Mini..    Has anyone
> > >> succeeded in building a working binary for MacOS on intel?
> > >
> > > I've only just got it to compile on my MacBook Pro. However, I'm
> > > getting a bus error from mythwelcome. I readily admit this may be due
> > > to some of the hacking I'm about to describe.
> > >
> > > I installed all the prereqs using DarwinPorts. You have to build
> > > darwinports itself from source, to get an intel binary, then after
> > > that it works pretty smoothly.
> > >
> > > I used these arguments to configure:
> > >
> > > env QMAKESPEC=/opt/local/share/qt3/mkspecs/macx-g++ \
> > > LD_LIBRARY_PATH=/opt/local/lib \
> > >    ./configure --prefix=/opt/myth --arch=i686 \
> > >              --disable-distcc \
> > >              "--extra-cflags=-msse -msse2" \
> > >              "--extra-cxxflags=-msse -msse2" \
> > >              --cc=gcc
> > >
> > > QTDIR=/opt/local \
> > >    make
> > >
> > > I also found it necessary to do a little hacking. This needs to be
> > > cleaned up, but it sort of brute forces through the errors:
> > >
> > > patch to libs/libmythtv/videoout_quartz.cpp:
> > > #ifdef HAVE_ALTIVEC // <--- add this
> > >      if (gContext->GetNumSetting("MacYuvConversion", 1))
> > >          data->yuvConverter = yuv2vuy_init_altivec();
> > >      else
> > > #endif // <-- add this
> > >
> > >
> > > patch to libs/libmythtv/yuv2rgb.h
> > > #ifdef HAVE_ALTIVEC // <-- add this
> > > yuv2vuy_fun yuv2vuy_init_altivec (void);
> > > #endif  // <-- add this
> > >
> > > typedef void (* vuy2yuv_fun) (uint8_t * image, uint8_t * py,
> > >                                uint8_t * pu, uint8_t * pv,
> > >                                int h_size, int v_size,
> > >                                int vuy_stride, int y_stride, int
> > > uv_stride);
> > >
> > > #ifdef HAVE_ALTIVEC // <-- add this
> > > vuy2yuv_fun vuy2yuv_init_altivec (void);
> > > #endif // <-- add this
> > >
> > >
> > > patch to libs/libavcodec/liba52/resample.c
> > > //#ifdef ARCH_X86
> > > //#include "resample_mmx.c"
> > > //#endif
> > >
> > > void* a52_resample_init(uint32_t mm_accel,int flags,int chans){
> > > void* tmp;
> > > //#ifdef ARCH_X86
> > > //    if(mm_accel&MM_ACCEL_X86_MMX){
> > > //      tmp=a52_resample_MMX(flags,chans);
> > > //      if(tmp){
> > > //          if(a52_resample==NULL) av_log(NULL, AV_LOG_INFO, "Using
> > > MMX
> > > //          optimized resampler\n");
> > > //          a52_resample=tmp;
> > > //          return tmp;
> > > //      }
> > > //    }
> > > //#endif
> > >
> > >
> > >
> > >
> > >> Here is the output of "/usr/sbin/system_profiler
> > >> SPHardwareDataType" from my
> > >> core duo Mini, this could be used in the configure scripts where
> > >> /proc/cpuinfo is used in the Linux world:
> > >
> > > I seem to have missed the email that explains why we're sending this
> > > information, but just to pile on, here's the info from
> > > system_profiler for my macbook:
> > >        Machine Name: MacBook Pro 15"
> > >        Machine Model: MacBookPro1,1
> > >        CPU Type: Intel Core Duo
> > >        Number Of Cores: 2
> > >        CPU Speed: 2 GHz
> > >        L2 Cache (shared): 2 MB
> > >        Memory: 1 GB
> > >        Bus Speed: 667 MHz
> > >        Boot ROM Version: MBP11.0044.B02
> > >        Serial Number: W86073HPVJ3
> > >        SMC Version: 1.2f7
> > >        Sudden Motion Sensor:
> > >            State: Enabled
> > >
> > > - Kris Raney
> > > _______________________________________________
> > > mythtv-dev mailing list
> > > mythtv-dev at mythtv.org
> > > http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
> > >
> >
> > _______________________________________________
> > mythtv-dev mailing list
> > mythtv-dev at mythtv.org
> > http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
> >
>


More information about the mythtv-dev mailing list