上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 71 下一页
摘要: Linux核心幾個重要跟時間有關的名詞或變數,底下將介紹HZ、tick與jiffies。HZLinux核心每隔固定週期會發出timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次timer interrupts。舉例來說,HZ為1000,代表每秒有1000次timer interrupts。HZ可在編譯核心時設定,如下所示 (以核心版本2.6.20-15為例):adrian@adrian-desktop:~$ cd /usr/src/linuxadrian@adrian-desktop:/usr/src/linux$ make menuconfigProcessor typ 阅读全文
posted @ 2011-01-03 11:16 super119 阅读(833) 评论(0) 推荐(0) 编辑
摘要: ------------- Auto Configuration --------------------PCI provides two separate 32-bit or 64-bit address spaces corresponding to the memory and I/O port address spaces of the x86 processor family. Addresses in these address spaces are assigned by software. A third address space, called the PCI Config 阅读全文
posted @ 2011-01-03 11:15 super119 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 这次调试rtspgoogle这个RTSP extension的时候,发现问题:在gst-inspect的时候,能看到这个element。但是在rtspsrc初始化extension列表的时候,这个element没有被找出来。导致youtube上的视频播放不了(因为rtspgoogle这个extension没有发挥作用)原因是这样的:rtspsrc在class_init里面调用了gst_rtsp_ext_list_init。而每个element的class_init是在gst_init的时候调用的,所以,如果rtspsrc的class_init在执行的时候,rtspgoogle的class_in 阅读全文
posted @ 2011-01-03 11:14 super119 阅读(844) 评论(0) 推荐(0) 编辑
摘要: If you have a new kernel config file, e.g, named dot_config. You wanna use this config file while building kernel. So you copied this file into kernel src dir/arch/arm/configs, and:make dot_configKernel will complain: No rule for target "dot_config" found.Why? Just simple -- all predefined kernel 阅读全文
posted @ 2011-01-03 11:14 super119 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 比如把代码里面所有的close调用,替换成alpclose。于是写了一个脚本,有了一些收获。脚本如下:[代码]1. 使用grep -E来打开grep的扩展正则表达式的功能。所谓扩展,就是像+, ()这样的元字符才能使用。sed使用-r来打开扩展正则表达式。打开了扩展之后,如果要表示一个常量的+, (),就需要用\来转义了。2. grep -e可以用来表示多个匹配pattern3. 最后一句sed的时候,使用了正则表达式中的分组功能,也就是将[ =({;?:\t]+这个部分定义成一个组,然后在后面就可以用\1来引用(注意\0已经被默认分配成整个pattern)。如果定义了第二个组,那么就用\2来 阅读全文
posted @ 2011-01-03 11:13 super119 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 打开gstreamer debug一般方法是:export GST_DEBUG=filesrc:5这样的做法,然后运行程序。但是通过看gstreamer的代码,这个环境变量是在gst_init的时候被读取并设置的,具体是在init_pre这个函数里面。如果程序已经在运行了,gst_init已经做过了,这个时候要打开debug怎么办呢?(Media server就有这样的需求)。通过看init_pre中的代码,发现很简单,直接调用gst_debug_set_threshold_for_name或gst_debug_set_default_threshold就可以。下面是测试代码:[代码] 阅读全文
posted @ 2011-01-03 11:11 super119 阅读(3243) 评论(0) 推荐(0) 编辑
摘要: Q: Bus message和Event有什么不同?和signal又有什么不同?A:bus message是用于gstreamer和application之间交互用的,比如EOS,如果是bus message则是gstreamer告诉app -- End of Stream。而Event是用于gstreamer内部的,比如src element发出EOS Event,然后该event顺着pipeline一路传递到downstream elements,这些elements可以得到通知,从而做一些cleanup的工作,然后继续将event传递下去。这应该就是bus message和event不同 阅读全文
posted @ 2011-01-03 11:09 super119 阅读(2030) 评论(0) 推荐(0) 编辑
摘要: H.264与MPEG4区别MPEG系列的标准归属于ISO/IEC,但另一方面以制订国际通讯标准为主的机构:ITU-T,在完成H.263(针对视频会议之用的串流视频标准)后展开了更先进的H.264制订,且新制订是与ISO/IEC机构连手合作,由两机构共同成立一个名为JVT(Joint Video Team)的联合工作小组,以MPEG-4技术为基础进行更适于视频会议(Video Conference)运用的衍生发展,也因为是联合制订,因此在ITU-T方面称为H.264,在ISO/IEC的MPEG方面就称为MPEG-4 Part 10(第10部分,也叫ISO/IEC 14496-10),MPEG-4 阅读全文
posted @ 2011-01-03 11:09 super119 阅读(7212) 评论(1) 推荐(1) 编辑
摘要: 1. 每个element/bin都有current,next,pending三个成员变量表示状态。current和next很好理解,pending一般就是我们给该element设置的最终的状态,比如调用gst_element_set_state函数设置PLAYING state,则这个pending一般就是PLAYING。代码中还看到有一个宏GST_STATE_TARGET,这个TARGET一般也和pending一样,表示最终要设置的state(final state)2. gst_element_set_state_func函数(gst_element_set_state的缺省实现)会调用g 阅读全文
posted @ 2011-01-03 11:08 super119 阅读(1832) 评论(0) 推荐(0) 编辑
摘要: 在写gstreamer element的时候,不能使用全局变量。因为element可能在一个进程中被创建多个,比如一个pipeline中就可能有多个queue。要把这些变量全部放到该element的class中去,作为成员变量即可。因为一个进程如果使用了多个该element的话,会创建多个GObject,所以,成员变量也会有多份。如果写成全局变量,那就所有的object共享一个了,会出问题。(其实就把GObject看成一个structure好了,多个GObject在内存中就是多个structure,所以,成员变量不会冲突。而全局变量始终只有一份的)。之前还写代码研究过动态库中的全局变量的问题。 阅读全文
posted @ 2011-01-03 11:07 super119 阅读(750) 评论(0) 推荐(1) 编辑
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 71 下一页