2012年2月17日 星期五
2012年2月14日 星期二
cross build curl for arm with ipv6, openssh, libssl2
zlib (1.2.5) 官網:http://zlib.net/
openssh (5.9p1) 官網:http://www.openssh.com/
build steps
openssl(1.0.0e) 官網:http://www.openssl.org/
CROSS_PREFIX=arm-none-linux-gnueabi- ./configure --shared --prefix=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr make make install
build steps
libssh2(1.4.0) 官網:http://www.libssh2.org/
./Configure linux-armv4 zlib-dynamic shared --prefix=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr --cross-compile-prefix=arm-none-linux-gnueabi- --with-zlib-include=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr/include --with-zlib-lib=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr/lib make make install
build steps
curl & libcurl(7.23.1) 官網:http://curl.haxx.se/
./configure --host=arm-none-linux-gnueabi --prefix=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr --with-openssl --with-libz --with-libssl-prefix=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr --with-libz-prefix=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr make make install
build steps
備註:openssh安裝./configure --host=arm-none-linux-gnueabi --prefix=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr --enable-ipv6 --with-ssl=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr --with-libssh2=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr make make install
openssh (5.9p1) 官網:http://www.openssh.com/
build steps
./configure --host=arm-wrs-linux-gnueabi --with-zlib=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr --with-ssl-dir=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr/lib --disable-etc-default-login --prefix=/home/shaw/work/qemu/src/busybox-1.19.3/_install/usr --with-pid-dir=/home/shaw/work/qemu/src/busybox-1.19.3/_install/var/run --with-privsep-path=/home/shaw/work/qemu/src/busybox-1.19.3/_install/var/empty make make install
2012年2月4日 星期六
H264 RTP payload 判斷 IDR (I frame)
RTP payload判斷為iframe:
參考
1.single nal unit packet
=> nal_unit_type(first byte & 0x1f)=5(IDR)
2.fragmentation unit
=> 先看 fu indicator(first byte & 0x1f) = 28 or 29
=> nal_unit_type(second byte & 0x1f) = 5(IDR)
=> fu header start bit(second byte & 0x80) = 0x80
範例程式:=> nal_unit_type(first byte & 0x1f)=5(IDR)
2.fragmentation unit
=> 先看 fu indicator(first byte & 0x1f) = 28 or 29
=> nal_unit_type(second byte & 0x1f) = 5(IDR)
=> fu header start bit(second byte & 0x80) = 0x80
public static bool isH264iFrame(byte[] paket)
{
int RTPHeaderBytes = 0;
int fragment_type = paket[RTPHeaderBytes + 0] & 0x1F;
int nal_type = paket[RTPHeaderBytes + 1] & 0x1F;
int start_bit = paket[RTPHeaderBytes + 1] & 0x80;
if (((fragment_type == 28 || fragment_type == 29) && nal_type == 5 && start_bit == 128) || fragment_type == 5)
{
return true;
}
return false;
}
訂閱:
文章 (Atom)