softdevice audio problem. audio repacker issue?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
Is there a patch available with your modifications?
Thanks
Halim
On So, M?r 18, 2007 at 04:30:02 +0100, Georg 
Acher wrote:
> On Sun, Mar 18, 2007 at 01:26:03PM +0100, Reinhard Nissl wrote:
>  
> > > I switched the repacking off in my vdr... I don't think that it is necessary.
> > 
> > Maybe you are right. The benefit of avoiding memcpys when repacking is
> > done already during the TS to PES transformation is void as long as one
> > cannot rely on getting repacked packets all the time.
> 
> Due to the limited power of the Geode with 300MHz of the Reelbox, I've
> analyzed the TS-path in the vdr with gprof/oprofile and re-wrote the
> repacker from scratch and changed some of the related TS code in
> device/dvbdevice. It has a lot of optimizations:
> 
> - The ringbuffer works with packet granularity (no single bytes), no extra
> sync checks are needed. Multiple memcpy of the same data is avoided as much
> as possible, especially for the video part.
> 
> - The MPEG-sequence code search (ScanVideoPacket) is optimized for "simple"
> CPUs where the raw number of memory accesses and instructions is important
> (no memchr, that's slower on the Geode)
> 
> - The video packer detects if the PES-flag in the TS header actually starts
> a new PES packet with I, P and B-frames at the TS beginning. After this
> detection, the search for start-of-picture is no longer done and the
> PES-flag only determines the separation. Since a lot of broadcasters are
> using the flag this way (especially the hingh bandwidth ones like ARD and
> ZDF in Germany) this saves a lot of CPU time. Services which don't allow
> this usually have low bandwidth anyway and are IMO not that important anyway
> (CNBC, Gods Channel, etc ;-) )...
> 
> - There's one ringbuffer (and thus one data copying) eliminated in the way
> from the DVB-device to the TS receivers. Multiple ringbuffers in a row only
> give the illusion of better buffering...
> 
> - The TS-dispatcher in cDevice::Action looks for bursts of TS-packets
> with the same PID and only does one Lock() and one Receive()-call for this
> burst instead for each single packet. Video data usually comes in bursts, so
> this saves a lot of unnecessary overhead. As the receiver function allows
> multiple packets (length parameter) this is perfectly legal. Unfortunately,
> some plugins don't respect the length parameter (older femon comes to mind,
> I don't know about the latest version). But that is easily fixed...
> 
> The new repacker may have some issues with AC3 or some audio-only channels,
> but maybe it's worth to have a look at its code...
> 
> svn co svn://anonymous@xxxxxxxxxxx/testing/src/vdr-1.4/
>  
> -- 
>          Georg Acher, acher@xxxxxxxxx         
>          http://www.lrr.in.tum.de/~acher
>          "Oh no, not again !" The bowl of petunias          
> 
> _______________________________________________
> vdr mailing list
> vdr@xxxxxxxxxxx
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

-- 
Halim Sahin
E-Mail:				
halim.sahin (at) t-online.de


[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux