After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 653828 - deinterlace should switch to cheaper method (or passthrough) on high qos.
deinterlace should switch to cheaper method (or passthrough) on high qos.
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.31
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-07-01 15:52 UTC by Anthony Caetano
Modified: 2011-07-03 20:45 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Anthony Caetano 2011-07-01 15:52:49 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.
Comment 1 Tim-Philipp Müller 2011-07-01 15:58:38 UTC
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?
Comment 2 Anthony Caetano 2011-07-01 16:03:55 UTC
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.
Comment 3 Tim-Philipp Müller 2011-07-01 16:17:30 UTC
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?
Comment 4 Anthony Caetano 2011-07-01 16:57:24 UTC
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
Comment 5 Tim-Philipp Müller 2011-07-01 17:06:01 UTC
> 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.
Comment 6 Stefan Sauer (gstreamer, gtkdoc dev) 2011-07-01 17:28:43 UTC
(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.
Comment 7 Anthony Caetano 2011-07-01 17:37:29 UTC
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.
Comment 8 Tim-Philipp Müller 2011-07-01 17:42:56 UTC
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.
Comment 9 Stefan Sauer (gstreamer, gtkdoc dev) 2011-07-01 18:13:23 UTC
Yes agree. I'll reopen the bug for deinterlace.
Comment 10 Edward Hervey 2011-07-02 07:17:29 UTC
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.
Comment 11 David Schleef 2011-07-03 20:45:58 UTC
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.