# HG changeset patch # User michael # Date 1123321564 0 # Node ID 0f428b0246774b3f98b446a853219c126ea45c4f # Parent 69d4f0d2a23fd51a89cb006e833930afc0f413bf mkstemp on win32 workaround by (Ivan Wong: email, ivanwong info) diff -r 69d4f0d2a23f -r 0f428b024677 xvidff.c --- a/xvidff.c Fri Aug 05 23:25:35 2005 +0000 +++ b/xvidff.c Sat Aug 06 09:46:04 2005 +0000 @@ -27,6 +27,9 @@ #include #include "common.h" #include "avcodec.h" +#ifdef CONFIG_WIN32 +#include +#endif /** * Buffer management macros. @@ -226,6 +229,26 @@ rc2pass2.version = XVID_VERSION; rc2pass2.bitrate = avctx->bit_rate; +#ifdef CONFIG_WIN32 /* Ugly work around */ + { + char *tempname; + + tempname = tempnam(".", "xvidff"); + fd = -1; + if( tempname && + (fd = open(tempname, _O_RDWR | _O_BINARY)) != -1 ) { + x->twopassfile = av_strdup(tempname); +#undef free + free(tempname); +#define free please_use_av_free + if( x->twopassfile == NULL ) { + av_log(avctx, AV_LOG_ERROR, + "XviD: Cannot allocate 2-pass buffer\n"); + return -1; + } + } + } +#else x->twopassfile = av_malloc(BUFFER_SIZE); if( x->twopassfile == NULL ) { av_log(avctx, AV_LOG_ERROR, @@ -238,6 +261,7 @@ strcpy(x->twopassfile, "./xvidff.XXXXXX"); fd = mkstemp(x->twopassfile); } +#endif if( fd == -1 ) { av_log(avctx, AV_LOG_ERROR, "XviD: Cannot write 2-pass pipe\n");