--- trunk/xvidcore/vfw/src/codec.c 2010/12/21 16:56:42 1914 +++ trunk/xvidcore/vfw/src/codec.c 2010/12/27 16:11:05 1922 @@ -19,7 +19,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: codec.c,v 1.28 2010-12-21 16:56:42 Isibaar Exp $ + * $Id: codec.c,v 1.30 2010-12-27 16:11:05 Isibaar Exp $ * *************************************************************************/ @@ -433,6 +433,24 @@ else create.num_threads = info.num_threads; /* Autodetect */ + /* Encoder slices */ + if ((profiles[codec->config.profile].flags & PROFILE_RESYNCMARKER) && codec->config.num_slices != 1) { + + if (codec->config.num_slices == 0) { /* auto */ + int rows = (lpbiInput->bmiHeader.biHeight + 15) / 16; + int slices = (rows > 36) ? 4 : 1; /* use multiple slices only for HD resolutions */ + + create.num_slices = (rows > 45) ? 8 : slices; + + if (create.num_slices > create.num_threads) + create.num_slices = create.num_threads; + } + else { + create.num_slices = codec->config.num_slices; /* force manual value - by registry edit */ + } + + } + /* plugins */ create.plugins = plugins; switch (codec->config.mode)