/** \file fecdec_filter.c A filter that fec-decodes an audio stream. */
+#include <regex.h>
+
#include <dirent.h>
#include "para.h"
#include "error.h"
uint8_t slices_per_group;
/** Number of slices needed to start decoding. */
uint8_t data_slices_per_group;
- /** Size of the ogg vorbis header (zero for mp3, aac). */
+ /** Size of the ogg vorbis/wma header (zero for mp3, aac). */
uint32_t audio_header_size;
/** Number of the FEC group this slice belongs to. */
uint32_t group_num;
return 1;
}
+/**
+ * The different states of a complete FEC group.
+ *
+ * Even if a FEC group has been received successfully, it probably can not be
+ * used right away because some streams (ogg, wma) need to receive an audio
+ * file header before decoding can start.
+ */
enum fec_group_usability {
+ /** Drop the group (because we did not receive the header yet). */
FEC_GROUP_UNUSABLE,
+ /** Use all data in the group. */
FEC_GROUP_USABLE,
+ /** Use the group, but drop its audio file header. */
FEC_GROUP_USABLE_SKIP_HEADER,
+ /** Use the group, including its header. */
FEC_GROUP_USABLE_WITH_HEADER
};