Universal Home API - eLinux · Both use interface-based programming Both use a “functional interface” (strong typing) zFor example, no ioctl with weakly typed struct as parameter
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
IntroductionDirectFB Core featuresUHAPI Vmix Core featuresCommonalities between DirectFB and UHAPIFunctional overlap / differencesHow can they go together?Conclusion
Conclusion from the last CELF face-2-face Audio Video Gfx workgroup meeting:
DirectFB is interesting, and a recommend part of CELF specificationUHAPI is interesting, and proposed as part of the CELF specification
Question: How can they go together in the CELF specification?
Both specs have been studied, by the UHAPI forum and the DirectFB author Denis Oliver KroppThis presentation reports the results of the study and meetings that took place
IntroductionDirectFB Core featuresUHAPI Vmix Core featuresCommonalities between DirectFB and UHAPIFunctional overlap / differencesHow can they go together?Conclusion
Powerful graphics libraryfor LinuxDesigned with embedded systems in mindCompliant to Multimedia Home Platform (MHP)Provides HW abstractionAllows HW acceleration where possibleRecommended by the CELF 1.0 specification, adopted by many members
IntroductionDirectFB Core featuresUHAPI Vmix Core featuresCommonalities between DirectFB and UHAPIFunctional overlap / differencesHow can they go together?Conclusion
No Gfx, just a SetBufferCropping / positioning of live videoScaling (e.g. Non-linear)Auto-blankingBlanking / hidingSmooth zooming / fadingStrobing / freezingColor keyingLayer bordersLayer mixing / blending
original 4:3 stretched to 16:9 panoramic 16:9
current window
target window Zooming from the current windowto the target window
Introduction DirectFB Core featuresUHAPI Vmix Core featuresCommonalities between DirectFB and UHAPIFunctional overlap / differencesHow can they go together?Conclusion
UHAPI and DirectFB (similarities)Both are at about the same level of abstractionBoth try to abstract different platforms, and provide room for differentiationDirectFB is implemented in user space
UHAPI can also be implemented in user space UHAPI4Linux is implemented in user space (using available PC Tuner card support)
Both use interface-based programmingBoth use a “functional interface” (strong typing)
For example, no ioctl with weakly typed struct as parameterHelps to catch programming errors early
Both use vtables and AddRef/ReleaseQueryInterface can be added easily to DirectFB (for free)
Denis is looking into using the UHAPI interface technology support
IntroductionDirectFB Core featuresUHAPI Vmix Core featuresCommonalities between DirectFB and UHAPIFunctional overlap / differencesHow can they go together?Conclusion
IntroductionDirectFB Core featuresUHAPI Vmix Core featuresCommonalities between DirectFB and UHAPIFunctional overlap / differencesHow can they go together?Conclusion
How can they go together?DirectFB responsible for graphics layersUHAPI responsible for video layers written to by the UHAPI platform, and exclusive set of gfx layers (e.g. subtitles)Remaining set of gfx layers used by DirectFB implementationDirectFB used for all gfx related functionsDon’t support certain DirectFB options like:
Denis is looking into defining profiles for DirectFBE.g. a UHAPI profile could imply: don’t use IDirectFBScreenBackwards compatible for both DirectFB and UHAPI
IntroductionDirectFB Core featuresUHAPI Vmix Core featuresCommonalities between DirectFB and UHAPIFunctional overlap / differencesHow can they go together?Conclusion
DirectFB focusses on Gfx functionalityThis was left out of UHAPI to keep it OS agnosticIn the CELF context this is a good embedded Linux solution
UHAPI focusses on Audio Video controlDirectFB and UHAPI use very similar technology and look and feelThey go together very wellDirectFB Gfx applications can be reusedUHAPI applications can be reusedDenis Oliver Kropp and UHAPI are actively making DirectFB and UHAPI fully compatible