We (Experian Hitwise) have added codec support to avro-c (as per the avro spec), with preliminary deflate/inflate support (as well as null codec support).
This changes the way blocks are written to the file, with the block data being passed through the codec interface, before being written to file.
This also changes the way blocks are read from a file, with the block data first being read into a buffer, before being passed through the codec interface, then a memory reader is set to the decoded data, which is read by the user calls avro_file_reader_read_value() and avro_file_reader_read()
Please feel free to make changes, as although I did try to emulate the coding style of the rest of the avro c library, there may be things I've done "differently"
Code is available from Github: https://github.com/hitwise/avro (branch: codec)