Index: libmpc/branches/r2d/libmpcenc/bitstream.c
===================================================================
--- libmpc/branches/r2d/libmpcenc/bitstream.c	(revision 203)
+++ libmpc/branches/r2d/libmpcenc/bitstream.c	(revision 204)
@@ -194,5 +194,5 @@
 }
 
-void writeBlock ( mpc_encoder_t * e, const char * key, const mpc_bool_t addCRC)
+mpc_uint32_t writeBlock ( mpc_encoder_t * e, const char * key, const mpc_bool_t addCRC, mpc_uint32_t min_size)
 {
 	FILE * fp = e->outputFile;
@@ -200,5 +200,5 @@
 	mpc_uint8_t * datas = e->buffer;
 	char blockSize[10];
-	mpc_uint_t len;
+	mpc_uint32_t len;
 
 	writeBits(e, 0, (8 - e->bitsCount) % 8);
@@ -206,9 +206,16 @@
 
 	// write block header (key / length)
-	len = encodeSize(e->pos + 2 + (addCRC ? 4 : 0), blockSize, MPC_TRUE);
+	len = e->pos + 2 + (addCRC > 0) * 4;
+	if (min_size <= len)
+		min_size = len;
+	else {
+		mpc_uint32_t pad = min_size - len, i;
+		for(i = 0; i < pad; i++)
+			writeBits(e, 0, 8);
+	}
+	len = encodeSize(min_size, blockSize, MPC_TRUE);
 	fwrite(key, sizeof(char), 2, fp);
 	fwrite(blockSize, sizeof(char), len, fp);
 	e->outputBits += (len + 2) * 8;
-
 
 	if (addCRC) {
@@ -236,4 +243,6 @@
 	}
 	e->framesInBlock = 0;
+
+	return min_size;
 }
 
Index: libmpc/branches/r2d/libmpcenc/encode_sv7.c
===================================================================
--- libmpc/branches/r2d/libmpcenc/encode_sv7.c	(revision 203)
+++ libmpc/branches/r2d/libmpcenc/encode_sv7.c	(revision 204)
@@ -24,16 +24,6 @@
 #include <mpc/minimax.h>
 
-// bitstream.c
-void writeBits (mpc_encoder_t * e, mpc_uint32_t input, unsigned int bits );
-unsigned int encodeSize(mpc_uint64_t, char *, mpc_bool_t);
-void encodeEnum(mpc_encoder_t * e, const mpc_uint32_t bits, const mpc_uint_t N);
-void encodeLog(mpc_encoder_t * e, mpc_uint32_t value, mpc_uint32_t max);
-void writeBlock ( mpc_encoder_t * e, const char * key, const mpc_bool_t addCRC);
-
-void       Init_Huffman_Encoder_SV7   ( void );
-
-void   Klemm ( void );
-
-void   Init_Skalenfaktoren             ( void );
+void Klemm ( void );
+void Init_Skalenfaktoren ( void );
 
 // huffsv7.c
@@ -358,5 +348,5 @@
 		}
 		e->block_cnt++;
-		writeBlock(e, "AD", MPC_FALSE);
+		writeBlock(e, "AD", MPC_FALSE, 0);
 	}
 }
Index: libmpc/branches/r2d/libmpcenc/libmpcenc.h
===================================================================
--- libmpc/branches/r2d/libmpcenc/libmpcenc.h	(revision 203)
+++ libmpc/branches/r2d/libmpcenc/libmpcenc.h	(revision 204)
@@ -88,5 +88,5 @@
 						 const int version_implement,
 						 const int version_build );
- void writeBlock ( mpc_encoder_t * e, const char * key, const mpc_bool_t addCRC);
+ mpc_uint32_t writeBlock ( mpc_encoder_t *, const char *, const mpc_bool_t, mpc_uint32_t);
  void writeMagic (mpc_encoder_t * e);
  void writeBits (mpc_encoder_t * e, mpc_uint32_t input, unsigned int bits );
@@ -94,2 +94,7 @@
  void writeBitstream_SV8 ( mpc_encoder_t*, int);
 
+ unsigned int encodeSize(mpc_uint64_t, char *, mpc_bool_t);
+ void encodeEnum(mpc_encoder_t * e, const mpc_uint32_t bits, const mpc_uint_t N);
+ void encodeLog(mpc_encoder_t * e, mpc_uint32_t value, mpc_uint32_t max);
+
+
