[vdr] What can be done to enhance watching HD Suisse ?

Gregoire Favre gregoire.favre at gmail.com
Mon Dec 31 15:28:13 CET 2007


On Mon, Dec 31, 2007 at 01:44:03PM +0100, Reinhard Nissl wrote:
> Hi,

> a) compile an optimized version of ffmpeg by running configure with
> --arch and --cpu like mentioned here:
> http://www.vdr-portal.de/board/thread.php?postid=680709#post680709

I wonder if that's really produce better code than -march=native -O2
with recent gcc, but I'll try :-)

> b) try the revised patch which adds a further option to cheat decoding
> for the sake of speed:
> http://www.nabble.com/-PATCH--Provide-FFmpeg-options-skip_loop_filter-and%09choose_speed_over_accuracy-to14552289.html#a14552289

Strange I get one reject :

***************
*** 357,362 ****
      this->context->flags |= CODEC_FLAG_EMU_EDGE;
    }

    pthread_mutex_lock(&ffmpeg_lock);
    if (avcodec_open (this->context, this->codec) < 0) {
      pthread_mutex_unlock(&ffmpeg_lock);
--- 377,385 ----
      this->context->flags |= CODEC_FLAG_EMU_EDGE;
    }

+   if (this->class->choose_speed_over_accuracy)
+     this->context->flags2 |= CODEC_FLAG2_FAST;
+ 
    pthread_mutex_lock(&ffmpeg_lock);
    if (avcodec_open (this->context, this->codec) < 0) {
      pthread_mutex_unlock(&ffmpeg_lock);

Which isn't a problem to hand edit :-)

> c) try setting
> 
> 	engine.buffers.audio_num_buffers:4
> 	engine.buffers.video_num_buffers:600
> 
> or even more for video_num_buffers e. g. 1500
> 
> d) choose a decoding thread count suitable for your machine like
> mentioned in
> 
> http://www.vdr-portal.de/board/thread.php?postid=682036#post682036
> 
> I'm not sure whether multithreaded decoding can be activated for HD
> suisse. Maybe it is possible with the above patch for "choose speed over
> accuracy".
> 
> e) monitor the buffer usage output of --post vdr_video. The 3rd number
> must not fall below 3. Otherwise your machine seems to be to slow.

I think it works pretty good with HD Suisse :

buffer usage: 1458,  0, 10,  0, 0xa40910
buffer usage: 1444,  0, 10,  0, 0xa40910
buffer usage: 1498,  0, 10,  0, 0xa40910
buffer usage: 1498,  0, 10,  0, 0xa40910
buffer usage: 1498,  0, 10,  0, 0xa40910
buffer usage: 1453,  0, 10,  0, 0xa40910
buffer usage: 1435,  0, 10,  0, 0xa40910
buffer usage: 1487,  0, 10,  0, 0xa40910
buffer usage: 1452,  0,  9,  0, 0xa40910
buffer usage: 1450,  0, 10,  0, 0xa40910
buffer usage: 1448,  0, 10,  0, 0xa40910
buffer usage: 1411,  0, 10,  0, 0xa40910
buffer usage: 1395,  0, 10,  0, 0xa40910
buffer usage: 1468,  0, 10,  0, 0xa40910
buffer usage: 1434,  0,  9,  0, 0xa40910
buffer usage: 1432,  0, 10,  0, 0xa40910
buffer usage: 1430,  0, 10,  0, 0xa40910
buffer usage: 1395,  0, 10,  0, 0xa40910
buffer usage: 1466,  0, 10,  0, 0xa40910
buffer usage: 1449,  0, 10,  0, 0xa40910
buffer usage: 1416,  0, 10,  0, 0xa40910
buffer usage: 1414,  0, 10,  0, 0xa40910
buffer usage: 1412,  0, 10,  0, 0xa40910
buffer usage: 1475,  0, 10,  0, 0xa40910
buffer usage: 1459,  0, 10,  0, 0xa40910
buffer usage: 1443,  0, 10,  0, 0xa40910
buffer usage: 1407,  0, 10,  0, 0xa40910
buffer usage: 1405,  0, 10,  0, 0xa40910
buffer usage: 1498,  0, 10,  0, 0xa40910
buffer usage: 1455,  0, 10,  0, 0xa40910
buffer usage: 1439,  0, 10,  0, 0xa40910
buffer usage: 1423,  0, 10,  0, 0xa40910
buffer usage: 1392,  0, 10,  0, 0xa40910
buffer usage: 1463,  0, 10,  0, 0xa40910

Thank you really really much !!!

I am watching Suisse HD right now with only small artifacts
from time to time, but only really few :-)

In case someone is interested :

I start xine with :
xine -V xv -A alsa --no-logo --geometry +0+0 --post vdr_video --post vdr_audio -Dtvtime:method=Greedy2Frame,cheap_mode=0,pulldown=0,use_progressive_frame_flag=1 vdr:/var/vdr/xine/stream#demux:mpeg_pes

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz
stepping        : 6
cpu MHz         : 2394.000
cache size      : 4096 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 4804.77
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
the same as first one : it's a core duo 2 :-)
And I use nvidia proprietary driver 169.07.
-- 
Grégoire FAVRE  http://gregoire.favre.googlepages.com  http://www.gnupg.org
               http://picasaweb.google.com/Gregoire.Favre



More information about the vdr mailing list