[mythtv] Choppy performance on Mac Intel builds / scaling issue?
usleepless at gmail.com
usleepless at gmail.com
Sun Mar 26 19:41:03 UTC 2006
Hello James,
pardon my curiosity: do you know where the "ml_set_interrupts_enabled"
are coming from?
regards,
usleep
On 3/26/06, James Mitchell <mitchell at bruteforce.org> wrote:
> In contrast to some other reports of good 1080i performance
> via the MMX enabled builds of 0.19, I'm experiencing issues
> with both 1080i content, and scaled 480i content.
>
> I'm getting very choppy performance on a 1.66GHz core duo
> with the MMX enabled binaries linked from:
>
> http://www.mythtv.org/wiki/index.php/Myth_on_Mac_x86
>
> This applies to both 1080i content, and scaled 480i content,
> which I found pretty strange. For comparison, the latest
> trunk builds of VLC play these same files perfectly over
> the network, so the machine is clearly capable.
> Interestingly, if I turn off 'Scale Video as Necessary' in
> TV Settings->Playback, then the problem goes away, at least
> for the 480i content. There is a corresponding impact to
> the profile information that Shark reports. The difference
> appears to be the YUV422_UC_ToRGB32BitColorBGRA
> QuickTimeComponents function, which is the primary consumer
> of cycles in everything except the '480i, do not scale
> video' case. Checking/unchecking the scale video setting
> has no effect on the performance of 1080i playback.
>
> The function in question is called out of libmythtv
> VideoOutputQuartzView::Show(), and appears to be seperate
> from the non-optimized yuv420-2vuy colorspace conversion
> within the libmythtv code that some have mentioned.
>
> Is anyone else seeing this effect? Any ideas on what might
> be done to address it?
>
> I've included some of the Shark output from different test
> scenarios:
>
> Shark Time Profile of Mythfrontend Intel MMX build playing
> 1080i content at 1920x1080 on core duo 1.66GHz mac mini
>
> 26.5% 26.5% QuickTimeComponents YUV422_UC_ToRGB32BitColorBGRA
> 18.7% 18.7% mythtv non_vec_yuv420_2vuy(unsigned
> char*, unsigned char*, unsigned char*, unsigned char*,
> int, int, int, int, int)
> 8.8% 8.8% mythavcodec mpeg_decode_mb
> 5.3% 5.3% mythavcodec ff_simple_idct_add_mmx
> 3.8% 3.8% mach_kernel ml_set_interrupts_enabled
> 3.4% 3.4% mythavcodec put_pixels16_xy2_mmx
> 3.3% 3.3% mythavcodec put_pixels16_mmx
> 2.9% 2.9% mythavcodec MPV_decode_mb
> 2.9% 2.9% mythavcodec put_pixels8_mmx
> 1.9% 1.9% mythavcodec ff_simple_idct_put_mmx
> Shark Time Profile of Mythfrontend Intel MMX build playing
> 480i content at 1920x1080 (With TV Settings->Scale Video
> as Necessary checked) on core duo 1.66GHz mac mini
>
> 11.9% 11.9% mach_kernel ml_set_interrupts_enabled
> 5.4% 5.4% mythtv non_vec_yuv420_2vuy(unsigned
> char*, unsigned char*, unsigned char*,
> unsigned char*, int, int, int, int, int)
> 3.2% 3.2% mythavcodec mpeg_decode_mb
> 2.5% 2.5% mythavcodec ff_mpa_synth_filter
> 2.1% 2.1% mythavcodec ff_simple_idct_add_mmx
> 1.3% 1.3% mythavcodec put_pixels8_mmx
> 1.0% 1.0% AudioToolbox Resampler2::ConvertAltivec(float*,
> float*, unsigned long, int)
> 1.0% 1.0% mythavcodec put_pixels16_mmx
> 0.9% 0.9% mythavcodec MPV_decode_mb
> 0.7% 0.7% mythtv AvFormatDecoder::MpegPreProcessPkt(AVStream*,
> AVPacket*)
> 0.6% 0.6% mythavcodec put_pixels16_xy2_mmx
> 0.5% 0.5% mythavcodec MPV_motion
>
> Shark Time Profile of Mythfrontend Intel MMX build playing
> 480i content at 1920x1080 (With TV Settings->Scale Video
> as Necessary unchecked) on core duo 1.66GHz mac mini
>
> 23.9% 23.9% mach_kernel ml_set_interrupts_enabled
> 9.5% 9.5% mythtv non_vec_yuv420_2vuy(unsigned char*,
> unsigned char*, unsigned char*,
> unsigned char*, int, int, int, int, int)
> 7.8% 7.8% commpage [libSystem.B.dylib] __memcpy
> 6.9% 6.9% mythavcodec mpeg_decode_mb
> 5.9% 5.9% mythavcodec ff_mpa_synth_filter
> 4.8% 4.8% mythavcodec ff_simple_idct_add_mmx
> 3.2% 3.2% AudioToolbox Resampler2::ConvertAltivec(float*,
> float*, unsigned long, int)
> 2.1% 2.1% mythavcodec put_pixels8_mmx
> 1.8% 1.8% mythavcodec put_pixels16_mmx
> 1.8% 1.8% mythavcodec MPV_decode_mb
>
> Here's the call tree for how mythtv reaches the expensive
> Quicktime function:
>
> 27.2% QuickTimeComponents YUV422_UC_ToRGB32BitColorBGRA
> 0.0% QuickTimeComponents FinalGlueBeforeTheBlit
> 0.0% QuickTimeComponents PrepareForBlitThenDoBlit
> 0.0% QuickTimeComponents ScalingCodecComponentDispatch
> 0.0% CarbonCore CallComponentDispatch
> 0.0% QuickTimeComponents ImageCodecDrawBand
> 0.0% QuickTimeComponents BaseCodec_DecompressWorkFunction
> 0.0% CarbonCore InvokeComponentMPWorkFunctionUPP
> 0.0% QuickTimeComponents BaseCodec_DecompressCallBack_Common
> 0.0% QuickTimeComponents Base_CDBandDecompress
> 0.0% CarbonCore CallComponentFunctionCommon
> 0.0% QuickTimeComponents Base_CDComponentDispatch
> 0.0% QuickTimeComponents ScalingCodecComponentDispatch
> 0.0% QuickTimeComponents YUV422CodecComponentDispatch
> 0.0% CarbonCore CallComponentDispatch
> 0.0% QuickTime ImageCodecBandDecompress
> 0.0% QuickTime DoBandedDecompress
> 0.0% QuickTime ICMAction
> 0.0% QuickTime ICMDeviceLoop
> 0.0% QuickTime DecompressSequenceFrameWhen
> 0.0% mythtv VideoOutputQuartzView::Show()
>
> Thanks,
>
> James
> _______________________________________________
> 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