[Work Notes] Pure Public or Hybrid Cloud for Surveillance System?

The pure public cloud is no doubt building web services on a public infrastructure, while hybrid combines a private component. According to Wikipedia, the public cloud (aka external cloud) refers to services provided by a third party. A picture on Wikipedia describes this clearly. Basically, there are four deployment models on Wikipedia. A private cloud can’t fully satisfy the requirements of a surveillance system. We also won’t discuss community cloud since it’s not realistic for surveillance. ...

February 16, 2013 · 2 min · 291 words · ChenFu Kuo

Pure public or hybrid cloud for surveillance system?

The pure public cloud is no doubt that we build the web services on public and the hybrid combine the private part. According to the information on wiki, the public cloud aka external cloud is related to the service is provided by third party. There is a picture on wiki can describe exactly what we talk about. Basically, there are four deployment models on wiki. The private cloud can’t satisfy the requirements of the surveillance system. We do not talk about the community cloud also because it’s not real on surveillance system. ...

February 16, 2013 · 2 min · 327 words · ChenFu Kuo

[Personal Reflections] Happy Lunar New Year

Today is the end of the Dragon year and we use to have a good supper on this day. It’s brand new lunar year tomorrow and we call it Snake year. Sometimes, we’d call it Small Dragon year rather than Snake year because Dragon is much more significant in traditional. Hope my family and friends have a brand new good Small Dragon Year.

February 9, 2013 · 1 min · 63 words · ChenFu Kuo

[Work Notes] I2S Bus Channels Setting in GStreamer alsasrc Plugin

My colleague did some experiments on GStreamer alsasrc and osssrc plugins and found that alsasrc consumes a lot of CPU resource (around 16% on the chip we use). He asked me why the test tool provided by the chip vendor is quite efficient (around 1~2%). It was a big gap and I started to investigate why. After hours of checking, I found that the plugin may cause a busy wait in a while loop when the parameters are set to non-blocking mode. I made a simple code modification and the CPU rate dropped to 12%. Still frustrating, but some improvement. ...

February 8, 2013 · 2 min · 255 words · ChenFu Kuo

I2S Bus Channel Configuration in GStreamer alsasrc

A colleague recently observed a significant discrepancy in CPU usage while testing the GStreamer alsasrc and osssrc plugins. On our hardware platforms, alsasrc was consuming about 16% of CPU resources, whereas the vendor-provided test tools achieved the same task with only 1~2% overhead. This massive gap in efficiency piqued my curiosity, and I decided to investigate the root cause. After several hours of deep diving into the code, I discovered that when the plugin is set to “non-blocking mode,” it can trigger a busy-wait condition within a while loop, needlessly spiking CPU cycles. After a quick patch to optimize this behavior, I managed to bring the CPU usage down to 12%. While an improvement, it still felt far from the vendor tool’s efficiency. ...

February 8, 2013 · 2 min · 278 words · ChenFu Kuo

[Work Notes] RabbitMQ Setup and Test

RabbitMQ Setup and Test Server side: My desktop PC is Windows 7. Download the RabbitMQ server from http://www.rabbitmq.com/. Installation guide: http://www.rabbitmq.com/install-windows.html I use an extra Ethernet card with IP address set to 192.168.1.19, and make sure the firewall doesn’t block port 5672. Client side: (both send and listen on the same device) I use the package from https://github.com/alanxz/rabbitmq-c. Follow the guide in the link to cross-build and install on the embedded device. ...

February 7, 2013 · 1 min · 72 words · ChenFu Kuo

[Work Notes] The Realtime of Transport Stream on Miracast

When I google the internet with realtime and transport stream, I could not find the information I want. The word ‘realtime’ must construct on the relative thinking. For example, there is camera and screen and the camera’s video can be showed on the screen with quite small latency. We assume the latency is under 150ms or 300ms whatever and we can call this is realtime or not when we can have comparisons. ...

February 6, 2013 · 2 min · 270 words · ChenFu Kuo

[R&D Notes] Airplay, DLNA and Miracast

Today, a supplier visited our company to introduce their solutions with DLNA and Miracast support. After some research on these protocols, it seems there are three main standards competing in the market for wireless display and media streaming. DLNA: This has been around for a long time. Apple was originally a member of the DLNA alliance. Airplay: Apple eventually left DLNA to create its own proprietary “Airplay” protocol, building a walled garden for seamless ecosystem integration. Miracast: Created by the Wi-Fi Alliance. It appears the Android camp is rallying around Miracast to challenge Apple’s dominance in this space. It will be interesting to see how these standards evolve and which one will eventually dominate the user experience. ...

February 5, 2013 · 1 min · 121 words · ChenFu Kuo

[Work Notes] STL Notes

An overseas engineer uses the Boost C++ library for related project development. Seeing the STL syntax in their code made me realize I should take some time to study this — at minimum, to be able to read the code properly. From Wikipedia: http://en.wikipedia.org/wiki/Standard_Template_Library The Standard Template Library (STL) is a C++ software library that influenced many parts of the C++ Standard Library. It provides four components called algorithms, containers, functional, and iterators. ...

February 5, 2013 · 1 min · 206 words · ChenFu Kuo

[Work Notes] Linux Quick-Reference Notes

Patch Commands Create a patch file: diff -Naur [from-file] [to-file] > [YourFileName.patch] -N: If a file is only in one directory, treat it as present but empty in the other -a: Treat all files as text -u: Use unified output format -r: Recursively compare subdirectories SVN — Remove all .svn directories $ rm -rf `find . -type d -name .svn` Git — Remove .git Only need to remove the .git directory at the root of the project. ...

February 4, 2013 · 1 min · 86 words · ChenFu Kuo