資源簡(jiǎn)介
全志A10 H264硬件編碼RSTP直接播放參考例程。

代碼片段和文件信息
/*ringbuf?.c*/
#include
#include
#include?“ringfifo.h“
#define?NMAX?32
int?iput?=?0;?/*?環(huán)形緩沖區(qū)的當(dāng)前放入位置?*/
int?iget?=?0;?/*?緩沖區(qū)的當(dāng)前取出位置?*/
int?n?=?0;?/*?環(huán)形緩沖區(qū)中的元素總數(shù)量?*/
struct?ringbuf?ringfifo[NMAX];
/*?環(huán)形緩沖區(qū)的地址編號(hào)計(jì)算函數(shù),如果到達(dá)喚醒緩沖區(qū)的尾部,將繞回到頭部。
環(huán)形緩沖區(qū)的有效地址編號(hào)為:0到(NMAX-1)
*/
void?ringmalloc(int?size)
{
int?i;
for?(i?=0;i {
ringfifo[i].buffer?=?malloc?(size);
ringfifo[i].size?=?0;
ringfifo[i].frame_type?=?0;
printf(“FIFO?INFO:idx:%dlen:%dptr:%x\n“iringfifo[i].size(int)(ringfifo[i].buffer));
}
int?iput?=?0;?/*?環(huán)形緩沖區(qū)的當(dāng)前放入位置?*/
int?iget?=?0;?/*?緩沖區(qū)的當(dāng)前取出位置?*/
int?n?=?0;?/*?環(huán)形緩沖區(qū)中的元素總數(shù)量?*/
}
void?ringreset()
{
int?iput?=?0;?/*?環(huán)形緩沖區(qū)的當(dāng)前放入位置?*/
int?iget?=?0;?/*?緩沖區(qū)的當(dāng)前取出位置?*/
int?n?=?0;?/*?環(huán)形緩沖區(qū)中的元素總數(shù)量?*/
}
void?ringfree()
{
int?i;
printf(“begin?free?mem\n“);
for?(i?=0;i {
printf(“FREE?FIFO?INFO:idx:%dlen:%dptr:%x\n“iringfifo[i].size(int)(ringfifo[i].buffer));
free(ringfifo[i].buffer);
ringfifo[i].size?=?0;
}
}
int?addring?(int?i)
{
????????return?(i+1)?==?NMAX???0?:?i+1;
}
/*?從環(huán)形緩沖區(qū)中取一個(gè)元素?*/
int?ringget(struct?ringbuf?*getinfo)
{
int?Pos;
if?(n>0){
??????????????????????Pos?=?iget;
??????????????????????iget?=?addring(iget);
??????????????????????n--;
??getinfo->buffer?=?(int)(ringfifo[Pos].buffer);
??getinfo->frame_type?=?ringfifo[Pos].frame_type;
??getinfo->size?=?ringfifo[Pos].size;
??//printf(“Get?FIFO?INFO:idx:%dlen:%dptr:%xtype:%d\n“Posgetinfo->size(int)(getinfo->buffer)getinfo->frame_type);
??????????????????????return?ringfifo[Pos].size;
}
else?{
//printf(“Buffer?is?empty\n“);
return?0;
}
}
?
/*?向環(huán)形緩沖區(qū)中放入一個(gè)元素*/
void?ringput(unsigned?char?*bufferint?sizeint?encode_type)
{
int?dest;
if?(n ??????????????????????dest?=memcpy(ringfifo[iput].bufferbuffersize);
??ringfifo[iput].size=?size;
??ringfifo[iput].frame_type?=?encode_type;
??//printf(“Put?FIFO?INFO:idx:%dlen:%dptr:%xtype:%d\n“iputringfifo[iput].size(int)(ringfifo[iput].buffer)ringfifo[iput].frame_type);
??????????????????????iput?=?addring(iput);
??????????????????????n++;
}
else?
{
// printf(“Buffer?is?full\n“);
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-10-14?20:38??a10-rtsph264\
?????目錄???????????0??2013-10-14?20:38??a10-rtsph264\h264\
?????文件????????4618??2013-10-14?20:38??a10-rtsph264\h264\camera.c
?????文件????????6228??2013-10-14?20:38??a10-rtsph264\h264\camera.o
?????文件???????25116??2013-10-14?20:38??a10-rtsph264\h264\drv_display.h
?????文件????????4897??2013-10-14?20:38??a10-rtsph264\h264\encoder.c
?????文件????????5652??2013-10-14?20:38??a10-rtsph264\h264\encoder.o
?????文件????????2213??2013-10-14?20:38??a10-rtsph264\h264\enc_type.h
?????文件????????8959??2013-10-14?20:38??a10-rtsph264\h264\font_data.h
?????文件??????643732??2013-10-14?20:38??a10-rtsph264\h264\libv4lconvert.a
?????文件????????4960??2013-10-14?20:38??a10-rtsph264\h264\libv4lconvert.h
?????目錄???????????0??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\
?????文件????????6220??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\H264encLibApi.h
?????文件??????793828??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\libcedarv.a
?????文件???????14956??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\libcedarv.h
?????文件????????8044??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\libcedarv_osal.a
?????文件???????10468??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\libcedarxalloc.a
?????文件???????47026??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\libh264enc.a
?????文件????????9469??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\libve_typedef.h
?????文件????????2804??2013-10-14?20:38??a10-rtsph264\h264\linux_lib\vdrv_enc_i.h
?????文件?????????342??2013-10-14?20:38??a10-rtsph264\h264\log.c
?????文件??????????59??2013-10-14?20:38??a10-rtsph264\h264\log.h
?????文件????????1716??2013-10-14?20:38??a10-rtsph264\h264\log.o
?????文件???????13363??2013-10-14?20:38??a10-rtsph264\h264\matroska_ebml.c
?????文件????????2194??2013-10-14?20:38??a10-rtsph264\h264\matroska_ebml.h
?????文件???????10368??2013-10-14?20:38??a10-rtsph264\h264\matroska_ebml.o
?????文件????????5882??2013-10-14?20:38??a10-rtsph264\h264\output.c
?????文件????????6196??2013-10-14?20:38??a10-rtsph264\h264\output.o
?????文件?????????310??2013-10-14?20:38??a10-rtsph264\h264\picture_t.h
?????文件????????4551??2013-10-14?20:38??a10-rtsph264\h264\preview.c
?????文件????????5644??2013-10-14?20:38??a10-rtsph264\h264\preview.o
............此處省略18個(gè)文件信息
評(píng)論
共有 條評(píng)論