aboutsummaryrefslogtreecommitdiff
path: root/src/FifoAudioFrames.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/FifoAudioFrames.h')
-rw-r--r--src/FifoAudioFrames.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/FifoAudioFrames.h b/src/FifoAudioFrames.h
new file mode 100644
index 0000000..eea7a66
--- /dev/null
+++ b/src/FifoAudioFrames.h
@@ -0,0 +1,41 @@
+#ifndef _FIFOAUDIOFRAMES_H_
+#define _FIFOAUDIOFRAMES_H_
+
+#include <string.h> // memcpy
+#include <stdio.h>
+#include <pthread.h>
+
+#ifndef _AVDEC_H_
+#define _AVDEC_H_
+extern "C" {
+#include <gmerlin/avdec.h>
+}
+#endif
+
+class FifoAudioFrames {
+ public:
+ FifoAudioFrames(int s, gavl_audio_format_t * format) ;
+ ~FifoAudioFrames();// { delete [] fifoPtr; }
+ bool Append( gavl_audio_frame_t * af);
+ bool Get( gavl_audio_frame_t * af) ; // pop an element off the fifo
+ void Flush();
+ //void Dump(char *c);
+ bool FreeSpace();
+ bool isEmpty();
+ bool isFull();
+ void setDebug( bool b);
+ gavl_audio_format_t * getFormat();
+ float getSizePercentage();
+ private:
+ int size ; // Number of elements on FifoAudioFrames
+ int start ;
+ int end ;
+ int count;
+ gavl_audio_frame_t ** fifoPtr ;
+ gavl_audio_format_t * format;
+ pthread_mutex_t mut;
+} ;
+
+
+#endif
+