+/** This is not a key frame for bitrate shaping */
+#define BLOCK_FLAG_NO_KEYFRAME 0x0080
+/** This block contains the last part of a sequence */
+#define BLOCK_FLAG_END_OF_SEQUENCE 0x0100
+/** This block contains a clock reference */
+#define BLOCK_FLAG_CLOCK 0x0200
+/** This block is scrambled */
+#define BLOCK_FLAG_SCRAMBLED 0x0400
+/** This block has to be decoded but not be displayed */
+#define BLOCK_FLAG_PREROLL 0x0800
+/** This block is corrupted and/or there is data loss */
+#define BLOCK_FLAG_CORRUPTED 0x1000
+/** This block contains an interlaced picture with top field first */
+#define BLOCK_FLAG_TOP_FIELD_FIRST 0x2000
+/** This block contains an interlaced picture with bottom field first */
+#define BLOCK_FLAG_BOTTOM_FIELD_FIRST 0x4000
+
+/** This block contains an interlaced picture */
+#define BLOCK_FLAG_INTERLACED_MASK \
+ (BLOCK_FLAG_TOP_FIELD_FIRST|BLOCK_FLAG_BOTTOM_FIELD_FIRST)
+
+#define BLOCK_FLAG_TYPE_MASK \
+ (BLOCK_FLAG_TYPE_I|BLOCK_FLAG_TYPE_P|BLOCK_FLAG_TYPE_B|BLOCK_FLAG_TYPE_PB)
+
+/* These are for input core private usage only */
+#define BLOCK_FLAG_CORE_PRIVATE_MASK 0x00ff0000
+#define BLOCK_FLAG_CORE_PRIVATE_SHIFT 16
+
+/* These are for module private usage only */
+#define BLOCK_FLAG_PRIVATE_MASK 0xff000000
+#define BLOCK_FLAG_PRIVATE_SHIFT 24
+
+typedef void (*block_free_t) (block_t *);