X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=fecdec_filter.c;h=8acaf8157e206c0f276eb111129f52d7255f1b02;hp=139a86fa1b7bf69ff832ca7a3fac755b68de5304;hb=883af94f87f7d5465047c3bdd626a9dca3c2be8c;hpb=fae6ed3cc6d240eefcc111bdd04f637e3cda5dd0 diff --git a/fecdec_filter.c b/fecdec_filter.c index 139a86fa..8acaf815 100644 --- a/fecdec_filter.c +++ b/fecdec_filter.c @@ -40,7 +40,7 @@ struct fec_header { 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; @@ -245,10 +245,21 @@ static int add_slice(char *buf, struct fecdec_group *fg) 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 };