[工作點滴] 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. The structure of the transport stream or what we call MPEG-TS is not that simple. What I say is compare with raw encoded media direct push to intermedia. Maybe the transport stream is design for broadcasting usage, so the media stream can be selected and video can be smooth played are much more important than realtime. Because people would not feel any latency happened when they just watch TV. If we want to convert raw encoded media to transport stream. First, we have to packetize the raw encoded media to packetized elementary stream(PES). Second, we handle the PES by the muxing, splitting to small slice AV data…etc to program stream or what we call transport stream. Finally, we send the transport stream to internet or satellite for people to receive and watch it on display. These steps create lots of latency and make us feel it’s not realtime enough. Let’s go back to the definition of the Miracast. It is to convert the raw encoded media stream to transport stream and then encapsulate the stream to RTP. Finally go through the wifi directly to display. I’m not sure how many latency will be created? Maybe someone can tell me.

2013-02-06 · 1 分鐘 · 271 字 · ChenFu Kuo

[工作點滴] Airplay, DLNA and Miracast

Today, there is a supplier come to our company to introduce their solution with DLNA and Miracast support. I survey the internet and found three kinds of protocols are discussed on the market. The DLNA has been talked for a long time and Apple is DLNA member originally. But Apple left DLNA and create the proprietary Airplay protocol. The Miracast is created by Wifi Alliance. It seems that Android alliance choose the Miracast to fight with Apple? ...

2013-02-05 · 1 分鐘 · 94 字 · ChenFu Kuo

[工作點滴] STL notes

國外工程師用boost c++ library來進行相關專案的開發, 進而看到一些相關的STL語法, 所以還是得抽空K一下相關資料, 至少要把code看懂. ...

2013-02-05 · 1 分鐘 · 236 字 · ChenFu Kuo

[工作點滴] Linux工具小記錄

打patch的command diff -Naur [from-file] [to-file] > [YourFileName.patch] -N In directory comparison, if a file is found in only one directory, treat it as present but empty in the other directory. -a Treat all files as text and compare them line-by-line, even if they do not seem to be text. -u Use the unified output format. -r When comparing directories, recursively compare any subdirectories found. ...

2013-02-04 · 1 分鐘 · 155 字 · ChenFu Kuo

[工作點滴] message pack rpc install on openwrt

Message pack with RPC extension required 3 packages. msgpack msgpack-rpc mpio The msgpack and mpio are required by msgpack-rpc. The following are openwrt makefiles that I use to build the packages. msgpack library include $(TOPDIR)/rules.mk PKG_NAME:=msgpack PKG_VERSION:=0.5.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://msgpack.org/releases/cpp/ PKG_MD5SUM:=705106a9378c792fe22d285dba5c142c PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk define Package/msgpack SECTION:=libs CATEGORY:=Libraries TITLE:=Message Pack library URL:=http://msgpack.org endef define Package/msgpack/description MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON but it’s faster and smaller. endef ...

2013-02-04 · 1 分鐘 · 257 字 · ChenFu Kuo

[工作點滴] msgpack-idl howto

msgpack-idl howto Step1 get the msgpack-idl $ git clone git://github.com/msgpack/msgpack-idl.git Step2 install the ruby tool that required $ sudo apt-get install ruby1.9.1 Step3 go to msgpack-idl folder. $ sudo gem install msgpack-idl $ sudo msgpack-idl –install java Step4 create a sample file ‘sample’ with content as follow. message Node { ``1``: string address ``2``: map<string,string> properties ``3``: optional string? description } message StorageNode < Node { ``4``: long capacity ``5``: optional int weight = 1 } Step 5 generate the java code by following command ...

2013-02-04 · 1 分鐘 · 147 字 · ChenFu Kuo

[工作點滴] git clone error "error: Problem with the SSL CA cert (path? access rights?)"

Our company’s git server do not support the ssl verify but support user name password verify. The default git enable the SSL verify when access https. I would encounter the error message like: error: Problem with the SSL CA cert (path? access rights?) while accessing https://tw.ubnt.com/git/example.git/info/refs fatal: HTTP request failed So we have to config the git by command: git config –global http.sslVerify false Then git clone again $ git clone https://tw.ubnt.com/git/example.git Cloning into ’test’… Username for ‘https://tw.ubnt.com’: name Password for ‘https://[email protected]’: password remote: Counting objects: 1054, done. remote: Compressing objects: 100% (674/674), done. remote: Total 1054 (delta 390), reused 747 (delta 290) Receiving objects: 100% (1054/1054), 14.45 MiB | 377 KiB/s, done. Resolving deltas: 100% (390/390), done. ...

2013-01-31 · 1 分鐘 · 119 字 · ChenFu Kuo

[工作點滴] protocol buffer and message pack initial

When I have engineer discussion with the abroad engineer, I found he use the 3rd party library name message pack for binary serialization for internet application. More detailed information of message pack is here. http://msgpack.org/ I do not sure what’s the total different between these two library and I could not get a detailed comparison from them. So I will spend some time to study it.

2013-01-31 · 1 分鐘 · 66 字 · ChenFu Kuo

[工作點滴] protocol buffer message

The statusapi.pb-c.h and statusapi.pb-c.c are generated. Only header file is printing here for further explaination. statusap.pb-c.h /* Generated by the protocol buffer compiler. DO NOT EDIT! */ #ifndef PROTOBUF_C_statusapi_2eproto__INCLUDED #define PROTOBUF_C_statusapi_2eproto__INCLUDED #include <google/protobuf-c/protobuf-c.h> PROTOBUF_C_BEGIN_DECLS typedef struct _Statusapi__StatusRequestType Statusapi__StatusRequestType; typedef struct _Statusapi__StatusResponseType Statusapi__StatusResponseType; typedef struct _Statusapi__StatusParams Statusapi__StatusParams; /* — enums — */ /* — messages — */ struct _Statusapi__StatusRequestType { ProtobufCMessage base; }; #define STATUSAPI__STATUS_REQUEST_TYPE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&statusapi__status_request_type__descriptor) \ } struct _Statusapi__StatusResponseType { ProtobufCMessage base; }; #define STATUSAPI__STATUS_RESPONSE_TYPE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&statusapi__status_response_type__descriptor) \ } ...

2013-01-31 · 2 分鐘 · 779 字 · ChenFu Kuo

[工作點滴] protocal buffer examples

There is protobuf and protobuf-c web site. <http://code.google.com/p/protobuf/> <http://code.google.com/p/protobuf-c/> Now we are implementing this way that can be remote control from back-end applications. The protobuf-c has some extension from google’s protobuf and we can add the RPC funtion for further. The first experiment is using the message directly. We pack the message into a share memory between the server and the client. Both side can get the message no problem. ...

2013-01-30 · 2 分鐘 · 588 字 · ChenFu Kuo