[mythtv] Building 0.20svn on MacOS x86? Change reverted
Todd Ignasiak
ignasiak at gmail.com
Sat Jul 22 12:44:19 UTC 2006
On 7/20/06, Nigel Pearson <nigel at ind.tansu.com.au> wrote:
> > But, I can confirm that when it's set to NULL it crashes every time.
>
> Is it possible for you to run it in GDB
> and type 'where' when it crashes?
> (even better if you have time to build a debug version)
I have been traveling for a few days, so I haven't had a chance to
check this yet. But, I do have some crash dump info, that might help
a bit. It's crashing in the quicktime libraries. When initially
looking into it, I found that both vlc and mplayer experienced the
same crash on Intel machines.. so it doesn't seem to be unique to
MythTV (of course, with code sharing between projects, they could all
be related).
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
> > FYI - with the plain software routine, this is one of the major CPU
> > users. I have looked around for some MMX code for this in other
> > projects, but didn't find any.
>
> Yes, Jeremiah hand-coded this somehow.
> If you have a look in videoout_quartz.cpp:
>
>
> if (data->yuvConverter)
> {
> // 2VUY data needs no header
> data->pixelSize = width * height * 2;
> data->pixmapSize = data->pixelSize;
> data->pixmap = (PlanarPixmapInfoYUV420 *) new
> char[data->pixmapSize];
> data->pixelData = data->pixmap;
> }
> else
> {
> // YUV420 uses a descriptive header
> data->pixelSize = (width * height * 3) / 2;
> data->pixmapSize = sizeof(PlanarPixmapInfoYUV420) +
> data->pixelSize;
> data->pixmap = (PlanarPixmapInfoYUV420 *) new
> char[data->pixmapSize];
> data->pixelData = &(data->pixmap[1]);
>
> long offset = sizeof(PlanarPixmapInfoYUV420);
> data->pixmap->componentInfoY.offset = offset;
> data->pixmap->componentInfoY.rowBytes = width;
>
> offset += width * height;
> data->pixmap->componentInfoCb.offset = offset;
> data->pixmap->componentInfoCb.rowBytes = width / 2;
>
> offset += (width * height) / 4;
> data->pixmap->componentInfoCr.offset = offset;
> data->pixmap->componentInfoCr.rowBytes = width / 2;
> }
> ...
> if (data->yuvConverter)
> {
> int frameSize = frame->width * frame->height;
> data->yuvConverter((uint8_t *)(data->pixelData),
> frame->buf,
> &frame->buf[frameSize],
> &frame->buf[frameSize * 5 / 4],
> frame->width, frame->height,
> (frame->width % 2), (frame->width % 2),
> 0);
> }
> else
> memcpy(data->pixelData, frame->buf, frame->size);
>
>
>
>
> you will see it does some stuffing around with offsets
> into a bitmap array. I suspect there is an endian issue
> in some of that math, but without a real Intel machine,
> it will be tedious to work this out.
More information about the mythtv-dev
mailing list