?? buffer.c
字號:
#include "mplex.h"
/******************************************************************
Buffer_Clean
如果DTS小于實際的SCR,則該函數從FIFO緩存中清除內容,。這表明這些
數據已經解碼完畢了。
******************************************************************/
void buffer_clean (buffer, SCR)
Buffer_struc *buffer;
Timecode_struc *SCR;
{
Buffer_queue *pointer;
while ((buffer->first != NULL) &&
(comp_timecode(&buffer->first->DTS, SCR)))
{
pointer = buffer->first;
buffer->first = buffer->first->next;
free (pointer);
}
}
/******************************************************************
Buffer_Space
返回緩存中可用的空間大小。
******************************************************************/
unsigned int buffer_space (buffer)
Buffer_struc *buffer;
{
unsigned int used_bytes;
Buffer_queue *pointer;
pointer=buffer->first;
used_bytes=0;
while (pointer != NULL)
{
used_bytes += pointer->size;
pointer = pointer->next;
}
return (buffer->max_size - used_bytes);
}
/******************************************************************
Queue_Buffer
向FIFO隊列中加入內容
******************************************************************/
void queue_buffer (buffer, bytes, TS)
Buffer_struc *buffer;
unsigned int bytes;
Timecode_struc *TS;
{
Buffer_queue *pointer;
pointer=buffer->first;
if (pointer==NULL)
{
buffer->first = (Buffer_queue*) malloc (sizeof (Buffer_queue));
buffer->first->size = bytes;
buffer->first->next=NULL;
copy_timecode (TS, &buffer->first->DTS);
} else
{
while ((pointer->next)!=NULL)
{
pointer = pointer->next;
}
pointer->next = (Buffer_queue*) malloc (sizeof (Buffer_queue));
pointer->next->size = bytes;
pointer->next->next = NULL;
copy_timecode (TS, &pointer->next->DTS);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -