GNOME Bugzilla – Bug 653828
deinterlace should switch to cheaper method (or passthrough) on high qos.
Last modified: 2011-07-03 20:45:58 UTC
I upgraded an old desktop computer from Fedora 13 to Fedora 14. Since the upgrade I can't play DVDs using Totem which uses gstreamer, the video keeps dropping out, although the audio is fine. I manually downgraded the following RPM: gstreamer-plugins-base-0.10.28-1.fc13.i686.rpm and now I can again play DVD's as normal without the video dropping out. So between: gstreamer-plugins-base-0.10.28-1.fc13.i686.rpm && gstreamer-plugins-base-0.10.31-1.fc14.i686 There is a CPU regression that affects old computers quite badly. I realize this is quite outdated according to the versions listed above, but I figured it might help to note it here.
Hrm, that's unfortunate of course, but I don't think anyone is going to look into this unless it also happens with a recent release. Maybe you could upgrade to FC15 and try with the version there?
Yeah, I understand. I was waiting to upgrade to F15 but with all the gnome changes I didn't want to risk it on that old desktop -- my wife uses it and it must Just Work (tm). I will try install the F15 rpm directly or failing that compile a source rpm of the 0.10.35 build and revert with my findings.
Thanks! I guess testing with a live CD isn't an option because it won't have all the livna stuff necessary? Maybe they are unofficial live CDs somewhere?
Uhh, /me bad I didn't even consider a live CD :-/ I have kicked off a live CD download, and I will test it and see if its the same. Thanks for the tip. I have forced the install of the F15 gstreamer-plugins-base-0.10.33-1.fc15.i686.rpm but that still exhibits the video drop out. Some further information, the CPU is 100% in both versions, but the frame rate of the post 0.10.28 versions is about 2 frames per second. My first attempt at using oprofile seems to point at libgstdeinterlace.so, but I am not changing gstreamer-plugins-good, only gstreamer-plugins-base!? I don't know if libgstvideoscale.so is having an impact on libgstvideoscale.so? Here is the 2fps drop-out version with gstreamer-plugins-base-0.10.33-1.fc15.i686.rpm # opreport --global-percent | head -22 CPU: AMD64 processors, speed 2210.96 MHz (estimated) Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask of 0x00 (No unit mask) count 100000 CPU_CLK_UNHALT...| samples| %| ------------------ 1219846 44.4106 libgstdeinterlace.so 325132 11.8370 no-vmlinux 314115 11.4359 libgstvideoscale.so 288354 10.4980 libmpeg2.so.0.1.0 136063 4.9536 orcexec.Oe12ZQ (deleted) 121162 4.4111 libgstffmpegcolorspace.so 57241 2.0840 libc-2.13.so 37504 1.3654 libpython2.7.so.1.0 33910 1.2346 libgobject-2.0.so.0.2600.0 31830 1.1588 libgstreamer-0.10.so.0.26.0 23199 0.8446 libglib-2.0.so.0.2600.0 20747 0.7553 nvidia_drv.so 15260 0.5556 libpthread-2.13.so 15094 0.5495 libpulsecommon-0.9.21.so 9652 0.3514 libX11.so.6.3.0 9320 0.3393 oprofiled Here is the smooth playback oprofile with gstreamer-plugins-base-0.10.28-1.fc13.i686.rpm # opreport --global-percent | head -20 CPU: AMD64 processors, speed 2210.96 MHz (estimated) Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask of 0x00 (No unit mask) count 100000 CPU_CLK_UNHALT...| samples| %| ------------------ 454006 38.0564 liboil-0.3.so.0.3.0 184382 15.4556 no-vmlinux 138836 11.6377 libmpeg2.so.0.1.0 120917 10.1357 nvidia_drv.so 94183 7.8948 libgstffmpegcolorspace.so 58205 4.8790 libpython2.7.so.1.0 21386 1.7927 libc-2.13.so 20024 1.6785 libgobject-2.0.so.0.2600.0 17147 1.4373 libgstreamer-0.10.so.0.27.0 12946 1.0852 libglib-2.0.so.0.2600.0 8040 0.6739 libpulsecommon-0.9.21.so 7133 0.5979 libpthread-2.13.so 5479 0.4593 Xorg
> Some further information, the CPU is 100% in both versions, but the frame rate > of the post 0.10.28 versions is about 2 frames per second. > My first attempt at using oprofile seems to point at libgstdeinterlace.so, but > I am not changing gstreamer-plugins-good, only gstreamer-plugins-base!? I wonder if it's totem enabling de-interlacing with newer versions of -base and leaving it disabled with older versions (where there was no flag to enable it yet), or something.
(In reply to comment #4) > Uhh, /me bad I didn't even consider a live CD :-/ > I have kicked off a live CD download, and I will test it and see if its the > same. Thanks for the tip. > > I have forced the install of the F15 > gstreamer-plugins-base-0.10.33-1.fc15.i686.rpm but that still exhibits the > video drop out. I'd suggest to update core as well, whenever you update base. Also updateing orc might be a good idea. > > Some further information, the CPU is 100% in both versions, but the frame rate > of the post 0.10.28 versions is about 2 frames per second. > My first attempt at using oprofile seems to point at libgstdeinterlace.so, but > I am not changing gstreamer-plugins-good, only gstreamer-plugins-base!? I > don't know if libgstvideoscale.so is having an impact on libgstvideoscale.so? > > Here is the 2fps drop-out version with > gstreamer-plugins-base-0.10.33-1.fc15.i686.rpm > > # opreport --global-percent | head -22 > CPU: AMD64 processors, speed 2210.96 MHz (estimated) > Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask > of 0x00 (No unit mask) count 100000 > CPU_CLK_UNHALT...| > samples| %| > ------------------ > 1219846 44.4106 libgstdeinterlace.so > 325132 11.8370 no-vmlinux > 314115 11.4359 libgstvideoscale.so > 288354 10.4980 libmpeg2.so.0.1.0 > 136063 4.9536 orcexec.Oe12ZQ (deleted) > 121162 4.4111 libgstffmpegcolorspace.so > 57241 2.0840 libc-2.13.so > 37504 1.3654 libpython2.7.so.1.0 > 33910 1.2346 libgobject-2.0.so.0.2600.0 > 31830 1.1588 libgstreamer-0.10.so.0.26.0 > 23199 0.8446 libglib-2.0.so.0.2600.0 > 20747 0.7553 nvidia_drv.so > 15260 0.5556 libpthread-2.13.so > 15094 0.5495 libpulsecommon-0.9.21.so > 9652 0.3514 libX11.so.6.3.0 > 9320 0.3393 oprofiled > > I think the version in F13 wasn't even using deinterlacing. Would be nice if totem would allow to disable deinterlacing.
Thanks Tim & Stefan! Spot on! In Totem -> Preferences -> Display there is an option "Disable deinterlacing of interlaced videos" If I disable this (by ticking it), the frame drops stop. So this has nothing to do with gstreamer per se but rather Totem's use of deinterlacing and changed defaults between versions. Many thanks for your comments and time! I really appreciate it.
Maybe deinterlace could behave a bit better in this case and switch to a cheaper method based on QoS events, or switch deinterlacing off entirely then.
Yes agree. I'll reopen the bug for deinterlace.
And if it still deinterlaces all fields (X input interlaced frames => X output deinterlaced frames), it could maybe be made to disable that. No idea how much it would cost though.
I'm 99% certain this bug was fixed by this commit (which was first in -good 0.10.27): commit 97d74f293c7810d828426461c95e5821debc5dbb Author: David Schleef <ds@schleef.org> Date: Sat Dec 11 12:42:10 2010 -0800 deinterlace: Change the default to linear The previous default, greedyh, takes 4 times as long as MPEG-2 video decoding, and is unlikely fast enough on any current CPU to play 1080i video in real-time. greedyl isn't much faster. linear was chosen over vfir, since the quality advantage of vfir is minimal compared to the occasional visual artifacts and slower processing.