summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-26 17:11:04 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-26 17:11:04 +0300
commit95fba94860a02be5b50c4050f9ba2ac41daea3c2 (patch)
tree79ebb3fb8b351e8347c092e62331cd50b2a06a7b
parent3c2d6d9a8e28900300d20830c309eea2d511cfc8 (diff)
parent0426d5d72df81217f32147d039f3eb29c009af12 (diff)
downloadmpv-95fba94860a02be5b50c4050f9ba2ac41daea3c2.tar.bz2
mpv-95fba94860a02be5b50c4050f9ba2ac41daea3c2.tar.xz
Merge svn changes up to r30917
-rwxr-xr-xconfigure90
-rw-r--r--etc/codecs.conf4
-rw-r--r--get_path.h6
-rw-r--r--libmpcodecs/vd_qtvideo.c10
-rw-r--r--loader/win32.c3
-rw-r--r--mencoder.c104
-rw-r--r--mpcommon.c5
-rw-r--r--mpcommon.h4
-rw-r--r--mplayer.c4
9 files changed, 102 insertions, 128 deletions
diff --git a/configure b/configure
index facff63e75..0d150d1581 100755
--- a/configure
+++ b/configure
@@ -1670,12 +1670,13 @@ fi
def_fast_64bit='#define HAVE_FAST_64BIT 0'
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
-_arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
+arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
case "$host_arch" in
i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
- _arch='X86 X86_32'
- _target_arch="ARCH_X86 = yes"
- _target_subarch="ARCH_X86_32 = yes"
+ arch='X86 X86_32'
+ libavcodec_arch="x86"
+ target_arch="ARCH_X86 = yes"
+ target_subarch="ARCH_X86_32 = yes"
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
iproc=486
proc=i486
@@ -1912,16 +1913,17 @@ EOF
;;
ia64)
- _arch='IA64'
- _target_arch='ARCH_IA64 = yes'
+ arch='IA64'
+ target_arch='ARCH_IA64 = yes'
def_fast_64bit='#define HAVE_FAST_64BIT 1'
iproc='ia64'
;;
x86_64|amd64)
- _arch='X86 X86_64'
- _target_subarch='ARCH_X86_64 = yes'
- _target_arch="ARCH_X86 = yes"
+ arch='X86 X86_64'
+ libavcodec_arch="x86"
+ target_subarch='ARCH_X86_64 = yes'
+ target_arch="ARCH_X86 = yes"
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
def_fast_64bit='#define HAVE_FAST_64BIT 1'
iproc='x86_64'
@@ -2014,8 +2016,9 @@ EOF
;;
sparc|sparc64)
- _arch='SPARC'
- _target_arch='ARCH_SPARC = yes'
+ arch='SPARC'
+ libavcodec_arch="sparc"
+ target_arch='ARCH_SPARC = yes'
iproc='sparc'
if test "$host_arch" = "sparc64" ; then
_vis='yes'
@@ -2042,35 +2045,39 @@ EOF
;;
arm*)
- _arch='ARM'
- _target_arch='ARCH_ARM = yes'
+ arch='ARM'
+ libavcodec_arch="arm"
+ target_arch='ARCH_ARM = yes'
iproc='arm'
;;
avr32)
- _arch='AVR32'
- _target_arch='ARCH_AVR32 = yes'
+ arch='AVR32'
+ libavcodec_arch="avr32"
+ target_arch='ARCH_AVR32 = yes'
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
iproc='avr32'
test $_fast_clz = "auto" && _fast_clz=yes
;;
sh|sh4)
- _arch='SH4'
- _target_arch='ARCH_SH4 = yes'
+ arch='SH4'
+ libavcodec_arch="sh4"
+ target_arch='ARCH_SH4 = yes'
iproc='sh4'
;;
ppc|ppc64|powerpc|powerpc64)
- _arch='PPC'
+ arch='PPC'
def_dcbzl='#define HAVE_DCBZL 0'
- _target_arch='ARCH_PPC = yes'
+ libavcodec_arch="ppc"
+ target_arch='ARCH_PPC = yes'
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
iproc='ppc'
if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
- _arch='PPC PPC64'
- _target_subarch='ARCH_PPC64 = yes'
+ arch='PPC PPC64'
+ target_subarch='ARCH_PPC64 = yes'
def_fast_64bit='#define HAVE_FAST_64BIT 1'
fi
echocheck "CPU type"
@@ -2178,8 +2185,9 @@ EOF
;;
alpha*)
- _arch='ALPHA'
- _target_arch='ARCH_ALPHA = yes'
+ arch='ALPHA'
+ libavcodec_arch="alpha"
+ target_arch='ARCH_ALPHA = yes'
iproc='alpha'
def_fast_64bit='#define HAVE_FAST_64BIT 1'
@@ -2222,8 +2230,9 @@ EOF
;;
mips)
- _arch='SGI_MIPS'
- _target_arch='ARCH_SGI_MIPS = yes'
+ arch='SGI_MIPS'
+ libavcodec_arch="mips"
+ target_arch='ARCH_SGI_MIPS = yes'
iproc='sgi-mips'
if irix ; then
@@ -2249,38 +2258,38 @@ EOF
;;
hppa)
- _arch='PA_RISC'
- _target_arch='ARCH_PA_RISC = yes'
+ arch='PA_RISC'
+ target_arch='ARCH_PA_RISC = yes'
iproc='PA-RISC'
;;
s390)
- _arch='S390'
- _target_arch='ARCH_S390 = yes'
+ arch='S390'
+ target_arch='ARCH_S390 = yes'
iproc='390'
;;
s390x)
- _arch='S390X'
- _target_arch='ARCH_S390X = yes'
+ arch='S390X'
+ target_arch='ARCH_S390X = yes'
iproc='390x'
;;
vax)
- _arch='VAX'
- _target_arch='ARCH_VAX = yes'
+ arch='VAX'
+ target_arch='ARCH_VAX = yes'
iproc='vax'
;;
xtensa)
- _arch='XTENSA'
- _target_arch='ARCH_XTENSA = yes'
+ arch='XTENSA'
+ target_arch='ARCH_XTENSA = yes'
iproc='xtensa'
;;
generic)
- _arch='GENERIC'
- _target_arch='ARCH_GENERIC = yes'
+ arch='GENERIC'
+ target_arch='ARCH_GENERIC = yes'
;;
*)
@@ -7864,8 +7873,9 @@ TIMER = $_timer
EXESUF = $_exesuf
EXESUFS_ALL = .exe
-$_target_arch
-$_target_subarch
+$target_arch
+ARCH = $libavcodec_arch
+$target_subarch
$(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
MENCODER = $_mencoder
@@ -8229,7 +8239,7 @@ $def_pthread_cache
#define __CPU__ $iproc
$def_words_endian
$def_bigendian
-$(ff_config_enable "$_arch_all" "$_arch" "ARCH")
+$(ff_config_enable "$arch_all" "$arch" "ARCH")
$(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 2c5a89e44d..0d5fdba29d 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -4316,7 +4316,7 @@ audiocodec musepack
format 0x2b4d
driver mpcdec
-audiocodec ffamrnb
+audiocodec libopencoreamrnb
info "AMR Narrowband"
status working
fourcc samr
@@ -4324,7 +4324,7 @@ audiocodec ffamrnb
driver ffmpeg
dll "libopencore_amrnb"
-audiocodec ffamrwb
+audiocodec libopencoreamrwb
info "AMR Wideband"
status working
fourcc sawb
diff --git a/get_path.h b/get_path.h
index 759356e527..2f1909b601 100644
--- a/get_path.h
+++ b/get_path.h
@@ -24,10 +24,4 @@
char *get_path(const char *filename);
void set_path_env(void);
-#ifdef CONFIG_WIN32DLL
-extern void SetCodecPath(const char *); // in loader/drv.c
-
-static char *codec_path=NULL;
-#endif
-
#endif /* MPLAYER_GET_PATH_H */
diff --git a/libmpcodecs/vd_qtvideo.c b/libmpcodecs/vd_qtvideo.c
index ea7aa4eaa1..18c769e32c 100644
--- a/libmpcodecs/vd_qtvideo.c
+++ b/libmpcodecs/vd_qtvideo.c
@@ -59,7 +59,7 @@ static HINSTANCE qtime_qts; // handle to the preloaded quicktime.qts
static HMODULE handler;
static OSErr (*InitializeQTML)(long flags);
static OSErr (*EnterMovies)(void);
-static OSErr (*ExitMovies)(void);
+static void (*ExitMovies)(void);
static OSErr (*DecompressSequenceBegin)(ImageSequence *seqID,
ImageDescriptionHandle desc,
CGrafPtr port,
@@ -99,9 +99,7 @@ static int control(sh_video_t *sh,int cmd,void* arg,...){
// init driver
static int init(sh_video_t *sh){
-#ifndef CONFIG_QUICKTIME
OSErr result = 1;
-#endif
if (sh->ImageDesc == NULL) {
mp_msg(MSGT_DECVIDEO,MSGL_ERR,"sh->ImageDesc not set, cannot use binary QuickTime codecs (try -demuxer mov?)\n");
@@ -128,7 +126,7 @@ static int init(sh_video_t *sh){
InitializeQTML = (OSErr (*)(long))GetProcAddress(handler, "InitializeQTML");
EnterMovies = (OSErr (*)(void))GetProcAddress(handler, "EnterMovies");
- ExitMovies = (OSErr (*)(void))GetProcAddress(handler, "ExitMovies");
+ ExitMovies = (void (*)(void))GetProcAddress(handler, "ExitMovies");
DecompressSequenceBegin = (OSErr (*)(ImageSequence*,ImageDescriptionHandle,CGrafPtr,void *,const Rect *,MatrixRecordPtr,short,RgnHandle,CodecFlags,CodecQ,DecompressorComponent))GetProcAddress(handler, "DecompressSequenceBegin");
DecompressSequenceFrameS = (OSErr (*)(ImageSequence,Ptr,long,CodecFlags,CodecFlags*,ICMCompletionProcRecordPtr))GetProcAddress(handler, "DecompressSequenceFrameS");
GetGWorldPixMap = (PixMapHandle (*)(GWorldPtr))GetProcAddress(handler, "GetGWorldPixMap");
@@ -241,7 +239,6 @@ static int init(sh_video_t *sh){
// uninit driver
static void uninit(sh_video_t *sh){
- OSErr result;
if(OutBufferGWorld) {
DisposeGWorld(OutBufferGWorld);
OutBufferGWorld = NULL;
@@ -254,8 +251,7 @@ static void uninit(sh_video_t *sh){
CDSequenceEnd(imageSeq);
imageSeq = 0;
}
- result=ExitMovies();
- mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"ExitMovies returned %d\n",result);
+ ExitMovies();
}
// decode a frame
diff --git a/loader/win32.c b/loader/win32.c
index 9143702878..d0cbddca66 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -1412,9 +1412,10 @@ static void WINAPI expInitializeCriticalSection(CRITICAL_SECTION* c)
return;
}
-static void WINAPI expInitializeCriticalSectionAndSpinCount(CRITICAL_SECTION* c, DWORD spin)
+static WIN_BOOL WINAPI expInitializeCriticalSectionAndSpinCount(CRITICAL_SECTION* c, DWORD spin)
{
expInitializeCriticalSection(c);
+ return 1;
}
static void WINAPI expEnterCriticalSection(CRITICAL_SECTION* c)
diff --git a/mencoder.c b/mencoder.c
index 0336c7086c..d449572851 100644
--- a/mencoder.c
+++ b/mencoder.c
@@ -65,6 +65,10 @@
#include "mp_fifo.h"
#include "get_path.h"
+#ifdef CONFIG_WIN32DLL
+#include "loader/drv.h" // for SetCodecPath()
+#endif
+
#include "stream/stream.h"
#include "libmpdemux/aviprint.h"
#include "libmpdemux/demuxer.h"
@@ -141,12 +145,6 @@ static int out_audio_codec=-1;
static int out_video_codec=-1;
int out_file_format=MUXER_TYPE_AVI; // default to AVI
-
-// audio stream skip/resync functions requires only for seeking.
-// (they should be implemented in the audio codec layer)
-//void skip_audio_frame(sh_audio_t *sh_audio){}
-//void resync_audio_stream(sh_audio_t *sh_audio){}
-
int quiet=0;
double video_time_usage=0;
double vout_time_usage=0;
@@ -247,14 +245,6 @@ void set_osd_subtitle(struct MPContext *mpctx, subtitle *subs) {
vo_osd_changed(OSDTYPE_SUBTITLE);
}
-//char *out_audio_codec=NULL; // override audio codec
-//char *out_video_codec=NULL; // override video codec
-
-//#include "libmpeg2/mpeg2.h"
-//#include "libmpeg2/mpeg2_internal.h"
-
-//static int vo_w=0, vo_h=0;
-
//-------------------------- config stuff:
m_config_t* mconfig;
@@ -279,29 +269,12 @@ typedef struct {
int already_read;
} s_frame_data;
-/// Returns a_pts
-static float calc_a_pts(demux_stream_t *d_audio);
-/** \brief Seeks audio forward to pts by dumping audio packets
- \return The current audio pts.
-*/
-static float forward_audio(float pts, demux_stream_t *d_audio, muxer_stream_t* mux_a);
-/** \brief Seeks slowly by dumping frames.
- \return 1 for success, 2 for EOF.
-*/
-static int slowseek(float end_pts, demux_stream_t *d_video, demux_stream_t *d_audio, muxer_stream_t* mux_a, s_frame_data * frame_data, int framecopy, int print_info);
-/// Deletes audio or video as told by -delay to sync
-static void fixdelay(demux_stream_t *d_video, demux_stream_t *d_audio, muxer_stream_t* mux_a, s_frame_data * frame_data, int framecopy);
-
#include "edl.h"
static edl_record_ptr edl_records = NULL; ///< EDL entries memory area
static edl_record_ptr next_edl_record = NULL; ///< only for traversing edl_records
static short edl_muted; ///< Stores whether EDL is currently in muted mode.
static short edl_seeking; ///< When non-zero, stream is seekable.
static short edl_seek_type; ///< When non-zero, frames are discarded instead of seeking.
-/** \brief Seeks for EDL
- \return 1 for success, 0 for failure, 2 for EOF.
-*/
-static int edl_seek(edl_record_ptr next_edl_record, demuxer_t* demuxer, demux_stream_t *d_audio, muxer_stream_t* mux_a, s_frame_data * frame_data, int framecopy);
#include "cfg-mencoder.h"
@@ -358,10 +331,6 @@ static int dec_audio(sh_audio_t *sh_audio,unsigned char* buffer,int total){
//---------------------------------------------------------------------------
-// this function returns the absoloute time for which MEncoder will switch files or move in the file.
-// so audio can be cut correctly. -1 if there is no limit.
-static float stop_time(demuxer_t* demuxer, muxer_stream_t* mux_v);
-
static volatile int at_eof=0;
static volatile int interrupted=0;
@@ -410,7 +379,10 @@ void add_subtitles(char *filename, float fps, int silent)
subdata = subd;
}
-static float stop_time(demuxer_t* demuxer, muxer_stream_t* mux_v) {
+/* This function returns the absolute time for which MEncoder will switch files
+ * or move in the file so audio can be cut correctly. -1 if there is no limit. */
+static float stop_time(demuxer_t* demuxer, muxer_stream_t* mux_v)
+{
float timeleft = -1;
if (play_n_frames >= 0) timeleft = mux_v->timer + play_n_frames * (double)(mux_v->h.dwScale) / mux_v->h.dwRate;
if (end_at.type == END_AT_TIME && (timeleft > end_at.pos || timeleft == -1)) timeleft = end_at.pos;
@@ -429,7 +401,9 @@ static float stop_time(demuxer_t* demuxer, muxer_stream_t* mux_v) {
return timeleft;
}
-static float calc_a_pts(demux_stream_t *d_audio) {
+/// Returns a_pts
+static float calc_a_pts(demux_stream_t *d_audio)
+{
sh_audio_t * sh_audio = d_audio ? d_audio->sh : NULL;
float a_pts = 0.;
if (sh_audio)
@@ -437,7 +411,10 @@ static float calc_a_pts(demux_stream_t *d_audio) {
return a_pts;
}
-static float forward_audio(float pts, demux_stream_t *d_audio, muxer_stream_t* mux_a) {
+/** \brief Seeks audio forward to pts by dumping audio packets
+ * \return The current audio pts. */
+static float forward_audio(float pts, demux_stream_t *d_audio, muxer_stream_t* mux_a)
+{
sh_audio_t * sh_audio = d_audio ? d_audio->sh : NULL;
int samplesize, avg;
float a_pts = calc_a_pts(d_audio);
@@ -472,7 +449,12 @@ static float forward_audio(float pts, demux_stream_t *d_audio, muxer_stream_t* m
return a_pts;
}
-static int slowseek(float end_pts, demux_stream_t *d_video, demux_stream_t *d_audio, muxer_stream_t* mux_a, s_frame_data * frame_data, int framecopy, int print_info) {
+/** \brief Seeks slowly by dumping frames.
+ * \return 1 for success, 2 for EOF. */
+static int slowseek(float end_pts, demux_stream_t *d_video,
+ demux_stream_t *d_audio, muxer_stream_t *mux_a,
+ s_frame_data *frame_data, int framecopy, int print_info)
+{
sh_video_t * sh_video = d_video->sh;
vf_instance_t * vfilter = sh_video ? sh_video->vfilter : NULL;
int done = 0;
@@ -520,7 +502,11 @@ static int slowseek(float end_pts, demux_stream_t *d_video, demux_stream_t *d_au
return 1;
}
-static void fixdelay(demux_stream_t *d_video, demux_stream_t *d_audio, muxer_stream_t* mux_a, s_frame_data * frame_data, int framecopy) {
+/// Deletes audio or video as told by -delay to sync
+static void fixdelay(demux_stream_t *d_video, demux_stream_t *d_audio,
+ muxer_stream_t *mux_a, s_frame_data *frame_data,
+ int framecopy)
+{
// TODO: Find a way to encode silence instead of deleting video
sh_video_t * sh_video = d_video->sh;
float a_pts;
@@ -541,7 +527,12 @@ static void fixdelay(demux_stream_t *d_video, demux_stream_t *d_audio, muxer_str
slowseek(a_pts - audio_delay, d_video, d_audio, mux_a, frame_data, framecopy, 0);
}
-static int edl_seek(edl_record_ptr next_edl_record, demuxer_t* demuxer, demux_stream_t *d_audio, muxer_stream_t* mux_a, s_frame_data * frame_data, int framecopy) {
+/** \brief Seeks for EDL
+ * \return 1 for success, 0 for failure, 2 for EOF. */
+static int edl_seek(edl_record_ptr next_edl_record, demuxer_t *demuxer,
+ demux_stream_t *d_audio, muxer_stream_t *mux_a,
+ s_frame_data *frame_data, int framecopy)
+{
sh_video_t * sh_video = demuxer->video ? demuxer->video->sh : NULL;
if (!sh_video) return 0;
@@ -768,7 +759,6 @@ if(stream->type==STREAMTYPE_DVDNAV){
if(demuxer2) opts.audio_id=-2; /* do NOT read audio packets... */
- //demuxer=demux_open(stream,file_format,opts.video_id,opts.audio_id,opts.sub_id);
demuxer=demux_open(&opts, stream,file_format,opts.audio_id,opts.video_id,opts.sub_id,filename);
if(!demuxer){
mp_tmsg(MSGT_DEMUXER, MSGL_FATAL, FormatNotRecognized);
@@ -1516,7 +1506,6 @@ if(demuxer2){ // 3-pass encoding, read control file (frameno.avi)
if(len==4) next_frameno=start[0];
}
if(at_eof) break;
- // if(skip_flag) printf("!!!!!!!!!!!!\n");
skip_flag=next_frameno-decoded_frameno;
// find next frame:
while(next_frameno<=decoded_frameno){
@@ -1526,13 +1515,10 @@ if(demuxer2){ // 3-pass encoding, read control file (frameno.avi)
if(len==0) --skip_flag; else // duplicate
if(len==4) next_frameno=start[0];
}
-// if(at_eof) break;
-// printf("Current fno=%d requested=%d skip=%d \n",decoded_frameno,fno,skip_flag);
} else {
// check frame duplicate/drop:
-//printf("\r### %5.3f ###\n",v_timer_corr);
float mux_frametime = (float)mux_v->h.dwScale/mux_v->h.dwRate;
if (v_timer_corr >= mux_frametime && (skip_limit<0 || skip_flag < skip_limit)) {
@@ -1640,7 +1626,6 @@ if(sh_audio && !demuxer2){
unsigned int samples=(sh_audio->audio.dwSampleSize)?
((ds_tell(d_audio)-sh_audio->a_in_buffer_len)/sh_audio->audio.dwSampleSize) :
(d_audio->block_no); // <- used for VBR audio
-// printf("samples=%d \n",samples);
a_pts=samples*(float)sh_audio->audio.dwScale/(float)sh_audio->audio.dwRate;
delay_corrected=1;
} else
@@ -1649,7 +1634,6 @@ if(sh_audio && !demuxer2){
// PTS = (last timestamp) + (bytes after last timestamp)/(bytes per sec)
a_pts=d_audio->pts;
if(!delay_corrected) if(a_pts) delay_corrected=1;
- //printf("*** %5.3f ***\n",a_pts);
a_pts+=(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
}
v_pts=sh_video ? sh_video->pts : d_video->pts;
@@ -1674,23 +1658,6 @@ if(sh_audio && !demuxer2){
v_pts_corr+=x;
}
-// printf("A:%6.1f V:%6.1f A-V:%7.3f oAV:%7.3f diff:%7.3f ct:%7.3f vpc:%7.3f \r",
-// a_pts,v_pts,a_pts-v_pts,
-// (float)(mux_a->timer-mux_v->timer),
-// AV_delay, c_total, v_pts_corr );
-// printf("V:%6.1f \r", d_video->pts );
-
-#if 0
- mp_msg(MSGT_AVSYNC,MSGL_STATUS,"A:%6.1f V:%6.1f A-V:%7.3f ct:%7.3f %3d/%3d %2d%% %2d%% %4.1f%% %d%%\r",
- a_pts,v_pts,a_pts-v_pts,c_total,
- (int)sh_video->num_frames,(int)sh_video->num_frames_decoded,
- (sh_video->timer>0.5)?(int)(100.0*video_time_usage/(double)sh_video->timer):0,
- (sh_video->timer>0.5)?(int)(100.0*vout_time_usage/(double)sh_video->timer):0,
- (sh_video->timer>0.5)?(100.0*audio_time_usage/(double)sh_video->timer):0
- ,cache_fill_status
- );
-#endif
-
{ float t=(GetTimerMS()-timer_start)*0.001f;
float len=(demuxer->movi_end-demuxer->movi_start);
off_t pos = demuxer->filepos >= 0 ? demuxer->filepos : stream_tell(demuxer->stream);
@@ -1702,12 +1669,6 @@ if(sh_audio && !demuxer2){
/ (float)(sh_audio->audio.dwLength);
}
#endif
-#if 0
- mp_msg(MSGT_AVSYNC,MSGL_STATUS,"%d < %d < %d \r",
- (int)demuxer->movi_start,
- (int)demuxer->filepos,
- (int)demuxer->movi_end);
-#else
if(!quiet) {
if( mp_msg_test(MSGT_STATUSLINE,MSGL_V) ) {
mp_msg(MSGT_STATUSLINE,MSGL_STATUS,"Pos:%6.1fs %6df (%2d%%) %3dfps Trem:%4dmin %3dmb A-V:%5.3f [%d:%d] A/Vms %d/%d D/B/S %d/%d/%d \r",
@@ -1732,7 +1693,6 @@ if(sh_audio && !demuxer2){
(mux_a && mux_a->timer>1) ? (int)(mux_a->size/mux_a->timer/125) : 0
);
}
-#endif
}
fflush(stdout);
diff --git a/mpcommon.c b/mpcommon.c
index 59d27d9d52..789556578a 100644
--- a/mpcommon.c
+++ b/mpcommon.c
@@ -314,3 +314,8 @@ const m_option_t noconfig_opts[] = {
{"user", &disable_user_conf, CONF_TYPE_FLAG, CONF_GLOBAL|CONF_NOCFG|CONF_PRE_PARSE, 0, 1, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
+
+#ifdef CONFIG_WIN32DLL
+char *codec_path = NULL;
+#endif
+
diff --git a/mpcommon.h b/mpcommon.h
index d7894edf06..42ec62fcf7 100644
--- a/mpcommon.h
+++ b/mpcommon.h
@@ -39,4 +39,8 @@ void set_osd_subtitle(struct MPContext *mpctx, subtitle *subs);
extern int disable_system_conf;
extern int disable_user_conf;
+#ifdef CONFIG_WIN32DLL
+extern char *codec_path;
+#endif
+
#endif /* MPLAYER_MPCOMMON_H */
diff --git a/mplayer.c b/mplayer.c
index b6ddd90f72..836ae504ee 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -97,6 +97,10 @@
#include "input/input.h"
+#ifdef CONFIG_WIN32DLL
+#include "loader/drv.h" // for SetCodecPath()
+#endif
+
const int under_mencoder = 0;
int slave_mode=0;
int player_idle_mode=0;