Thread: [Mplayerxp-cvslog] SF.net SVN: mplayerxp:[566] mplayerxp (Page 9)
Brought to you by:
olov
From: <nic...@us...> - 2012-12-17 08:02:29
|
Revision: 566 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=566&view=rev Author: nickols_k Date: 2012-12-17 08:02:17 +0000 (Mon, 17 Dec 2012) Log Message: ----------- rename libao2 ->libao3 (TRANSACTION BEGIN) Added Paths: ----------- mplayerxp/libao3/ mplayerxp/libao3/Makefile mplayerxp/libao3/ao_alsa.cpp mplayerxp/libao3/ao_arts.cpp mplayerxp/libao3/ao_esd.cpp mplayerxp/libao3/ao_jack.cpp mplayerxp/libao3/ao_nas.cpp mplayerxp/libao3/ao_null.cpp mplayerxp/libao3/ao_openal.cpp mplayerxp/libao3/ao_oss.cpp mplayerxp/libao3/ao_sdl.cpp mplayerxp/libao3/ao_wav.cpp mplayerxp/libao3/audio_out.cpp mplayerxp/libao3/audio_out.h Removed Paths: ------------- mplayerxp/libao2/ mplayerxp/libao3/Makefile mplayerxp/libao3/ao_alsa9.cpp mplayerxp/libao3/ao_arts.cpp mplayerxp/libao3/ao_esd.cpp mplayerxp/libao3/ao_jack.cpp mplayerxp/libao3/ao_nas.cpp mplayerxp/libao3/ao_null.cpp mplayerxp/libao3/ao_openal.cpp mplayerxp/libao3/ao_oss.cpp mplayerxp/libao3/ao_sdl.cpp mplayerxp/libao3/ao_wav.cpp mplayerxp/libao3/audio_out.cpp mplayerxp/libao3/audio_out.h mplayerxp/libao3/mixer.cpp mplayerxp/libao3/mixer.h Deleted: mplayerxp/libao3/Makefile =================================================================== --- mplayerxp/libao2/Makefile 2012-12-15 13:09:33 UTC (rev 563) +++ mplayerxp/libao3/Makefile 2012-12-17 08:02:17 UTC (rev 566) @@ -1,71 +0,0 @@ - -include ../mp_config.mak - -LIBNAME = libao2.a - -# TODO: moveout ao_sdl.c so it's only used when SDL is detected -CXXSRCS=audio_out.cpp mixer.cpp afmt.cpp -CXXSRCS+=ao_null.cpp ao_wav.cpp -ifeq ($(HAVE_SDL),yes) -CXXSRCS+=ao_sdl.cpp -endif -ifeq ($(USE_OSS_AUDIO),yes) -CXXSRCS+=ao_oss.cpp -endif -ifeq ($(HAVE_ALSA),yes) -CXXSRCS+=ao_alsa9.cpp -endif -ifeq ($(HAVE_ARTS),yes) -CXXSRCS+=ao_arts.cpp -endif -ifeq ($(HAVE_ESD),yes) -CXXSRCS+=ao_esd.cpp -endif -ifeq ($(HAVE_OPENAL),yes) -CXXSRCS+=ao_openal.cpp -endif -ifeq ($(HAVE_NAS),yes) -CXXSRCS+=ao_nas.cpp -endif -ifeq ($(HAVE_JACK),yes) -CXXSRCS+=ao_jack.cpp -endif - -OBJS=$(SRCS:.c=.o) -CXXOBJS=$(CXXSRCS:.cpp=.o) - -CFLAGS = $(OPTFLAGS) -I. -I.. -Wall -CXXFLAGS = $(OPTXXFLAGS) -I. -I.. -Wall - -.SUFFIXES: .c .o - -# .PHONY: all clean - -.c.o: - $(CC) -c $(CFLAGS) -o $@ $< -.cpp.o: - $(CXX) -c $(CXXFLAGS) -o $@ $< - -$(LIBNAME): $(OBJS) $(CXXOBJS) - $(AR) r $(LIBNAME) $(OBJS) $(CXXOBJS) - -all: dep $(LIBNAME) - -clean: - rm -f *.o *.a *~ - -distclean: - rm -f Makefile.bak *.o *.a *~ .depend - -dep: .depend - -.depend: $(SRCS) $(CXXSRCS) - $(CXX) -MM $(CXXFLAGS) $(SRCS) $(CXXSRCS) 1>.depend - -# -# include dependency files if they exist -# -ifneq ($(wildcard .depend),) -include .depend -endif - Copied: mplayerxp/libao3/Makefile (from rev 564, mplayerxp/libao2/Makefile) =================================================================== --- mplayerxp/libao3/Makefile (rev 0) +++ mplayerxp/libao3/Makefile 2012-12-17 08:02:17 UTC (rev 566) @@ -0,0 +1,71 @@ + +include ../mp_config.mak + +LIBNAME = libao2.a + +# TODO: moveout ao_sdl.c so it's only used when SDL is detected +CXXSRCS=audio_out.cpp afmt.cpp +CXXSRCS+=ao_null.cpp ao_wav.cpp +ifeq ($(HAVE_SDL),yes) +CXXSRCS+=ao_sdl.cpp +endif +ifeq ($(USE_OSS_AUDIO),yes) +CXXSRCS+=ao_oss.cpp +endif +ifeq ($(HAVE_ALSA),yes) +CXXSRCS+=ao_alsa.cpp +endif +ifeq ($(HAVE_ARTS),yes) +CXXSRCS+=ao_arts.cpp +endif +ifeq ($(HAVE_ESD),yes) +CXXSRCS+=ao_esd.cpp +endif +ifeq ($(HAVE_OPENAL),yes) +CXXSRCS+=ao_openal.cpp +endif +ifeq ($(HAVE_NAS),yes) +CXXSRCS+=ao_nas.cpp +endif +ifeq ($(HAVE_JACK),yes) +CXXSRCS+=ao_jack.cpp +endif + +OBJS=$(SRCS:.c=.o) +CXXOBJS=$(CXXSRCS:.cpp=.o) + +CFLAGS = $(OPTFLAGS) -I. -I.. -Wall +CXXFLAGS = $(OPTXXFLAGS) -I. -I.. -Wall + +.SUFFIXES: .c .o + +# .PHONY: all clean + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +$(LIBNAME): $(OBJS) $(CXXOBJS) + $(AR) r $(LIBNAME) $(OBJS) $(CXXOBJS) + +all: dep $(LIBNAME) + +clean: + rm -f *.o *.a *~ + +distclean: + rm -f Makefile.bak *.o *.a *~ .depend + +dep: .depend + +.depend: $(SRCS) $(CXXSRCS) + $(CXX) -MM $(CXXFLAGS) $(SRCS) $(CXXSRCS) 1>.depend + +# +# include dependency files if they exist +# +ifneq ($(wildcard .depend),) +include .depend +endif + Copied: mplayerxp/libao3/ao_alsa.cpp (from rev 564, mplayerxp/libao2/ao_alsa.cpp) =================================================================== --- mplayerxp/libao3/ao_alsa.cpp (rev 0) +++ mplayerxp/libao3/ao_alsa.cpp 2012-12-17 08:02:17 UTC (rev 566) @@ -0,0 +1,1024 @@ +#include "mp_config.h" +#include "osdep/mplib.h" +using namespace mpxp; +/* + ao_alsa9 - ALSA-0.9.x output plugin for MPlayer + + (C) Alex Beregszaszi <al...@na...> + + modified for real alsa-0.9.0-support by Joy Winter <jo...@pi...> + additional AC3 passthrough support by Andy Lo A Foe <an...@al...> + 08/22/2002 iec958-init rewritten and merged with common init, joy + + Any bugreports regarding to this driver are welcome. +*/ + +#include <errno.h> +#include <sys/time.h> +#include <stdlib.h> +#include <math.h> +#include <string.h> +#include <sys/poll.h> + +#include "mplayerxp.h" +#define ALSA_PCM_NEW_HW_PARAMS_API +#define ALSA_PCM_NEW_SW_PARAMS_API +#include <alsa/asoundlib.h> + +#include "audio_out.h" +#include "audio_out_internal.h" +#include "afmt.h" +#include "ao_msg.h" +#include "libmpstream2/mrl.h" + +namespace mpxp { +typedef struct priv_conf_s { + int mmap; + int noblock; +}priv_conf_t; +static priv_conf_t priv_conf; +static const mrl_config_t alsaconf[]={ + { "mmap", &priv_conf.mmap, MRL_TYPE_BOOL, 0, 1 }, + { "noblock", &priv_conf.noblock, MRL_TYPE_BOOL, 0, 1 }, + { NULL, NULL, 0, 0, 0 } +}; +class Alsa_AO_Interface : public AO_Interface { + public: + Alsa_AO_Interface(const std::string& subdevice); + virtual ~Alsa_AO_Interface(); + + virtual MPXP_Rc open(unsigned flags); + virtual MPXP_Rc configure(unsigned rate,unsigned channels,unsigned format); + virtual unsigned samplerate() const; + virtual unsigned channels() const; + virtual unsigned format() const; + virtual unsigned buffersize() const; + virtual unsigned outburst() const; + virtual MPXP_Rc test_rate(unsigned r) const; + virtual MPXP_Rc test_channels(unsigned c) const; + virtual MPXP_Rc test_format(unsigned f) const; + virtual void reset(); + virtual unsigned get_space(); + virtual float get_delay(); + virtual unsigned play(const any_t* data,unsigned len,unsigned flags); + virtual void pause(); + virtual void resume(); + virtual MPXP_Rc ctrl(int cmd,long arg) const; + private: + unsigned _channels,_samplerate,_format; + unsigned _buffersize,_outburst; + unsigned bps() const { return _channels*_samplerate*afmt2bps(_format); } + void show_caps(unsigned device) const; + int xrun(const char *str_mode) const; + unsigned play_normal(const any_t* data, unsigned len); + unsigned play_mmap(const any_t* data, unsigned len); + snd_pcm_format_t fmt2alsa(unsigned format) const; + + snd_pcm_t* handler; + snd_pcm_format_t snd_format; + snd_pcm_hw_params_t* hwparams; + snd_pcm_sw_params_t* swparams; + size_t bytes_per_sample; + int first; +}; + +Alsa_AO_Interface::Alsa_AO_Interface(const std::string& _subdevice) + :AO_Interface(_subdevice) {} +Alsa_AO_Interface::~Alsa_AO_Interface() { + int err; + if(!handler) { + MSG_ERR("alsa-uninit: no handler defined!\n"); + return; + } + if (!priv_conf.noblock) { + if ((err = snd_pcm_drain(handler)) < 0) { + MSG_ERR("alsa-uninit: pcm drain error: %s\n", snd_strerror(err)); + return; + } + } + if ((err = snd_pcm_close(handler)) < 0) { + MSG_ERR("alsa-uninit: pcm close error: %s\n", snd_strerror(err)); + return; + } else { + handler = NULL; + MSG_V("alsa-uninit: pcm closed\n"); + } + snd_pcm_hw_params_free(hwparams); + snd_pcm_sw_params_free(swparams); +} + +#define ALSA_DEVICE_SIZE 48 + +#define BUFFERTIME // else SET_CHUNK_SIZE +#undef USE_POLL + +snd_pcm_format_t Alsa_AO_Interface::fmt2alsa(unsigned f) const { + switch (f) + { + case AFMT_S8: + return SND_PCM_FORMAT_S8; + break; + case AFMT_U8: + return SND_PCM_FORMAT_U8; + break; + case AFMT_U16_LE: + return SND_PCM_FORMAT_U16_LE; + break; + case AFMT_U16_BE: + return SND_PCM_FORMAT_U16_BE; + break; +#ifndef WORDS_BIGENDIAN + case AFMT_AC3: +#endif + case AFMT_S16_LE: + return SND_PCM_FORMAT_S16_LE; + break; +#ifdef WORDS_BIGENDIAN + case AFMT_AC3: +#endif + case AFMT_S16_BE: + return SND_PCM_FORMAT_S16_BE; + break; + case AFMT_S32_LE: + return SND_PCM_FORMAT_S32_LE; + break; + case AFMT_S32_BE: + return SND_PCM_FORMAT_S32_BE; + break; + case AFMT_U32_LE: + return SND_PCM_FORMAT_U32_LE; + break; + case AFMT_U32_BE: + return SND_PCM_FORMAT_U32_BE; + break; + case AFMT_S24_LE: + return SND_PCM_FORMAT_S24_LE; + break; + case AFMT_S24_BE: + return SND_PCM_FORMAT_S24_BE; + break; + case AFMT_U24_LE: + return SND_PCM_FORMAT_U24_LE; + break; + case AFMT_U24_BE: + return SND_PCM_FORMAT_U24_BE; + break; + case AFMT_FLOAT32: +#ifdef WORDS_BIGENDIAN + return SND_PCM_FORMAT_FLOAT_BE; +#else + return SND_PCM_FORMAT_FLOAT_LE; +#endif + break; + default: + return SND_PCM_FORMAT_MPEG; + break; + } +} + +/* to set/get/query special features/parameters */ +MPXP_Rc Alsa_AO_Interface::ctrl(int cmd, long arg) const { + switch(cmd) { + case AOCONTROL_GET_VOLUME: + case AOCONTROL_SET_VOLUME: +#ifndef WORDS_BIGENDIAN + { //seems to be a problem on macs? + ao_control_vol_t *vol = (ao_control_vol_t *)arg; + + int err; + snd_mixer_t *handle; + snd_mixer_elem_t *elem; + snd_mixer_selem_id_t *sid; + + const char *mix_name = "PCM"; + const char *card = "default"; + + long pmin, pmax; + long get_vol, set_vol; + float calc_vol, diff, f_multi; + + if(_format == AFMT_AC3) return MPXP_True; + + //allocate simple id + snd_mixer_selem_id_alloca(&sid); + + //sets simple-mixer index and name + snd_mixer_selem_id_set_index(sid, 0); + snd_mixer_selem_id_set_name(sid, mix_name); + + if ((err = snd_mixer_open(&handle, 0)) < 0) { + MSG_ERR("alsa-control_ao: mixer open error: %s\n", snd_strerror(err)); + return MPXP_Error; + } + + if ((err = snd_mixer_attach(handle, card)) < 0) { + MSG_ERR("alsa-control_ao: mixer attach %s error: %s", card, snd_strerror(err)); + snd_mixer_close(handle); + return MPXP_Error; + } + + if ((err = snd_mixer_selem_register(handle, NULL, NULL)) < 0) { + MSG_ERR("alsa-control_ao: mixer register error: %s", snd_strerror(err)); + snd_mixer_close(handle); + return MPXP_Error; + } + if ((err = snd_mixer_load(handle)) < 0) { + MSG_ERR("alsa-control_ao: mixer load error: %s", snd_strerror(err)); + snd_mixer_close(handle); + return MPXP_Error; + } + + elem = snd_mixer_find_selem(handle, sid); + if (!elem) { + MSG_ERR("alsa-control_ao: unable to find simple control_ao '%s',%i\n", snd_mixer_selem_id_get_name(sid), snd_mixer_selem_id_get_index(sid)); + snd_mixer_close(handle); + return MPXP_Error; + } + + snd_mixer_selem_get_playback_volume_range(elem,&pmin,&pmax); + f_multi = (100 / (float)pmax); + + if (cmd == AOCONTROL_SET_VOLUME) { + + diff = (vol->left+vol->right) / 2; + set_vol = rint(diff / f_multi); + + if (set_vol < 0) set_vol = 0; + else if (set_vol > pmax) set_vol = pmax; + + //setting channels + if ((err = snd_mixer_selem_set_playback_volume(elem, snd_mixer_selem_channel_id_t(0), set_vol)) < 0) { + MSG_ERR("alsa-control_ao: error setting left channel, %s",snd_strerror(err)); + return MPXP_Error; + } + if ((err = snd_mixer_selem_set_playback_volume(elem, snd_mixer_selem_channel_id_t(1), set_vol)) < 0) { + MSG_ERR("alsa-control_ao: error setting right channel, %s",snd_strerror(err)); + return MPXP_Error; + } + } else { + snd_mixer_selem_get_playback_volume(elem, snd_mixer_selem_channel_id_t(0), &get_vol); + calc_vol = get_vol; + calc_vol = rintf(calc_vol * f_multi); + + vol->left = vol->right = (int)calc_vol; + + //printf("get_vol = %i, calc=%i\n",get_vol, calc_vol); + } + snd_mixer_close(handle); + return MPXP_Ok; + } +#else // end big-endian + return MPXP_Unknown; +#endif + } //end witch + return MPXP_Unknown; +} + +void Alsa_AO_Interface::show_caps(unsigned device) const { + snd_pcm_info_t *alsa_info; + snd_pcm_t *pcm; + snd_pcm_hw_params_t *hw_params; + snd_output_t *sout; + int err,cards=-1; + unsigned rmin,rmax; + unsigned j,sdmin,sdmax; + char adevice[ALSA_DEVICE_SIZE]; + if ((err = snd_card_next(&cards)) < 0 || cards < 0) + { + MSG_ERR("AO-INFO: alsa-init: no soundcards found: %s\n", snd_strerror(err)); + return; + } + snd_pcm_info_malloc(&alsa_info); + snd_pcm_info_set_device(alsa_info,device); + sdmin=snd_pcm_info_get_subdevice(alsa_info); + sdmax=sdmin+snd_pcm_info_get_subdevices_count(alsa_info); + MSG_INFO("AO-INFO: show caps for device %i:%i-%i\n",device,sdmin,sdmax); + for(j=sdmin;j<=sdmax;j++) { + int i; + snd_pcm_info_set_subdevice(alsa_info,j); + sprintf(adevice,"hw:%u,%u",snd_pcm_info_get_device(alsa_info),snd_pcm_info_get_subdevice(alsa_info)); + MSG_INFO("AO-INFO: %s %s.%s.%s\n\n",adevice,snd_pcm_info_get_id(alsa_info),snd_pcm_info_get_name(alsa_info),snd_pcm_info_get_subdevice_name(alsa_info)); + if(snd_pcm_open(&pcm,adevice,SND_PCM_STREAM_PLAYBACK,SND_PCM_NONBLOCK)<0) { + MSG_ERR("alsa-init: playback open error: %s\n", snd_strerror(err)); + return; + } + snd_pcm_hw_params_malloc(&hw_params); + if(snd_pcm_hw_params_any(pcm, hw_params)<0) { + MSG_ERR("alsa-init: can't get initial parameters: %s\n", snd_strerror(err)); + return; + } + MSG_INFO(" AO-INFO: List of access type: "); + for(i=0;i<SND_PCM_ACCESS_LAST;i++) + if(!snd_pcm_hw_params_test_access(pcm,hw_params,snd_pcm_access_t(i))) + MSG_INFO("%s ",snd_pcm_access_name(snd_pcm_access_t(i))); + MSG_INFO("\n"); + MSG_INFO(" AO-INFO: List of supported formats: "); + for(i=0;i<SND_PCM_FORMAT_LAST;i++) + if(!snd_pcm_hw_params_test_format(pcm,hw_params,snd_pcm_format_t(i))) + MSG_INFO("%s ",snd_pcm_format_name(snd_pcm_format_t(i))); + MSG_INFO("\n"); + MSG_INFO(" AO-INFO: List of supported channels: "); + for(i=0;i<64;i++) + if(!snd_pcm_hw_params_test_format(pcm,hw_params,snd_pcm_format_t(i))) + MSG_INFO("%u ",i); + MSG_INFO("\n"); + snd_pcm_hw_params_get_rate_min(hw_params,&rmin,&err); + snd_pcm_hw_params_get_rate_max(hw_params,&rmax,&err); + MSG_INFO(" AO-INFO: Rates range: %u %u\n",rmin,rmax); + snd_output_stdio_attach(&sout, stderr, 0); + snd_pcm_hw_params_dump(hw_params, sout); + if(hw_params) snd_pcm_hw_params_free(hw_params); + if(pcm) snd_pcm_close(pcm); + } + snd_pcm_info_free(alsa_info); +} + +/* + open & setup audio device + return: 1=success 0=fail +*/ +MPXP_Rc Alsa_AO_Interface::open(unsigned flags) { + int err; + int cards = -1; + snd_pcm_info_t *alsa_info; + const char *str_block_mode; + char *alsa_dev=NULL; + char *alsa_port=NULL; + char alsa_device[ALSA_DEVICE_SIZE]; + UNUSED(flags); + first=1; + + handler = NULL; + alsa_device[0]='\0'; + + MSG_V("alsa-init: compiled for ALSA-%s\n", SND_LIB_VERSION_STR); + + if (!subdevice.empty()) { + const char *param; + char *p; + // example: -ao alsa:hw:0#mmap=1 + param=mrl_parse_line(subdevice,NULL,NULL,&alsa_dev,&alsa_port); + mrl_parse_params(param,alsaconf); + if(alsa_port) { + p=strchr(alsa_port,','); + if(p) { + if(strcmp(p+1,"-1")==0) { + *p='\0'; + show_caps(atoi(alsa_port)); + return MPXP_False; + } + } + if(alsa_port) snprintf(alsa_device,sizeof(alsa_device),"%s:%s",alsa_dev,alsa_port); + else strncpy(alsa_device,alsa_dev,sizeof(alsa_device)); + MSG_V("alsa-init: soundcard set to %s\n", alsa_device); + } //end parsing ao->subdevice + } + + if ((err = snd_card_next(&cards)) < 0 || cards < 0) { + MSG_ERR("alsa-init: no soundcards found: %s\n", snd_strerror(err)); + return MPXP_False; + } + + if (alsa_device[0] == '\0') { + int tmp_device, tmp_subdevice; + + if ((err = snd_pcm_info_malloc(&alsa_info)) < 0) { + MSG_ERR("alsa-init: memory allocation error: %s\n", snd_strerror(err)); + return MPXP_False; + } + + if ((tmp_device = snd_pcm_info_get_device(alsa_info)) < 0) { + MSG_ERR("alsa-init: cant get device\n"); + return MPXP_False; + } + + if ((tmp_subdevice = snd_pcm_info_get_subdevice(alsa_info)) < 0) { + MSG_ERR("alsa-init: cant get subdevice\n"); + return MPXP_False; + } + MSG_V("alsa-init: got device=%i, subdevice=%i\n", tmp_device, tmp_subdevice); + + if ((err = snprintf(alsa_device, ALSA_DEVICE_SIZE, "hw:%1d,%1d", tmp_device, tmp_subdevice)) <= 0) { + MSG_ERR("alsa-init: cant wrote device-id\n"); + } + snd_pcm_info_free(alsa_info); + } + + MSG_WARN("alsa-init: Testing & bugs are welcome. Found %d cards, use: %s\n",cards+1,alsa_device); + //setting modes for block or nonblock-mode + int open_mode,block_mode; + if (priv_conf.noblock) { + open_mode = SND_PCM_NONBLOCK; + block_mode = 1; + str_block_mode = "nonblock-mode"; + } else { + open_mode = 0; + block_mode = 0; + str_block_mode = "block-mode"; + } + + if (!handler) { + //modes = 0, SND_PCM_NONBLOCK, SND_PCM_ASYNC + if ((err = snd_pcm_open(&handler, alsa_device, SND_PCM_STREAM_PLAYBACK, open_mode)) < 0) { + if (priv_conf.noblock) { + MSG_ERR("alsa-init: open in nonblock-mode failed, trying to open in block-mode\n"); + if ((err = snd_pcm_open(&handler, alsa_device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) { + MSG_ERR("alsa-init: playback open error: %s\n", snd_strerror(err)); + alsa_device[0]='\0'; + return MPXP_False; + } else { + block_mode = 0; + str_block_mode = "block-mode"; + } + } else { + MSG_ERR("alsa-init: playback open error: %s\n", snd_strerror(err)); + alsa_device[0]='\0'; + return MPXP_False; + } + } + alsa_device[0]='\0'; + if ((err = snd_pcm_nonblock(handler, block_mode)) < 0) { + MSG_ERR("alsa-init: error set block-mode %s\n", snd_strerror(err)); + } else MSG_V("alsa-init: pcm opend in %s\n", str_block_mode); + + snd_pcm_hw_params_malloc(&hwparams); + snd_pcm_sw_params_malloc(&swparams); + + // setting hw-parameters + if ((err = snd_pcm_hw_params_any(handler, hwparams)) < 0) { + MSG_ERR("alsa-init: unable to get initial parameters: %s\n", + snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_params_any()\n"); + if (priv_conf.mmap) { + snd_pcm_access_mask_t *mask = (snd_pcm_access_mask_t*)alloca(snd_pcm_access_mask_sizeof()); + snd_pcm_access_mask_none(mask); + snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_INTERLEAVED); + snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_NONINTERLEAVED); + snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_COMPLEX); + err = snd_pcm_hw_params_set_access_mask(handler, hwparams, mask); + MSG_ERR("alsa-init: mmap set\n"); + } else { + err = snd_pcm_hw_params_set_access(handler, hwparams,SND_PCM_ACCESS_RW_INTERLEAVED); + MSG_DBG2("snd_pcm_hw_params_set_access(SND_PCM_ACCESS_RW_INTERLEAVED)\n"); + } + if (err < 0) { + MSG_ERR("alsa-init: unable to set access type: %s\n", snd_strerror(err)); + return MPXP_False; + } + } // end switch priv->handler (spdif) + return MPXP_Ok; +} // end init + +MPXP_Rc Alsa_AO_Interface::configure(unsigned r,unsigned c,unsigned f) { + int err,i; + size_t chunk_size=0,chunk_bytes,bits_per_sample,bits_per_frame; + snd_pcm_uframes_t dummy; + + MSG_V("alsa-conf: requested format: %d Hz, %d channels, %s\n", r, + c, ao_format_name(f)); + + _samplerate = r; + _format = f; + _channels = c; + _outburst = OUTBURST; + //ao->buffersize = MAX_OUTBURST; // was 16384 + + snd_format=fmt2alsa(_format); + + switch(snd_format) { + case SND_PCM_FORMAT_S16_LE: + case SND_PCM_FORMAT_U16_LE: + case SND_PCM_FORMAT_S16_BE: + case SND_PCM_FORMAT_U16_BE: + case SND_PCM_FORMAT_S32_LE: + case SND_PCM_FORMAT_S32_BE: + case SND_PCM_FORMAT_U32_LE: + case SND_PCM_FORMAT_U32_BE: + case SND_PCM_FORMAT_FLOAT_BE: + case SND_PCM_FORMAT_FLOAT_LE: + case SND_PCM_FORMAT_S24_LE: + case SND_PCM_FORMAT_S24_BE: + case SND_PCM_FORMAT_U24_LE: + case SND_PCM_FORMAT_U24_BE: + break; + case -1: + MSG_ERR("alsa-conf: invalid format (%s) requested - output disabled\n", + ao_format_name(_format)); + return MPXP_False; + default: + break; + } + bytes_per_sample = bps() / _samplerate; + + if ((err = snd_pcm_hw_params_set_format(handler, hwparams, + snd_format)) < 0) { + MSG_ERR("alsa-conf: unable to set format(%s): %s\n", + snd_pcm_format_name(snd_format), + snd_strerror(err)); + MSG_HINT("Please try one of: "); + for(i=0;i<SND_PCM_FORMAT_LAST;i++) + if (!(snd_pcm_hw_params_test_format(handler, hwparams, snd_pcm_format_t(i)))) + MSG_HINT("%s ",snd_pcm_format_name(snd_pcm_format_t(i))); + MSG_HINT("\n"); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_params_set_format(%i)\n",snd_format); + + if ((err = snd_pcm_hw_params_set_rate_near(handler, hwparams, &_samplerate, 0)) < 0) { + MSG_ERR("alsa-conf: unable to set samplerate %u: %s\n", + _samplerate, + snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_params_set_rate_near(%i)\n",_samplerate); + + if ((err = snd_pcm_hw_params_set_channels(handler, hwparams, + _channels)) < 0) { + MSG_ERR("alsa-conf: unable to set %u channels: %s\n", + _channels, + snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_params_set_channels(%i)\n",_channels); +#ifdef BUFFERTIME + { + int dir; + unsigned period_time,alsa_buffer_time = 500000; /* buffer time in us */ + + if ((err = snd_pcm_hw_params_set_buffer_time_near(handler, hwparams, &alsa_buffer_time, &dir)) < 0) { + MSG_ERR("alsa-init: unable to set buffer time near: %s\n", + snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_set_buffer_time_near(%i)\n",alsa_buffer_time); + + period_time = alsa_buffer_time/4; + if ((err = snd_pcm_hw_params_set_period_time_near(handler, hwparams, &period_time, &dir)) < 0) { + /* original: alsa_buffer_time/ao->bps */ + MSG_ERR("alsa-init: unable to set period time: %s\n", + snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_set_period_time_near(%i)\n",period_time); + MSG_V("alsa-init: buffer_time: %d, period_time :%d\n",alsa_buffer_time, period_time); + } +#else + { + int dir=0; + unsigned period_time=100000; /* period time in us */ + snd_pcm_uframes_t size; + if ((err = snd_pcm_hw_params_set_period_time_near(handler, hwparams, &period_time, &dir)) < 0) { + MSG_ERR("alsa-init: unable to set period_time: %s\n", snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_set_period_time(%i)\n",period_time); + + //get chunksize + if ((err = snd_pcm_hw_params_get_period_size(hwparams, &size, &dir)) < 0) { + MSG_ERR("alsa-init: unable to get period_size: %s\n", snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_get_period_size(%i)\n",size); + chunk_size=size; + } +#endif + // gets buffersize for control_ao + if ((err = snd_pcm_hw_params_get_buffer_size(hwparams,&dummy)) < 0) { + MSG_ERR("alsa-conf: unable to get buffersize: %s\n", snd_strerror(err)); + return MPXP_False; + } else { + _buffersize = dummy * bytes_per_sample; + MSG_V("alsa-conf: got buffersize=%i\n", _buffersize); + } + MSG_DBG2("snd_pcm_hw_params_get_buffer_size(%i)\n",dummy); + bits_per_sample = snd_pcm_format_physical_width(snd_format); + MSG_DBG2("%i=snd_pcm_hw_format_pohysical_width()\n",bits_per_sample); + bits_per_frame = bits_per_sample * _channels; + chunk_bytes = chunk_size * bits_per_frame / 8; + + MSG_V("alsa-conf: bits per sample (bps)=%i, bits per frame (bpf)=%i, chunk_bytes=%i\n",bits_per_sample,bits_per_frame,chunk_bytes); + + /* finally install hardware parameters */ + if ((err = snd_pcm_hw_params(handler, hwparams)) < 0) { + MSG_ERR("alsa-conf: unable to set hw-parameters: %s\n", + snd_strerror(err)); + return MPXP_False; + } + MSG_DBG2("snd_pcm_hw_params()\n"); + // setting sw-params (only avail-min) if noblocking mode was choosed + if (priv_conf.noblock) { + if ((err = snd_pcm_sw_params_current(handler, swparams)) < 0) { + MSG_ERR("alsa-conf: unable to get parameters: %s\n",snd_strerror(err)); + return MPXP_False; + } + + //set min available frames to consider pcm ready (4) + //increased for nonblock-mode should be set dynamically later + if ((err = snd_pcm_sw_params_set_avail_min(handler, swparams, 4)) < 0) { + MSG_ERR("alsa-conf: unable to set avail_min %s\n",snd_strerror(err)); + return MPXP_False; + } + + if ((err = snd_pcm_sw_params(handler, swparams)) < 0) { + MSG_ERR("alsa-conf: unable to install sw-params\n"); + return MPXP_False; + } + + }//end swparams + + if ((err = snd_pcm_prepare(handler)) < 0) { + MSG_ERR("alsa-conf: pcm prepare error: %s\n", snd_strerror(err)); + return MPXP_False; + } + // end setting hw-params + MSG_V("alsa-conf: %d Hz/%d channels/%d bpf/%d bytes buffer/%s\n", + _samplerate, _channels, bytes_per_sample, _buffersize, + snd_pcm_format_description(snd_format)); + return MPXP_Ok; +} // end config_ao + +void Alsa_AO_Interface::pause() { + int err; + + if (!priv_conf.noblock) { + //drain causes error in nonblock-mode! + if ((err = snd_pcm_drain(handler)) < 0) { + MSG_ERR("alsa-pause: pcm drain error: %s\n", snd_strerror(err)); + return; + } + } else { + MSG_V("alsa-pause: paused nonblock\n"); + return; + } +} + +void Alsa_AO_Interface::resume() { + int err; + + if ((err = snd_pcm_prepare(handler)) < 0) { + MSG_ERR("alsa-resume: pcm prepare error: %s\n", snd_strerror(err)); + return; + } +} + +/* stop playing and empty buffers (for seeking/pause) */ +void Alsa_AO_Interface::reset() { + int err; + + if ((err = snd_pcm_drop(handler)) < 0) { + MSG_ERR("alsa-reset: pcm drop error: %s\n", snd_strerror(err)); + return; + } + if ((err = snd_pcm_prepare(handler)) < 0) { + MSG_ERR("alsa-reset: pcm prepare error: %s\n", snd_strerror(err)); + return; + } + return; +} + +#ifdef USE_POLL +static int __FASTCALL__ wait_for_poll(snd_pcm_t *handle, struct pollfd *ufds, unsigned int count) +{ + unsigned short revents; + + while (1) { + poll(ufds, count, -1); + snd_pcm_poll_descriptors_revents(handle, ufds, count, &revents); + if (revents & POLLERR) return -EIO; + if (revents & POLLOUT) return 0; + } +} +#endif + +static void _timersub(const struct timeval*a,const struct timeval* b,struct timeval* result) { + result->tv_sec = a->tv_sec - b->tv_sec; + result->tv_usec = a->tv_usec - b->tv_usec; + if (result->tv_usec < 0) { + --result->tv_sec; + result->tv_usec += 1000000; + } +} + +/* I/O error handler */ +int Alsa_AO_Interface::xrun(const char *str_mode) const { + int err; + snd_pcm_status_t *status; + + snd_pcm_status_alloca(&status); + + if ((err = snd_pcm_status(handler, status))<0) { + MSG_ERR("status error: %s", snd_strerror(err)); + return 0; + } + + if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN) { + struct timeval now, diff, tstamp; + gettimeofday(&now, 0); + snd_pcm_status_get_trigger_tstamp(status, &tstamp); + _timersub(&now, &tstamp, &diff); + MSG_V("alsa-%s: xrun of at least %.3f msecs. resetting stream\n", + str_mode, + diff.tv_sec * 1000 + diff.tv_usec / 1000.0); + } + + if ((err = snd_pcm_prepare(handler))<0) { + MSG_ERR("xrun: prepare error: %s", snd_strerror(err)); + return 0; + } + + return 1; /* ok, data should be accepted again */ +} + +unsigned Alsa_AO_Interface::play(const any_t* data, unsigned len, unsigned flags) { + unsigned result; + UNUSED(flags); + MSG_DBG2("[ao_alsa] %s playing %i bytes\n",priv_conf.mmap?"mmap":"normal",len); + if (priv_conf.mmap) result = play_mmap(data, len); + else result = play_normal(data, len); + return result; +} + +/* + plays 'len' bytes of 'data' + returns: number of bytes played + modified last at 29.06.02 by jp + thanxs for marius <ma...@ro...> for giving us the light ;) +*/ + +unsigned Alsa_AO_Interface::play_normal(const any_t* data, unsigned len) { + unsigned num_frames = len / bytes_per_sample; + const char *output_samples = (const char *)data; + snd_pcm_sframes_t res = 0; + + //fprintf(stderr,"alsa-play: frames=%i, len=%i\n",num_frames,len); + + if (!handler) { + MSG_ERR("alsa-play: device configuration error"); + return 0; + } + + while (num_frames > 0) { + res = snd_pcm_writei(handler, (any_t*)output_samples, num_frames); + if (res == -EAGAIN) { + snd_pcm_wait(handler, 1000); + } else if (res == -EPIPE) { /* underrun */ + if (xrun("play") <= 0) { + MSG_ERR("alsa-play: xrun reset error"); + return 0; + } + } else if (res == -ESTRPIPE) { /* suspend */ + MSG_WARN("alsa-play: pcm in suspend mode. trying to resume\n"); + while ((res = snd_pcm_resume(handler)) == -EAGAIN) ::sleep(1); + } else if (res < 0) { + MSG_ERR("alsa-play: unknown status, trying to reset soundcard\n"); + if ((res = snd_pcm_prepare(handler)) < 0) { + MSG_ERR("alsa-play: snd prepare error"); + return 0; + break; + } + } + + if (res > 0) { + /* output_samples += ao->channels * res; */ + output_samples += res * bytes_per_sample; + num_frames -= res; + } + } //end while + + if (res < 0) { + MSG_ERR("alsa-play: write error %s", snd_strerror(res)); + return 0; + } + return res < 0 ? 0 : len; +} + +/* mmap-mode mainly based on descriptions by Joshua Haberman <jo...@ha...> + * 'An overview of the ALSA API' http://people.debian.org/~joshua/x66.html + * and some help by Paul Davis <pb...@op...> */ + +unsigned Alsa_AO_Interface::play_mmap(const any_t* data, unsigned len) { + snd_pcm_sframes_t commitres, frames_available; + snd_pcm_uframes_t frames_transmit, size, offset; + const snd_pcm_channel_area_t *area; + any_t* outbuffer; + unsigned result; + +#ifdef USE_POLL //seems not really be needed + struct pollfd *ufds; + int count; + + count = snd_pcm_poll_descriptors_count (handler); + ufds = mp_malloc(sizeof(struct pollfd) * count); + snd_pcm_poll_descriptors(handler, ufds, count); + + //first wait_for_poll + if (err = (wait_for_poll(handler, ufds, count) < 0)) { + if (snd_pcm_state(handler) == SND_PCM_STATE_XRUN || + snd_pcm_state(handler) == SND_PCM_STATE_SUSPENDED) { + xrun("play"); + } + } +#endif + + outbuffer = alloca(_buffersize); + + //don't trust get_space() ;) + frames_available = snd_pcm_avail_update(handler) * bytes_per_sample; + if (frames_available < 0) xrun("play"); + + if (frames_available < 4) { + if (first) { + first = 0; + snd_pcm_start(handler); + } else { //FIXME should break and return 0? + snd_pcm_wait(handler, -1); + first = 1; + } + } + + /* len is simply the available bufferspace got by get_space() + * but real avail_buffer in frames is ab/priv->bytes_per_sample */ + size = len / bytes_per_sample; + + //if (verbose) + //printf("len: %i size %i, f_avail %i, bps %i ...\n", len, size, frames_available, priv->bytes_per_sample); + + frames_transmit = size; + + /* prepare areas and set sw-pointers + * frames_transmit returns the real available buffer-size + * sometimes != frames_available cause of ringbuffer 'emulation' */ + snd_pcm_mmap_begin(handler, &area, &offset, &frames_transmit); + + /* this is specific to interleaved streams (or non-interleaved + * streams with only one channel) */ + outbuffer = ((char *) area->addr + (area->first + area->step * offset) / 8); //8 + + //write data + memcpy(outbuffer, data, (frames_transmit * bytes_per_sample)); + commitres = snd_pcm_mmap_commit(handler, offset, frames_transmit); + + if (commitres < 0 || (snd_pcm_uframes_t)commitres != frames_transmit) { + if (snd_pcm_state(handler) == SND_PCM_STATE_XRUN || + snd_pcm_state(handler) == SND_PCM_STATE_SUSPENDED) { + xrun("play"); + } + } + + //calculate written frames! + result = commitres * bytes_per_sample; + + //mplayer doesn't like -result + if ((int)result < 0) result = 0; + +#ifdef USE_POLL + delete ufds; +#endif + + return result; +} + +typedef enum space_status_e { + GET_SPACE_OPEN, + GET_SPACE_PREPARED, + GET_SPACE_RUNNING, + GET_SPACE_PAUSED, + GET_SPACE_XRUN, + GET_SPACE_UNDEFINED +}space_status; +/* how many byes are mp_free in the buffer */ +unsigned Alsa_AO_Interface::get_space() { + snd_pcm_status_t *status; + int ret,st; + space_status e_status=GET_SPACE_UNDEFINED; + + //snd_pcm_sframes_t avail_frames = 0; + + if ((ret = snd_pcm_status_malloc(&status)) < 0) { + MSG_ERR("alsa-space: memory allocation error: %s\n", snd_strerror(ret)); + return 0; + } + + if ((ret = snd_pcm_status(handler, status)) < 0) { + MSG_ERR("alsa-space: cannot get pcm status: %s\n", snd_strerror(ret)); + return 0; + } + + switch((st=snd_pcm_status_get_state(status))) { + case SND_PCM_STATE_OPEN: + e_status = GET_SPACE_OPEN; + case SND_PCM_STATE_PREPARED: + if (e_status!=GET_SPACE_OPEN) { + e_status = GET_SPACE_PREPARED; + first = 1; + ret = snd_pcm_status_get_avail(status) * bytes_per_sample; + if (ret == 0) //ugly workaround for hang in mmap-mode + ret = 10; + break; + } + case SND_PCM_STATE_RUNNING: + ret = snd_pcm_status_get_avail(status) * bytes_per_sample; + //avail_frames = snd_pcm_avail_update(priv->handler) * priv->bytes_per_sample; + if (e_status!=GET_SPACE_OPEN && e_status!=GET_SPACE_PREPARED) + e_status = GET_SPACE_RUNNING; + break; + case SND_PCM_STATE_PAUSED: + MSG_V("alsa-space: paused"); + e_status = GET_SPACE_PAUSED; + ret = 0; + break; + case SND_PCM_STATE_XRUN: + xrun("space"); + e_status = GET_SPACE_XRUN; + first = 1; + ret = 0; + break; + default: + e_status = GET_SPACE_UNDEFINED; + ret = snd_pcm_status_get_avail(status) * bytes_per_sample; + if (ret <= 0) { + xrun("space"); + } + } + + if (e_status!=GET_SPACE_RUNNING) + MSG_V("alsa-space: mp_free space = %i, status=%i, %i --\n", ret, st, e_status); + snd_pcm_status_free(status); + + if (ret < 0) { + MSG_ERR("negative value!!\n"); + ret = 0; + } + + return ret; +} + +/* delay in seconds between first and last sample in buffer */ +float Alsa_AO_Interface::get_delay() +{ + if (handler) { + snd_pcm_status_t *status; + int r; + float ret; + + if ((ret = snd_pcm_status_malloc(&status)) < 0) { + MSG_ERR("alsa-delay: memory allocation error: %s\n", snd_strerror(ret)); + return 0; + } + + if ((ret = snd_pcm_status(handler, status)) < 0) { + MSG_ERR("alsa-delay: cannot get pcm status: %s\n", snd_strerror(ret)); + return 0; + } + + switch(snd_pcm_status_get_state(status)) { + case SND_PCM_STATE_OPEN: + case SND_PCM_STATE_PREPARED: + case SND_PCM_STATE_RUNNING: + r=snd_pcm_status_get_delay(status); + ret = (float)r/(float)_samplerate; + break; + default: + ret = 0; + } + snd_pcm_status_free(status); + + if (ret < 0) ret = 0; + return ret; + } else return 0; +} + +unsigned Alsa_AO_Interface::samplerate() const { return _samplerate; } +unsigned Alsa_AO_Interface::channels() const { return _channels; } +unsigned Alsa_AO_Interface::format() const { return _format; } +unsigned Alsa_AO_Interface::buffersize() const { return _buffersize; } +unsigned Alsa_AO_Interface::outburst() const { return _outburst; } +MPXP_Rc Alsa_AO_Interface::test_channels(unsigned c) const { + return snd_pcm_hw_params_test_channels(handler, hwparams,c)==0? + MPXP_True:MPXP_False; +} +MPXP_Rc Alsa_AO_Interface::test_rate(unsigned r) const { + return snd_pcm_hw_params_test_rate(handler, hwparams,r,0)==0? + MPXP_True:MPXP_False; +} +MPXP_Rc Alsa_AO_Interface::test_format(unsigned f) const { + snd_pcm_format_t rval; + rval=fmt2alsa(f); + return snd_pcm_hw_params_test_format(handler, hwparams,snd_pcm_format_t(rval))==0? + MPXP_True:MPXP_False; +} + +static AO_Interface* query_interface(const std::string& sd) { return new(zeromem) Alsa_AO_Interface(sd); } + +extern const ao_info_t audio_out_alsa = +{ + "ALSA-1.x audio output", + "alsa", + "Alex Beregszaszi <al...@na...>, Joy Winter <jo...@pi...>", + "under developement", + query_interface +}; +} //namespace mpxp + Deleted: mplayerxp/libao3/ao_alsa9.cpp =================================================================== --- mplayerxp/libao2/ao_alsa9.cpp 2012-12-15 13:09:33 UTC (rev 563) +++ mplayerxp/libao3/ao_alsa9.cpp 2012-12-17 08:02:17 UTC (rev 566) @@ -1,1024 +0,0 @@ -#include "mp_config.h" -#include "osdep/mplib.h" -using namespace mpxp; -/* - ao_alsa9 - ALSA-0.9.x output plugin for MPlayer - - (C) Alex Beregszaszi <al...@na...> - - modified for real alsa-0.9.0-support by Joy Winter <jo...@pi...> - additional AC3 passthrough support by Andy Lo A Foe <an...@al...> - 08/22/2002 iec958-init rewritten and merged with common init, joy - - Any bugreports regarding to this driver are welcome. -*/ - -#include <errno.h> -#include <sys/time.h> -#include <stdlib.h> -#include <math.h> -#include <string.h> -#include <sys/poll.h> - -#include "mplayerxp.h" -#define ALSA_PCM_NEW_HW_PARAMS_API -#define ALSA_PCM_NEW_SW_PARAMS_API -#include <alsa/asoundlib.h> - -#include "audio_out.h" -#include "audio_out_internal.h" -#include "afmt.h" -#include "ao_msg.h" -#include "libmpstream2/mrl.h" - -namespace mpxp { -typedef struct priv_conf_s { - int mmap; - int noblock; -}priv_conf_t; -static priv_conf_t priv_conf; -static const mrl_config_t alsaconf[]={ - { "mmap", &priv_conf.mmap, MRL_TYPE_BOOL, 0, 1 }, - { "noblock", &priv_conf.noblock, MRL_TYPE_BOOL, 0, 1 }, - { NULL, NULL, 0, 0, 0 } -}; -class Alsa_AO_Interface : public AO_Interface { - public: - Alsa_AO_Interface(const std::string& subdevice); - virtual ~Alsa_AO_Interface(); - - virtual MPXP_Rc open(unsigned flags); - virtual MPXP_Rc configure(unsigned rate,unsigned channels,unsigned format); - virtual unsigned samplerate() const; - virtual unsigned channels() const; - virtual unsigned format() const; - virtual unsigned buffersize() const; - virtual unsigned outburst() const; - virtual MPXP_Rc test_rate(unsigned r) const; - virtual MPXP_Rc test_channels(unsigned c) const; - virtual MPXP_Rc test_format(unsigned f) const; - virtual void reset(); - virtual unsigned get_space(); - virtual float get_delay(); - virtual unsigned play(const any_t* data,unsigned len,unsigned flags); - virtual void pause(); - virtual void resume(); - virtual MPXP_Rc ctrl(int cmd,long arg) const; - private: - unsigned _channels,_samplerate,_format; - unsigned _buffersize,_outburst; - unsigned bps() const { return _channels*_samplerate*afmt2bps(_format); } - void show_caps(unsigned device) const; - int xrun(const char *str_mode) const; - unsigned play_normal(const any_t* data, unsigned len); - unsigned play_mmap(const any_t* data, unsigned len); - snd_pcm_format_t fmt2alsa(unsigned format) const; - - snd_pcm_t* handler; - snd_pcm_format_t snd_format; - snd_pcm_hw_params_t* hwparams; - snd_pcm_sw_params_t* swparams; - size_t bytes_per_sample; - int first; -}; - -Alsa_AO_Interface::Alsa_AO_Interface(const std::string& _subdevice) - :AO_Interface(_subdevice) {} -Alsa_AO_Interface::~Alsa_AO_Interface() { - int err; - if(!handler) { - MSG_ERR("alsa-uninit: no handler defined!\n"); - return; - } - if (!priv_conf.noblock) { - if ((err = snd_pcm_drain(handler)) < 0) { - MSG_ERR("alsa-uninit: pcm drain error: %s\n", snd_strerror(err)); - return; - } - } - if ((err = snd_pcm_close(handler)) < 0) { - MSG_ERR("alsa-uninit: pcm close error: %s\n", snd_strerror(err)); - return; - } else { - handler = NULL; - MSG_V("alsa-uninit: pcm closed\n"); - } - snd_pcm_hw_params_free(hwparams); - snd_pcm_sw_params_free(swparams); -} - -#define ALSA_DEVICE_SIZE 48 - -#define BUFFERTIME // else SET_CHUNK_SIZE -#undef USE_POLL - -snd_pcm_format_t Alsa_AO_Interface::fmt2alsa(unsigned f) const { - switch (f) - { - case AFMT_S8: - return SND_PCM_FORMAT_S8; - break; - case AFMT_U8: - return SND_PCM_FORMAT_U8; - break; - case AFMT_U16_LE: - return SND_PCM_FORMAT_U16_LE; - break; - case AFMT_U16_BE: - return SND_PCM_FORMAT_U16_BE; - break; -#ifndef WORDS_BIGENDIAN - case AFMT_AC3: -#endif - case AFMT_S16_LE: - return SND_PCM_FORMAT_S16_LE; - break; -#ifdef WORDS_BIGENDIAN - case AFMT_AC3: -#endif - case AFMT_S16_BE: - return SND_PCM_FORMAT_S16_BE; - break; - case AFMT_S32_LE: - return SND_PCM_FORMAT_S32_LE; - break; - case AFMT_S32_BE: - return SND_PCM_FORMAT_S32_BE; - break; - case AFMT_U32_LE: - return SND_PCM_FORMAT_U32_LE; - break; - case AFMT_U32_BE: - return SND_PCM_FORMAT_U32_BE; - break; - case AFMT_S24_LE: - return SND_PCM_FORMAT_S24_LE; - break; - case AFMT_S24_BE: - return SND_PCM_FORMAT_S24_BE; - break; - case AFMT_U24_LE: - return SND_PCM_FORMAT_U24_LE; - break; - case AFMT_U24_BE: - return SND_PCM_FORMAT_U24_BE; - break; - case AFMT_FLOAT32: -#ifdef WORDS_BIGENDIAN - return SND_PCM_FORMAT_FLOAT_BE; -#else - return SND_PCM_FORMAT_FLOAT_LE; -#endif - break; - default: - return SND_PCM_FORMAT_MPEG; - break; - } -} - -/* to set/get/query special features/parameters */ -MPXP_Rc Alsa_AO_Interface::ctrl(int cmd, long arg) const { - switch(cmd) { - case AOCONTROL_GET_VOLUME: - case AOCONTROL_SET_VOLUME: -#ifndef WORDS_BIGENDIAN - { //seems to be a problem on macs? - ao_control_vol_t *vol = (ao_control_vol_t *)arg; - - int err; - snd_mixer_t *handle; - snd_mixer_elem_t *elem; - snd_mixer_selem_id_t *sid; - - const char *mix_name = "PCM"; - const char *card = "default"; - - long pmin, pmax; - long get_vol, set_vol; - float calc_vol, diff, f_multi; - - if(_format == AFMT_AC3) return MPXP_True; - - //allocate simple id - snd_mixer_selem_id_alloca(&sid); - - //sets simple-mixer index and name - snd_mixer_selem_id_set_index(sid, 0); - snd_mixer_selem_id_set_name(sid, mix_name); - - if ((err = snd_mixer_open(&handle, 0)) < 0) { - MSG_ERR("alsa-control_ao: mixer open error: %s\n", snd_strerror(err)); - return MPXP_Error; - } - - if ((err = snd_mixer_attach(handle, card)) < 0) { - MSG_ERR("alsa-control_ao: mixer attach %s error: %s", card, snd_strerror(err)); - snd_mixer_close(handle); - return MPXP_Error; - } - - if ((err = snd_mixer_selem_register(handle, NULL, NULL)) < 0) { - MSG_ERR("alsa-control_ao: mixer register error: %s", snd_strerror(err)); - snd_mixer_close(handle); - return MPXP_Error; - } - if ((err = snd_mixer_load(handle)) < 0) { - MSG_ERR("alsa-control_ao: mixer load error: %s", snd_strerror(err)); - snd_mixer_close(handle); - return MPXP_Error; - } - - elem = snd_mixer_find_selem(handle, sid); - if (!elem) { - MSG_ERR("alsa-control_ao: unable to find simple control_ao '%s',%i\n", snd_mixer_selem_id_get_name(sid), snd_mixer_selem_id_get_index(sid)); - snd_mixer_close(handle); - return MPXP_Error; - } - - snd_mixer_selem_get_playback_volume_range(elem,&pmin,&pmax); - f_multi = (100 / (float)pmax); - - if (cmd == AOCONTROL_SET_VOLUME) { - - diff = (vol->left+vol->right) / 2; - set_vol = rint(diff / f_multi); - - if (set_vol < 0) set_vol = 0; - else if (set_vol > pmax) set_vol = pmax; - - //setting channels - if ((err = snd_mixer_selem_set_playback_volume(elem, snd_mixer_selem_channel_id_t(0), set_vol)) < 0) { - MSG_ERR("alsa-control_ao: error setting left channel, %s",snd_strerror(err)); - return MPXP_Error; - } - if ((err = snd_mixer_selem_set_playback_volume(elem, snd_mixer_selem_channel_id_t(1), set_vol)) < 0) { - MSG_ERR("alsa-control_ao: error setting right channel, %s",snd_strerror(err)); - return MPXP_Error; - } - } else { - snd_mixer_selem_get_playback_volume(elem, snd_mixer_selem_channel_id_t(0), &get_vol); - calc_vol = get_vol; - calc_vol = rintf(calc_vol * f_multi); - - vol->left = vol->right = (int)calc_vol; - - //printf("get_vol = %i, calc=%i\n",get_vol, calc_vol); - } - snd_mixer_close(handle); - return MPXP_Ok; - } -#else // end big-endian - return MPXP_Unknown; -#endif - } //end witch - return MPXP_Unknown; -} - -void Alsa_AO_Interface::show_caps(unsigned device) const { - snd_pcm_info_t *alsa_info; - snd_pcm_t *pcm; - snd_pcm_hw_params_t *hw_params; - snd_output_t *sout; - int err,cards=-1; - unsigned rmin,rmax; - unsigned j,sdmin,sdmax; - char adevice[ALSA_DEVICE_SIZE]; - if ((err = snd_card_next(&cards)) < 0 || cards < 0) - { - MSG_ERR("AO-INFO: alsa-init: no soundcards found: %s\n", snd_strerror(err)); - return; - } - snd_pcm_info_malloc(&alsa_info); - snd_pcm_info_set_device(alsa_info,device); - sdmin=snd_pcm_info_get_subdevice(alsa_info); - sdmax=sdmin+snd_pcm_info_get_subdevices_count(alsa_info); - MSG_INFO("AO-INFO: show caps for device %i:%i-%i\n",device,sdmin,sdmax); - for(j=sdmin;j<=sdmax;j++) { - int i; - snd_pcm_info_set_subdevice(alsa_info,j); - sprintf(adevice,"hw:%u,%u",snd_pcm_info_get_device(alsa_info),snd_pcm_info_get_subdevice(alsa_info)); - MSG_INFO("AO-INFO: %s %s.%s.%s\n\n",adevice,snd_pcm_info_get_id(alsa_info),snd_pcm_info_get_name(alsa_info),snd_pcm_info_get_subdevice_name(alsa_info)); - if(snd_pcm_open(&pcm,adevice,SND_PCM_STREAM_PLAYBACK,SND_PCM_NONBLOCK)<0) { - MSG_ERR("alsa-init: playback open error: %s\n", snd_strerror(err)); - return; - } - snd_pcm_hw_params_malloc(&hw_params); - if(snd_pcm_hw_params_any(pcm, hw_params)<0) { - MSG_ERR("alsa-init: can't get initial parameters: %s\n", snd_strerror(err)); - return; - } - MSG_INFO(" AO-INFO: List of access type: "); - for(i=0;i<SND_PCM_ACCESS_LAST;i++) - if(!snd_pcm_hw_params_test_access(pcm,hw_params,snd_pcm_access_t(i))) - MSG_INFO("%s ",snd_pcm_access_name(snd_pcm_access_t(i))); - MSG_INFO("\n"); - MSG_INFO(" AO-INFO: List of supported formats: "); - for(i=0;i<SND_PCM_FORMAT_LAST;i++) - if(!snd_pcm_hw_params_test_format(pcm,hw_params,snd_pcm_format_t(i))) - MSG_INFO("%s ",snd_pcm_format_name(snd_pcm_format_t(i))); - MSG_INFO("\n"); - MSG_INFO(" AO-INFO: List of supported channels: "); - for(i=0;i<64;i++) - if(!snd_pcm_hw_params_test_format(pcm,hw_params,snd_pcm_format_t(i))) - MSG_INFO("%u ",i); - MSG_INFO("\n"); - snd_pcm_hw_params_get_rate_min(hw_params,&rmin,&err); - snd_pcm_hw_params_get_rate_max(hw_params,&rmax,&err); - MSG_INFO(" AO-INFO: Rates range: %u %u\n",rmin,rmax); - snd_output_stdio_attach(&sout, stderr, 0); - snd_pcm_hw_params_dump(hw_params, sout); - if(hw_params) snd_pcm_hw_params_free(hw_params); - if(pcm) snd_pcm_close(pcm); - } - snd_pcm_info_free(alsa_info); -} - -/* - open & setup audio device - return: 1=success 0=fail -*/ -MPXP_Rc Alsa_AO_Interface::open(unsigned flags) { - int err; - int cards = -1; - snd_pcm_info_t *alsa_info; - const char *str_block_mode; - char *alsa_dev=NULL; - char *alsa_port=NULL; - char alsa_device[ALSA_DEVICE_SIZE]; - UNUSED(flags); - first=1; - - handler = NULL; - alsa_device[0]='\0'; - - MSG_V("alsa-init: compiled for ALSA-%s\n", SND_LIB_VERSION_STR); - - if (!subdevice.empty()) { - const char *param; - char *p; - // example: -ao alsa:hw:0#mmap=1 - param=mrl_parse_line(subdevice,NULL,NULL,&alsa_dev,&alsa_port); - mrl_parse_params(param,alsaconf); - if(alsa_port) { - p=strchr(alsa_port,','); - if(p) { - if(strcmp(p+1,"-1")==0) { - *p='\0'; - show_caps(atoi(alsa_port)); - return MPXP_False; - } - } - if(alsa_port) snprintf(alsa_device,sizeof(alsa_device),"%s:%s",alsa_dev,alsa_port); - else strncpy(alsa_device,alsa_dev,sizeof(alsa_device)); - MSG_V("alsa-init: soundcard set to %s\n", alsa_device); - } //end parsing ao->subdevice - } - - if ((err = snd_card_next(&cards)) < 0 || cards < 0) { - MSG_ERR("alsa-init: no soundcards found: %s\n", snd_strerror(err)); - return MPXP_False; - } - - if (alsa_device[0] == '\0') { - int tmp_device, tmp_subdevice; - - if ((err = snd_pcm_info_malloc(&alsa_info)) < 0) { - MSG_ERR("alsa-init: memory allocation error: %s\n", snd_strerror(err)); - return MPXP_False; - } - - if ((tmp_device = snd_pcm_info_get_device(alsa_info)) < 0) { - MSG_ERR("alsa-init: cant get device\n"); - return MPXP_False; - } - - if ((tmp_subdevice = snd_pcm_info_get_subdevice(alsa_info)) < 0) { - MSG_ERR("alsa-init: cant get subdevice\n"); - return MPXP_False; - } - MSG_V("alsa-init: got device=%i, subdevice=%i\n", tmp_device, tmp_subdevice); - - if ((err = snprintf(alsa_device, ALSA_DEVICE_SIZE, "hw:%1d,%1d", tmp_device, tmp_subdevice)) <= 0) { - MSG_ERR("alsa-init: cant wrote device-id\n"); - } - snd_pcm_info_free(alsa_info); - } - - MSG_WARN("alsa-init: Testing & bugs are welcome. Found %d cards, use: %s\n",cards+1,alsa_device); - //setting modes for block or nonblock-mode - int open_mode,block_mode; - if (priv_conf.noblock) { - open_mode = SND_PCM_NONBLOCK; - block_mode = 1; - str_block_mode = "nonblock-mode"; - } else { - open_mode = 0; - block_mode = 0; - str_block_mode = "block-mode"; - } - - if (!handler) { - //modes = 0, SND_PCM_NONBLOCK, SND_PCM_ASYNC - if ((err = snd_pcm_open(&handler, alsa_device, SND_PCM_STREAM_PLAYBACK, open_mode)) < 0) { - if (priv_conf.noblock) { - MSG_ERR("alsa-init: open in nonblock-mode failed, trying to open in block-mode\n"); - if ((err = snd_pcm_open(&handler, alsa_device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) { - MSG_ERR("alsa-init: playback open error: %s\n", snd_strerror(err)); - alsa_device[0]='\0'; - return MPXP_False; - } else { - block_mode = 0; - str_block_mode = "block-mode"; - } - } else { - MSG_ERR("alsa-init: playback open error: %s\n", snd_strerror(err)); - alsa_device[0]='\0'; - return MPXP_False; - } - } - alsa_device[0]='\0'; - if ((err = snd_pcm_nonblock(handler, block_mode)) < 0) { - MSG_ERR("alsa-init: error set block-mode %s\n", snd_strerror(err)); - } else MSG_V("alsa-init: pcm opend in %s\n", str_block_mode); - - snd_pcm_hw_params_malloc(&hwparams); - snd_pcm_sw_params_malloc(&swparams); - - // setting hw-parameters - if ((err = snd_pcm_hw_params_any(handler, hwparams)) < 0) { - MSG_ERR("alsa-init: unable to get initial parameters: %s\n", - snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_params_any()\n"); - if (priv_conf.mmap) { - snd_pcm_access_mask_t *mask = (snd_pcm_access_mask_t*)alloca(snd_pcm_access_mask_sizeof()); - snd_pcm_access_mask_none(mask); - snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_INTERLEAVED); - snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_NONINTERLEAVED); - snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_COMPLEX); - err = snd_pcm_hw_params_set_access_mask(handler, hwparams, mask); - MSG_ERR("alsa-init: mmap set\n"); - } else { - err = snd_pcm_hw_params_set_access(handler, hwparams,SND_PCM_ACCESS_RW_INTERLEAVED); - MSG_DBG2("snd_pcm_hw_params_set_access(SND_PCM_ACCESS_RW_INTERLEAVED)\n"); - } - if (err < 0) { - MSG_ERR("alsa-init: unable to set access type: %s\n", snd_strerror(err)); - return MPXP_False; - } - } // end switch priv->handler (spdif) - return MPXP_Ok; -} // end init - -MPXP_Rc Alsa_AO_Interface::configure(unsigned r,unsigned c,unsigned f) { - int err,i; - size_t chunk_size=0,chunk_bytes,bits_per_sample,bits_per_frame; - snd_pcm_uframes_t dummy; - - MSG_V("alsa-conf: requested format: %d Hz, %d channels, %s\n", r, - c, ao_format_name(f)); - - _samplerate = r; - _format = f; - _channels = c; - _outburst = OUTBURST; - //ao->buffersize = MAX_OUTBURST; // was 16384 - - snd_format=fmt2alsa(_format); - - switch(snd_format) { - case SND_PCM_FORMAT_S16_LE: - case SND_PCM_FORMAT_U16_LE: - case SND_PCM_FORMAT_S16_BE: - case SND_PCM_FORMAT_U16_BE: - case SND_PCM_FORMAT_S32_LE: - case SND_PCM_FORMAT_S32_BE: - case SND_PCM_FORMAT_U32_LE: - case SND_PCM_FORMAT_U32_BE: - case SND_PCM_FORMAT_FLOAT_BE: - case SND_PCM_FORMAT_FLOAT_LE: - case SND_PCM_FORMAT_S24_LE: - case SND_PCM_FORMAT_S24_BE: - case SND_PCM_FORMAT_U24_LE: - case SND_PCM_FORMAT_U24_BE: - break; - case -1: - MSG_ERR("alsa-conf: invalid format (%s) requested - output disabled\n", - ao_format_name(_format)); - return MPXP_False; - default: - break; - } - bytes_per_sample = bps() / _samplerate; - - if ((err = snd_pcm_hw_params_set_format(handler, hwparams, - snd_format)) < 0) { - MSG_ERR("alsa-conf: unable to set format(%s): %s\n", - snd_pcm_format_name(snd_format), - snd_strerror(err)); - MSG_HINT("Please try one of: "); - for(i=0;i<SND_PCM_FORMAT_LAST;i++) - if (!(snd_pcm_hw_params_test_format(handler, hwparams, snd_pcm_format_t(i)))) - MSG_HINT("%s ",snd_pcm_format_name(snd_pcm_format_t(i))); - MSG_HINT("\n"); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_params_set_format(%i)\n",snd_format); - - if ((err = snd_pcm_hw_params_set_rate_near(handler, hwparams, &_samplerate, 0)) < 0) { - MSG_ERR("alsa-conf: unable to set samplerate %u: %s\n", - _samplerate, - snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_params_set_rate_near(%i)\n",_samplerate); - - if ((err = snd_pcm_hw_params_set_channels(handler, hwparams, - _channels)) < 0) { - MSG_ERR("alsa-conf: unable to set %u channels: %s\n", - _channels, - snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_params_set_channels(%i)\n",_channels); -#ifdef BUFFERTIME - { - int dir; - unsigned period_time,alsa_buffer_time = 500000; /* buffer time in us */ - - if ((err = snd_pcm_hw_params_set_buffer_time_near(handler, hwparams, &alsa_buffer_time, &dir)) < 0) { - MSG_ERR("alsa-init: unable to set buffer time near: %s\n", - snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_set_buffer_time_near(%i)\n",alsa_buffer_time); - - period_time = alsa_buffer_time/4; - if ((err = snd_pcm_hw_params_set_period_time_near(handler, hwparams, &period_time, &dir)) < 0) { - /* original: alsa_buffer_time/ao->bps */ - MSG_ERR("alsa-init: unable to set period time: %s\n", - snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_set_period_time_near(%i)\n",period_time); - MSG_V("alsa-init: buffer_time: %d, period_time :%d\n",alsa_buffer_time, period_time); - } -#else - { - int dir=0; - unsigned period_time=100000; /* period time in us */ - snd_pcm_uframes_t size; - if ((err = snd_pcm_hw_params_set_period_time_near(handler, hwparams, &period_time, &dir)) < 0) { - MSG_ERR("alsa-init: unable to set period_time: %s\n", snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_set_period_time(%i)\n",period_time); - - //get chunksize - if ((err = snd_pcm_hw_params_get_period_size(hwparams, &size, &dir)) < 0) { - MSG_ERR("alsa-init: unable to get period_size: %s\n", snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_get_period_size(%i)\n",size); - chunk_size=size; - } -#endif - // gets buffersize for control_ao - if ((err = snd_pcm_hw_params_get_buffer_size(hwparams,&dummy)) < 0) { - MSG_ERR("alsa-conf: unable to get buffersize: %s\n", snd_strerror(err)); - return MPXP_False; - } else { - _buffersize = dummy * bytes_per_sample; - MSG_V("alsa-conf: got buffersize=%i\n", _buffersize); - } - MSG_DBG2("snd_pcm_hw_params_get_buffer_size(%i)\n",dummy); - bits_per_sample = snd_pcm_format_physical_width(snd_format); - MSG_DBG2("%i=snd_pcm_hw_format_pohysical_width()\n",bits_per_sample); - bits_per_frame = bits_per_sample * _channels; - chunk_bytes = chunk_size * bits_per_frame / 8; - - MSG_V("alsa-conf: bits per sample (bps)=%i, bits per frame (bpf)=%i, chunk_bytes=%i\n",bits_per_sample,bits_per_frame,chunk_bytes); - - /* finally install hardware parameters */ - if ((err = snd_pcm_hw_params(handler, hwparams)) < 0) { - MSG_ERR("alsa-conf: unable to set hw-parameters: %s\n", - snd_strerror(err)); - return MPXP_False; - } - MSG_DBG2("snd_pcm_hw_params()\n"); - // setting sw-params (only avail-min) if noblocking mode was choosed - if (priv_conf.noblock) { - if ((err = snd_pcm_sw_params_current(handler, swparams)) < 0) { - MSG_ERR("alsa-conf: unable to get parameters: %s\n",snd_strerror(err)); - return MPXP_False; - } - - //set min available frames to consider pcm ready (4) - //increased for nonblock-mode should be set dynamically later - if ((err = snd_pcm_sw_params_set_avail_min(handler, swparams, 4)) < 0) { - MSG_ERR("alsa-conf: unable to set avail_min %s\n",snd_strerror(err)); - return MPXP_False; - } - - if ((err = snd_pcm_sw_params(handler, swparams)) < 0) { - MSG_ERR("alsa-conf: unable to install sw-params\n"); - return MPXP_False; - } - - }//end swparams - - if ((err = snd_pcm_prepare(handler)) < 0) { - MSG_ERR("alsa-conf: pcm prepare error: %s\n", snd_strerror(err)); - return MPXP_False; - } - // end setting hw-params - MSG_V("alsa-conf: %d Hz/%d channels/%d bpf/%d bytes buffer/%s\n", - _samplerate, _channels, bytes_per_sample, _buffersize, - snd_pcm_format_description(snd_format)); - return MPXP_Ok; -} // end config_ao - -void Alsa_AO_Interface::pause() { - int err; - - if (!priv_conf.noblock) { - //drain causes error in nonblock-mode! - if ((err = snd_pcm_drain(handler)) < 0) { - MSG_ERR("alsa-pause: pcm drain error: %s\n", snd_strerror(err)); - return; - } - } else { - MSG_V("alsa-pause: paused nonblock\n"); - return; - } -} - -void Alsa_AO_Interface::resume() { - int err; - - if ((err = snd_pcm_prepare(handler)) < 0) { - MSG_ERR("alsa-resume: pcm prepare error: %s\n", snd_strerror(err)); - return; - } -} - -/* stop playing and empty buffers (for seeking/pause) */ -void Alsa_AO_Interface::reset() { - int err; - - if ((err = snd_pcm_drop(handler)) < 0) { - MSG_ERR("alsa-reset: pcm drop error: %s\n", snd_strerror(err)); - return; - } - if ((err = snd_pcm_prepare(handler)) < 0) { - MSG_ERR("alsa-reset: pcm prepare error: %s\n", snd_strerror(err)); - return; - } - return; -} - -#ifdef USE_POLL -static int __FASTCALL__ wait_for_poll(snd_pcm_t *handle, struct pollfd *ufds, unsigned int count) -{ - unsigned short revents; - - while (1) { - poll(ufds, count, -1); - snd_pcm_poll_descriptors_revents(handle, ufds, count, &revents); - if (revents & POLLERR) return -EIO; - if (revents & POLLOUT) return 0; - } -} -#endif - -static void _timersub(const struct timeval*a,const struct timeval* b,struct timeval* result) { - result->tv_sec = a->tv_sec - b->tv_sec; - result->tv_usec = a->tv_usec - b->tv_usec; - if (result->tv_usec < 0) { - --result->tv_sec; - result->tv_usec += 1000000; - } -} - -/* I/O error handler */ -int Alsa_AO_Interface::xrun(const char *str_mode) const { - int err; - snd_pcm_status_t *status; - - snd_pcm_status_alloca(&status); - - if ((err = snd_pcm_status(handler, status))<0) { - MSG_ERR("status error: %s", snd_strerror(err)); - return 0; - } - - if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN) { - struct timeval now, diff, tstamp; - gettimeofday(&now, 0); - snd_pcm_status_get_trigger_tstamp(status, &tstamp); - _timersub(&now, &tstamp, &diff); - MSG_V("alsa-%s: xrun of at least %.3f msecs. resetting stream\n", - str_mode, - diff.tv_sec * 1000 + diff.tv_usec / 1000.0); - } - - if ((err = snd_pcm_prepare(handler))<0) { - MSG_ERR("xrun: prepare error: %s", snd_strerror(err)); - return 0; - } - - return 1; /* ok, data should be accepted again */ -} - -unsigned Alsa_AO_Interface::play(const any_t* data, unsigned len, unsigned flags) { - unsigned result; - UNUSED(flags); - MSG_DBG2("[ao_alsa] %s playing %i bytes\n",priv_conf.mmap?"mmap":"normal",len); - if (priv_conf.mmap) result = play_mmap(data, len); - else result = play_normal(data, len); - return result; -} - -/* - plays 'len' bytes of 'data' - returns: number of bytes pl... [truncated message content] |
From: <nic...@us...> - 2012-12-17 08:47:09
|
Revision: 567 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=567&view=rev Author: nickols_k Date: 2012-12-17 08:47:00 +0000 (Mon, 17 Dec 2012) Log Message: ----------- rename libao2 ->libao3 (TRANSACTION END) Note about subfolders renaming: It seems that between the computer where i perform development and SVN server (sourceforge.net) exist intermediate computer (or server) which holds copy of project's sources. When i'm renaming folders then i free sources of my project from control of malefactor(s). To confirm that it's enough to study shangesets of project, exactly changeset.542: Date: 2012-12-11 16:18:22 +0000 (Tue, 11 Dec 2012) Log Message: ----------- rename libvo -> libvo2 (TRANSACTION BEGIN) Added Paths: ----------- mplayerxp/libvo2/ mplayerxp/libvo2/sub.cpp mplayerxp/libvo2/vo_fbdev.cpp Removed Paths: ------------- mplayerxp/libvo/Makefile mplayerxp/libvo/aspect.cpp mplayerxp/libvo/aspect.h mplayerxp/libvo/dri_vo.h mplayerxp/libvo/font_load.cpp mplayerxp/libvo/font_load.h mplayerxp/libvo/img_format.cpp mplayerxp/libvo/img_format.h mplayerxp/libvo/jpeg_enc.cpp mplayerxp/libvo/jpeg_enc.h ... It's clear that computer of malefactor(s) gave 2 files from own repository. Furthermore, everytime when i' trying to rename some folder, i got the error: $svn ci -m "renaming oldfodlername -> newfoldername" SVN: deleting 'oldfoldername' SVN: item 'oldfoldername' is out of date $svn --version svn, version 1.6.19 (r1383947) compiled Dec 4 2012, 10:30:48 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.apache.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). Revision Links: -------------- http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=1383947&view=rev Modified Paths: -------------- mplayerxp/Makefile mplayerxp/libao3/Makefile mplayerxp/libao3/ao_nas.cpp mplayerxp/libao3/ao_oss.cpp mplayerxp/libao3/ao_sdl.cpp mplayerxp/libmpcodecs/ad.h mplayerxp/libmpcodecs/ad_a52.cpp mplayerxp/libmpcodecs/ad_acm.cpp mplayerxp/libmpcodecs/ad_dca.cpp mplayerxp/libmpcodecs/ad_dvdpcm.cpp mplayerxp/libmpcodecs/ad_faad.cpp mplayerxp/libmpcodecs/ad_hwac3.cpp mplayerxp/libmpcodecs/ad_lavc.cpp mplayerxp/libmpcodecs/ad_libdv.cpp mplayerxp/libmpcodecs/ad_mp3.cpp mplayerxp/libmpcodecs/ad_pcm.cpp mplayerxp/libmpcodecs/ad_qtaudio.cpp mplayerxp/libmpcodecs/ad_real.cpp mplayerxp/libmpcodecs/ad_twin.cpp mplayerxp/libmpcodecs/ad_vorbis.cpp mplayerxp/libmpcodecs/dec_audio.cpp mplayerxp/libmpconf/m_option.cpp mplayerxp/libmpdemux/demux_ac3.cpp mplayerxp/libmpdemux/demux_aiff.cpp mplayerxp/libmpdemux/demux_dca.cpp mplayerxp/libmpdemux/demux_flac.cpp mplayerxp/libmpdemux/demux_lavf.cpp mplayerxp/libmpdemux/demux_mkv.cpp mplayerxp/libmpdemux/demux_mov.cpp mplayerxp/libmpdemux/demux_mp3.cpp mplayerxp/libmpdemux/demux_musepack.cpp mplayerxp/libmpdemux/demux_ogg.cpp mplayerxp/libmpdemux/demux_rawaudio.cpp mplayerxp/libmpdemux/demux_real.cpp mplayerxp/libmpdemux/demux_realaud.cpp mplayerxp/libmpdemux/demux_snd_au.cpp mplayerxp/libmpdemux/demux_voc.cpp mplayerxp/libmpdemux/demux_vqf.cpp mplayerxp/libmpdemux/demux_wav.cpp mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpstream2/s_oss.cpp mplayerxp/libmpstream2/s_tv.cpp mplayerxp/libmpstream2/tvi/tvi_v4l.cpp mplayerxp/mplayerxp.cpp mplayerxp/mplayerxp.h mplayerxp/postproc/Makefile mplayerxp/postproc/af.cpp mplayerxp/xmpcore/mp_aframe.cpp mplayerxp/xmpcore/xmp_aplayer.cpp mplayerxp/xmpcore/xmp_core.cpp mplayerxp/xmpcore/xmp_vplayer.cpp Added Paths: ----------- mplayerxp/postproc/af_ao3.cpp Removed Paths: ------------- mplayerxp/postproc/af_ao2.cpp Modified: mplayerxp/Makefile =================================================================== --- mplayerxp/Makefile 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/Makefile 2012-12-17 08:47:00 UTC (rev 567) @@ -11,7 +11,7 @@ TARGET_EXE = $(PROGNAME) # these subdirectories required installation due binaries within them -SUBDIRS = libmpdemux libmpstream2 libmpsub libplaytree libmpcodecs libmpconf libao2 osdep postproc input2 nls libvo2 xmpcore +SUBDIRS = libmpdemux libmpstream2 libmpsub libplaytree libmpcodecs libmpconf libao3 osdep postproc input2 nls libvo2 xmpcore ifeq ($(ENABLE_WIN32LOADER),yes) SUBDIRS+=loader endif @@ -37,7 +37,7 @@ libmpcodecs/libmpcodecs.a \ libmpsub/libmpsub.a \ libplaytree/libplaytree.a \ - libao2/libao2.a \ + libao3/libao3.a \ postproc/libpostproc.a \ input2/libinput2.a \ libvo2/libvo2.a \ Modified: mplayerxp/libao3/Makefile =================================================================== --- mplayerxp/libao3/Makefile 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libao3/Makefile 2012-12-17 08:47:00 UTC (rev 567) @@ -1,7 +1,7 @@ include ../mp_config.mak -LIBNAME = libao2.a +LIBNAME = libao3.a # TODO: moveout ao_sdl.c so it's only used when SDL is detected CXXSRCS=audio_out.cpp afmt.cpp Modified: mplayerxp/libao3/ao_nas.cpp =================================================================== --- mplayerxp/libao3/ao_nas.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libao3/ao_nas.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -457,7 +457,7 @@ _outburst = NAS_FRAG_SIZE; buffer_size = bps(); /* buffer 1 second */ - MSG_V("ao2: %d Hz %d chans %s\n",r,c,afmt2str(f)); + MSG_V("ao3: %d Hz %d chans %s\n",r,c,afmt2str(f)); /* * round up to multiple of NAS_FRAG_SIZE Modified: mplayerxp/libao3/ao_oss.cpp =================================================================== --- mplayerxp/libao3/ao_oss.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libao3/ao_oss.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -209,7 +209,7 @@ MPXP_Rc Oss_AO_Interface::configure(unsigned r,unsigned c,unsigned f) { - MSG_V("ao2: %d Hz %d chans %s\n",r,c,ao_format_name(f)); + MSG_V("ao3: %d Hz %d chans %s\n",r,c,ao_format_name(f)); if(f == AFMT_AC3) { _samplerate=r; Modified: mplayerxp/libao3/ao_sdl.cpp =================================================================== --- mplayerxp/libao3/ao_sdl.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libao3/ao_sdl.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -2,7 +2,7 @@ #include "osdep/mplib.h" using namespace mpxp; /* - * ao_sdl.c - libao2 SDLlib Audio Output Driver for MPlayer + * ao_sdl.c - libao3 SDLlib Audio Output Driver for MPlayer * * This driver is under the same license as MPlayer. * (http://mplayer.sf.net) Modified: mplayerxp/libmpcodecs/ad.h =================================================================== --- mplayerxp/libmpcodecs/ad.h 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad.h 2012-12-17 08:47:00 UTC (rev 567) @@ -6,7 +6,7 @@ #include "libmpconf/cfgparser.h" #include "xmpcore/xmp_enums.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" struct ad_info_t { const char *descr; /* driver description ("Autodesk FLI/FLC Animation decoder" */ Modified: mplayerxp/libmpcodecs/ad_a52.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -18,8 +18,8 @@ #include "osdep/mm_accel.h" #include "mplayerxp.h" #include "liba52/a52.h" -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "postproc/af.h" struct ad_private_t { Modified: mplayerxp/libmpcodecs/ad_acm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -10,7 +10,7 @@ #include "codecs_ld.h" #include "loader/wineacm.h" #include "libmpdemux/aviprint.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "help_mp.h" static const ad_info_t info = { Modified: mplayerxp/libmpcodecs/ad_dca.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -18,8 +18,8 @@ #include "osdep/mm_accel.h" #include "mplayerxp.h" #include "osdep/bswap.h" -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "postproc/af.h" #define MAX_AC5_FRAME 4096 Modified: mplayerxp/libmpcodecs/ad_dvdpcm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -6,7 +6,7 @@ #include <unistd.h> #include "ad_internal.h" #include "osdep/bswap.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" struct ad_private_t { sh_audio_t* sh; Modified: mplayerxp/libmpcodecs/ad_faad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -18,8 +18,8 @@ #include "mplayerxp.h" #include "osdep/cpudetect.h" #include "osdep/mm_accel.h" -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "postproc/af.h" static const ad_info_t info = { Modified: mplayerxp/libmpcodecs/ad_hwac3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -14,7 +14,7 @@ #include "codecs_ld.h" #include "osdep/cpudetect.h" #include "osdep/bswap.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #define IEC61937_DATA_TYPE_AC3 1 Modified: mplayerxp/libmpcodecs/ad_lavc.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -8,7 +8,7 @@ #include <unistd.h> #include <assert.h> #include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "ad_internal.h" #include "help_mp.h" Modified: mplayerxp/libmpcodecs/ad_libdv.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "libmpstream2/stream.h" #include "libmpdemux/demuxer.h" #include "libmpdemux/stheader.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "osdep/bswap.h" #include "ad_internal.h" Modified: mplayerxp/libmpcodecs/ad_mp3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -12,8 +12,8 @@ #include "osdep/fastmemcpy.h" #include "osdep/bswap.h" #include "codecs_ld.h" -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "postproc/af.h" static const ad_info_t info = { Modified: mplayerxp/libmpcodecs/ad_pcm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_pcm.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_pcm.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -5,7 +5,7 @@ #include <stdlib.h> #include <unistd.h> #include "ad_internal.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "osdep/bswap.h" struct ad_private_t { Modified: mplayerxp/libmpcodecs/ad_qtaudio.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -11,7 +11,7 @@ #include "osdep/bswap.h" #include "codecs_ld.h" #include "mplayerxp.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #ifdef WIN32_LOADER #include "loader/ldt_keeper.h" #endif Modified: mplayerxp/libmpcodecs/ad_real.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_real.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_real.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -13,7 +13,7 @@ #include "codecs_ld.h" #include "ad_msg.h" #include "osdep/bswap.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" static const ad_info_t info = { "RealAudio decoder", Modified: mplayerxp/libmpcodecs/ad_twin.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -9,7 +9,7 @@ #include "codecs_ld.h" #include "loader/ldt_keeper.h" #include "loader/wine/windef.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "libmpdemux/aviprint.h" #include "help_mp.h" Modified: mplayerxp/libmpcodecs/ad_vorbis.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_vorbis.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/ad_vorbis.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -12,8 +12,8 @@ #include "osdep/bswap.h" #include "codecs_ld.h" #include "ad_internal.h" -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "postproc/af.h" static const ad_info_t info = { Modified: mplayerxp/libmpcodecs/dec_audio.cpp =================================================================== --- mplayerxp/libmpcodecs/dec_audio.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpcodecs/dec_audio.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -18,8 +18,8 @@ #include "libmpconf/codec-cfg.h" #include "dec_audio.h" -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "mplayerxp.h" #include "libmpdemux/demuxer_r.h" #include "postproc/af.h" Modified: mplayerxp/libmpconf/m_option.cpp =================================================================== --- mplayerxp/libmpconf/m_option.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpconf/m_option.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -993,7 +993,7 @@ NULL }; -#include "libao2/afmt.h" +#include "libao3/afmt.h" /* FIXME: sync with af_format.h */ static struct { Modified: mplayerxp/libmpdemux/demux_ac3.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ac3.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_ac3.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demux_aiff.cpp =================================================================== --- mplayerxp/libmpdemux/demux_aiff.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_aiff.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -11,7 +11,7 @@ #include "stheader.h" #include "libmpconf/cfgparser.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "demux_msg.h" Modified: mplayerxp/libmpdemux/demux_dca.cpp =================================================================== --- mplayerxp/libmpdemux/demux_dca.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_dca.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demux_flac.cpp =================================================================== --- mplayerxp/libmpdemux/demux_flac.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_flac.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demux_lavf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_lavf.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_lavf.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -32,7 +32,7 @@ #include "libmpcodecs/codecs_ld.h" #include "libmpconf/cfgparser.h" #include "aviprint.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "demux_msg.h" #define PROBE_BUF_SIZE 2048 Modified: mplayerxp/libmpdemux/demux_mkv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mkv.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_mkv.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -38,7 +38,7 @@ #include "libvo2/sub.h" #include "libmpcodecs/codecs_ld.h" #include "libmpcodecs/libnuppelvideo/minilzo.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "demux_msg.h" #include "loader/qtx/qtxsdk/components.h" Modified: mplayerxp/libmpdemux/demux_mov.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mov.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_mov.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -41,7 +41,7 @@ #include "loader/qtx/qtxsdk/components.h" #include "demux_msg.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #ifdef HAVE_ZLIB #include <zlib.h> Modified: mplayerxp/libmpdemux/demux_mp3.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mp3.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_mp3.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -17,7 +17,7 @@ #include "stheader.h" #include "genres.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demux_musepack.cpp =================================================================== --- mplayerxp/libmpdemux/demux_musepack.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_musepack.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demux_ogg.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ogg.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_ogg.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -26,7 +26,7 @@ #include "libmpcodecs/codecs_ld.h" #include "libmpcodecs/dec_audio.h" #include "libvo2/video_out.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "demux_msg.h" #define BLOCK_SIZE 4096 Modified: mplayerxp/libmpdemux/demux_rawaudio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -11,7 +11,7 @@ #include "stheader.h" #include "libmpconf/cfgparser.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" int use_rawaudio = 0; Modified: mplayerxp/libmpdemux/demux_real.cpp =================================================================== --- mplayerxp/libmpdemux/demux_real.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_real.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -35,7 +35,7 @@ #include "osdep/bswap.h" #include "aviprint.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "demux_msg.h" #define MKTAG(a, b, c, d) (a | (b << 8) | (c << 16) | (d << 24)) Modified: mplayerxp/libmpdemux/demux_realaud.cpp =================================================================== --- mplayerxp/libmpdemux/demux_realaud.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_realaud.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -18,7 +18,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "osdep/bswap.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "demux_msg.h" Modified: mplayerxp/libmpdemux/demux_snd_au.cpp =================================================================== --- mplayerxp/libmpdemux/demux_snd_au.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_snd_au.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demux_voc.cpp =================================================================== --- mplayerxp/libmpdemux/demux_voc.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_voc.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demux_vqf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_vqf.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_vqf.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -13,7 +13,7 @@ #include "stheader.h" #include "libmpconf/cfgparser.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "demux_msg.h" #define KEYWORD_BYTES 4 Modified: mplayerxp/libmpdemux/demux_wav.cpp =================================================================== --- mplayerxp/libmpdemux/demux_wav.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demux_wav.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -16,7 +16,7 @@ #include "demuxer_internal.h" #include "stheader.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "aviprint.h" #include "osdep/bswap.h" #include "mp3_hdr.h" Modified: mplayerxp/libmpdemux/demuxer.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpdemux/demuxer.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -18,7 +18,7 @@ #include "input2/input.h" #include "osdep/fastmemcpy.h" #include "libvo2/sub.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "demux_msg.h" #include "demuxer.h" Modified: mplayerxp/libmpstream2/s_oss.cpp =================================================================== --- mplayerxp/libmpstream2/s_oss.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpstream2/s_oss.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -19,8 +19,8 @@ #include "mplayerxp.h" #include "xmpcore/mp_aframe.h" #include "postproc/af.h" -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "loader/wine/mmreg.h" #include "stream.h" #include "stream_internal.h" Modified: mplayerxp/libmpstream2/s_tv.cpp =================================================================== --- mplayerxp/libmpstream2/s_tv.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpstream2/s_tv.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -20,7 +20,7 @@ #include "stream.h" #include "stream_internal.h" #include "input2/input.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "mrl.h" #include "tvi/tv.h" @@ -32,10 +32,9 @@ #include "libmpdemux/demuxer.h" #include "libmpdemux/stheader.h" -#include "libao2/afmt.h" #include "libvo2/img_format.h" #include "osdep/fastmemcpy.h" -#include "libao2/audio_out.h" +#include "libao3/audio_out.h" #include "stream_msg.h" Modified: mplayerxp/libmpstream2/tvi/tvi_v4l.cpp =================================================================== --- mplayerxp/libmpstream2/tvi/tvi_v4l.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/libmpstream2/tvi/tvi_v4l.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -27,8 +27,8 @@ #include <stdlib.h> #include <string.h> -#include "libao2/afmt.h" -#include "libao2/audio_out.h" +#include "libao3/afmt.h" +#include "libao3/audio_out.h" #include "libvo2/img_format.h" #include "tv.h" Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/mplayerxp.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -46,9 +46,6 @@ #include "libmpsub/spudec.h" #include "libmpsub/vobsub.h" -#include "libvo2/video_out.h" -#include "libao2/audio_out.h" - #include "osdep/get_path.h" #include "osdep/cpudetect.h" #include "osdep/mm_accel.h" Modified: mplayerxp/mplayerxp.h =================================================================== --- mplayerxp/mplayerxp.h 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/mplayerxp.h 2012-12-17 08:47:00 UTC (rev 567) @@ -12,7 +12,7 @@ #include "xmpcore/xmp_enums.h" #include "libmpconf/cfgparser.h" #include "libmpsub/subreader.h" -#include "libao2/audio_out.h" +#include "libao3/audio_out.h" #include "libvo2/video_out.h" struct audio_decoder_t; Modified: mplayerxp/postproc/Makefile =================================================================== --- mplayerxp/postproc/Makefile 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/postproc/Makefile 2012-12-17 08:47:00 UTC (rev 567) @@ -8,7 +8,7 @@ CXXSRCS=af.cpp aflib.cpp vf.cpp postprocess.cpp swscale.cpp -CXXSRCS+=af_ao2.cpp \ +CXXSRCS+=af_ao3.cpp \ af_channels.cpp \ af_crystality.cpp \ af_delay.cpp \ Modified: mplayerxp/postproc/af.cpp =================================================================== --- mplayerxp/postproc/af.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/postproc/af.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -8,7 +8,7 @@ #include "af.h" #include "af_internal.h" #include "help_mp.h" -#include "libao2/audio_out.h" +#include "libao3/audio_out.h" #include "pp_msg.h" // Static list of filters @@ -359,7 +359,7 @@ if(!s->first){ // Add all filters in the list (if there are any) if(!s->cfg.list){ // To make automatic format conversion work - if(!af_append(s,s->first,"ao2")) + if(!af_append(s,s->first,"ao3")) return MPXP_False; } else{ @@ -373,7 +373,7 @@ } } } - if(strcmp(s->last->info->name,"ao2")!=0) if(!af_append(s,s->last,"ao2")) return MPXP_False; + if(strcmp(s->last->info->name,"ao3")!=0) if(!af_append(s,s->last,"ao3")) return MPXP_False; // Init filters if(MPXP_Ok != af_reinit(s,s->first)) @@ -575,8 +575,8 @@ MPXP_Rc __FASTCALL__ af_query_fmt (const af_stream_t* s,mpaf_format_e fmt) { af_instance_t* filt = s?s->first:NULL; - const char *filt_name=filt?filt->info->name:"ao2"; - if(strcmp(filt_name,"ao2")==0) return mpxp_context().audio().output->test_format(mpaf2afmt(fmt)); + const char *filt_name=filt?filt->info->name:"ao3"; + if(strcmp(filt_name,"ao3")==0) return mpxp_context().audio().output->test_format(mpaf2afmt(fmt)); else if(afmt2mpaf(fmt)==filt->conf.format) return MPXP_True; return MPXP_False; } @@ -584,8 +584,8 @@ MPXP_Rc __FASTCALL__ af_query_rate (const af_stream_t* s,unsigned rate) { af_instance_t* filt = s?s->first:NULL; - const char *filt_name=filt?filt->info->name:"ao2"; - if(strcmp(filt_name,"ao2")==0) return mpxp_context().audio().output->test_rate(rate); + const char *filt_name=filt?filt->info->name:"ao3"; + if(strcmp(filt_name,"ao3")==0) return mpxp_context().audio().output->test_rate(rate); else if(rate==filt->conf.rate) return MPXP_True; return MPXP_False; } @@ -593,8 +593,8 @@ MPXP_Rc __FASTCALL__ af_query_channels (const af_stream_t* s,unsigned nch) { af_instance_t* filt = s?s->first:NULL; - const char *filt_name=filt?filt->info->name:"ao2"; - if(strcmp(filt_name,"ao2")==0) return mpxp_context().audio().output->test_channels(nch); + const char *filt_name=filt?filt->info->name:"ao3"; + if(strcmp(filt_name,"ao3")==0) return mpxp_context().audio().output->test_channels(nch); else if(nch==filt->conf.nch) return MPXP_True; return MPXP_False; } Deleted: mplayerxp/postproc/af_ao2.cpp =================================================================== --- mplayerxp/postproc/af_ao2.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/postproc/af_ao2.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -1,178 +0,0 @@ -#include "mp_config.h" -#include "osdep/mplib.h" -using namespace mpxp; -/* The name speaks for itself this filter is a dummy and will not blow - up regardless of what you do with it. */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "libao2/audio_out.h" -#include "libao2/afmt.h" - -#include "af.h" -#include "af_internal.h" -#include "pp_msg.h" - -static unsigned rates[] = -{ 4000, 5512, 8000, 9600, 11025, 16000, 19200, 22050, 24000, 32000, 38400, 44100, 48000, 64000, 76800, 88200, 96000, 128000, 153600, 176400, 192000 }; - -static unsigned __FASTCALL__ find_best_rate(unsigned irate) -{ - unsigned i,ii; - MPXP_Rc rval; - rval=mpxp_context().audio().output->test_rate(irate); - if(rval == MPXP_True) return irate; - for(i=0;i<sizeof(rates)/sizeof(unsigned)-1;i++) { - if(irate >= rates[i] && irate < rates[i+1]) break; - } - ii=i; - for(;i<sizeof(rates)/sizeof(unsigned);i++) { - rval=mpxp_context().audio().output->test_rate(rates[i]); - if(rval == MPXP_True) return rates[i]; - } - i=ii; - for(;i<sizeof(rates)/sizeof(unsigned);i--) { - rval=mpxp_context().audio().output->test_rate(rates[i]); - if(rval == MPXP_True) return rates[i]; - } - for(i=0;i<sizeof(rates)/sizeof(unsigned);i++) { - rval=mpxp_context().audio().output->test_rate(rates[i]); - if(rval == MPXP_True) return rates[i]; - } - return 44100; -} - -static unsigned __FASTCALL__ find_best_ch(unsigned ich) -{ - unsigned i; - MPXP_Rc rval; - rval=mpxp_context().audio().output->test_channels(ich); - if(rval == MPXP_True) return ich; - for(i=ich>1?ich:1;i<AF_NCH;i++) { - rval=mpxp_context().audio().output->test_channels(i); - if(rval == MPXP_True) return i; - } - for(i=1;i<AF_NCH;i++) { - rval=mpxp_context().audio().output->test_channels(i); - if(rval == MPXP_True) return i; - } - return 2; -} - -struct fmt_cvt_t { - unsigned base_fourcc; - unsigned cvt_fourcc[20]; -}; - -static fmt_cvt_t cvt_list[] = -{ - { AFMT_FLOAT32, { AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_BE, AFMT_U32_LE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S8, AFMT_U8, 0 }}, - { AFMT_U32_BE, { AFMT_U32_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_FLOAT32, AFMT_U24_BE, AFMT_U24_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U8, AFMT_S8, 0 }}, - { AFMT_U32_LE, { AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, AFMT_U24_LE, AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U8, AFMT_S8, 0 }}, - { AFMT_S32_BE, { AFMT_S32_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_FLOAT32, AFMT_S24_BE, AFMT_S24_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S8, AFMT_U8, 0 }}, - { AFMT_S32_LE, { AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S8, AFMT_U8, 0 }}, - { AFMT_U24_BE, { AFMT_U24_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_FLOAT32, AFMT_U16_BE, AFMT_U16_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U8, AFMT_S8, 0 }}, - { AFMT_U24_LE, { AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, AFMT_U16_LE, AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U8, AFMT_S8, 0 }}, - { AFMT_S24_BE, { AFMT_S24_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_FLOAT32, AFMT_S16_BE, AFMT_S16_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S8, AFMT_U8, 0 }}, - { AFMT_S24_LE, { AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S8, AFMT_U8, 0 }}, - { AFMT_U16_BE, { AFMT_U16_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_FLOAT32, AFMT_U8, AFMT_S8, 0 }}, - { AFMT_U16_LE, { AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, AFMT_U8, AFMT_S8, 0 }}, - { AFMT_S16_BE, { AFMT_S16_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_FLOAT32, AFMT_S8, AFMT_U8, 0 }}, - { AFMT_S16_LE, { AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, AFMT_S8, AFMT_U8, 0 }}, - { AFMT_U8, { AFMT_S8, AFMT_U16_LE, AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, 0 }}, - { AFMT_S8, { AFMT_U8, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, 0 }}, -}; - -static unsigned __FASTCALL__ find_best_fmt(unsigned ifmt) -{ - unsigned i,j,idx; - MPXP_Rc rval; - rval=mpxp_context().audio().output->test_format(ifmt); - if(rval == MPXP_True) return ifmt; - idx=-1; - for(i=0;i<sizeof(cvt_list)/sizeof(fmt_cvt_t);i++) { - if(ifmt==cvt_list[i].base_fourcc) { idx=i; break; } - } - if(idx==-1) return 0; /* unknown format */ - i=idx; - for(j=0;j<20;j++) { - if(cvt_list[i].cvt_fourcc[j]==0) break; - rval=mpxp_context().audio().output->test_format(cvt_list[i].cvt_fourcc[j]); - if(rval == MPXP_True) return cvt_list[i].cvt_fourcc[j]; - } - return AFMT_S16_LE; -} - -struct af_ao2_t{ - unsigned rate; - unsigned nch; - mpaf_format_e format; -}; - -// Initialization and runtime control_af -static MPXP_Rc __FASTCALL__ config_af(af_instance_t* af, const af_conf_t* arg) -{ - af_ao2_t* s = reinterpret_cast<af_ao2_t*>(af->setup); - /* Sanity check */ - if(!arg) return MPXP_Error; - s->rate = af->conf.rate = find_best_rate(arg->rate); - s->nch = af->conf.nch = find_best_ch(arg->nch); - s->format = af->conf.format = afmt2mpaf(find_best_fmt(mpaf2afmt(arg->format))); - return af_test_output(af,arg); -} - -static MPXP_Rc __FASTCALL__ control_af(af_instance_t* af, int cmd, any_t* arg) -{ - af_ao2_t* s = reinterpret_cast<af_ao2_t*>(af->setup); - UNUSED(arg); - switch(cmd){ - case AF_CONTROL_SHOWCONF: { - char sbuf[256]; - const ao_info_t*info=mpxp_context().audio().output->get_info(); - MSG_INFO("AO-CONF: [%s] %uHz nch=%u %s (%3.1f-kbit)\n" - ,info->short_name,s->rate,s->nch,mpaf_fmt2str(s->format,sbuf,sizeof(sbuf)) - ,(s->rate*s->nch*(s->format&MPAF_BPS_MASK)*8)*0.001f); - return MPXP_Ok; - } - default: break; - } - return MPXP_Unknown; -} - -// Deallocate memory -static void __FASTCALL__ uninit(af_instance_t* af) -{ - if(af->setup) delete af->setup; -} - -// Filter data through filter -static mp_aframe_t* __FASTCALL__ play(af_instance_t* af,const mp_aframe_t* data) -{ - // Do something necessary to get rid of annoying warning during compile - if(!af) MSG_ERR("EEEK: Argument af == NULL in af_dummy.c play()."); - return const_cast<mp_aframe_t*>(data); -} - -// Allocate memory and set function pointers -static MPXP_Rc __FASTCALL__ af_open(af_instance_t* af){ - af->config_af=config_af; - af->control_af=control_af; - af->uninit=uninit; - af->play=play; - af->mul.d=1; - af->mul.n=1; - af->setup=mp_calloc(1,sizeof(af_ao2_t)); - if(af->setup == NULL) return MPXP_Error; - check_pin("afilter",af->pin,AF_PIN); - return MPXP_Ok; -} - -// Description of this filter -extern const af_info_t af_info_ao = { - "libao wrapper", - "ao2", - "Nickols_K", - "", - AF_FLAGS_REENTRANT, - af_open -}; Copied: mplayerxp/postproc/af_ao3.cpp (from rev 566, mplayerxp/postproc/af_ao2.cpp) =================================================================== --- mplayerxp/postproc/af_ao3.cpp (rev 0) +++ mplayerxp/postproc/af_ao3.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -0,0 +1,178 @@ +#include "mp_config.h" +#include "osdep/mplib.h" +using namespace mpxp; +/* The name speaks for itself this filter is a dummy and will not blow + up regardless of what you do with it. */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "libao3/audio_out.h" +#include "libao3/afmt.h" + +#include "af.h" +#include "af_internal.h" +#include "pp_msg.h" + +static unsigned rates[] = +{ 4000, 5512, 8000, 9600, 11025, 16000, 19200, 22050, 24000, 32000, 38400, 44100, 48000, 64000, 76800, 88200, 96000, 128000, 153600, 176400, 192000 }; + +static unsigned __FASTCALL__ find_best_rate(unsigned irate) +{ + unsigned i,ii; + MPXP_Rc rval; + rval=mpxp_context().audio().output->test_rate(irate); + if(rval == MPXP_True) return irate; + for(i=0;i<sizeof(rates)/sizeof(unsigned)-1;i++) { + if(irate >= rates[i] && irate < rates[i+1]) break; + } + ii=i; + for(;i<sizeof(rates)/sizeof(unsigned);i++) { + rval=mpxp_context().audio().output->test_rate(rates[i]); + if(rval == MPXP_True) return rates[i]; + } + i=ii; + for(;i<sizeof(rates)/sizeof(unsigned);i--) { + rval=mpxp_context().audio().output->test_rate(rates[i]); + if(rval == MPXP_True) return rates[i]; + } + for(i=0;i<sizeof(rates)/sizeof(unsigned);i++) { + rval=mpxp_context().audio().output->test_rate(rates[i]); + if(rval == MPXP_True) return rates[i]; + } + return 44100; +} + +static unsigned __FASTCALL__ find_best_ch(unsigned ich) +{ + unsigned i; + MPXP_Rc rval; + rval=mpxp_context().audio().output->test_channels(ich); + if(rval == MPXP_True) return ich; + for(i=ich>1?ich:1;i<AF_NCH;i++) { + rval=mpxp_context().audio().output->test_channels(i); + if(rval == MPXP_True) return i; + } + for(i=1;i<AF_NCH;i++) { + rval=mpxp_context().audio().output->test_channels(i); + if(rval == MPXP_True) return i; + } + return 2; +} + +struct fmt_cvt_t { + unsigned base_fourcc; + unsigned cvt_fourcc[20]; +}; + +static fmt_cvt_t cvt_list[] = +{ + { AFMT_FLOAT32, { AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_BE, AFMT_U32_LE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S8, AFMT_U8, 0 }}, + { AFMT_U32_BE, { AFMT_U32_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_FLOAT32, AFMT_U24_BE, AFMT_U24_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U8, AFMT_S8, 0 }}, + { AFMT_U32_LE, { AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, AFMT_U24_LE, AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U8, AFMT_S8, 0 }}, + { AFMT_S32_BE, { AFMT_S32_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_FLOAT32, AFMT_S24_BE, AFMT_S24_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S8, AFMT_U8, 0 }}, + { AFMT_S32_LE, { AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S8, AFMT_U8, 0 }}, + { AFMT_U24_BE, { AFMT_U24_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_FLOAT32, AFMT_U16_BE, AFMT_U16_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U8, AFMT_S8, 0 }}, + { AFMT_U24_LE, { AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, AFMT_U16_LE, AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U8, AFMT_S8, 0 }}, + { AFMT_S24_BE, { AFMT_S24_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_FLOAT32, AFMT_S16_BE, AFMT_S16_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S8, AFMT_U8, 0 }}, + { AFMT_S24_LE, { AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S8, AFMT_U8, 0 }}, + { AFMT_U16_BE, { AFMT_U16_LE, AFMT_S16_BE, AFMT_S16_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_FLOAT32, AFMT_U8, AFMT_S8, 0 }}, + { AFMT_U16_LE, { AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, AFMT_U8, AFMT_S8, 0 }}, + { AFMT_S16_BE, { AFMT_S16_LE, AFMT_U16_BE, AFMT_U16_LE, AFMT_S24_BE, AFMT_S24_LE, AFMT_U24_BE, AFMT_U24_LE, AFMT_S32_BE, AFMT_S32_LE, AFMT_U32_BE, AFMT_U32_LE, AFMT_FLOAT32, AFMT_S8, AFMT_U8, 0 }}, + { AFMT_S16_LE, { AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, AFMT_S8, AFMT_U8, 0 }}, + { AFMT_U8, { AFMT_S8, AFMT_U16_LE, AFMT_U16_BE, AFMT_S16_LE, AFMT_S16_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_FLOAT32, 0 }}, + { AFMT_S8, { AFMT_U8, AFMT_S16_LE, AFMT_S16_BE, AFMT_U16_LE, AFMT_U16_BE, AFMT_S24_LE, AFMT_S24_BE, AFMT_U24_LE, AFMT_U24_BE, AFMT_S32_LE, AFMT_S32_BE, AFMT_U32_LE, AFMT_U32_BE, AFMT_FLOAT32, 0 }}, +}; + +static unsigned __FASTCALL__ find_best_fmt(unsigned ifmt) +{ + unsigned i,j,idx; + MPXP_Rc rval; + rval=mpxp_context().audio().output->test_format(ifmt); + if(rval == MPXP_True) return ifmt; + idx=-1; + for(i=0;i<sizeof(cvt_list)/sizeof(fmt_cvt_t);i++) { + if(ifmt==cvt_list[i].base_fourcc) { idx=i; break; } + } + if(idx==-1) return 0; /* unknown format */ + i=idx; + for(j=0;j<20;j++) { + if(cvt_list[i].cvt_fourcc[j]==0) break; + rval=mpxp_context().audio().output->test_format(cvt_list[i].cvt_fourcc[j]); + if(rval == MPXP_True) return cvt_list[i].cvt_fourcc[j]; + } + return AFMT_S16_LE; +} + +struct af_ao3_t{ + unsigned rate; + unsigned nch; + mpaf_format_e format; +}; + +// Initialization and runtime control_af +static MPXP_Rc __FASTCALL__ config_af(af_instance_t* af, const af_conf_t* arg) +{ + af_ao3_t* s = reinterpret_cast<af_ao3_t*>(af->setup); + /* Sanity check */ + if(!arg) return MPXP_Error; + s->rate = af->conf.rate = find_best_rate(arg->rate); + s->nch = af->conf.nch = find_best_ch(arg->nch); + s->format = af->conf.format = afmt2mpaf(find_best_fmt(mpaf2afmt(arg->format))); + return af_test_output(af,arg); +} + +static MPXP_Rc __FASTCALL__ control_af(af_instance_t* af, int cmd, any_t* arg) +{ + af_ao3_t* s = reinterpret_cast<af_ao3_t*>(af->setup); + UNUSED(arg); + switch(cmd){ + case AF_CONTROL_SHOWCONF: { + char sbuf[256]; + const ao_info_t*info=mpxp_context().audio().output->get_info(); + MSG_INFO("AO-CONF: [%s] %uHz nch=%u %s (%3.1f-kbit)\n" + ,info->short_name,s->rate,s->nch,mpaf_fmt2str(s->format,sbuf,sizeof(sbuf)) + ,(s->rate*s->nch*(s->format&MPAF_BPS_MASK)*8)*0.001f); + return MPXP_Ok; + } + default: break; + } + return MPXP_Unknown; +} + +// Deallocate memory +static void __FASTCALL__ uninit(af_instance_t* af) +{ + if(af->setup) delete af->setup; +} + +// Filter data through filter +static mp_aframe_t* __FASTCALL__ play(af_instance_t* af,const mp_aframe_t* data) +{ + // Do something necessary to get rid of annoying warning during compile + if(!af) MSG_ERR("EEEK: Argument af == NULL in af_dummy.c play()."); + return const_cast<mp_aframe_t*>(data); +} + +// Allocate memory and set function pointers +static MPXP_Rc __FASTCALL__ af_open(af_instance_t* af){ + af->config_af=config_af; + af->control_af=control_af; + af->uninit=uninit; + af->play=play; + af->mul.d=1; + af->mul.n=1; + af->setup=mp_calloc(1,sizeof(af_ao3_t)); + if(af->setup == NULL) return MPXP_Error; + check_pin("afilter",af->pin,AF_PIN); + return MPXP_Ok; +} + +// Description of this filter +extern const af_info_t af_info_ao = { + "libao wrapper", + "ao3", + "Nickols_K", + "", + AF_FLAGS_REENTRANT, + af_open +}; Modified: mplayerxp/xmpcore/mp_aframe.cpp =================================================================== --- mplayerxp/xmpcore/mp_aframe.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/xmpcore/mp_aframe.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -5,7 +5,7 @@ #include <stdio.h> #include "mp_aframe.h" -#include "libao2/afmt.h" +#include "libao3/afmt.h" #include "loader/wine/mmreg.h" #include "mp_msg.h" Modified: mplayerxp/xmpcore/xmp_aplayer.cpp =================================================================== --- mplayerxp/xmpcore/xmp_aplayer.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/xmpcore/xmp_aplayer.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -14,7 +14,7 @@ #include "libmpdemux/demuxer.h" #include "libmpcodecs/dec_audio.h" -#include "libao2/audio_out.h" +#include "libao3/audio_out.h" #include "osdep/timer.h" #include "xmp_core.h" Modified: mplayerxp/xmpcore/xmp_core.cpp =================================================================== --- mplayerxp/xmpcore/xmp_core.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/xmpcore/xmp_core.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -19,7 +19,7 @@ #include <sys/time.h> #include "xmp_core.h" -#include "libao2/audio_out.h" +#include "libao3/audio_out.h" #include "libvo2/video_out.h" #include "libmpcodecs/dec_video.h" Modified: mplayerxp/xmpcore/xmp_vplayer.cpp =================================================================== --- mplayerxp/xmpcore/xmp_vplayer.cpp 2012-12-17 08:02:17 UTC (rev 566) +++ mplayerxp/xmpcore/xmp_vplayer.cpp 2012-12-17 08:47:00 UTC (rev 567) @@ -8,7 +8,7 @@ #include "mp_msg.h" #include "sig_hand.h" -#include "libao2/audio_out.h" +#include "libao3/audio_out.h" #include "libvo2/video_out.h" #include "libmpdemux/demuxer_r.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-19 08:57:58
|
Revision: 576 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=576&view=rev Author: nickols_k Date: 2012-12-19 08:57:43 +0000 (Wed, 19 Dec 2012) Log Message: ----------- minor antiviral patch Modified Paths: -------------- mplayerxp/Makefile mplayerxp/configure mplayerxp/dump.cpp mplayerxp/input2/Makefile mplayerxp/input2/in_msg.h mplayerxp/input2/input.cpp mplayerxp/input2/input.h mplayerxp/input2/joystick.cpp mplayerxp/input2/lirc.cpp mplayerxp/libao3/Makefile mplayerxp/libao3/afmt.cpp mplayerxp/libao3/afmt.h mplayerxp/libao3/ao_alsa.cpp mplayerxp/libao3/ao_arts.cpp mplayerxp/libao3/ao_esd.cpp mplayerxp/libao3/ao_jack.cpp mplayerxp/libao3/ao_msg.h mplayerxp/libao3/ao_nas.cpp mplayerxp/libao3/ao_null.cpp mplayerxp/libao3/ao_openal.cpp mplayerxp/libao3/ao_oss.cpp mplayerxp/libao3/ao_sdl.cpp mplayerxp/libao3/ao_wav.cpp mplayerxp/libao3/audio_out.cpp mplayerxp/libao3/audio_out.h mplayerxp/libao3/audio_out_internal.h mplayerxp/libmpcodecs/Makefile mplayerxp/libmpcodecs/ad.cpp mplayerxp/libmpcodecs/ad_a52.cpp mplayerxp/libmpcodecs/ad_acm.cpp mplayerxp/libmpcodecs/ad_dca.cpp mplayerxp/libmpcodecs/ad_dmo.cpp mplayerxp/libmpcodecs/ad_dshow.cpp mplayerxp/libmpcodecs/ad_dvdpcm.cpp mplayerxp/libmpcodecs/ad_faad.cpp mplayerxp/libmpcodecs/ad_hwac3.cpp mplayerxp/libmpcodecs/ad_lavc.cpp mplayerxp/libmpcodecs/ad_libdv.cpp mplayerxp/libmpcodecs/ad_mp3.cpp mplayerxp/libmpcodecs/ad_msg.h mplayerxp/libmpcodecs/ad_null.cpp mplayerxp/libmpcodecs/ad_pcm.cpp mplayerxp/libmpcodecs/ad_qtaudio.cpp mplayerxp/libmpcodecs/ad_real.cpp mplayerxp/libmpcodecs/ad_twin.cpp mplayerxp/libmpcodecs/ad_vorbis.cpp mplayerxp/libmpcodecs/codecs_ld.cpp mplayerxp/libmpcodecs/codecs_ld.h mplayerxp/libmpcodecs/dec_audio.cpp mplayerxp/libmpcodecs/dec_video.cpp mplayerxp/libmpcodecs/liba52/Makefile mplayerxp/libmpcodecs/liba52/a52.h mplayerxp/libmpcodecs/liba52/bit_allocate.cpp mplayerxp/libmpcodecs/liba52/bitstream.cpp mplayerxp/libmpcodecs/liba52/crc.cpp mplayerxp/libmpcodecs/liba52/downmix.cpp mplayerxp/libmpcodecs/liba52/imdct.cpp mplayerxp/libmpcodecs/liba52/parse.cpp mplayerxp/libmpcodecs/liba52/resample.cpp mplayerxp/libmpcodecs/libdca/Makefile mplayerxp/libmpcodecs/libdca/bitstream.cpp mplayerxp/libmpcodecs/libdca/dca.h mplayerxp/libmpcodecs/libdca/downmix.cpp mplayerxp/libmpcodecs/libdca/parse.cpp mplayerxp/libmpcodecs/libdca/resample.cpp mplayerxp/libmpcodecs/libnuppelvideo/Makefile mplayerxp/libmpcodecs/libnuppelvideo/RTjpegN.cpp mplayerxp/libmpcodecs/libnuppelvideo/minilzo.cpp mplayerxp/libmpcodecs/libnuppelvideo/nuppelvideo.cpp mplayerxp/libmpcodecs/vd.cpp mplayerxp/libmpcodecs/vd_divx4.cpp mplayerxp/libmpcodecs/vd_dmo.cpp mplayerxp/libmpcodecs/vd_dshow.cpp mplayerxp/libmpcodecs/vd_huffyuv.cpp mplayerxp/libmpcodecs/vd_lavc.cpp mplayerxp/libmpcodecs/vd_libdv.cpp mplayerxp/libmpcodecs/vd_libmpeg2.cpp mplayerxp/libmpcodecs/vd_mpegpes.cpp mplayerxp/libmpcodecs/vd_msg.h mplayerxp/libmpcodecs/vd_null.cpp mplayerxp/libmpcodecs/vd_nuv.cpp mplayerxp/libmpcodecs/vd_qtvideo.cpp mplayerxp/libmpcodecs/vd_raw.cpp mplayerxp/libmpcodecs/vd_real.cpp mplayerxp/libmpcodecs/vd_theora.cpp mplayerxp/libmpcodecs/vd_vfw.cpp mplayerxp/libmpcodecs/vd_xanim.cpp mplayerxp/libmpcodecs/vd_xvid.cpp mplayerxp/libmpconf/Makefile mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/codec-cfg.cpp mplayerxp/libmpconf/m_option.cpp mplayerxp/libmpconf/m_property.cpp mplayerxp/libmpconf/m_struct.cpp mplayerxp/libmpconf/subopt-helper.cpp mplayerxp/libmpconf/subopt-helper.h mplayerxp/libmpdemux/Makefile mplayerxp/libmpdemux/aviheader.h mplayerxp/libmpdemux/aviprint.cpp mplayerxp/libmpdemux/demux_ac3.cpp mplayerxp/libmpdemux/demux_aiff.cpp mplayerxp/libmpdemux/demux_asf.cpp mplayerxp/libmpdemux/demux_avi.cpp mplayerxp/libmpdemux/demux_bmp.cpp mplayerxp/libmpdemux/demux_dca.cpp mplayerxp/libmpdemux/demux_demuxers.cpp mplayerxp/libmpdemux/demux_dv.cpp mplayerxp/libmpdemux/demux_film.cpp mplayerxp/libmpdemux/demux_flac.cpp mplayerxp/libmpdemux/demux_fli.cpp mplayerxp/libmpdemux/demux_lavf.cpp mplayerxp/libmpdemux/demux_mkv.cpp mplayerxp/libmpdemux/demux_mov.cpp mplayerxp/libmpdemux/demux_mp3.cpp mplayerxp/libmpdemux/demux_mpg.cpp mplayerxp/libmpdemux/demux_mpxp64.cpp mplayerxp/libmpdemux/demux_msg.h mplayerxp/libmpdemux/demux_musepack.cpp mplayerxp/libmpdemux/demux_nsv.cpp mplayerxp/libmpdemux/demux_null.cpp mplayerxp/libmpdemux/demux_nuv.cpp mplayerxp/libmpdemux/demux_ogg.cpp mplayerxp/libmpdemux/demux_pva.cpp mplayerxp/libmpdemux/demux_rawaudio.cpp mplayerxp/libmpdemux/demux_rawvideo.cpp mplayerxp/libmpdemux/demux_real.cpp mplayerxp/libmpdemux/demux_realaud.cpp mplayerxp/libmpdemux/demux_roq.cpp mplayerxp/libmpdemux/demux_smjpeg.cpp mplayerxp/libmpdemux/demux_snd_au.cpp mplayerxp/libmpdemux/demux_ts.cpp mplayerxp/libmpdemux/demux_ty.cpp mplayerxp/libmpdemux/demux_viv.cpp mplayerxp/libmpdemux/demux_voc.cpp mplayerxp/libmpdemux/demux_vqf.cpp mplayerxp/libmpdemux/demux_wav.cpp mplayerxp/libmpdemux/demux_y4m.cpp mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpdemux/demuxer.h mplayerxp/libmpdemux/demuxer_info.h mplayerxp/libmpdemux/demuxer_packet.h mplayerxp/libmpdemux/demuxer_r.cpp mplayerxp/libmpdemux/demuxer_stream.cpp mplayerxp/libmpdemux/demuxer_stream.h mplayerxp/libmpdemux/mp3_hdr.cpp mplayerxp/libmpdemux/mpdemux.cpp mplayerxp/libmpdemux/mpeg_hdr.cpp mplayerxp/libmpdemux/mux_lavf.cpp mplayerxp/libmpdemux/mux_mpxp64.cpp mplayerxp/libmpdemux/mux_raw.cpp mplayerxp/libmpdemux/muxer.cpp mplayerxp/libmpdemux/parse_es.cpp mplayerxp/libmpdemux/parse_mp4.cpp mplayerxp/libmpdemux/stheader.cpp mplayerxp/libmpdemux/sub_cc.cpp mplayerxp/libmpdemux/sub_ty.cpp mplayerxp/libmpdemux/yuv4mpeg.cpp mplayerxp/libmpdemux/yuv4mpeg_ratio.cpp mplayerxp/libmpstream2/Makefile mplayerxp/libmpstream2/cache2.cpp mplayerxp/libmpstream2/cdda.cpp mplayerxp/libmpstream2/cddb.cpp mplayerxp/libmpstream2/cookies.cpp mplayerxp/libmpstream2/freesdp/Makefile mplayerxp/libmpstream2/freesdp/common.cpp mplayerxp/libmpstream2/freesdp/common.h mplayerxp/libmpstream2/freesdp/errorlist.cpp mplayerxp/libmpstream2/freesdp/parser.cpp mplayerxp/libmpstream2/http.cpp mplayerxp/libmpstream2/http.h mplayerxp/libmpstream2/librtsp/Makefile mplayerxp/libmpstream2/librtsp/rtsp.cpp mplayerxp/libmpstream2/librtsp/rtsp_rtp.cpp mplayerxp/libmpstream2/librtsp/rtsp_session.cpp mplayerxp/libmpstream2/librtsp/rtsp_session.h mplayerxp/libmpstream2/mrl.cpp mplayerxp/libmpstream2/mrl.h mplayerxp/libmpstream2/network.cpp mplayerxp/libmpstream2/network.h mplayerxp/libmpstream2/network_asf.cpp mplayerxp/libmpstream2/network_asf.h mplayerxp/libmpstream2/network_asf_mmst.cpp mplayerxp/libmpstream2/network_nop.cpp mplayerxp/libmpstream2/network_pnm.cpp mplayerxp/libmpstream2/network_real_rtsp.cpp mplayerxp/libmpstream2/network_rtp.cpp mplayerxp/libmpstream2/network_rtsp.cpp mplayerxp/libmpstream2/pnm.cpp mplayerxp/libmpstream2/realrtsp/Makefile mplayerxp/libmpstream2/realrtsp/asmrp.cpp mplayerxp/libmpstream2/realrtsp/md5.h mplayerxp/libmpstream2/realrtsp/real.cpp mplayerxp/libmpstream2/realrtsp/rmff.cpp mplayerxp/libmpstream2/realrtsp/rmff.h mplayerxp/libmpstream2/realrtsp/sdpplin.cpp mplayerxp/libmpstream2/realrtsp/xbuffer.cpp mplayerxp/libmpstream2/realrtsp/xbuffer.h mplayerxp/libmpstream2/rtp_cache.cpp mplayerxp/libmpstream2/s_cdd.cpp mplayerxp/libmpstream2/s_dvdnav.cpp mplayerxp/libmpstream2/s_dvdread.cpp mplayerxp/libmpstream2/s_file.cpp mplayerxp/libmpstream2/s_ftp.cpp mplayerxp/libmpstream2/s_lavc.cpp mplayerxp/libmpstream2/s_network.cpp mplayerxp/libmpstream2/s_null.cpp mplayerxp/libmpstream2/s_oss.cpp mplayerxp/libmpstream2/s_rtsp.cpp mplayerxp/libmpstream2/s_tv.cpp mplayerxp/libmpstream2/s_udp.cpp mplayerxp/libmpstream2/s_vcdnav.cpp mplayerxp/libmpstream2/stream.cpp mplayerxp/libmpstream2/stream.h mplayerxp/libmpstream2/stream_internal.h mplayerxp/libmpstream2/stream_msg.h mplayerxp/libmpstream2/tcp.cpp mplayerxp/libmpstream2/tvi/Makefile mplayerxp/libmpstream2/tvi/frequencies.cpp mplayerxp/libmpstream2/tvi/tvi_bsdbt848.cpp mplayerxp/libmpstream2/tvi/tvi_dummy.cpp mplayerxp/libmpstream2/tvi/tvi_v4l.cpp mplayerxp/libmpstream2/udp.cpp mplayerxp/libmpstream2/url.cpp mplayerxp/libmpsub/Makefile mplayerxp/libmpsub/find_sub.cpp mplayerxp/libmpsub/spudec.cpp mplayerxp/libmpsub/subreader.cpp mplayerxp/libmpsub/vobsub.cpp mplayerxp/libplaytree/Makefile mplayerxp/libplaytree/asxparser.cpp mplayerxp/libplaytree/playtree.cpp mplayerxp/libplaytree/playtreeparser.cpp mplayerxp/libvo2/Makefile mplayerxp/libvo2/aspect.cpp mplayerxp/libvo2/aspect.h mplayerxp/libvo2/font_load.cpp mplayerxp/libvo2/img_format.cpp mplayerxp/libvo2/img_format.h mplayerxp/libvo2/jpeg_enc.cpp mplayerxp/libvo2/osd_render.cpp mplayerxp/libvo2/screenshot.cpp mplayerxp/libvo2/sub.cpp mplayerxp/libvo2/video_out.cpp mplayerxp/libvo2/video_out.h mplayerxp/libvo2/vidix_system.cpp mplayerxp/libvo2/vo_fbdev.cpp mplayerxp/libvo2/vo_msg.h mplayerxp/libvo2/vo_null.cpp mplayerxp/libvo2/vo_opengl.cpp mplayerxp/libvo2/vo_sdl.cpp mplayerxp/libvo2/vo_vesa.cpp mplayerxp/libvo2/vo_x11.cpp mplayerxp/libvo2/vo_xv.cpp mplayerxp/libvo2/x11_system.cpp mplayerxp/loader/Makefile mplayerxp/loader/com.h mplayerxp/loader/dmo/DMO_AudioDecoder.c mplayerxp/loader/dmo/DMO_VideoDecoder.c mplayerxp/loader/dmo/Makefile mplayerxp/loader/dmo/dmo.c mplayerxp/loader/driver.c mplayerxp/loader/dshow/DS_AudioDecoder.c mplayerxp/loader/dshow/DS_Filter.c mplayerxp/loader/dshow/DS_VideoDecoder.c mplayerxp/loader/dshow/Makefile mplayerxp/loader/dshow/allocator.c mplayerxp/loader/ldt_keeper.h mplayerxp/loader/module.c mplayerxp/loader/win32.c mplayerxp/loader/wine/windef.h mplayerxp/mplayerxp.cpp mplayerxp/mplayerxp.h mplayerxp/nls/Makefile mplayerxp/nls/nls_msg.h mplayerxp/nls/recode.cpp mplayerxp/osdep/Makefile mplayerxp/osdep/aclib.cpp mplayerxp/osdep/bswap.h mplayerxp/osdep/cpudetect.cpp mplayerxp/osdep/fastmemcpy.h mplayerxp/osdep/get_path.cpp mplayerxp/osdep/getch2.cpp mplayerxp/osdep/lrmi.cpp mplayerxp/osdep/lrmi.h mplayerxp/osdep/mp_malloc.cpp mplayerxp/osdep/mplib.cpp mplayerxp/osdep/mplib.h mplayerxp/osdep/osdep_msg.h mplayerxp/osdep/shmem.cpp mplayerxp/osdep/timer-lx.cpp mplayerxp/osdep/timer.cpp mplayerxp/osdep/vbelib.cpp mplayerxp/osdep/vbelib.h mplayerxp/postproc/Makefile mplayerxp/postproc/af.cpp mplayerxp/postproc/af.h mplayerxp/postproc/af_ao3.cpp mplayerxp/postproc/af_channels.cpp mplayerxp/postproc/af_crystality.cpp mplayerxp/postproc/af_delay.cpp mplayerxp/postproc/af_dyn.cpp mplayerxp/postproc/af_echo3d.cpp mplayerxp/postproc/af_equalizer.cpp mplayerxp/postproc/af_export.cpp mplayerxp/postproc/af_extrastereo.cpp mplayerxp/postproc/af_ffenc.cpp mplayerxp/postproc/af_format.cpp mplayerxp/postproc/af_hrtf.cpp mplayerxp/postproc/af_karaoke.cpp mplayerxp/postproc/af_lp.cpp mplayerxp/postproc/af_null.cpp mplayerxp/postproc/af_pan.cpp mplayerxp/postproc/af_raw.cpp mplayerxp/postproc/af_resample.cpp mplayerxp/postproc/af_scaletempo.cpp mplayerxp/postproc/af_sinesuppress.cpp mplayerxp/postproc/af_sub.cpp mplayerxp/postproc/af_surround.cpp mplayerxp/postproc/af_tools.cpp mplayerxp/postproc/af_volnorm.cpp mplayerxp/postproc/af_volume.cpp mplayerxp/postproc/aflib.cpp mplayerxp/postproc/aflib.h mplayerxp/postproc/libmenu/Makefile mplayerxp/postproc/libmenu/menu.cpp mplayerxp/postproc/libmenu/menu_cmdlist.cpp mplayerxp/postproc/libmenu/menu_console.cpp mplayerxp/postproc/libmenu/menu_filesel.cpp mplayerxp/postproc/libmenu/menu_list.cpp mplayerxp/postproc/libmenu/menu_param.cpp mplayerxp/postproc/libmenu/menu_pt.cpp mplayerxp/postproc/libmenu/menu_txt.cpp mplayerxp/postproc/postprocess.cpp mplayerxp/postproc/postprocess.h mplayerxp/postproc/pp_msg.h mplayerxp/postproc/swscale.cpp mplayerxp/postproc/swscale.h mplayerxp/postproc/vf.cpp mplayerxp/postproc/vf_1bpp.cpp mplayerxp/postproc/vf_2xsai.cpp mplayerxp/postproc/vf_aspect.cpp mplayerxp/postproc/vf_delogo.cpp mplayerxp/postproc/vf_denoise3d.cpp mplayerxp/postproc/vf_dint.cpp mplayerxp/postproc/vf_down3dright.cpp mplayerxp/postproc/vf_eq.cpp mplayerxp/postproc/vf_expand.cpp mplayerxp/postproc/vf_flip.cpp mplayerxp/postproc/vf_format.cpp mplayerxp/postproc/vf_framestep.cpp mplayerxp/postproc/vf_il.cpp mplayerxp/postproc/vf_menu.cpp mplayerxp/postproc/vf_mirror.cpp mplayerxp/postproc/vf_noise.cpp mplayerxp/postproc/vf_null.cpp mplayerxp/postproc/vf_ow.cpp mplayerxp/postproc/vf_palette.cpp mplayerxp/postproc/vf_panscan.cpp mplayerxp/postproc/vf_perspective.cpp mplayerxp/postproc/vf_pp.cpp mplayerxp/postproc/vf_raw.cpp mplayerxp/postproc/vf_rectangle.cpp mplayerxp/postproc/vf_rgb2bgr.cpp mplayerxp/postproc/vf_rotate.cpp mplayerxp/postproc/vf_scale.cpp mplayerxp/postproc/vf_smartblur.cpp mplayerxp/postproc/vf_softpulldown.cpp mplayerxp/postproc/vf_swapuv.cpp mplayerxp/postproc/vf_test.cpp mplayerxp/postproc/vf_unsharp.cpp mplayerxp/postproc/vf_vo2.cpp mplayerxp/postproc/vf_yuvcsp.cpp mplayerxp/postproc/vf_yuy2.cpp mplayerxp/postproc/vf_yvu9.cpp mplayerxp/xmpcore/Makefile mplayerxp/xmpcore/PointerProtector.h mplayerxp/xmpcore/mp_aframe.cpp mplayerxp/xmpcore/mp_aframe.h mplayerxp/xmpcore/mp_image.cpp mplayerxp/xmpcore/mp_image.h mplayerxp/xmpcore/sig_hand.cpp mplayerxp/xmpcore/xmp_adecoder.cpp mplayerxp/xmpcore/xmp_aplayer.cpp mplayerxp/xmpcore/xmp_context.cpp mplayerxp/xmpcore/xmp_core.cpp mplayerxp/xmpcore/xmp_core.h mplayerxp/xmpcore/xmp_vdecoder.cpp mplayerxp/xmpcore/xmp_vplayer.cpp Added Paths: ----------- mplayerxp/mpxp_msg.cpp mplayerxp/mpxp_msg.h mplayerxp/nls/mpxp_help-bg.h mplayerxp/nls/mpxp_help-cz.h mplayerxp/nls/mpxp_help-de.h mplayerxp/nls/mpxp_help-dk.h mplayerxp/nls/mpxp_help-el.h mplayerxp/nls/mpxp_help-en.h mplayerxp/nls/mpxp_help-es.h mplayerxp/nls/mpxp_help-fr.h mplayerxp/nls/mpxp_help-hu.h mplayerxp/nls/mpxp_help-it.h mplayerxp/nls/mpxp_help-ja.h mplayerxp/nls/mpxp_help-ko.h mplayerxp/nls/mpxp_help-mk.h mplayerxp/nls/mpxp_help-nb.h mplayerxp/nls/mpxp_help-nl.h mplayerxp/nls/mpxp_help-no.h mplayerxp/nls/mpxp_help-pl.h mplayerxp/nls/mpxp_help-pt.h mplayerxp/nls/mpxp_help-ro.h mplayerxp/nls/mpxp_help-ru.h mplayerxp/nls/mpxp_help-sk.h mplayerxp/nls/mpxp_help-sv.h mplayerxp/nls/mpxp_help-tr.h mplayerxp/nls/mpxp_help-uk.h mplayerxp/nls/mpxp_help-zh.h Removed Paths: ------------- mplayerxp/mp_msg.cpp mplayerxp/mp_msg.h mplayerxp/nls/help_mp-bg.h mplayerxp/nls/help_mp-cz.h mplayerxp/nls/help_mp-de.h mplayerxp/nls/help_mp-dk.h mplayerxp/nls/help_mp-el.h mplayerxp/nls/help_mp-en.h mplayerxp/nls/help_mp-es.h mplayerxp/nls/help_mp-fr.h mplayerxp/nls/help_mp-hu.h mplayerxp/nls/help_mp-it.h mplayerxp/nls/help_mp-ja.h mplayerxp/nls/help_mp-ko.h mplayerxp/nls/help_mp-mk.h mplayerxp/nls/help_mp-nb.h mplayerxp/nls/help_mp-nl.h mplayerxp/nls/help_mp-no.h mplayerxp/nls/help_mp-pl.h mplayerxp/nls/help_mp-pt.h mplayerxp/nls/help_mp-ro.h mplayerxp/nls/help_mp-ru.h mplayerxp/nls/help_mp-sk.h mplayerxp/nls/help_mp-sv.h mplayerxp/nls/help_mp-tr.h mplayerxp/nls/help_mp-uk.h mplayerxp/nls/help_mp-zh.h Modified: mplayerxp/Makefile =================================================================== --- mplayerxp/Makefile 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/Makefile 2012-12-19 08:57:43 UTC (rev 576) @@ -7,7 +7,7 @@ # a BSD compatible 'install' program INSTALL = install -include mp_config.mak +include mpxp_config.mak TARGET_EXE = $(PROGNAME) # these subdirectories required installation due binaries within them @@ -21,7 +21,7 @@ MANDIR = ${prefix}/man LDFLAGS += -Wl,-rpath,${CODECDIR}/codecs -SRCS = mplayerxp.cpp dump.cpp mp_msg.cpp +SRCS = mplayerxp.cpp dump.cpp mpxp_msg.cpp OBJS = $(SRCS:.cpp=.o) @@ -100,8 +100,8 @@ $(DO_MAKE) -rm -f *~ $(TARGET_EXE) $(OBJS) -rm -f *.o *.a .depend configure.log - -rm -f mp_config.h mp_config.mak mp_conf_lavc.h version.h - -rm -f cpuinfo help_mp.h + -rm -f mpxp_config.h mpxp_config.mak mpxp_conf_lavc.h version.h + -rm -f cpuinfo mpxp_help.h dep: .depend Modified: mplayerxp/configure =================================================================== --- mplayerxp/configure 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/configure 2012-12-19 08:57:43 UTC (rev 576) @@ -20,14 +20,14 @@ # # GOTCHAS: # - config files are currently: -# mp_config.h mp_config.mak libvo/mp_config.mak libao2/mp_config.mak +# mpxp_config.h mpxp_config.mak # ############################################################################# . ../functions init_functions cd nls -LANGUAGES=`echo help_mp-??.h | sed "s/help_mp-\(..\).h/\1/g"` +LANGUAGES=`echo mpxp_help-??.h | sed "s/mpxp_help-\(..\).h/\1/g"` cd .. linguas=`echo $LANG | sed 's/^\([^_]*\).*$/\1/'` test -z $linguas && linguas=en @@ -226,7 +226,7 @@ test -n $gas && as=$gas mktmps -guess_target mp_config.mak mp_config.h +guess_target mpxp_config.mak mpxp_config.h # config files @@ -323,15 +323,15 @@ test $($pkg_config --version 2>/dev/null) || die "no pkg-config found" ############################################################################# enabled profile && disable fastcall -print_config __USE mp_config.h mp_config.mak fastcall +print_config __USE mpxp_config.h mpxp_config.mak fastcall -test_optimizations mp_config.mak mp_config.h +test_optimizations mpxp_config.mak mpxp_config.h # Checking for GOMP enabled gomp && check_ldflags -fopenmp || disable gomp enabled gomp && require2 gomp omp.h omp_get_thread_num -lgomp || disable gomp enabled gomp && check_cflags -fopenmp || disable gomp -print_config HAVE_ mp_config.h mp_config.mak gomp +print_config HAVE_ mpxp_config.h mpxp_config.mak gomp #enabled gomp && check_cflags -ftree-parallelize-loops=4 ##################################################### add_cflags "-Warray-bounds -Wreturn-type -Wuninitialized -Wlogical-op -Waddress" @@ -363,7 +363,7 @@ test -f "../lavc/libavcodec/avcodec.h" && enable lavc disabled lavc && die "**FATAL**: local copy of lavc doesn't exist!" add_cflags "-I$srcdir/../lavc" -print_config HAVE_ mp_config.h mp_config.mak lavc +print_config HAVE_ mpxp_config.h mpxp_config.mak lavc # Configuring external lavc stuff lavc_args="--enable-static --disable-shared --enable-gpl --enable-pthreads --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-ffprobe --disable-avdevice --disable-avfilter --disable-avresample" if test -n $host ; then @@ -387,24 +387,24 @@ echores "done" ################################### -print_config ENABLE_ mp_config.h mp_config.mak gpl_only +print_config ENABLE_ mpxp_config.h mpxp_config.mak gpl_only check_header inttypes.h || die "cannot find header inttypes.h (see in DOC/faq.html)" require2 libdl dlfcn.h dlsym -ldl || die "dynamic loader was not found" -print_config HAVE_ mp_config.h mp_config.mak libdl +print_config HAVE_ mpxp_config.h mpxp_config.mak libdl require2 libkstat kstat.h kstat_open -lkstat -print_config HAVE_ mp_config.h mp_config.mak libkstat +print_config HAVE_ mpxp_config.h mpxp_config.mak libkstat require2 posix4 time.h nanosleep -lposix4 -print_config HAVE_ mp_config.h mp_config.mak posix4 +print_config HAVE_ mpxp_config.h mpxp_config.mak posix4 check_func2 time.h nanosleep -print_config HAVE_ mp_config.h mp_config.mak nanosleep +print_config HAVE_ mpxp_config.h mpxp_config.mak nanosleep check_func2 execinfo.h backtrace -print_config HAVE_ mp_config.h mp_config.mak backtrace +print_config HAVE_ mpxp_config.h mpxp_config.mak backtrace disable inet_pton if enabled streaming ; then @@ -418,18 +418,18 @@ # well, try alternative if disabled inet_pton ; then require2 aton "sys/types.h sys/socket.h arpa/inet.h" inet_aton -print_config USE_ mp_config.h mp_config.mak aton +print_config USE_ mpxp_config.h mpxp_config.mak aton fi -print_config HAVE_ mp_config.h mp_config.mak socklib +print_config HAVE_ mpxp_config.h mpxp_config.mak socklib if enabled winsock2 && ! cygwin ; then require2 winsock2 winsock2.h gethostbyname -lws2_32 -print_config HAVE_ mp_config.h mp_config.mak winsock2 +print_config HAVE_ mpxp_config.h mpxp_config.mak winsock2 fi fi #enabled streaming disabled inet_pton && disable streaming -print_config HAVE_ mp_config.h mp_config.mak streaming +print_config HAVE_ mpxp_config.h mpxp_config.mak streaming enabled streaming && inputmodules="streaming $inputmodules" || noinputmodules="streaming $noinputmodules" disabled streaming && disable af_inet6 @@ -437,7 +437,7 @@ if enabled af_inet6 ; then enabled winsock2 && require3 af_inet6 ws2tcpip.h AF_INET6 socket disabled winsock2 && require3 af_inet6 "sys/socket.h netinet/in.h" AF_INET6 socket -print_config HAVE_ mp_config.h mp_config.mak af_inet6 +print_config HAVE_ mpxp_config.h mpxp_config.mak af_inet6 fi # find if .align arg is power-of-two or not @@ -471,22 +471,22 @@ echores "$vm_pagesize" check_func3 _ISOC9X_SOURCE math.h lrint -lm -print_config HAVE_ mp_config.h mp_config.mak lrint +print_config HAVE_ mpxp_config.h mpxp_config.mak lrint check_func3 _ISOC9X_SOURCE math.h llrint -lm -print_config HAVE_ mp_config.h mp_config.mak llrint +print_config HAVE_ mpxp_config.h mpxp_config.mak llrint check_func3 _ISOC9X_SOURCE math.h HUGE -lm -print_config HAVE_ mp_config.h mp_config.mak HUGE +print_config HAVE_ mpxp_config.h mpxp_config.mak HUGE check_func2 "sys/types.h sys/mman.h" mmap sys_mman_h=$mmap -print_config HAVE_ mp_config.h mp_config.mak sys_mman_h +print_config HAVE_ mpxp_config.h mpxp_config.mak sys_mman_h enabled mmap && check_func2 "sys/mman.h" mlock -print_config HAVE_ mp_config.h mp_config.mak mlock +print_config HAVE_ mpxp_config.h mpxp_config.mak mlock check_func2 "stdio.h stdarg.h" vsscanf -print_config HAVE_ mp_config.h mp_config.mak vsscanf +print_config HAVE_ mpxp_config.h mpxp_config.mak vsscanf if enabled termcap; then disable termcap @@ -494,43 +494,43 @@ disabled termcap && require2 termcap stdio.h tgetent $ld_i enabled termcap && break done -print_config HAVE_ mp_config.h mp_config.mak termcap +print_config HAVE_ mpxp_config.h mpxp_config.mak termcap fi if enabled termios; then check_header sys/termios.h -print_config HAVE_ mp_config.h mp_config.mak sys_termios_h +print_config HAVE_ mpxp_config.h mpxp_config.mak sys_termios_h disabled sys_termios_h && check_header termios.h -disabled sys_termios_h && print_config HAVE_ mp_config.h mp_config.mak termios_h +disabled sys_termios_h && print_config HAVE_ mpxp_config.h mpxp_config.mak termios_h fi enabled shm && require2 shm "sys/types.h sys/shm.h" shmget -print_config HAVE_ mp_config.h mp_config.mak shm +print_config HAVE_ mpxp_config.h mpxp_config.mak shm require2 zlib zlib.h inflate -lz -print_config HAVE_ mp_config.h mp_config.mak zlib +print_config HAVE_ mpxp_config.h mpxp_config.mak zlib if linux; then enabled rtc && require2 rtc "sys/ioctl.h linux/rtc.h" RTC_IRQP_READ -print_config HAVE_ mp_config.h mp_config.mak rtc +print_config HAVE_ mpxp_config.h mpxp_config.mak rtc fi if enabled iconv; then require2 giconv giconv.h iconv_open -lgiconv -print_config HAVE_ mp_config.h mp_config.mak giconv +print_config HAVE_ mpxp_config.h mpxp_config.mak giconv disable iconv for ld_i in "" -liconv ; do disabled iconv && require2 iconv iconv.h iconv_open $ld_i enabled iconv && break done -print_config HAVE_ mp_config.h mp_config.mak iconv +print_config HAVE_ mpxp_config.h mpxp_config.mak iconv fi enabled lirc && require2 lirc lirc/lirc_client.h lirc_init -llirc_client -print_config HAVE_ mp_config.h mp_config.mak lirc +print_config HAVE_ mpxp_config.h mpxp_config.mak lirc enabled lircc && require2 lircc lirc/lircc.h lircc_init -llircc -print_config HAVE_ mp_config.h mp_config.mak lircc +print_config HAVE_ mpxp_config.h mpxp_config.mak lircc disable pthread for ld_i in "-lpthreadGC2" "-lpthread" "-pthread" "" ; do @@ -538,23 +538,23 @@ enabled pthread && break done disabled pthread && die "Lib pthread not found. (needed by xp mode)" -print_config HAVE_ mp_config.h mp_config.mak pthread +print_config HAVE_ mpxp_config.h mpxp_config.mak pthread check_func2 malloc.h malloc disabled malloc && die "malloc is not supported by your system" -print_config HAVE_ mp_config.h mp_config.mak malloc +print_config HAVE_ mpxp_config.h mpxp_config.mak malloc check_func2 malloc.h memalign disabled memalign && die "memalign is not supported by your system" -print_config HAVE_ mp_config.h mp_config.mak memalign +print_config HAVE_ mpxp_config.h mpxp_config.mak memalign check_func2 alloca.h alloca -print_config HAVE_ mp_config.h mp_config.mak alloca +print_config HAVE_ mpxp_config.h mpxp_config.mak alloca require2 sys_soundcard_h sys/soundcard.h SNDCARD_SB -print_config HAVE_ mp_config.h mp_config.mak sys_soundcard_h +print_config HAVE_ mpxp_config.h mpxp_config.mak sys_soundcard_h require2 soundcard_h soundcard.h SNDCARD_SB -print_config HAVE_ mp_config.h mp_config.mak soundcard_h +print_config HAVE_ mpxp_config.h mpxp_config.mak soundcard_h # XXX: FIXME, add runtime checking echocheck "linux devfs" @@ -564,15 +564,15 @@ echocheck "language" linguas=$language test -z $linguas && linguas=`echo $LANG | sed 's/^\([^_]*\).*$/\1/'` -if test -f "nls/help_mp-$linguas.h" ; then +if test -f "nls/mpxp_help-$linguas.h" ; then echores "$linguas" else echores "$linguas not found, using en" linguas="en" fi -mp_help="nls/help_mp-$linguas.h" -test -f nls/help_mp-$linguas.h || die "nls/help_mp-$linguas.h not found" -echo "#define I18N_LANGUAGE \"$linguas\"" >>mp_config.h +mpxp_help="nls/mpxp_help-$linguas.h" +test -f nls/mpxp_help-$linguas.h || die "nls/mpxp_help-$linguas.h not found" +echo "#define I18N_LANGUAGE \"$linguas\"" >>mpxp_config.h enabled gpl_only && disable win32loader @@ -580,7 +580,7 @@ disable win32loader fi win32 && add_ldflags -lkernel32 -print_config ENABLE_ mp_config.h mp_config.mak win32loader +print_config ENABLE_ mpxp_config.h mpxp_config.mak win32loader echo -n "win32 dll's ... " if test -z "$win32libdir" ; then @@ -592,29 +592,29 @@ done fi echo "$win32libdir" -echo "#define WIN32_PATH \"$win32libdir\"" >>mp_config.h +echo "#define WIN32_PATH \"$win32libdir\"" >>mpxp_config.h ######### # VIDEO # ######### check_pkg x11 x11 enabled x11 && require2 x11 "X11/Xlib.h X11/Xutil.h" XCreateWindow -lXext -print_config HAVE_ mp_config.h mp_config.mak x11 +print_config HAVE_ mpxp_config.h mpxp_config.mak x11 enabled x11 && vomodules="x11 $vomodules" || novomodules="x11 $novomodules" disabled x11 && disable xdpms enabled xdpms && require2 xdpms "X11/Xlib.h X11/extensions/dpms.h" DPMSQueryExtension disabled xdpms && require2 xdpms "X11/Xlib.h X11/extensions/dpms.h" DPMSQueryExtension -lXdpms -print_config HAVE_ mp_config.h mp_config.mak xdpms +print_config HAVE_ mpxp_config.h mpxp_config.mak xdpms disabled x11 && disable xv enabled xv && require2 xv "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv -print_config HAVE_ mp_config.h mp_config.mak xv +print_config HAVE_ mpxp_config.h mpxp_config.mak xv enabled xv && vomodules="xv $vomodules" || novomodules="xv $novomodules" disabled x11 && disable xinerama enabled xinerama && require2 xinerama "X11/Xlib.h X11/extensions/Xinerama.h" XineramaIsActive -lXinerama -print_config HAVE_ mp_config.h mp_config.mak xinerama +print_config HAVE_ mpxp_config.h mpxp_config.mak xinerama if win32 ; then enabled opengl && require2 opengl "windows.h GL/gl.h" wglCreateContext -lopengl32 -lgdi32 @@ -622,7 +622,7 @@ disabled x11 && disable opengl enabled opengl && require2 opengl "GL/gl.h GL/glx.h GL/glut.h" glutInitWindowSize -lglut -lGL -lGLU fi -print_config HAVE_ mp_config.h mp_config.mak opengl +print_config HAVE_ mpxp_config.h mpxp_config.mak opengl enabled opengl && vomodules="opengl $vomodules" || novomodules="opengl $novomodules" # Note: the -lXxf86vm library is the VideoMode extension and though it's not @@ -632,12 +632,12 @@ # If you run into problems, remove '-lXxf86vm'. disabled x11 && disable xf86vm enabled xf86vm && require2 xf86vm "X11/Xlib.h X11/extensions/xf86vmode.h" XF86VidModeQueryExtension -lXxf86vm -print_config HAVE_ mp_config.h mp_config.mak xf86vm +print_config HAVE_ mpxp_config.h mpxp_config.mak xf86vm disabled x11 && disable dga enabled fbdev && require2 fbdev "sys/ioctl.h linux/fb.h" ioctl -print_config HAVE_ mp_config.h mp_config.mak fbdev +print_config HAVE_ mpxp_config.h mpxp_config.mak fbdev enabled fbdev && vomodules="fbdev $vomodules" || novomodules="fbdev $novomodules" if test "$fbdev_nocopy" = yes ; then def_fbdev_nocopy='#define USE_CONVERT2FB 1' @@ -645,15 +645,15 @@ if enabled png; then require2 png png.h PNG_LIBPNG_VER_STRING -lpng -print_config HAVE_ mp_config.h mp_config.mak png +print_config HAVE_ mpxp_config.h mpxp_config.mak png disabled png && require2 libpng_png libpng/png.h PNG_LIBPNG_VER_STRING -lpng -lm -print_config HAVE_ mp_config.h mp_config.mak libpng_png +print_config HAVE_ mpxp_config.h mpxp_config.mak libpng_png enabled libpng_png && enable png fi enabled png && vomodules="png $vomodules" || novomodules="png $novomodules" enabled jpg && require2 jpeg "stdio.h stdlib.h setjmp.h string.h jpeglib.h" jpeg_write_scanlines -ljpeg -print_config HAVE_ mp_config.h mp_config.mak jpeg +print_config HAVE_ mpxp_config.h mpxp_config.mak jpeg enabled jpeg && vomodules="jpeg $vomodules" || novomodules="jpeg $novomodules" x86_32 || disable vesa @@ -663,7 +663,7 @@ vesa=$_vesa enabled vesa && require3 vesa "asm/vm86.h string.h" X86_EFLAGS_VIF memset fi -print_config HAVE_ mp_config.h mp_config.mak vesa +print_config HAVE_ mpxp_config.h mpxp_config.mak vesa enabled vesa && vomodules="vesa $vomodules" || novomodules="vesa $novomodules" ################# @@ -672,21 +672,21 @@ enabled sdl && check_pkg sdl sdl enabled sdl && require2 sdl SDL/SDL.h SDL_CreateYUVOverlay -print_config HAVE_ mp_config.h mp_config.mak sdl +print_config HAVE_ mpxp_config.h mpxp_config.mak sdl disabled sdl && disable sdl_image if enabled sdl; then enabled sdl_image && require2 sdl_image SDL/SDL_image.h IMG_Load_RW -lSDL_image -print_config HAVE_ mp_config.h mp_config.mak sdl_image +print_config HAVE_ mpxp_config.h mpxp_config.mak sdl_image fi enabled sdl && aomodules="sdl $aomodules" || noaomodules="sdl $noaomodules" enabled sdl && vomodules="sdl $vomodules" || novomodules="sdl $novomodules" enabled sdl_image && vomodules="sdl_image $vomodules" || novomodules="sdl_image $novomodules" enabled libcdio && require2 libcdio "cdio/cdio.h" cdio_read_mode2_sectors -lcdio -print_config HAVE_ mp_config.h mp_config.mak libcdio +print_config HAVE_ mpxp_config.h mpxp_config.mak libcdio enabled libcdio && require2 libcdio_cdda "cdio/cdda.h" cdio_cddap_read -lcdio_cdda -print_config HAVE_ mp_config.h mp_config.mak libcdio_cdda +print_config HAVE_ mpxp_config.h mpxp_config.mak libcdio_cdda enabled libcdio_cdda && inputmodules="cdda $inputmodules" || noinputmodules="cdda $noinputmodules" ######### @@ -695,7 +695,7 @@ enabled ossaudio && require2 ossaudio sys/soundcard.h SNDCTL_DSP_SETFRAGMENT oss_audio=$ossaudio -print_config USE_ mp_config.h mp_config.mak oss_audio +print_config USE_ mpxp_config.h mpxp_config.mak oss_audio enabled ossaudio && aomodules="oss $aomodules" || noaomodules="oss $noaomodules" if test "$linux_devfs" = yes; then def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"' @@ -706,71 +706,71 @@ fi enabled alsa && require2 alsa alsa/asoundlib.h SND_LIB_MAJOR -lasound -print_config HAVE_ mp_config.h mp_config.mak alsa +print_config HAVE_ mpxp_config.h mpxp_config.mak alsa enabled alsa && aomodules="alsa $aomodules" || noaomodules="alsa $noaomodules" # It seems that aRts doesn't support pkg-config enabled arts && check_cflags $(artsc-config --cflags) && add_cflags $(artsc-config --cflags) || disable arts enabled arts && check_ldflags $(artsc-config --libs) && add_extralibs $(artsc-config --libs) || disable arts enabled arts && require2 arts artsc.h arts_write -lartsc -print_config HAVE_ mp_config.h mp_config.mak arts +print_config HAVE_ mpxp_config.h mpxp_config.mak arts enabled arts && aomodules="arts $aomodules" || noaomodules="arts $noaomodules" check_pkg esd esound enabled esd && require2 esd esd.h esd_open_sound -print_config HAVE_ mp_config.h mp_config.mak esd +print_config HAVE_ mpxp_config.h mpxp_config.mak esd enabled esd && aomodules="esd $aomodules" || noaomodules="esd $noaomodules" enabled openal && require2 openal AL/al.h alSourceQueueBuffers -lopenal -print_config HAVE_ mp_config.h mp_config.mak openal +print_config HAVE_ mpxp_config.h mpxp_config.mak openal enabled openal && aomodules="openal $aomodules" || noaomodules="openal $noaomodules" enabled nas && require2 nas audio/audiolib.h AuOpenServer -laudio -print_config HAVE_ mp_config.h mp_config.mak nas +print_config HAVE_ mpxp_config.h mpxp_config.mak nas enabled nas && aomodules="nas $aomodules" || noaomodules="nas $noaomodules" check_pkg jack jack enabled jack && require2 jack jack/jack.h jack_client_open -print_config HAVE_ mp_config.h mp_config.mak jack +print_config HAVE_ mpxp_config.h mpxp_config.mak jack enabled jack && aomodules="jack $aomodules" || noaomodules="jack $noaomodules" enabled libdvdread && require2 libdvdread "stdint.h dvdread/dvd_reader.h dvdread/ifo_types.h dvdread/ifo_read.h dvdread/nav_read.h" DVDOpenFile -ldvdread dvdread=$libdvdread -print_config USE_ mp_config.h mp_config.mak dvdread +print_config USE_ mpxp_config.h mpxp_config.mak dvdread enabled libdvdread && inputmodules="libdvdread $inputmodules" || noinputmodules="libdvdread $noinputmodules" enabled libdvdnav && require2 libdvdnav dvdnav/dvdnav.h dvdnav_set_PGC_positioning_flag -ldvdnav dvdnav=$libdvdnav -print_config USE_ mp_config.h mp_config.mak dvdnav +print_config USE_ mpxp_config.h mpxp_config.mak dvdnav enabled libdvdnav && inputmodules="libdvdnav $inputmodules" || noinputmodules="libdvdnav $noinputmodules" enabled libvcd && require2 libvcd libvcd/info.h vcdinfo_open -lvcdinfo -print_config USE_ mp_config.h mp_config.mak libvcd +print_config USE_ mpxp_config.h mpxp_config.mak libvcd enabled libvcd && inputmodules="libvcd $inputmodules" || noinputmodules="libvcd $noinputmodules" enabled libdv && check_pkg libdv libdv enabled libdv && require2 libdv "libdv/dv.h" dv_encoder_new -ldv -print_config HAVE_ mp_config.h mp_config.mak libdv +print_config HAVE_ mpxp_config.h mpxp_config.mak libdv enabled libdv && inputmodules="libdv $inputmodules" || noinputmodules="libdv $noinputmodules" enabled fastmemcpy && x86 || disable fastmemcpy -print_config USE_ mp_config.h mp_config.mak fastmemcpy +print_config USE_ mpxp_config.h mpxp_config.mak fastmemcpy -enabled tv && print_config USE_ mp_config.h mp_config.mak tv +enabled tv && print_config USE_ mpxp_config.h mpxp_config.mak tv enabled tv && inputmodules="tv $inputmodules" || noinputmodules="tv $noinputmodules" -print_config HAVE_ mp_config.h mp_config.mak audio_select +print_config HAVE_ mpxp_config.h mpxp_config.mak audio_select enabled libvorbis && check_pkg libvorbis vorbis -print_config HAVE_ mp_config.h mp_config.mak libvorbis +print_config HAVE_ mpxp_config.h mpxp_config.mak libvorbis enabled libvorbis && inputmodules="libvorbis $inputmodules" || noinputmodules="libvorbis $noinputmodules" enabled libtheora && check_pkg libtheora theora -print_config HAVE_ mp_config.h mp_config.mak libtheora +print_config HAVE_ mpxp_config.h mpxp_config.mak libtheora enabled libtheora && inputmodules="libtheora $inputmodules" || noinputmodules="libtheora $noinputmodules" enabled libbz2 && require2 libbz2 bzlib.h BZ2_bzlibVersion -lbz2 || disable libbz2 -print_config HAVE_ mp_config.h mp_config.mak libbz2 +print_config HAVE_ mpxp_config.h mpxp_config.mak libbz2 CFLAGS="$CFLAGS -W -Wall -Wextra -Wshadow" # Thread support @@ -792,12 +792,12 @@ # Checking for VIDIX enabled vidix && xxrequire2 vidix "vidix/vidix.h vidix/vidixlibxx.h" Vidix -lvidixxx -print_config CONFIG_ mp_config.h mp_config.mak vidix +print_config CONFIG_ mpxp_config.h mpxp_config.mak vidix enabled x11 && enabled vidix && vomodules=":vidix $vomodules" || novomodules=":vidix $novomodules" enabled joystick && test linux || disable joystick -print_config HAVE_ mp_config.h mp_config.mak joystick +print_config HAVE_ mpxp_config.h mpxp_config.mak joystick # pseudo-ramdom names cat > $TMPC << EOF @@ -885,8 +885,8 @@ ./version.sh ############################################################################# -echo "Creating mp_config.mak" -cat >> mp_config.mak << EOF +echo "Creating mpxp_config.mak" +cat >> mpxp_config.mak << EOF # -------- Generated by configure ----------- LANG = C @@ -922,13 +922,13 @@ # --- HAZARDOUS STUFF EOF -echo "EXTRALIBS=$extralibs" >> mp_config.mak -echo "LDFLAGS=$LDFLAGS" >> mp_config.mak -echo "LDXXFLAGS=$LDXXFLAGS" >> mp_config.mak +echo "EXTRALIBS=$extralibs" >> mpxp_config.mak +echo "LDFLAGS=$LDFLAGS" >> mpxp_config.mak +echo "LDXXFLAGS=$LDXXFLAGS" >> mpxp_config.mak ############################################################################# -echo "Creating mp_config.h" -cat >> mp_config.h << EOF +echo "Creating mpxp_config.h" +cat >> mpxp_config.h << EOF #ifndef MPXP_CONFIG_H #define MPXP_CONFIG_H 1 /* -------- This file has been automatically generated by configure --------- @@ -1133,16 +1133,21 @@ ############################################################################# -echo "Creating help_mp.h" -cat > help_mp.h << EOF -#include "$mp_help" -#include "nls/help_mp-en.h" +echo "Creating mpxp_help.h" +cat > mpxp_help.h << EOF +#ifndef __MPXP_HELP_H_INCLUDED +#define __MPXP_HELP_H_INCLUDED 1 + +#include "$mpxp_help" +#include "nls/mpxp_help-en.h" + +#endif EOF -echo "Creating mp_conf_lavc.h" -cat > mp_conf_lavc.h << EOF -#ifndef __MP_CONF_LAVC_H_INCLUDED__ -#define __MP_CONF_LAVC_H_INCLUDED__ 1 +echo "Creating mpxp_conf_lavc.h" +cat > mpxp_conf_lavc.h << EOF +#ifndef __MPXP_CONF_LAVC_H_INCLUDED__ +#define __MPXP_CONF_LAVC_H_INCLUDED__ 1 #include <stdint.h> #ifdef __cplusplus Modified: mplayerxp/dump.cpp =================================================================== --- mplayerxp/dump.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/dump.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* @@ -11,14 +11,14 @@ #include <math.h> #include "xmpcore/sig_hand.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "input2/input.h" #include "mplayerxp.h" #include "libmpdemux/muxer.h" #include "libmpstream2/stream.h" #include "libmpstream2/mrl.h" #define MSGT_CLASS MSGT_GLOBAL -#include "mp_msg.h" +#include "mpxp_msg.h" #include "dump.h" namespace mpxp { Modified: mplayerxp/input2/Makefile =================================================================== --- mplayerxp/input2/Makefile 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/input2/Makefile 2012-12-19 08:57:43 UTC (rev 576) @@ -1,5 +1,5 @@ -include ../mp_config.mak +include ../mpxp_config.mak LIBNAME = libinput2.a Modified: mplayerxp/input2/in_msg.h =================================================================== --- mplayerxp/input2/in_msg.h 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/input2/in_msg.h 2012-12-19 08:57:43 UTC (rev 576) @@ -2,6 +2,6 @@ #define IN_MSG_H #define MSGT_CLASS MSGT_INPUT -#include "mp_msg.h" +#include "mpxp_msg.h" #endif Modified: mplayerxp/input2/input.cpp =================================================================== --- mplayerxp/input2/input.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/input2/input.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdlib.h> Modified: mplayerxp/input2/input.h =================================================================== --- mplayerxp/input2/input.h 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/input2/input.h 2012-12-19 08:57:43 UTC (rev 576) @@ -1,6 +1,6 @@ #ifndef INPUT_H_INCLUDED #define INPUT_H_INCLUDED 1 -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; Modified: mplayerxp/input2/joystick.cpp =================================================================== --- mplayerxp/input2/joystick.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/input2/joystick.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; Modified: mplayerxp/input2/lirc.cpp =================================================================== --- mplayerxp/input2/lirc.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/input2/lirc.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; @@ -13,7 +13,7 @@ #include <sys/time.h> #include <stdlib.h> -#include "help_mp.h" +#include "mpxp_help.h" #include "input.h" #include "in_msg.h" Modified: mplayerxp/libao3/Makefile =================================================================== --- mplayerxp/libao3/Makefile 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/Makefile 2012-12-19 08:57:43 UTC (rev 576) @@ -1,5 +1,5 @@ -include ../mp_config.mak +include ../mpxp_config.mak LIBNAME = libao3.a Modified: mplayerxp/libao3/afmt.cpp =================================================================== --- mplayerxp/libao3/afmt.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/afmt.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include "afmt.h" Modified: mplayerxp/libao3/afmt.h =================================================================== --- mplayerxp/libao3/afmt.h 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/afmt.h 2012-12-19 08:57:43 UTC (rev 576) @@ -9,7 +9,7 @@ #include <soundcard.h> /* OpenBSD have this instead of <sys/soundcard> */ #endif #endif -#include "mp_config.h" +#include "mpxp_config.h" /* standard, old OSS audio formats */ #ifndef AFMT_MU_LAW Modified: mplayerxp/libao3/ao_alsa.cpp =================================================================== --- mplayerxp/libao3/ao_alsa.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_alsa.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* Modified: mplayerxp/libao3/ao_arts.cpp =================================================================== --- mplayerxp/libao3/ao_arts.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_arts.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* Modified: mplayerxp/libao3/ao_esd.cpp =================================================================== --- mplayerxp/libao3/ao_esd.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_esd.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* Modified: mplayerxp/libao3/ao_jack.cpp =================================================================== --- mplayerxp/libao3/ao_jack.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_jack.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* @@ -36,7 +36,7 @@ #include "osdep/timer.h" #include "ao_msg.h" -#include "mp_conf_lavc.h" +#include "mpxp_conf_lavc.h" #include <jack/jack.h> namespace mpxp { Modified: mplayerxp/libao3/ao_msg.h =================================================================== --- mplayerxp/libao3/ao_msg.h 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_msg.h 2012-12-19 08:57:43 UTC (rev 576) @@ -2,6 +2,6 @@ #define AO_MSG_H #define MSGT_CLASS MSGT_AO -#include "mp_msg.h" +#include "mpxp_msg.h" #endif Modified: mplayerxp/libao3/ao_nas.cpp =================================================================== --- mplayerxp/libao3/ao_nas.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_nas.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* Modified: mplayerxp/libao3/ao_null.cpp =================================================================== --- mplayerxp/libao3/ao_null.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_null.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdint.h> Modified: mplayerxp/libao3/ao_openal.cpp =================================================================== --- mplayerxp/libao3/ao_openal.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_openal.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* Modified: mplayerxp/libao3/ao_oss.cpp =================================================================== --- mplayerxp/libao3/ao_oss.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_oss.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -261,7 +261,7 @@ int _r=0; MSG_WARN("OSS-CONF: driver doesn't support SNDCTL_DSP_GETOSPACE :-(\n"); if(::ioctl(fd, SNDCTL_DSP_GETBLKSIZE, &_r)==-1){ - MSG_V("OSS-CONF: %d bytes/frag (mp_config.h)\n",_outburst); + MSG_V("OSS-CONF: %d bytes/frag (mpxp_config.h)\n",_outburst); } else { _outburst=r; MSG_V("OSS-CONF: %d bytes/frag (GETBLKSIZE)\n",_outburst); @@ -291,7 +291,7 @@ delete data; if(_buffersize==0){ MSG_ERR("\n *** OSS-CONF: Your audio driver DOES NOT support select() ***\n" - "Recompile mplayerxp with #undef HAVE_AUDIO_SELECT in mp_config.h !\n\n"); + "Recompile mplayerxp with #undef HAVE_AUDIO_SELECT in mpxp_config.h !\n\n"); return MPXP_False; } #endif Modified: mplayerxp/libao3/ao_sdl.cpp =================================================================== --- mplayerxp/libao3/ao_sdl.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_sdl.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* Modified: mplayerxp/libao3/ao_wav.cpp =================================================================== --- mplayerxp/libao3/ao_wav.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/ao_wav.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* @@ -31,7 +31,7 @@ #include "audio_out.h" #include "audio_out_internal.h" #include "libvo2/video_out.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "ao_msg.h" #ifdef __MINGW32__ Modified: mplayerxp/libao3/audio_out.cpp =================================================================== --- mplayerxp/libao3/audio_out.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/audio_out.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> Modified: mplayerxp/libao3/audio_out.h =================================================================== --- mplayerxp/libao3/audio_out.h 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/audio_out.h 2012-12-19 08:57:43 UTC (rev 576) @@ -1,6 +1,6 @@ #ifndef __AUDIO_OUT_H #define __AUDIO_OUT_H 1 -#include "mp_config.h" +#include "mpxp_config.h" #include "xmpcore/xmp_enums.h" #include <string> Modified: mplayerxp/libao3/audio_out_internal.h =================================================================== --- mplayerxp/libao3/audio_out_internal.h 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libao3/audio_out_internal.h 2012-12-19 08:57:43 UTC (rev 576) @@ -1,6 +1,6 @@ #ifndef __AO_INTERNAL_H_INCLUDED #define __AO_INTERNAL_H_INCLUDED 1 -#include "mp_config.h" +#include "mpxp_config.h" #include <string> Modified: mplayerxp/libmpcodecs/Makefile =================================================================== --- mplayerxp/libmpcodecs/Makefile 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/Makefile 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -include ../mp_config.mak +include ../mpxp_config.mak LIBNAME = libmpcodecs.a SUBDIRS = libnuppelvideo liba52 libdca Modified: mplayerxp/libmpcodecs/ad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* Modified: mplayerxp/libmpcodecs/ad_a52.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -11,7 +11,7 @@ #include "codecs_ld.h" #include "mplayerxp.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "osdep/cpudetect.h" #include "osdep/bswap.h" Modified: mplayerxp/libmpcodecs/ad_acm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -11,7 +11,7 @@ #include "loader/wineacm.h" #include "libmpdemux/aviprint.h" #include "libao3/afmt.h" -#include "help_mp.h" +#include "mpxp_help.h" static const ad_info_t info = { "Win32/ACM decoders", Modified: mplayerxp/libmpcodecs/ad_dca.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -11,7 +11,7 @@ #include "codecs_ld.h" #include "mplayerxp.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "osdep/cpudetect.h" #include "libdca/dca.h" Modified: mplayerxp/libmpcodecs/ad_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -9,7 +9,7 @@ #include "codecs_ld.h" #include "mplayerxp.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "ad_internal.h" #include "ad_msg.h" Modified: mplayerxp/libmpcodecs/ad_dshow.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -6,7 +6,7 @@ #include <unistd.h> #include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ #include "ad_internal.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "loader/dshow/DS_AudioDecoder.h" #include "codecs_ld.h" Modified: mplayerxp/libmpcodecs/ad_dvdpcm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> Modified: mplayerxp/libmpcodecs/ad_faad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* ad_faad.c - MPlayer AAC decoder using libfaad2 @@ -11,7 +11,7 @@ #include <unistd.h> #include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ -#include "help_mp.h" +#include "mpxp_help.h" #include "osdep/bswap.h" #include "codecs_ld.h" #include "ad_internal.h" Modified: mplayerxp/libmpcodecs/ad_hwac3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -10,7 +10,7 @@ #include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ #include "ad_internal.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "codecs_ld.h" #include "osdep/cpudetect.h" #include "osdep/bswap.h" Modified: mplayerxp/libmpcodecs/ad_lavc.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -11,11 +11,11 @@ #include "libao3/afmt.h" #include "ad_internal.h" -#include "help_mp.h" +#include "mpxp_help.h" #include "osdep/bswap.h" #include "libmpconf/codec-cfg.h" -#include "mp_conf_lavc.h" +#include "mpxp_conf_lavc.h" #include "codecs_ld.h" struct ad_private_t { Modified: mplayerxp/libmpcodecs/ad_libdv.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -8,7 +8,7 @@ #include <unistd.h> #include <math.h> -#include "help_mp.h" +#include "mpxp_help.h" #include <libdv/dv.h> #include <libdv/dv_types.h> Modified: mplayerxp/libmpcodecs/ad_mp3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> Modified: mplayerxp/libmpcodecs/ad_msg.h =================================================================== --- mplayerxp/libmpcodecs/ad_msg.h 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_msg.h 2012-12-19 08:57:43 UTC (rev 576) @@ -2,6 +2,6 @@ #define AD_MSG_H 1 #define MSGT_CLASS MSGT_DECAUDIO -#include "mp_msg.h" +#include "mpxp_msg.h" #endif Modified: mplayerxp/libmpcodecs/ad_null.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_null.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_null.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> Modified: mplayerxp/libmpcodecs/ad_pcm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_pcm.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_pcm.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> Modified: mplayerxp/libmpcodecs/ad_qtaudio.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> Modified: mplayerxp/libmpcodecs/ad_real.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_real.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_real.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; Modified: mplayerxp/libmpcodecs/ad_twin.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> @@ -11,7 +11,7 @@ #include "loader/wine/windef.h" #include "libao3/afmt.h" #include "libmpdemux/aviprint.h" -#include "help_mp.h" +#include "mpxp_help.h" static const ad_info_t info = { "TWinVQ decoder", Modified: mplayerxp/libmpcodecs/ad_vorbis.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_vorbis.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/ad_vorbis.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; #include <stdio.h> Modified: mplayerxp/libmpcodecs/codecs_ld.cpp =================================================================== --- mplayerxp/libmpcodecs/codecs_ld.cpp 2012-12-18 16:22:42 UTC (rev 575) +++ mplayerxp/libmpcodecs/codecs_ld.cpp 2012-12-19 08:57:43 UTC (rev 576) @@ -1,4 +1,4 @@ -#include "mp_config.h" +#include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; /* @@ -10,9 +10,9 @@ #include <string.h> #include <stdarg.h> #include "codecs_ld.h" -#include "help_mp.h" +#include "mpxp_help.h" #define MSGT_CLASS MSGT_GLOBAL -#include "mp_msg.h" +#include "mpxp_msg.h" any_t* ld_codec(const char *name,const char *url_hint) { Modified: m... [truncated message content] |
From: <nic...@us...> - 2012-12-19 09:28:24
|
Revision: 577 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=577&view=rev Author: nickols_k Date: 2012-12-19 09:28:13 +0000 (Wed, 19 Dec 2012) Log Message: ----------- addon for minor antiviral patch Modified Paths: -------------- mplayerxp/libmpcodecs/dec_audio.h mplayerxp/libmpcodecs/dec_video.cpp mplayerxp/libmpdemux/stheader.h mplayerxp/libmpstream2/s_oss.cpp mplayerxp/libvo2/video_out.h mplayerxp/libvo2/vidix_system.cpp mplayerxp/libvo2/vo_sdl.cpp mplayerxp/libvo2/vo_x11.cpp mplayerxp/libvo2/vo_xv.cpp mplayerxp/postproc/af.h mplayerxp/postproc/aflib.h mplayerxp/postproc/libmenu/menu.cpp mplayerxp/postproc/libmenu/menu_cmdlist.cpp mplayerxp/postproc/libmenu/menu_console.cpp mplayerxp/postproc/libmenu/menu_filesel.cpp mplayerxp/postproc/libmenu/menu_list.cpp mplayerxp/postproc/libmenu/menu_param.cpp mplayerxp/postproc/libmenu/menu_pt.cpp mplayerxp/postproc/libmenu/menu_txt.cpp mplayerxp/postproc/vf.cpp mplayerxp/postproc/vf.h mplayerxp/postproc/vf_1bpp.cpp mplayerxp/postproc/vf_2xsai.cpp mplayerxp/postproc/vf_aspect.cpp mplayerxp/postproc/vf_delogo.cpp mplayerxp/postproc/vf_denoise3d.cpp mplayerxp/postproc/vf_dint.cpp mplayerxp/postproc/vf_down3dright.cpp mplayerxp/postproc/vf_eq.cpp mplayerxp/postproc/vf_expand.cpp mplayerxp/postproc/vf_flip.cpp mplayerxp/postproc/vf_format.cpp mplayerxp/postproc/vf_framestep.cpp mplayerxp/postproc/vf_il.cpp mplayerxp/postproc/vf_menu.cpp mplayerxp/postproc/vf_mirror.cpp mplayerxp/postproc/vf_noise.cpp mplayerxp/postproc/vf_ow.cpp mplayerxp/postproc/vf_palette.cpp mplayerxp/postproc/vf_panscan.cpp mplayerxp/postproc/vf_perspective.cpp mplayerxp/postproc/vf_pp.cpp mplayerxp/postproc/vf_raw.cpp mplayerxp/postproc/vf_rectangle.cpp mplayerxp/postproc/vf_rgb2bgr.cpp mplayerxp/postproc/vf_rotate.cpp mplayerxp/postproc/vf_scale.cpp mplayerxp/postproc/vf_smartblur.cpp mplayerxp/postproc/vf_softpulldown.cpp mplayerxp/postproc/vf_swapuv.cpp mplayerxp/postproc/vf_test.cpp mplayerxp/postproc/vf_unsharp.cpp mplayerxp/postproc/vf_vo2.cpp mplayerxp/postproc/vf_yuvcsp.cpp mplayerxp/postproc/vf_yuy2.cpp mplayerxp/postproc/vf_yvu9.cpp mplayerxp/xmpcore/Makefile Added Paths: ----------- mplayerxp/xmpcore/xmp_aframe.cpp mplayerxp/xmpcore/xmp_aframe.h mplayerxp/xmpcore/xmp_image.cpp mplayerxp/xmpcore/xmp_image.h Removed Paths: ------------- mplayerxp/xmpcore/mp_aframe.cpp mplayerxp/xmpcore/mp_aframe.h mplayerxp/xmpcore/mp_image.cpp mplayerxp/xmpcore/mp_image.h Modified: mplayerxp/libmpcodecs/dec_audio.h =================================================================== --- mplayerxp/libmpcodecs/dec_audio.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libmpcodecs/dec_audio.h 2012-12-19 09:28:13 UTC (rev 577) @@ -1,7 +1,7 @@ #ifndef DEC_AUDIO_H_INCLUDED #define DEC_AUDIO_H_INCLUDED 1 #include "ad.h" -#include "xmpcore/mp_aframe.h" +#include "xmpcore/xmp_aframe.h" #include "xmpcore/xmp_enums.h" struct audio_decoder_t { Modified: mplayerxp/libmpcodecs/dec_video.cpp =================================================================== --- mplayerxp/libmpcodecs/dec_video.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libmpcodecs/dec_video.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -620,8 +620,8 @@ return MPXP_True; } -// mp_imgtype: buffering type, see mp_image.h -// mp_imgflag: buffer requirements (read/write, preserve, stride limits), see mp_image.h +// mp_imgtype: buffering type, see xmp_image.h +// mp_imgflag: buffer requirements (read/write, preserve, stride limits), see xmp_image.h // returns NULL or allocated mp_image_t* // Note: buffer allocation may be moved to mpcodecs_config_vf() later... mp_image_t* mpcodecs_get_image(video_decoder_t *opaque, int mp_imgtype, int mp_imgflag,int w, int h){ Modified: mplayerxp/libmpdemux/stheader.h =================================================================== --- mplayerxp/libmpdemux/stheader.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libmpdemux/stheader.h 2012-12-19 09:28:13 UTC (rev 577) @@ -11,7 +11,7 @@ #ifdef __cplusplus } #endif -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "demuxer_stream.h" struct ImageDescription; Modified: mplayerxp/libmpstream2/s_oss.cpp =================================================================== --- mplayerxp/libmpstream2/s_oss.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libmpstream2/s_oss.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -17,7 +17,7 @@ #include <string.h> #include "mplayerxp.h" -#include "xmpcore/mp_aframe.h" +#include "xmpcore/xmp_aframe.h" #include "postproc/af.h" #include "libao3/afmt.h" #include "libao3/audio_out.h" Modified: mplayerxp/libvo2/video_out.h =================================================================== --- mplayerxp/libvo2/video_out.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libvo2/video_out.h 2012-12-19 09:28:13 UTC (rev 577) @@ -25,7 +25,7 @@ #include "sub.h" #include "libmpsub/subreader.h" #include "img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "xmpcore/xmp_enums.h" namespace mpxp { Modified: mplayerxp/libvo2/vidix_system.cpp =================================================================== --- mplayerxp/libvo2/vidix_system.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libvo2/vidix_system.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -27,7 +27,7 @@ #include "vidix_system.h" #include "osdep/fastmemcpy.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vo_msg.h" using namespace vidix; Modified: mplayerxp/libvo2/vo_sdl.cpp =================================================================== --- mplayerxp/libvo2/vo_sdl.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libvo2/vo_sdl.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -129,7 +129,7 @@ #include "input2/input.h" #include "input2/mouse.h" #include "osdep/keycodes.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #ifdef CONFIG_VIDIX #include "vidix_system.h" #endif Modified: mplayerxp/libvo2/vo_x11.cpp =================================================================== --- mplayerxp/libvo2/vo_x11.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libvo2/vo_x11.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -48,7 +48,7 @@ #include "vidix_system.h" #endif #include "dri_vo.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vo_msg.h" namespace mpxp { Modified: mplayerxp/libvo2/vo_xv.cpp =================================================================== --- mplayerxp/libvo2/vo_xv.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/libvo2/vo_xv.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -35,7 +35,7 @@ #include "sub.h" #include "aspect.h" #include "dri_vo.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vo_msg.h" Modified: mplayerxp/postproc/af.h =================================================================== --- mplayerxp/postproc/af.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/af.h 2012-12-19 09:28:13 UTC (rev 577) @@ -6,7 +6,7 @@ #include "mpxp_config.h" #include "af_control.h" #include "xmpcore/xmp_enums.h" -#include "xmpcore/mp_aframe.h" +#include "xmpcore/xmp_aframe.h" struct af_instance_t; Modified: mplayerxp/postproc/aflib.h =================================================================== --- mplayerxp/postproc/aflib.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/aflib.h 2012-12-19 09:28:13 UTC (rev 577) @@ -12,7 +12,7 @@ #define _AFLIB_H 1 #include "mpxp_config.h" -#include "xmpcore/mp_aframe.h" +#include "xmpcore/xmp_aframe.h" /* Implementation of routines used for DSP */ /* Size of floating point type used in routines */ Modified: mplayerxp/postproc/libmenu/menu.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -20,7 +20,7 @@ #include "libvo2/img_format.h" #include "libvo2/video_out.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libmpconf/m_option.h" #include "libmpconf/m_struct.h" #include "menu.h" Modified: mplayerxp/postproc/libmenu/menu_cmdlist.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_cmdlist.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu_cmdlist.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -10,7 +10,7 @@ #include <string.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libmpconf/m_option.h" #include "libmpconf/m_struct.h" Modified: mplayerxp/postproc/libmenu/menu_console.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_console.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu_console.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -17,7 +17,7 @@ #include <errno.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libmpconf/cfgparser.h" #include "libmpconf/m_struct.h" Modified: mplayerxp/postproc/libmenu/menu_filesel.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_filesel.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu_filesel.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -20,7 +20,7 @@ #include "libmpconf/cfgparser.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "menu.h" #include "menu_list.h" Modified: mplayerxp/postproc/libmenu/menu_list.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_list.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu_list.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -8,7 +8,7 @@ #include "libvo2/img_format.h" #include "libvo2/sub.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libmpconf/m_struct.h" #include "menu.h" Modified: mplayerxp/postproc/libmenu/menu_param.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_param.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu_param.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -20,7 +20,7 @@ #include "libplaytree/asxparser.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "menu.h" #include "menu_list.h" Modified: mplayerxp/postproc/libmenu/menu_pt.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_pt.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu_pt.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -8,7 +8,7 @@ #include "mpxp_help.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libmpconf/m_struct.h" #include "libmpconf/m_option.h" Modified: mplayerxp/postproc/libmenu/menu_txt.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_txt.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/libmenu/menu_txt.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -10,7 +10,7 @@ #include "libvo2/img_format.h" #include "libvo2/sub.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libmpconf/cfgparser.h" #include "libmpconf/m_struct.h" Modified: mplayerxp/postproc/vf.cpp =================================================================== --- mplayerxp/postproc/vf.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -11,7 +11,7 @@ #include "libvo2/img_format.h" #include "libvo2/video_out.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "swscale.h" Modified: mplayerxp/postproc/vf.h =================================================================== --- mplayerxp/postproc/vf.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf.h 2012-12-19 09:28:13 UTC (rev 577) @@ -2,7 +2,7 @@ #define __VF_H_INCLUDED 1 #include <stdint.h> #include "xmpcore/xmp_enums.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libvo2/video_out.h" // for vo_flags_e #include "vfcap.h" Modified: mplayerxp/postproc/vf_1bpp.cpp =================================================================== --- mplayerxp/postproc/vf_1bpp.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_1bpp.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_2xsai.cpp =================================================================== --- mplayerxp/postproc/vf_2xsai.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_2xsai.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "pp_msg.h" Modified: mplayerxp/postproc/vf_aspect.cpp =================================================================== --- mplayerxp/postproc/vf_aspect.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_aspect.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "pp_msg.h" Modified: mplayerxp/postproc/vf_delogo.cpp =================================================================== --- mplayerxp/postproc/vf_delogo.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_delogo.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -30,7 +30,7 @@ #include "osdep/cpudetect.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_denoise3d.cpp =================================================================== --- mplayerxp/postproc/vf_denoise3d.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_denoise3d.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -26,7 +26,7 @@ #include <math.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_dint.cpp =================================================================== --- mplayerxp/postproc/vf_dint.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_dint.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -8,7 +8,7 @@ #include "osdep/fastmemcpy.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "libvo2/img_format.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_down3dright.cpp =================================================================== --- mplayerxp/postproc/vf_down3dright.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_down3dright.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -9,7 +9,7 @@ #include "osdep/cpudetect.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_eq.cpp =================================================================== --- mplayerxp/postproc/vf_eq.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_eq.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -22,7 +22,7 @@ #include "libvo2/img_format.h" #include "libvo2/video_out.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_expand.cpp =================================================================== --- mplayerxp/postproc/vf_expand.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_expand.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -8,7 +8,7 @@ #include <string.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_flip.cpp =================================================================== --- mplayerxp/postproc/vf_flip.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_flip.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -25,7 +25,7 @@ #include "pp_msg.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_format.cpp =================================================================== --- mplayerxp/postproc/vf_format.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_format.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "pp_msg.h" Modified: mplayerxp/postproc/vf_framestep.cpp =================================================================== --- mplayerxp/postproc/vf_framestep.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_framestep.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -58,7 +58,7 @@ #include "osdep/cpudetect.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "pp_msg.h" Modified: mplayerxp/postproc/vf_il.cpp =================================================================== --- mplayerxp/postproc/vf_il.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_il.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -26,7 +26,7 @@ #include <assert.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_menu.cpp =================================================================== --- mplayerxp/postproc/vf_menu.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_menu.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -11,7 +11,7 @@ #include "mplayerxp.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_mirror.cpp =================================================================== --- mplayerxp/postproc/vf_mirror.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_mirror.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_noise.cpp =================================================================== --- mplayerxp/postproc/vf_noise.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_noise.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -28,7 +28,7 @@ #include "osdep/cpudetect.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_ow.cpp =================================================================== --- mplayerxp/postproc/vf_ow.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_ow.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -34,7 +34,7 @@ #include <math.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "pp_msg.h" Modified: mplayerxp/postproc/vf_palette.cpp =================================================================== --- mplayerxp/postproc/vf_palette.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_palette.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_panscan.cpp =================================================================== --- mplayerxp/postproc/vf_panscan.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_panscan.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -10,7 +10,7 @@ #include <string.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_perspective.cpp =================================================================== --- mplayerxp/postproc/vf_perspective.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_perspective.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -27,7 +27,7 @@ #include <math.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_pp.cpp =================================================================== --- mplayerxp/postproc/vf_pp.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_pp.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -10,7 +10,7 @@ #include "osdep/cpudetect.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_raw.cpp =================================================================== --- mplayerxp/postproc/vf_raw.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_raw.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -11,7 +11,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_rectangle.cpp =================================================================== --- mplayerxp/postproc/vf_rectangle.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_rectangle.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -4,7 +4,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_rgb2bgr.cpp =================================================================== --- mplayerxp/postproc/vf_rgb2bgr.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_rgb2bgr.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_rotate.cpp =================================================================== --- mplayerxp/postproc/vf_rotate.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_rotate.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_scale.cpp =================================================================== --- mplayerxp/postproc/vf_scale.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_scale.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -9,7 +9,7 @@ #include "osdep/cpudetect.h" #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_smartblur.cpp =================================================================== --- mplayerxp/postproc/vf_smartblur.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_smartblur.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -30,7 +30,7 @@ #endif #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_softpulldown.cpp =================================================================== --- mplayerxp/postproc/vf_softpulldown.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_softpulldown.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -6,7 +6,7 @@ #include <string.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_swapuv.cpp =================================================================== --- mplayerxp/postproc/vf_swapuv.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_swapuv.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -26,7 +26,7 @@ #include <assert.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_test.cpp =================================================================== --- mplayerxp/postproc/vf_test.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_test.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -26,7 +26,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "swscale.h" Modified: mplayerxp/postproc/vf_unsharp.cpp =================================================================== --- mplayerxp/postproc/vf_unsharp.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_unsharp.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -34,7 +34,7 @@ #endif #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "osdep/fastmemcpy.h" Modified: mplayerxp/postproc/vf_vo2.cpp =================================================================== --- mplayerxp/postproc/vf_vo2.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_vo2.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -5,7 +5,7 @@ #include <stdlib.h> #include <string.h> -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "vfcap.h" Modified: mplayerxp/postproc/vf_yuvcsp.cpp =================================================================== --- mplayerxp/postproc/vf_yuvcsp.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_yuvcsp.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" #include "pp_msg.h" Modified: mplayerxp/postproc/vf_yuy2.cpp =================================================================== --- mplayerxp/postproc/vf_yuy2.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_yuy2.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/postproc/vf_yvu9.cpp =================================================================== --- mplayerxp/postproc/vf_yvu9.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/postproc/vf_yvu9.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -7,7 +7,7 @@ #include <inttypes.h> #include "libvo2/img_format.h" -#include "xmpcore/mp_image.h" +#include "xmpcore/xmp_image.h" #include "vf.h" #include "vf_internal.h" Modified: mplayerxp/xmpcore/Makefile =================================================================== --- mplayerxp/xmpcore/Makefile 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/xmpcore/Makefile 2012-12-19 09:28:13 UTC (rev 577) @@ -9,7 +9,7 @@ xmp_vdecoder.cpp \ xmp_adecoder.cpp -SRCS+=sig_hand.cpp mp_image.cpp mp_aframe.cpp +SRCS+=sig_hand.cpp xmp_image.cpp xmp_aframe.cpp OBJS=$(SRCS:.cpp=.o) CXXFLAGS = $(OPTXXFLAGS) -I. -I.. -Wall Deleted: mplayerxp/xmpcore/mp_aframe.cpp =================================================================== --- mplayerxp/xmpcore/mp_aframe.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/xmpcore/mp_aframe.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -1,328 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace mpxp; -#include <string.h> -#include <stdio.h> - -#include "mp_aframe.h" -#include "libao3/afmt.h" -#include "loader/wine/mmreg.h" -#include "mpxp_msg.h" - -namespace mpxp { - -enum { AFMT_AF_FLAGS=0x70000000 }; - -/* Decodes the format from mplayer format to libaf format */ -mpaf_format_e __FASTCALL__ afmt2mpaf(unsigned ifmt) -{ - mpaf_format_e ofmt = mpaf_format_e(0); - // Check input ifmt - switch(ifmt){ - case AFMT_U8: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|1); break; - case AFMT_S8: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|1); break; - case AFMT_S16_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|2); break; - case AFMT_S16_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_SI|2); break; - case AFMT_U16_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|2); break; - case AFMT_U16_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_US|2); break; - case AFMT_S24_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|3); break; - case AFMT_S24_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_SI|3); break; - case AFMT_U24_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|3); break; - case AFMT_U24_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_US|3); break; - case AFMT_S32_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|4); break; - case AFMT_S32_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_SI|4); break; - case AFMT_U32_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|4); break; - case AFMT_U32_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_US|4); break; - case AFMT_FLOAT32:ofmt = mpaf_format_e(MPAF_PCM|MPAF_F |MPAF_NE|4); break; - - case AFMT_IMA_ADPCM: ofmt = mpaf_format_e(MPAF_IMA_ADPCM|1); break; - case AFMT_MPEG: ofmt = mpaf_format_e(MPAF_MPEG2|1); break; - case AFMT_AC3: ofmt = mpaf_format_e(MPAF_AC3|1); break; - default: - if ((ifmt & AFMT_AF_FLAGS) == AFMT_AF_FLAGS) { - ofmt = mpaf_format_e((ifmt&(~AFMT_AF_FLAGS))|2); - break; - } - //This can not happen .... - MSG_FATAL("[af_mp] Unrecognized input audio format %i\n",ifmt); - break; - } - return ofmt; -} - -/* Encodes the format from libaf format to mplayer (OSS) format */ -unsigned __FASTCALL__ mpaf2afmt(mpaf_format_e fmt) -{ - switch(fmt&MPAF_SPECIAL_MASK) { - case 0: // PCM: - if((fmt&MPAF_POINT_MASK)==MPAF_I) { - if((fmt&MPAF_SIGN_MASK)==MPAF_SI){ - // signed int PCM: - switch(fmt&MPAF_BPS_MASK){ - case MPAF_BPS_1: return AFMT_S8; - default: - case MPAF_BPS_2: return (fmt&MPAF_LE)?AFMT_S16_LE:AFMT_S16_BE; - case MPAF_BPS_3: return (fmt&MPAF_LE)?AFMT_S24_LE:AFMT_S24_BE; - case MPAF_BPS_4: return (fmt&MPAF_LE)?AFMT_S32_LE:AFMT_S32_BE; - } - } else { - // unsigned int PCM: - switch(fmt&MPAF_BPS_MASK){ - case MPAF_BPS_1: return AFMT_U8; - default: - case MPAF_BPS_2: return (fmt&MPAF_LE)?AFMT_U16_LE:AFMT_U16_BE; - case MPAF_BPS_3: return (fmt&MPAF_LE)?AFMT_U24_LE:AFMT_U24_BE; - case MPAF_BPS_4: return (fmt&MPAF_LE)?AFMT_U32_LE:AFMT_U32_BE; - } - } - } else { - // float PCM: - return AFMT_FLOAT32; // FIXME? - } - break; - default: - case MPAF_MPEG2: return AFMT_MPEG; - case MPAF_AC3: return AFMT_AC3; - case MPAF_IMA_ADPCM: return AFMT_IMA_ADPCM; - } - return fmt|AFMT_AF_FLAGS; -} - -static const struct fmt_alias_s { - const char *name; - unsigned short wtag; -} fmt_aliases[]= { - { "adpcm", WAVE_FORMAT_ADPCM }, - { "vselp", WAVE_FORMAT_VSELP }, - { "cvsd", WAVE_FORMAT_IBM_CVSD }, - { "dts", WAVE_FORMAT_DTS }, - { "oki_adpcm", WAVE_FORMAT_OKI_ADPCM }, - { "dvi_adpcm", WAVE_FORMAT_DVI_ADPCM }, - { "ima_adpcm", WAVE_FORMAT_IMA_ADPCM }, - { "mediaspace_adpcm", WAVE_FORMAT_MEDIASPACE_ADPCM }, - { "sierra_adpcm", WAVE_FORMAT_SIERRA_ADPCM }, - { "g723_adpcm", WAVE_FORMAT_G723_ADPCM }, - { "digistd", WAVE_FORMAT_DIGISTD }, - { "digifix", WAVE_FORMAT_DIGIFIX }, - { "dialogic_oki_adpcm", WAVE_FORMAT_DIALOGIC_OKI_ADPCM }, - { "mediavision_adpcm", WAVE_FORMAT_MEDIAVISION_ADPCM }, - { "cu_codec", WAVE_FORMAT_CU_CODEC }, - { "yamaha_adpcm", WAVE_FORMAT_YAMAHA_ADPCM }, - { "sonarc", WAVE_FORMAT_SONARC }, - { "dspgroup_truespeech", WAVE_FORMAT_DSPGROUP_TRUESPEECH }, - { "echosc1", WAVE_FORMAT_ECHOSC1 }, - { "audiofile_af36", WAVE_FORMAT_AUDIOFILE_AF36 }, - { "aptx", WAVE_FORMAT_APTX }, - { "audiofile_af10", WAVE_FORMAT_AUDIOFILE_AF10 }, - { "prosody_1612", WAVE_FORMAT_PROSODY_1612 }, - { "lrc", WAVE_FORMAT_LRC }, - { "dolby_ac2", WAVE_FORMAT_DOLBY_AC2 }, - { "gsm610", WAVE_FORMAT_GSM610 }, - { "msnaudio", WAVE_FORMAT_MSNAUDIO }, - { "antex_adpcme", WAVE_FORMAT_ANTEX_ADPCME }, - { "control_res_vqlpc", WAVE_FORMAT_CONTROL_RES_VQLPC }, - { "digireal", WAVE_FORMAT_DIGIREAL }, - { "digiadpcm", WAVE_FORMAT_DIGIADPCM }, - { "control_res_cr10", WAVE_FORMAT_CONTROL_RES_CR10 }, - { "nms_vbxadpcm", WAVE_FORMAT_NMS_VBXADPCM }, - { "cs_imaadpcm", WAVE_FORMAT_CS_IMAADPCM }, - { "echosc3", WAVE_FORMAT_ECHOSC3 }, - { "rockwell_adpcm", WAVE_FORMAT_ROCKWELL_ADPCM }, - { "rockwell_digitalk", WAVE_FORMAT_ROCKWELL_DIGITALK }, - { "xebec", WAVE_FORMAT_XEBEC }, - { "g721_adpcm", WAVE_FORMAT_G721_ADPCM }, - { "g728_celp", WAVE_FORMAT_G728_CELP }, - { "msg723", WAVE_FORMAT_MSG723 }, - { "mp2", WAVE_FORMAT_MPEG }, - { "rt24", WAVE_FORMAT_RT24 }, - { "pac", WAVE_FORMAT_PAC }, - { "mp3", WAVE_FORMAT_MPEGLAYER3 }, - { "lucent_g723", WAVE_FORMAT_LUCENT_G723 }, - { "cirrus", WAVE_FORMAT_CIRRUS }, - { "espcm", WAVE_FORMAT_ESPCM }, - { "voxware", WAVE_FORMAT_VOXWARE }, - { "canopus_atrac", WAVE_FORMAT_CANOPUS_ATRAC }, - { "g726_adpcm", WAVE_FORMAT_G726_ADPCM }, - { "g722_adpcm", WAVE_FORMAT_G722_ADPCM }, - { "dsat_display", WAVE_FORMAT_DSAT_DISPLAY }, - { "voxware_byte_aligned", WAVE_FORMAT_VOXWARE_BYTE_ALIGNED }, - { "voxware_ac8", WAVE_FORMAT_VOXWARE_AC8 }, - { "voxware_ac10", WAVE_FORMAT_VOXWARE_AC10 }, - { "voxware_ac16", WAVE_FORMAT_VOXWARE_AC16 }, - { "voxware_ac20", WAVE_FORMAT_VOXWARE_AC20 }, - { "voxware_rt24", WAVE_FORMAT_VOXWARE_RT24 }, - { "voxware_rt29", WAVE_FORMAT_VOXWARE_RT29 }, - { "voxware_rt29hw", WAVE_FORMAT_VOXWARE_RT29HW }, - { "voxware_vr12", WAVE_FORMAT_VOXWARE_VR12 }, - { "voxware_vr18", WAVE_FORMAT_VOXWARE_VR18 }, - { "voxware_tq40", WAVE_FORMAT_VOXWARE_TQ40 }, - { "softsound", WAVE_FORMAT_SOFTSOUND }, - { "voxware_tq60", WAVE_FORMAT_VOXWARE_TQ60 }, - { "msrt24", WAVE_FORMAT_MSRT24 }, - { "g729a", WAVE_FORMAT_G729A }, - { "mvi2", WAVE_FORMAT_MVI_MVI2 }, - { "df_g726", WAVE_FORMAT_DF_G726 }, - { "df_gsm610", WAVE_FORMAT_DF_GSM610 }, - { "isiaudio", WAVE_FORMAT_ISIAUDIO }, - { "onlive", WAVE_FORMAT_ONLIVE }, - { "sbc24", WAVE_FORMAT_SBC24 }, - { "dolby_ac3_spdif", WAVE_FORMAT_DOLBY_AC3_SPDIF }, - { "mediasonic_g723", WAVE_FORMAT_MEDIASONIC_G723 }, - { "prosody_8k", WAVE_FORMAT_PROSODY_8KBPS }, - { "zyxel_adpcm", WAVE_FORMAT_ZYXEL_ADPCM }, - { "philips_lpcbb", WAVE_FORMAT_PHILIPS_LPCBB }, - { "packed", WAVE_FORMAT_PACKED }, - { "malden_phonytalk", WAVE_FORMAT_MALDEN_PHONYTALK }, - { "phetorex_adpcm", WAVE_FORMAT_RHETOREX_ADPCM }, - { "irat", WAVE_FORMAT_IRAT }, - { "vivo_g723", WAVE_FORMAT_VIVO_G723 }, - { "vivo_siren", WAVE_FORMAT_VIVO_SIREN }, - { "digital_g723", WAVE_FORMAT_DIGITAL_G723 }, - { "sanyo_ld_adpcm", WAVE_FORMAT_SANYO_LD_ADPCM }, - { "siprolab_acelpnet", WAVE_FORMAT_SIPROLAB_ACEPLNET }, - { "siprolab_acelp4800", WAVE_FORMAT_SIPROLAB_ACELP4800 }, - { "siprolab_acelp8v3", WAVE_FORMAT_SIPROLAB_ACELP8V3 }, - { "siprolab_g729", WAVE_FORMAT_SIPROLAB_G729 }, - { "siprolab_g729a", WAVE_FORMAT_SIPROLAB_G729A }, - { "siprolab_kelvin", WAVE_FORMAT_SIPROLAB_KELVIN }, - { "g726adpcm", WAVE_FORMAT_G726ADPCM }, - { "qualcomm_purevoice", WAVE_FORMAT_QUALCOMM_PUREVOICE }, - { "qualcomm_halfrate", WAVE_FORMAT_QUALCOMM_HALFRATE }, - { "tubgsm", WAVE_FORMAT_TUBGSM }, - { "msaudio1", WAVE_FORMAT_MSAUDIO1 }, - { "creative_adpcm", WAVE_FORMAT_CREATIVE_ADPCM }, - { "creative_fastspeech8", WAVE_FORMAT_CREATIVE_FASTSPEECH8 }, - { "creative_fastspeech10", WAVE_FORMAT_CREATIVE_FASTSPEECH10 }, - { "uher_adpcm", WAVE_FORMAT_UHER_ADPCM }, - { "quarterdeck", WAVE_FORMAT_QUARTERDECK }, - { "ilink_vc", WAVE_FORMAT_ILINK_VC }, - { "raw_sport", WAVE_FORMAT_RAW_SPORT }, - { "ipi_hsx", WAVE_FORMAT_IPI_HSX }, - { "ipi_rpelp", WAVE_FORMAT_IPI_RPELP }, - { "cs2", WAVE_FORMAT_CS2 }, - { "sony_scx", WAVE_FORMAT_SONY_SCX }, - { "fm_towns_snd", WAVE_FORMAT_FM_TOWNS_SND }, - { "btv_digital", WAVE_FORMAT_BTV_DIGITAL }, - { "qdesign_music", WAVE_FORMAT_QDESIGN_MUSIC }, - { "vme_vmpcm", WAVE_FORMAT_VME_VMPCM }, - { "tpc", WAVE_FORMAT_TPC }, - { "oligsm", WAVE_FORMAT_OLIGSM }, - { "oliadpcm", WAVE_FORMAT_OLIADPCM }, - { "olicelp", WAVE_FORMAT_OLICELP }, - { "olisbc", WAVE_FORMAT_OLISBC }, - { "oliopr", WAVE_FORMAT_OLIOPR }, - { "lh_codec", WAVE_FORMAT_LH_CODEC }, - { "norris", WAVE_FORMAT_NORRIS }, - { "soundspace_musicompress", WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS }, - { "ac3", WAVE_FORMAT_DVM } -}; - -// Convert from string to format -mpaf_format_e mpaf_str2fmt(const char *str) -{ - unsigned i,fmt; - char val[3]; - fmt=0; - if(strlen(str)<3) goto bad_fmt; - /* check for special cases */ - if(strncmp(str,"float",5)==0 || strncmp(str,"FLOAT",5)==0) { fmt |= MPAF_F; str = &str[4]; } - else - if(str[0]=='S' || str[0]=='s') fmt|=MPAF_SI; - else - if(str[0]=='U' || str[0]=='u') fmt|=MPAF_US; - else goto try_special; - val[0]=str[1]; - val[1]=str[2]; - val[2]='\0'; - if(strcmp(val,"08")==0) fmt|=1; - else - if(strcmp(val,"16")==0) fmt|=2; - else - if(strcmp(val,"24")==0) fmt|=3; - else - if(strcmp(val,"32")==0) fmt|=4; - else - if(strcmp(val,"64")==0) fmt|=8; - else goto try_special; - if(str[3]=='\0') { -#ifdef WORDS_BIGENDIAN - fmt|=MPAF_BE; -#else - fmt|=MPAF_LE; -#endif - } - else if(strcmp(&str[3],"LE")==0 || strcmp(&str[3],"le")==0) fmt |= MPAF_LE; - else if(strcmp(&str[3],"BE")==0 || strcmp(&str[3],"be")==0) fmt |= MPAF_BE; - else goto try_special; - return mpaf_format_e(fmt); - - try_special: - for(i=0;i<sizeof(fmt_aliases)/sizeof(struct fmt_alias_s);i++) { - if(strcasecmp(str,fmt_aliases[i].name)==0) return mpaf_format_e(fmt_aliases[i].wtag<<16); - } - bad_fmt: - MSG_ERR("[af_format] Bad value %s. Examples: S08LE U24BE S32 MP3 AC3\n",str); - return mpaf_format_e(MPAF_BE); -} - -/* Convert format to str input str is a buffer for the - converted string, size is the size of the buffer */ -char* mpaf_fmt2str(mpaf_format_e format, char* str, size_t size) -{ - int i=0; - // Print endinaness - - if(format & MPAF_SPECIAL_MASK) { - unsigned short wtag; - unsigned j; - wtag = format >> 16; - for(j=0;j<sizeof(fmt_aliases)/sizeof(struct fmt_alias_s);j++) { - if(fmt_aliases[j].wtag==wtag) { - i+=snprintf(&str[i],size-i,fmt_aliases[j].name); - break; - } - } - } else { - // Type - if(MPAF_F == (format & MPAF_POINT_MASK)) i+=snprintf(&str[i],size,"FLOAT"); - else { - if(MPAF_US == (format & MPAF_SIGN_MASK)) i+=snprintf(&str[i],size-i,"U"); - else i+=snprintf(&str[i],size-i,"S"); - } - // size - i+=snprintf(&str[i],size,"%d",(format&MPAF_BPS_MASK)*8); - // endian - if(MPAF_LE == (format & MPAF_END_MASK)) i+=snprintf(&str[i],size,"LE"); - else i+=snprintf(&str[i],size,"BE"); - } - return str; -} - - -mp_aframe_t* new_mp_aframe(unsigned rate,unsigned nch,mpaf_format_e format,unsigned xp_idx) { - mp_aframe_t* mpaf = new(zeromem) mp_aframe_t; - if(!mpaf) return NULL; - mpaf->rate = rate; - mpaf->nch = nch; - mpaf->format = format; - mpaf->xp_idx = xp_idx; - return mpaf; -} - -int free_mp_aframe(mp_aframe_t* mpaf) { - if(!mpaf) return 0; - if(mpaf->audio) delete mpaf->audio; - delete mpaf; - return 1; -} - -mp_aframe_t* new_mp_aframe_genome(const mp_aframe_t* in) { - mp_aframe_t* out = new(zeromem) mp_aframe_t; - memcpy(out,in,sizeof(mp_aframe_t)); - out->audio = NULL; - return out; -} - -void mp_alloc_aframe(mp_aframe_t* it) { it->audio = new uint8_t[it->len]; } - -} // namespace mpxp \ No newline at end of file Deleted: mplayerxp/xmpcore/mp_aframe.h =================================================================== --- mplayerxp/xmpcore/mp_aframe.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/xmpcore/mp_aframe.h 2012-12-19 09:28:13 UTC (rev 577) @@ -1,82 +0,0 @@ -#ifndef __MP_AUDIO_FRAME_INCLUDED_H -#define __MP_AUDIO_FRAME_INCLUDED_H 1 - -#include "mpxp_config.h" -#include <stdlib.h> -#include <stdint.h> - -namespace mpxp { - - /* The sample format system is based on bitmasks. The - format definition only refers to the storage format not the - resolution. */ - typedef enum mpaf_format_enum{ - MPAF_BPS_MASK =0x00000FFFUL, /* byte per sample */ - MPAF_BPS_1 =0x00000001UL, - MPAF_BPS_2 =0x00000002UL, - MPAF_BPS_3 =0x00000003UL, - MPAF_BPS_4 =0x00000004UL, -// Endianess - MPAF_BE =0x00000000UL, // Big Endian - MPAF_LE =0x00001000UL, // Little Endian - MPAF_END_MASK =0x00001000UL, -#if WORDS_BIGENDIAN // Native endian of cpu - MPAF_NE =MPAF_BE, -#else - MPAF_NE =MPAF_LE, -#endif -// Signed/unsigned - MPAF_SI =0x00000000UL, // SIgned - MPAF_US =0x00002000UL, // Un Signed - MPAF_SIGN_MASK =0x00002000UL, -// Fixed or floating point - MPAF_I =0x00000000UL, // Integer - MPAF_F =0x00004000UL, // Foating point - MPAF_POINT_MASK =0x00004000UL, -// Special flags refering to non pcm data - MPAF_PCM =0x00000000UL, // - MPAF_IMA_ADPCM =0x00110000UL, // Same as 16 bit signed int - MPAF_MPEG2 =0x00500000UL, // MPEG1 layer2 audio - MPAF_MPEG3 =0x00550000UL, // MPEG1 layer3 audio - MPAF_AC3 =0x20000000UL, // Dolby Digital AC3 - MPAF_SPECIAL_MASK=0xFFFF0000UL - }mpaf_format_e; - inline mpaf_format_e operator~(mpaf_format_e a) { return static_cast<mpaf_format_e>(~static_cast<unsigned>(a)); } - inline mpaf_format_e operator|(mpaf_format_e a, mpaf_format_e b) { return static_cast<mpaf_format_e>(static_cast<unsigned>(a)|static_cast<unsigned>(b)); } - inline mpaf_format_e operator&(mpaf_format_e a, mpaf_format_e b) { return static_cast<mpaf_format_e>(static_cast<unsigned>(a)&static_cast<unsigned>(b)); } - inline mpaf_format_e operator^(mpaf_format_e a, mpaf_format_e b) { return static_cast<mpaf_format_e>(static_cast<unsigned>(a)^static_cast<unsigned>(b)); } - inline mpaf_format_e operator|=(mpaf_format_e a, mpaf_format_e b) { return (a=static_cast<mpaf_format_e>(static_cast<unsigned>(a)|static_cast<unsigned>(b))); } - inline mpaf_format_e operator&=(mpaf_format_e a, mpaf_format_e b) { return (a=static_cast<mpaf_format_e>(static_cast<unsigned>(a)&static_cast<unsigned>(b))); } - inline mpaf_format_e operator^=(mpaf_format_e a, mpaf_format_e b) { return (a=static_cast<mpaf_format_e>(static_cast<unsigned>(a)^static_cast<unsigned>(b))); } - - /* Decodes the format from mplayer format to libaf format */ - mpaf_format_e __FASTCALL__ afmt2mpaf(unsigned format); - unsigned __FASTCALL__ mpaf2afmt(mpaf_format_e fmt); - char* __FASTCALL__ mpaf_fmt2str(mpaf_format_e format, char* str, size_t size); - mpaf_format_e __FASTCALL__ mpaf_str2fmt(const char *str); - - inline int mpaf_test(mpaf_format_e f,unsigned bits) { return f&bits; } - inline int mpaf_testa(mpaf_format_e f,unsigned bits) { return (f&bits)==bits; } - - enum { - MP_AFLG_FINALIZED =0x80000000 - }; - - struct mp_aframe_t { - unsigned flags; /* currently unused */ - float pts; /* PTS if this frame */ - unsigned xp_idx;/* index in ring buffer */ - uint8_t* audio; /* data of audio frame */ - unsigned len; /* length of data */ - /*------ stream description ----------*/ - unsigned rate; /* rate of audio */ - unsigned nch; /* number of channels */ - mpaf_format_e format;/* PCM format of audio */ - }; - - mp_aframe_t* new_mp_aframe(unsigned rate,unsigned nch,mpaf_format_e format,unsigned xp_idx); - mp_aframe_t* new_mp_aframe_genome(const mp_aframe_t* in); - void mp_alloc_aframe(mp_aframe_t* it); - int free_mp_aframe(mp_aframe_t* mpaf); -} // namespace -#endif Deleted: mplayerxp/xmpcore/mp_image.cpp =================================================================== --- mplayerxp/xmpcore/mp_image.cpp 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/xmpcore/mp_image.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -1,224 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace mpxp; -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "mplayerxp.h" -#include "libvo2/img_format.h" -#include "mp_image.h" -#include "osdep/fastmemcpy.h" -#define MSGT_CLASS MSGT_CPLAYER -#include "mpxp_msg.h" - -namespace mpxp { -void mp_image_setfmt(mp_image_t* mpi,unsigned int out_fmt){ - mpi->flags&=~(MP_IMGFLAG_PLANAR|MP_IMGFLAG_YUV|MP_IMGFLAG_SWAPPED); - mpi->imgfmt=out_fmt; - if(out_fmt == IMGFMT_MPEGPES){ - mpi->bpp=0; - return; - } - if(out_fmt == IMGFMT_ZRMJPEGNI || - out_fmt == IMGFMT_ZRMJPEGIT || - out_fmt == IMGFMT_ZRMJPEGIB){ - mpi->bpp=0; - return; - } - if(IMGFMT_IS_XVMC(out_fmt)){ - mpi->bpp=0; - return; - } - mpi->num_planes=1; - if (IMGFMT_IS_RGB(out_fmt) || IMGFMT_IS_BGR(out_fmt)) { - mpi->bpp = rgbfmt_depth(out_fmt); - if(IMGFMT_IS_BGR(out_fmt)) mpi->flags|=MP_IMGFLAG_SWAPPED; - return; - } - mpi->flags|=MP_IMGFLAG_YUV; - mpi->num_planes=3; - switch(out_fmt){ - case IMGFMT_I420: - case IMGFMT_IYUV: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_YV12: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=12; - mpi->chroma_width=(mpi->width>>1); - mpi->chroma_height=(mpi->height>>1); - mpi->chroma_x_shift=1; - mpi->chroma_y_shift=1; - return; - case IMGFMT_420A: - case IMGFMT_IF09: - mpi->num_planes=4; - case IMGFMT_YVU9: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=9; - mpi->chroma_width=(mpi->width>>2); - mpi->chroma_height=(mpi->height>>2); - mpi->chroma_x_shift=2; - mpi->chroma_y_shift=2; - return; - case IMGFMT_444P16_LE: - case IMGFMT_444P16_BE: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=48; - mpi->chroma_width=(mpi->width); - mpi->chroma_height=(mpi->height); - mpi->chroma_x_shift=0; - mpi->chroma_y_shift=0; - return; - case IMGFMT_444P: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=24; - mpi->chroma_width=(mpi->width); - mpi->chroma_height=(mpi->height); - mpi->chroma_x_shift=0; - mpi->chroma_y_shift=0; - return; - case IMGFMT_422P16_LE: - case IMGFMT_422P16_BE: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=32; - mpi->chroma_width=(mpi->width>>1); - mpi->chroma_height=(mpi->height); - mpi->chroma_x_shift=1; - mpi->chroma_y_shift=0; - return; - case IMGFMT_422P: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=16; - mpi->chroma_width=(mpi->width>>1); - mpi->chroma_height=(mpi->height); - mpi->chroma_x_shift=1; - mpi->chroma_y_shift=0; - return; - case IMGFMT_420P16_LE: - case IMGFMT_420P16_BE: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=24; - mpi->chroma_width=(mpi->width>>2); - mpi->chroma_height=(mpi->height); - mpi->chroma_x_shift=2; - mpi->chroma_y_shift=0; - return; - case IMGFMT_411P: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=12; - mpi->chroma_width=(mpi->width>>2); - mpi->chroma_height=(mpi->height); - mpi->chroma_x_shift=2; - mpi->chroma_y_shift=0; - return; - case IMGFMT_Y800: - case IMGFMT_Y8: - /* they're planar ones, but for easier handling use them as packed */ -// mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=8; - mpi->num_planes=1; - return; - case IMGFMT_UYVY: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_YUY2: - mpi->bpp=16; - mpi->num_planes=1; - return; - case IMGFMT_NV12: - mpi->flags|=MP_IMGFLAG_SWAPPED; - case IMGFMT_NV21: - mpi->flags|=MP_IMGFLAG_PLANAR; - mpi->bpp=12; - mpi->num_planes=2; - mpi->chroma_width=(mpi->width>>0); - mpi->chroma_height=(mpi->height>>1); - mpi->chroma_x_shift=0; - mpi->chroma_y_shift=1; - return; - } - MSG_WARN("mp_image: Unknown out_fmt: 0x%X\n",out_fmt); - show_backtrace("outfmt",10); - mpi->bpp=0; -} - -mp_image_t* new_mp_image(unsigned w,unsigned h,unsigned xp_idx){ - mp_image_t* mpi=new(zeromem) mp_image_t; - if(!mpi) return NULL; // error! - mpi->xp_idx = xp_idx; - mpi->width=mpi->w=w; - mpi->height=mpi->h=h; - return mpi; -} - -void free_mp_image(mp_image_t* mpi){ - if(!mpi) return; - if(mpi->flags&MP_IMGFLAG_ALLOCATED){ - /* becouse we allocate the whole image in once */ - if(mpi->planes[0]) delete mpi->planes[0]; - } - delete mpi; -} - -mp_image_t* alloc_mpi(unsigned w, unsigned h, unsigned int fmt,unsigned xp_idx) { - mp_image_t* mpi = new_mp_image(w,h,xp_idx); - - mp_image_setfmt(mpi,fmt); - mpi_alloc_planes(mpi); - return mpi; -} - -void mpi_alloc_planes(mp_image_t *mpi) { - unsigned size,delta; - size=mpi->bpp*mpi->width*(mpi->height+2)/8; - delta=0; - // IF09 - allocate space for 4. plane delta info - unused - if (mpi->imgfmt == IMGFMT_IF09) delta=mpi->chroma_width*mpi->chroma_height; - mpi->planes[0]=new(alignmem,64) unsigned char[size+delta]; - if(delta) /* delta table, just for fun ;) */ - mpi->planes[3]=mpi->planes[0]+2*(mpi->chroma_width*mpi->chroma_height); - if(mpi->flags&MP_IMGFLAG_PLANAR){ - // YV12/I420/YVU9/IF09. feel mp_free to add other planar formats here... - if(!mpi->stride[0]) mpi->stride[0]=mpi->width; - if(!mpi->stride[1]) mpi->stride[1]=mpi->stride[2]=mpi->chroma_width; - if(mpi->flags&MP_IMGFLAG_SWAPPED){ - // I420/IYUV (Y,U,V) - mpi->planes[1]=mpi->planes[0]+mpi->width*mpi->height; - mpi->planes[2]=mpi->planes[1]+mpi->chroma_width*mpi->chroma_height; - } else { - // YV12,YVU9,IF09 (Y,V,U) - mpi->planes[2]=mpi->planes[0]+mpi->width*mpi->height; - mpi->planes[1]=mpi->planes[2]+mpi->chroma_width*mpi->chroma_height; - } - } else { - if(!mpi->stride[0]) mpi->stride[0]=mpi->width*mpi->bpp/8; - } - mpi->flags|=MP_IMGFLAG_ALLOCATED; -} - -void copy_mpi(mp_image_t *dmpi,const mp_image_t *mpi) { - if(mpi->flags&MP_IMGFLAG_PLANAR){ - memcpy_pic(dmpi->planes[0],mpi->planes[0], mpi->w, mpi->h, - dmpi->stride[0],mpi->stride[0]); - memcpy_pic(dmpi->planes[1],mpi->planes[1], mpi->chroma_width, mpi->chroma_height, - dmpi->stride[1],mpi->stride[1]); - memcpy_pic(dmpi->planes[2], mpi->planes[2], mpi->chroma_width, mpi->chroma_height, - dmpi->stride[2],mpi->stride[2]); - } else { - memcpy_pic(dmpi->planes[0],mpi->planes[0], - mpi->w*(dmpi->bpp/8), mpi->h, - dmpi->stride[0],mpi->stride[0]); - } -} - -void mpi_fake_slice(mp_image_t *dmpi,const mp_image_t *mpi,unsigned y,unsigned h) -{ - *dmpi = *mpi; - dmpi->y = y; - dmpi->h = h; - dmpi->chroma_height = h >> mpi->chroma_y_shift; - dmpi->xp_idx = mpi->xp_idx; - dmpi->flags&=~MP_IMGFLAG_ALLOCATED; -} - -} // namespace mpxp Deleted: mplayerxp/xmpcore/mp_image.h =================================================================== --- mplayerxp/xmpcore/mp_image.h 2012-12-19 08:57:43 UTC (rev 576) +++ mplayerxp/xmpcore/mp_image.h 2012-12-19 09:28:13 UTC (rev 577) @@ -1,100 +0,0 @@ -#ifndef __MP_IMAGE_H -#define __MP_IMAGE_H 1 - -#include <stdlib.h> -#include <limits.h> - -#include "mpxp_config.h" - -namespace mpxp { - //--- buffer content restrictions: - enum { - MP_IMGFLAG_PRESERVE=0x00001, // set if buffer content shouldn't be modified: - MP_IMGFLAG_READABLE=0x00002 // set if buffer content will be READ for next frame's MC: (I/P mpeg frames) - }; - - //--- buffer width/stride/plane restrictions: (used for direct rendering) - enum { -// stride _have_to_ be aligned to MB boundary: [for DR restrictions] - MP_IMGFLAG_ACCEPT_ALIGNED_STRIDE=0x00004, /* no flag - should be neg value of MP_IMGFLAG_ACCEPT_STRIDE */ -// stride should be aligned to MB boundary: [for buffer allocation] - MP_IMGFLAG_PREFER_ALIGNED_STRIDE=0x00008, /* sould be no flag - everything prefer aligned strides */ - MP_IMGFLAG_ACCEPT_STRIDE =0x00010, // codec accept any stride (>=width): - MP_IMGFLAG_ACCEPT_WIDTH =0x00020, // codec accept any width (width*bpp=stride -> stride%bpp==0) (>=width): -//--- for planar formats only: -// uses only stride[0], and stride[1]=stride[2]=stride[0]>>mpi->chroma_x_shift - MP_IMGFLAG_COMMON_STRIDE =0x00040, /* UNUSED */ -// uses only planes[0], and calculates planes[1,2] from width,height,imgfmt - MP_IMGFLAG_COMMON_PLANE =0x00080, /* UNUSED */ - MP_IMGFLAGMASK_RESTRICTIONS =0x000FF, -//--------- color info (filled by mp_image_setfmt() ) ----------- - MP_IMGFLAG_PLANAR =0x00100, // set if number of planes > 1 - MP_IMGFLAG_YUV =0x00200, // set if it's YUV colorspace - MP_IMGFLAG_SWAPPED =0x00400, // set if it's swapped (BGR or YVU) plane/byteorder - MP_IMGFLAG_RGB_PALETTE =0x00800, // using palette for RGB data - MP_IMGFLAGMASK_COLORS =0x00F00, -// codec uses drawing/rendering callbacks (draw_slice()-like thing, DR method 2) -// [the codec will set this flag if it supports callbacks, and the vo _may_ -// clear it in get_image() if draw_slice() not implemented] - MP_IMGFLAG_DRAW_CALLBACK =0x01000, - MP_IMGFLAG_DIRECT =0x02000, // set if it's in video buffer/memory: [set by vo/vf's get_image() !!!] - MP_IMGFLAG_ALLOCATED =0x04000, // set if buffer is allocated (used in destination images): - MP_IMGFLAG_TYPE_DISPLAYED =0x08000, // buffer type was printed (do NOT set this flag - it's for INTERNAL USE!!!) - MP_IMGFLAG_FINAL =0x10000, // buffer is video memory - MP_IMGFLAG_RENDERED =0x20000, // final buffer was already painted - MP_IMGFLAG_FINALIZED =0x40000 // indicates final step of image processing from CPU side!!! - }; - - /* codec doesn't support any form of direct rendering - it has own buffer */ - enum { - MP_IMGTYPE_EXPORT =0, // allocation. so we just export its buffer pointers: - MP_IMGTYPE_STATIC =1, // codec requires a static WO buffer, but it does only partial updates later: - MP_IMGTYPE_TEMP =2, // codec just needs some WO memory, where it writes/copies the whole frame to: - MP_IMGTYPE_IP =3, // I+P type, requires 2+ independent static R/W buffers - MP_IMGTYPE_IPB =4, // I+P+B type, requires 2+ independent static R/W and 1+ temp WO buffers - - MP_MAX_PLANES =4 - }; - enum { - MP_IMGFIELD_ORDERED =0x01, - MP_IMGFIELD_TOP_FIRST =0x02, - MP_IMGFIELD_REPEAT_FIRST=0x04, - MP_IMGFIELD_TOP =0x08, - MP_IMGFIELD_BOTTOM =0x10, - MP_IMGFIELD_INTERLACED =0x20 - }; - - enum { XP_IDX_INVALID=UINT_MAX }; - struct mp_image_t { - unsigned xp_idx; /* index of xp_frame associated with this image */ - unsigned int flags; - unsigned char type; - unsigned char bpp; // bits/pixel. NOT depth! for RGB it will be n*8 - unsigned int imgfmt; - unsigned width,height; // stored dimensions - int x,y,w,h; // slice dimensions - unsigned num_planes; - unsigned char* planes[MP_MAX_PLANES]; - unsigned int stride[MP_MAX_PLANES]; - char * qscale; - unsigned qstride; - unsigned qscale_type; // 0->mpeg1/4/h263, 1->mpeg2 - unsigned pict_type; // 0->unknown, 1->I, 2->P, 3->B - unsigned fields; - /* these are only used by planar formats Y,U(Cb),V(Cr) */ - int chroma_width; - int chroma_height; - int chroma_x_shift; // horizontal - int chroma_y_shift; // vertical - any_t* priv; /* for private use by filter or vo driver (to store buffer id or dmpi) */ - }; - - void mp_image_setfmt(mp_image_t* mpi,unsigned int out_fmt); - mp_image_t* new_mp_image(unsigned w,unsigned h,unsigned xp_idx); - void free_mp_image(mp_image_t* mpi); - mp_image_t* alloc_mpi(unsigned w, unsigned h, unsigned int fmt,unsigned xp_idx); - void mpi_alloc_planes(mp_image_t *mpi); - void copy_mpi(mp_image_t *dmpi,const mp_image_t *mpi); - void mpi_fake_slice(mp_image_t *dmpi,const mp_image_t *mpi,unsigned y,unsigned height); -}// namespace -#endif Copied: mplayerxp/xmpcore/xmp_aframe.cpp (from rev 576, mplayerxp/xmpcore/mp_aframe.cpp) =================================================================== --- mplayerxp/xmpcore/xmp_aframe.cpp (rev 0) +++ mplayerxp/xmpcore/xmp_aframe.cpp 2012-12-19 09:28:13 UTC (rev 577) @@ -0,0 +1,328 @@ +#include "mpxp_config.h" +#include "osdep/mplib.h" +using namespace mpxp; +#include <string.h> +#include <stdio.h> + +#include "xmp_aframe.h" +#include "libao3/afmt.h" +#include "loader/wine/mmreg.h" +#include "mpxp_msg.h" + +namespace mpxp { + +enum { AFMT_AF_FLAGS=0x70000000 }; + +/* Decodes the format from mplayer format to libaf format */ +mpaf_format_e __FASTCALL__ afmt2mpaf(unsigned ifmt) +{ + mpaf_format_e ofmt = mpaf_format_e(0); + // Check input ifmt + switch(ifmt){ + case AFMT_U8: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|1); break; + case AFMT_S8: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|1); break; + case AFMT_S16_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|2); break; + case AFMT_S16_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_SI|2); break; + case AFMT_U16_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|2); break; + case AFMT_U16_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_US|2); break; + case AFMT_S24_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|3); break; + case AFMT_S24_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_SI|3); break; + case AFMT_U24_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|3); break; + case AFMT_U24_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_US|3); break; + case AFMT_S32_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_SI|4); break; + case AFMT_S32_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_SI|4); break; + case AFMT_U32_LE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_LE|MPAF_US|4); break; + case AFMT_U32_BE: ofmt = mpaf_format_e(MPAF_PCM|MPAF_BE|MPAF_US|4); break; + case AFMT_FLOAT32:ofmt = mpaf_format_e(MPAF_PCM|MPAF_F |MPAF_NE|4); break; + + case AFMT_IMA_ADPCM: ofmt = mpaf_format_e(MPAF_IMA_ADPCM|1); break; + case AFMT_MPEG: ofmt = mpaf_format_e(MPAF_MPEG2|1); break; + case AFMT_AC3: ofmt = mpaf_format_e(MPAF_AC3|1); break; + default: + if ((ifmt & AFMT_AF_FLAGS) == AFMT_AF_FLAGS) { + ofmt = mpaf_format_e((ifmt&(~AFMT_AF_FLAGS))|2); + break; + } + //This can not happen .... + MSG_FATAL("[af_mp] Unrecognized input audio format %i\n",ifmt); + break; + } + return ofmt; +} + +/* Encodes the format from libaf format to mplayer (OSS) format */ +unsigned __FASTCALL__ mpaf2afmt(mpaf_format_e fmt) +{ + switch(fmt&MPAF_SPECIAL_MASK) { + case 0: // PCM: + if((fmt&MPAF_POINT_MASK)==MPAF_I) { + if((fmt&MPAF_SIGN_MASK)==MPAF_SI){ + // signed int PCM: + switch(fmt&MPAF_BPS_MASK){ + case MPAF_BPS_1: return AFMT_S8; + default: + case MPAF_BPS_2: return (fmt&MPAF_LE)?AFMT_S16_LE:AFMT_S16_BE; + case MPAF_BPS_3: return (fmt&MPAF_LE)?AFMT_S24_LE:AFMT_S24_BE; + case MPAF_BPS_4: return (fmt&MPAF_LE)?AFMT_S32_LE:AFMT_S32_BE; + } + } else { + // unsigned int PCM: + switch(fmt&MPAF_BPS_MASK){ + case MPAF_BPS_1: return AFMT_U8; + default: + case MPAF_BPS_2: return (fmt&MPAF_LE)?AFMT_U16_LE:AFMT_U16_BE; + case MPAF_BPS_3: return (fmt&MPAF_LE)?AFMT_U24_LE:AFMT_U24_BE; + case MPAF_BPS_4: return (fmt&MPAF_LE)?AFMT_U32_LE:AFMT_U32_BE; + } + } + } else { + // float PCM: + return AFMT_FLOAT32; // FIXME? + } + break; + default: + case MPAF_MPEG2: return AFMT_MPEG; + case MPAF_AC3: return AFMT_AC3; + case MPAF_IMA_ADPCM: return AFMT_IMA_ADPCM; + } + return fmt|AFMT_AF_FLAGS; +} + +static const struct fmt_alias_s { + const char *name; + unsigned short wtag; +} fmt_aliases[]= { + { "adpcm", WAVE_... [truncated message content] |
From: <nic...@us...> - 2012-12-19 12:02:34
|
Revision: 578 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=578&view=rev Author: nickols_k Date: 2012-12-19 12:02:27 +0000 (Wed, 19 Dec 2012) Log Message: ----------- simplify logic Modified Paths: -------------- mplayerxp/input2/input.cpp mplayerxp/libao3/audio_out.h mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpdemux/demuxer.h mplayerxp/libmpdemux/demuxer_stream.cpp mplayerxp/libmpdemux/demuxer_stream.h mplayerxp/libmpstream2/stream.cpp mplayerxp/libmpstream2/stream.h mplayerxp/libvo2/video_out.cpp mplayerxp/libvo2/video_out.h mplayerxp/mplayerxp.cpp mplayerxp/osdep/mplib.cpp mplayerxp/osdep/mplib.h mplayerxp/postproc/af.cpp mplayerxp/postproc/af.h mplayerxp/postproc/af_internal.h mplayerxp/postproc/vf.cpp mplayerxp/postproc/vf.h mplayerxp/postproc/vf_internal.h Modified: mplayerxp/input2/input.cpp =================================================================== --- mplayerxp/input2/input.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/input2/input.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -87,8 +87,11 @@ mp_cmd_filter_t* next; }; -struct libinput_t { - char antiviral_hole[RND_CHAR1]; +struct libinput_t : public Opaque { + libinput_t() {} + virtual ~libinput_t() {} + + Opaque unusable; // These are the user defined binds mp_cmd_bind_t* cmd_binds; mp_cmd_filter_t* cmd_filters; @@ -743,7 +746,6 @@ filter->ctx = ctx; filter->next = priv.cmd_filters; priv.cmd_filters = filter; - fill_false_pointers(priv.antiviral_hole,offsetof(libinput_t,cmd_binds)-offsetof(libinput_t,antiviral_hole)); } static const char* mp_input_find_bind_for_key(const mp_cmd_bind_t* binds, int n,int* keys) { Modified: mplayerxp/libao3/audio_out.h =================================================================== --- mplayerxp/libao3/audio_out.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libao3/audio_out.h 2012-12-19 12:02:27 UTC (rev 578) @@ -64,6 +64,7 @@ //virtual void mixer_setbothvolume( int v ); inline void mixer_setbothvolume(float v) const { mixer_setvolume(v,v); } + Opaque unusable; char* subdevice; float pts; /**< PTS of audio buffer */ private: Modified: mplayerxp/libmpdemux/demuxer.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libmpdemux/demuxer.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -149,7 +149,6 @@ :demuxer_priv(new(zeromem) demuxer_priv_t), _info(new(zeromem) Demuxer_Info) { - fill_false_pointers(antiviral_hole,reinterpret_cast<long>(&pin)-reinterpret_cast<long>(&antiviral_hole)); pin=DEMUX_PIN; } @@ -157,7 +156,6 @@ :demuxer_priv(new(zeromem) demuxer_priv_t), _info(new(zeromem) Demuxer_Info) { - fill_false_pointers(antiviral_hole,reinterpret_cast<long>(&pin)-reinterpret_cast<long>(&antiviral_hole)); pin=DEMUX_PIN; _init(_stream,a_id,v_id,s_id); } Modified: mplayerxp/libmpdemux/demuxer.h =================================================================== --- mplayerxp/libmpdemux/demuxer.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libmpdemux/demuxer.h 2012-12-19 12:02:27 UTC (rev 578) @@ -123,7 +123,7 @@ virtual int switch_subtitle(int id) const; virtual MPXP_Rc ctrl(int cmd, any_t*arg) const; - char antiviral_hole[RND_CHAR3]; + Opaque unusable; unsigned pin; /**< personal identification number */ Stream* stream; /**< stream for movie reading */ Demuxer_Stream* audio; /**< audio buffer/demuxer */ Modified: mplayerxp/libmpdemux/demuxer_stream.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer_stream.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libmpdemux/demuxer_stream.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -16,7 +16,6 @@ Demuxer_Stream::Demuxer_Stream(Demuxer *_demuxer,int _id) { - fill_false_pointers(antiviral_hole,reinterpret_cast<long>(&pin)-reinterpret_cast<long>(&antiviral_hole)); pin=DS_PIN; _buffer_pos=_buffer_size=0; _buffer=NULL; Modified: mplayerxp/libmpdemux/demuxer_stream.h =================================================================== --- mplayerxp/libmpdemux/demuxer_stream.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libmpdemux/demuxer_stream.h 2012-12-19 12:02:27 UTC (rev 578) @@ -33,7 +33,7 @@ void buffer_roll_back(int size); // deprecated (added for ad_lavc) int id; /**< stream ID (for multiple audio/video streams) */ - char antiviral_hole[RND_CHAR2]; + Opaque unusable; unsigned pin; /**< personal identification number */ float pts; /**< current buffer's PTS */ int eof; /**< end of demuxed stream? (true if all buffer empty) */ Modified: mplayerxp/libmpstream2/stream.cpp =================================================================== --- mplayerxp/libmpstream2/stream.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libmpstream2/stream.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -96,7 +96,6 @@ Stream::Stream(Stream::type_e t) :_type(t) { - fill_false_pointers(antiviral_hole,reinterpret_cast<long>(&pin)-reinterpret_cast<long>(&antiviral_hole[0])); pin=STREAM_PIN; reset(); } Modified: mplayerxp/libmpstream2/stream.h =================================================================== --- mplayerxp/libmpstream2/stream.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libmpstream2/stream.h 2012-12-19 12:02:27 UTC (rev 578) @@ -84,7 +84,7 @@ virtual unsigned read_int24(); uint32_t read_fourcc() { return read_dword_le(); } - char antiviral_hole[RND_CHAR3]; + Opaque unusable; unsigned pin; /**< personal identification number */ int file_format; /**< detected file format (by http:// protocol for example) */ const stream_interface_info_t* driver_info; Modified: mplayerxp/libvo2/video_out.cpp =================================================================== --- mplayerxp/libvo2/video_out.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libvo2/video_out.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -111,7 +111,7 @@ vo_priv_t(); virtual ~vo_priv_t(); - char antiviral_hole[RND_CHAR8]; + Opaque unusable; uint32_t srcFourcc,image_format,image_width,image_height; uint32_t org_width,org_height; unsigned ps_off[4]; /* offsets for y,u,v in panscan mode */ @@ -125,7 +125,6 @@ }; vo_priv_t::vo_priv_t() { - fill_false_pointers(antiviral_hole,reinterpret_cast<long>(&srcFourcc)-reinterpret_cast<long>(antiviral_hole)); dri.num_xp_frames=1; } @@ -139,8 +138,6 @@ inited=0; osd_progbar_type=-1; osd_progbar_value=100; // 0..256 - - fill_false_pointers(antiviral_hole,reinterpret_cast<long>(&flags)-reinterpret_cast<long>(&antiviral_hole[0])); } Video_Output::~Video_Output() { Modified: mplayerxp/libvo2/video_out.h =================================================================== --- mplayerxp/libvo2/video_out.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/libvo2/video_out.h 2012-12-19 12:02:27 UTC (rev 578) @@ -200,7 +200,7 @@ virtual void dri_remove_osd(unsigned idx,int x0,int _y0, int w,int h) const; virtual void dri_draw_osd(unsigned idx,int x0,int _y0, int w,int h,const unsigned char* src,const unsigned char *srca, int stride) const; - char antiviral_hole[RND_CHAR4]; + Opaque unusable; vo_flags_e flags; /* subtitle support */ char* osd_text; Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/mplayerxp.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -109,9 +109,9 @@ int next_file; }; -struct MPXPSystem { +struct MPXPSystem : public Opaque { public: - MPXPSystem():inited_flags(0),osd_function(OSD_PLAY),_libinput(mp_input_open()) { fill_false_pointers(antiviral_hole,reinterpret_cast<long>(&_demuxer)-reinterpret_cast<long>(&antiviral_hole)); } + MPXPSystem():inited_flags(0),osd_function(OSD_PLAY),_libinput(mp_input_open()) { } virtual ~MPXPSystem() {} void uninit_player(unsigned int mask); @@ -154,7 +154,7 @@ int osd_function; play_tree_t* playtree; private: - char antiviral_hole[RND_CHAR0]; + Opaque unusable; Demuxer* _demuxer; libinput_t& _libinput; }; Modified: mplayerxp/osdep/mplib.cpp =================================================================== --- mplayerxp/osdep/mplib.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/osdep/mplib.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -36,7 +36,7 @@ for(i=0;i<psize/sizeof(long);i++) { filler=rand()&lo_mask; filler=(reinterpret_cast<long>(buffer)&hi_mask)|lo_mask; - ((long *)buffer)[i]=filler; + ((long *)buffer)[i]=rand()%2?filler:0; } memset(&((char *)buffer)[psize],0,size-psize); return buffer; @@ -48,4 +48,10 @@ return stack[2+num_caller]; } +Opaque::Opaque() { + fill_false_pointers(&false_pointers,reinterpret_cast<long>(&unusable)-reinterpret_cast<long>(&false_pointers)); + fill_false_pointers(&unusable,sizeof(any_t*)); +} + +Opaque::~Opaque() {} } // namespace mpxp Modified: mplayerxp/osdep/mplib.h =================================================================== --- mplayerxp/osdep/mplib.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/osdep/mplib.h 2012-12-19 12:02:27 UTC (rev 578) @@ -62,7 +62,7 @@ MP_PROT_READ =0x1, /* Page can be read. */ MP_PROT_WRITE =0x2, /* Page can be written. */ MP_PROT_EXEC =0x4, /* Page can be executed. */ - MP_DENY_ALL =0x0, /* Page can not be accessed. */ + MP_DENY_ALL =0x0, /* Page can not be accessed. */ }; int __FASTCALL__ mp_mprotect(any_t* addr,size_t len,enum mp_prot_e flags); void print_backtrace(const std::string& why,any_t** stack,unsigned num); @@ -93,8 +93,11 @@ class Opaque { public: - Opaque() {} - virtual ~Opaque() {} + Opaque(); + virtual ~Opaque(); + + any_t* false_pointers[RND_CHAR0]; + any_t* unusable; }; } // namespace mpxp Modified: mplayerxp/postproc/af.cpp =================================================================== --- mplayerxp/postproc/af.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/postproc/af.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -112,7 +112,6 @@ MSG_ERR(MSGTR_OutOfMemory); return NULL; } - fill_false_pointers(_new->antiviral_hole,offsetof(af_instance_t,pin)-offsetof(af_instance_t,antiviral_hole)); _new->pin=AF_PIN; _new->parent=s; // Check for commandline parameters @@ -617,7 +616,6 @@ af_stream_t *rval; rval = new(zeromem) af_stream_t; rval->parent = _parent; - fill_false_pointers(rval->antiviral_hole,offsetof(af_stream_t,first)-offsetof(af_stream_t,antiviral_hole)); return rval; } Modified: mplayerxp/postproc/af.h =================================================================== --- mplayerxp/postproc/af.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/postproc/af.h 2012-12-19 12:02:27 UTC (rev 578) @@ -79,7 +79,7 @@ // Current audio stream struct af_stream_t { - char antiviral_hole[RND_CHAR7]; + Opaque unusable; // The first and last filter in the list af_instance_t* first; af_instance_t* last; Modified: mplayerxp/postproc/af_internal.h =================================================================== --- mplayerxp/postproc/af_internal.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/postproc/af_internal.h 2012-12-19 12:02:27 UTC (rev 578) @@ -3,8 +3,8 @@ // Linked list of audio filters struct af_instance_t { + Opaque unusable; const af_info_t* info; - char antiviral_hole[RND_CHAR6]; unsigned pin; // personal identification number MPXP_Rc (* __FASTCALL__ config_af)(af_instance_t* af, const af_conf_t* arg); MPXP_Rc (* __FASTCALL__ control_af)(af_instance_t* af, int cmd, any_t* arg); Modified: mplayerxp/postproc/vf.cpp =================================================================== --- mplayerxp/postproc/vf.cpp 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/postproc/vf.cpp 2012-12-19 12:02:27 UTC (rev 578) @@ -302,7 +302,6 @@ if(!strcmp(filter_list[i]->name,name)) break; } vf=new(zeromem) vf_instance_t(libinput); - fill_false_pointers(vf->antiviral_hole,reinterpret_cast<long>(&vf->pin)-reinterpret_cast<long>(&vf->antiviral_hole)); vf->pin=VF_PIN; vf->info=filter_list[i]; vf->next=next; Modified: mplayerxp/postproc/vf.h =================================================================== --- mplayerxp/postproc/vf.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/postproc/vf.h 2012-12-19 12:02:27 UTC (rev 578) @@ -51,6 +51,7 @@ vf_stream_t(libinput_t& _libinput):libinput(_libinput) {} ~vf_stream_t() {} + Opaque unusable; vf_instance_t* first; libinput_t& libinput; }; Modified: mplayerxp/postproc/vf_internal.h =================================================================== --- mplayerxp/postproc/vf_internal.h 2012-12-19 09:28:13 UTC (rev 577) +++ mplayerxp/postproc/vf_internal.h 2012-12-19 12:02:27 UTC (rev 578) @@ -31,22 +31,17 @@ ~vf_instance_t() {} const vf_info_t* info; - char antiviral_hole[RND_CHAR5]; + Opaque unusable; unsigned pin; // personal identification number // funcs: int (* __FASTCALL__ config_vf)(vf_instance_t* vf, int width, int height, int d_width, int d_height, vo_flags_e flags, unsigned int outfmt); - MPXP_Rc (* __FASTCALL__ control_vf)(vf_instance_t* vf, - int request, any_t* data); - int (* __FASTCALL__ query_format)(vf_instance_t* vf, - unsigned int fmt,unsigned w,unsigned h); - void (* __FASTCALL__ get_image)(vf_instance_t* vf, - mp_image_t *mpi); - int (* __FASTCALL__ put_slice)(vf_instance_t* vf, - mp_image_t *mpi); - void (* __FASTCALL__ start_slice)(vf_instance_t* vf, - mp_image_t *mpi); + MPXP_Rc (* __FASTCALL__ control_vf)(vf_instance_t* vf, int request, any_t* data); + int (* __FASTCALL__ query_format)(vf_instance_t* vf,unsigned int fmt,unsigned w,unsigned h); + void (* __FASTCALL__ get_image)(vf_instance_t* vf, mp_image_t *mpi); + int (* __FASTCALL__ put_slice)(vf_instance_t* vf, mp_image_t *mpi); + void (* __FASTCALL__ start_slice)(vf_instance_t* vf, mp_image_t *mpi); void (* __FASTCALL__ uninit)(vf_instance_t* vf); // optional: maybe NULL void (* __FASTCALL__ print_conf)(vf_instance_t* vf); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-20 09:58:00
|
Revision: 581 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=581&view=rev Author: nickols_k Date: 2012-12-20 09:57:50 +0000 (Thu, 20 Dec 2012) Log Message: ----------- remove many NLS translations because they are incompatible with new stream-based output methods. Furthermore, project should distinguish RTL and LTR probably with using of std::pair or std::tuple classes Modified Paths: -------------- mplayerxp/dump.cpp mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpdemux/demuxer.h mplayerxp/libmpstream2/stream.cpp mplayerxp/mplayerxp.cpp mplayerxp/nls/mpxp_help-cz.h mplayerxp/nls/mpxp_help-de.h mplayerxp/nls/mpxp_help-dk.h mplayerxp/nls/mpxp_help-en.h mplayerxp/nls/mpxp_help-es.h mplayerxp/nls/mpxp_help-fr.h mplayerxp/nls/mpxp_help-hu.h mplayerxp/nls/mpxp_help-it.h mplayerxp/nls/mpxp_help-ko.h mplayerxp/nls/mpxp_help-nl.h mplayerxp/nls/mpxp_help-no.h mplayerxp/nls/mpxp_help-pl.h mplayerxp/nls/mpxp_help-ro.h mplayerxp/nls/mpxp_help-ru.h mplayerxp/nls/mpxp_help-sk.h Modified: mplayerxp/dump.cpp =================================================================== --- mplayerxp/dump.cpp 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/dump.cpp 2012-12-20 09:57:50 UTC (rev 581) @@ -59,7 +59,7 @@ f=fopen(name,"wb"); if(!f){ MSG_FATAL(MSGTR_CantOpenDumpfile); - exit_player(MSGTR_Exit_error); + exit_player(MSGTR_Fatal_error); } MSG_INFO("Dumping stream to %s\n",name); while(!stream->eof()){ @@ -137,17 +137,17 @@ else if(strcmp(media,"raw") == 0) strcat(stream_dump_name,"dump.raw"); else { MSG_FATAL("Unsupported muxer format %s found\n",media); - exit_player(MSGTR_Exit_error); + exit_player(MSGTR_Fatal_error); } priv->mux_file=fopen(stream_dump_name,"wb"); MSG_DBG2("Preparing stream dumping: %s\n",stream_dump_name); if(!priv->mux_file){ MSG_FATAL(MSGTR_CantOpenDumpfile); - exit_player(MSGTR_Exit_error); + exit_player(MSGTR_Fatal_error); } if(!(priv->muxer=muxer_new_muxer(media,port,priv->mux_file))) { MSG_FATAL("Can't initialize muxer\n"); - exit_player(MSGTR_Exit_error); + exit_player(MSGTR_Fatal_error); } if(sha && (priv->mux_type&MUX_HAVE_AUDIO)) { priv->m_audio=muxer_new_stream(priv->muxer,MUXER_TYPE_AUDIO); Modified: mplayerxp/libmpdemux/demuxer.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer.cpp 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/libmpdemux/demuxer.cpp 2012-12-20 09:57:50 UTC (rev 581) @@ -2,6 +2,8 @@ #include "osdep/mplib.h" using namespace mpxp; //=================== DEMUXER v2.5 ========================= +#include <iomanip> + #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -163,7 +165,7 @@ Demuxer::~Demuxer() { demuxer_priv_t& dpriv = static_cast<demuxer_priv_t&>(*demuxer_priv); unsigned i; - MSG_V("DEMUXER: freeing demuxer at %p \n",this); + mpxp_v<<"[Demuxer]: "<<"freeing demuxer at 0x"<<std::hex<<reinterpret_cast<long>(this)<<std::endl; if(dpriv.driver) dpriv.driver->close(this); @@ -180,8 +182,7 @@ { demuxer_priv_t& dpriv = static_cast<demuxer_priv_t&>(*demuxer_priv); if(id > MAX_A_STREAMS-1 || id < 0) { - MSG_WARN("Requested audio stream id overflow (%d > %d)\n", - id, MAX_A_STREAMS); + mpxp_warn<<"[Demuxer]: "<<"Requested audio stream id overflow ("<<id<<" > "<<MAX_A_STREAMS<<")"<<std::endl; return NULL; } check_pin("demuxer",pin,DEMUX_PIN); @@ -191,21 +192,20 @@ sh_audio_t* Demuxer::new_sh_audio_aid(int id,int aid) { demuxer_priv_t& dpriv = static_cast<demuxer_priv_t&>(*demuxer_priv); if(id > MAX_A_STREAMS-1 || id < 0) { - MSG_WARN("Requested audio stream id overflow (%d > %d)\n", - id, MAX_A_STREAMS); + mpxp_warn<<"[Demuxer]: "<<"Requested audio stream id overflow ("<<id<<" > "<<MAX_A_STREAMS<<")"<<std::endl; return NULL; } if(dpriv.a_streams[id]) { - MSG_WARN(MSGTR_AudioStreamRedefined,id); + mpxp_warn<<MSGTR_AudioStreamRedefined<<": "<<id<<std::endl; } else { sh_audio_t *sh; - MSG_V("==> Found audio stream: %d\n",id); + mpxp_v<<"Demuxer: "<<"==> Found audio stream: "<<id<<std::endl; dpriv.a_streams[id]=new(zeromem) sh_audio_t; sh = dpriv.a_streams[id]; // set some defaults sh->afmt=bps2afmt(2); /* PCM */ sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/ - MSG_V("ID_AUDIO_ID=%d\n", aid); + mpxp_v<<"Demuxer: "<<"ID_AUDIO_ID="<<aid<<std::endl; } dpriv.a_streams[id]->id = aid; check_pin("demuxer",pin,DEMUX_PIN); @@ -216,8 +216,7 @@ { demuxer_priv_t& dpriv = static_cast<demuxer_priv_t&>(*demuxer_priv); if(id > MAX_V_STREAMS-1 || id < 0) { - MSG_WARN("Requested video stream id overflow (%d > %d)\n", - id, MAX_V_STREAMS); + mpxp_warn<<"[Demuxer]: "<<"Requested video stream id overflow ("<<id<<" > "<<MAX_V_STREAMS<<")"<<std::endl; return NULL; } check_pin("demuxer",pin,DEMUX_PIN); @@ -227,16 +226,15 @@ sh_video_t* Demuxer::new_sh_video_vid(int id,int vid) { demuxer_priv_t& dpriv = static_cast<demuxer_priv_t&>(*demuxer_priv); if(id > MAX_V_STREAMS-1 || id < 0) { - MSG_WARN("Requested video stream id overflow (%d > %d)\n", - id, MAX_V_STREAMS); + mpxp_warn<<"[Demuxer]: "<<"Requested video stream id overflow ("<<id<<" > "<<MAX_V_STREAMS<<")"<<std::endl; return NULL; } if(dpriv.v_streams[id]) { - MSG_WARN(MSGTR_VideoStreamRedefined,id); + mpxp_warn<<"[Demuxer]: "<<MSGTR_VideoStreamRedefined<<": "<<id<<std::endl; } else { - MSG_V("==> Found video stream: %d\n",id); + mpxp_v<<"[Demuxer]: "<<"==> Found video stream: "<<id<<std::endl; dpriv.v_streams[id]=new(zeromem) sh_video_t; - MSG_V("ID_VIDEO_ID=%d\n", vid); + mpxp_v<<"[Demuxer]: "<<"ID_VIDEO_ID="<<vid<<std::endl; } dpriv.v_streams[id]->id = vid; check_pin("demuxer",pin,DEMUX_PIN); @@ -247,8 +245,7 @@ { demuxer_priv_t& dpriv = static_cast<demuxer_priv_t&>(*demuxer_priv); if(id > MAX_A_STREAMS-1 || id < 0) { - MSG_WARN("Requested sub stream id overflow (%d > %d)\n", - id, MAX_A_STREAMS); + mpxp_warn<<"[Demuxer]: "<<"Requested sub stream id overflow ("<<id<<" > "<<MAX_S_STREAMS<<")"<<std::endl; return NULL; } check_pin("demuxer",pin,DEMUX_PIN); @@ -258,14 +255,13 @@ char Demuxer::new_sh_sub(int id) { demuxer_priv_t& dpriv = static_cast<demuxer_priv_t&>(*demuxer_priv); if(id > MAX_V_STREAMS-1 || id < 0) { - MSG_WARN("Requested video stream id overflow (%d > %d)\n", - id, MAX_V_STREAMS); + mpxp_warn<<"[Demuxer]: "<<"Requested sub stream id overflow ("<<id<<" > "<<MAX_S_STREAMS<<")"<<std::endl; return NULL; } if(dpriv.s_streams[id]) { - MSG_WARN(MSGTR_SubStreamRedefined,id); + mpxp_warn<<"[Demuxer]: "<<MSGTR_SubStreamRedefined<<": "<<id<<std::endl; } else { - MSG_V("==> Found video stream: %d\n",id); + mpxp_v<<"[Demuxer]: "<<"==> Found video stream: "<<id<<std::endl; dpriv.s_streams[id]=1; } check_pin("demuxer",pin,DEMUX_PIN); @@ -379,15 +375,15 @@ const demuxer_driver_t* drv; drv=demux_find_driver(demux_conf.type); if(!drv) { - MSG_ERR("Can't find demuxer driver: '%s'\n",demux_conf.type); + mpxp_err<<"[Demuxer]: "<<"Can't find demuxer driver: '"<<demux_conf.type<<"'"<<std::endl; goto err_exit; } - MSG_V("Forcing %s ... ",drv->name); + mpxp_v<<"[Demuxer]: "<<"Forcing "<<drv->name<<" ..."<<std::endl; /* don't remove it from loop!!! (for initializing) */ stream->reset(); stream->seek(stream->start_pos()); if(drv->probe(this)!=MPXP_Ok) { - MSG_ERR("Can't probe stream with driver: '%s'\n",demux_conf.type); + mpxp_err<<"[Demuxer]: "<<"Can't probe stream with driver: '"<<demux_conf.type<<"'"<<std::endl; goto err_exit; } dpriv.driver = drv; @@ -395,34 +391,34 @@ } again: for(;ddrivers[i]!=&demux_null;i++) { - MSG_V("Probing %s ... ",ddrivers[i]->name); + mpxp_v<<"[Demuxer]: "<<"Probing "<<ddrivers[i]->name<<" ...:"; /* don't remove it from loop!!! (for initializing) */ stream->reset(); stream->seek(stream->start_pos()); if(ddrivers[i]->probe(this)==MPXP_Ok) { - MSG_V("OK\n"); + mpxp_v<<"Ok"<<std::endl; dpriv.driver = ddrivers[i]; break; } - MSG_V("False\n"); + mpxp_v<<"False"<<std::endl; } if(!dpriv.driver) { dpriv.driver=demuxer_driver_by_name(stream->mime_type()); if(dpriv.driver!=&demux_null) goto force_driver; dpriv.driver=NULL; err_exit: - MSG_ERR(MSGTR_FormatNotRecognized); + mpxp_err<<"[Demuxer]: "<<MSGTR_FormatNotRecognized<<std::endl; return MPXP_False; } force_driver: if(!(priv=dpriv.driver->open(this))) { - MSG_ERR("Can't open stream with '%s'\n", dpriv.driver->name); + mpxp_err<<"[Demuxer]: "<<"Can't open stream with '"<<dpriv.driver->name<<"'"<<std::endl; dpriv.driver=NULL; i++; if(demux_conf.type) goto err_exit; else goto again; } - MSG_OK("Using: %s\n",dpriv.driver->name); + mpxp_ok<<"[Demuxer]: "<<"Using: "<<dpriv.driver->name<<std::endl; for(i=0;i<sizeof(stream_txt_ids)/sizeof(struct s_stream_txt_ids);i++) if(!info().get(stream_txt_ids[i].demuxer_id)) { char stream_name[256]; @@ -441,7 +437,7 @@ if(demux_conf.audio_stream) { as = new(zeromem) Stream(); if(as->open(libinput,demux_conf.audio_stream,&afmt)!=MPXP_Ok) { - MSG_ERR("Can't open audio stream: %s\n",demux_conf.audio_stream); + mpxp_err<<"[Demuxer]: "<<"Can't open audio stream: "<<demux_conf.audio_stream<<std::endl; delete as; return NULL; } @@ -449,7 +445,7 @@ if(demux_conf.sub_stream) { ss = new(zeromem) Stream(); if(ss->open(libinput,demux_conf.sub_stream,&sfmt)!=MPXP_Ok) { - MSG_ERR("Can't open subtitles stream: %s\n",demux_conf.sub_stream); + mpxp_err<<"[Demuxer]: "<<"Can't open subtitles stream: "<<demux_conf.sub_stream<<std::endl; delete ss; return NULL; } @@ -463,7 +459,7 @@ if(as) { ad = new(zeromem) Demuxer(as,audio_id,-2,-2); if(ad->open()!=MPXP_Ok) { - MSG_WARN("Failed to open audio demuxer: %s\n",demux_conf.audio_stream); + mpxp_warn<<"[Demuxer]: "<<"Failed to open audio demuxer: "<<demux_conf.audio_stream<<std::endl; delete ad; ad = NULL; } else if(ad->audio->sh && ((sh_audio_t*)ad->audio->sh)->wtag == 0x55) // MP3 @@ -472,7 +468,7 @@ if(ss) { sd = new(zeromem) Demuxer(ss,-2,-2,dvdsub_id); if(sd->open()!=MPXP_Ok) { - MSG_WARN("Failed to open subtitles demuxer: %s\n",demux_conf.sub_stream); + mpxp_warn<<"[Demuxer]: "<<"Failed to open subtitles demuxer: "<<demux_conf.sub_stream<<std::endl; delete sd; sd = NULL; } } @@ -492,12 +488,12 @@ if(!(stream->type()&Stream::Type_Seekable)) { - MSG_WARN("Stream is not seekable\n"); + mpxp_warn<<"[Demuxer]: "<<"Stream is not seekable"<<std::endl; return 0; } if(!(flags&Seekable)) { - MSG_WARN("Demuxer is not seekable\n"); + mpxp_warn<<"[Demuxer]: "<<"Demuxer is not seekable"<<std::endl; return 0; } @@ -513,7 +509,7 @@ if(sh_audio) sh_audio->timer=0; if(dpriv.driver->seek) dpriv.driver->seek(this,seeka); - else MSG_WARN("Demuxer seek error\n"); + else mpxp_warn<<"[Demuxer]: "<<"seek error"<<std::endl; check_pin("demuxer",pin,DEMUX_PIN); return 1; } Modified: mplayerxp/libmpdemux/demuxer.h =================================================================== --- mplayerxp/libmpdemux/demuxer.h 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/libmpdemux/demuxer.h 2012-12-20 09:57:50 UTC (rev 581) @@ -13,7 +13,6 @@ struct demuxer_driver_t; extern int index_mode; /**< -1=untouched 0=don't use index 1=use (geneate) index */ namespace mpxp { -#define MAX_PACK_BYTES (0x1024*0x1024*4) /** Describes interface to stream associated with this demuxer */ enum { DS_PIN=RND_NUMBER1+RND_CHAR1 @@ -22,7 +21,8 @@ enum { MAX_A_STREAMS =256, MAX_V_STREAMS =256, - MAX_S_STREAMS =256 + MAX_S_STREAMS =256, + MAX_PACK_BYTES =(0x1024*0x1024*4) }; /** Describes demuxer (demultiplexer) of movie */ Modified: mplayerxp/libmpstream2/stream.cpp =================================================================== --- mplayerxp/libmpstream2/stream.cpp 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/libmpstream2/stream.cpp 2012-12-20 09:57:50 UTC (rev 581) @@ -2,6 +2,7 @@ #include "osdep/mplib.h" using namespace mpxp; #include <algorithm> +#include <iomanip> #include <ctype.h> #include <errno.h> @@ -101,7 +102,7 @@ } Stream::~Stream(){ - MSG_INFO("\n*** free_stream(drv:%s) called [errno: %s]***\n",driver_info->mrl,strerror(errno)); + mpxp_info<<std::endl<<"*** free_stream(drv:"<<driver_info->mrl<<") called [errno: "<<strerror(errno)<<"]***"<<std::endl; if(driver) close(); delete driver; } @@ -131,18 +132,18 @@ for(i=0;sdrivers[i]!=&null_stream;i++) { mrl_len=strlen(sdrivers[i]->mrl); if(filename.substr(0,mrl_len)==sdrivers[i]->mrl||sdrivers[i]->mrl[0]=='*') { - MSG_V("Opening %s ... ",sdrivers[i]->mrl); + mpxp_v<<"[Stream]: "<<"Opening "<<sdrivers[i]->mrl<<" ... "; Stream_Interface* drv = sdrivers[i]->query_interface(libinput); if(sdrivers[i]->mrl[0]=='*') mrl_len=0; if(drv->open(&filename[mrl_len],0)==MPXP_Ok) { - MSG_V("OK\n"); + mpxp_v<<"Ok"<<std::endl; *ff = file_format; driver_info=sdrivers[i]; driver=drv; return MPXP_Ok; } delete drv; - MSG_V("False\n"); + mpxp_v<<"False"<<std::endl; } } Stream_Interface* file_drv = file_stream.query_interface(libinput); @@ -171,10 +172,12 @@ /* ------------ print packet ---------- */ unsigned j,_lim=std::min(sp.len,20); int printable=1; - MSG_DBG4("%i=[stream.read(%p,%i)] [%016X]",rc,sp.buf,sp.len,_off); + mpxp_dbg4<<rc<<"=[stream.read("<<sp.buf<<","<<sp.len<<")] ["<<std::hex<<std::setfill('0')<<std::setw(16)<<_off<<"] "; for(j=0;j<_lim;j++) { if(!isprint(sp.buf[j])) { printable=0; break; } } - if(printable) MSG_DBG4("%20s",sp.buf); - else for(j=0;j<_lim;j++) MSG_DBG4("%02X ",(unsigned char)sp.buf[j]); + if(printable) mpxp_dbg4<<std::string(sp.buf).substr(0,20); + else for(j=0;j<_lim;j++) + mpxp_dbg4<<std::hex<<std::setfill('0')<<std::setw(2)<<(unsigned)sp.buf[j]; + mpxp_dbg4<<std::endl; /* ------------ print packet ---------- */ return rc; } @@ -243,9 +246,9 @@ void Stream::print_drivers() { unsigned i; - MSG_INFO("Available stream drivers:\n"); + mpxp_info<<"[Stream]: "<<"Available stream drivers:"<<std::endl; for(i=0;sdrivers[i];i++) { - MSG_INFO(" %-10s %s\n",sdrivers[i]->mrl,sdrivers[i]->descr); + mpxp_info<<std::left<<std::setw(10)<<sdrivers[i]->mrl<<" "<<sdrivers[i]->descr<<std::endl; } } Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/mplayerxp.cpp 2012-12-20 09:57:50 UTC (rev 581) @@ -874,7 +874,7 @@ if(!vo_inited){ mpxp_fatal<<MSGTR_InvalidVOdriver<<": "<<(mp_conf.video_driver?mp_conf.video_driver:"?")<<std::endl; - exit_player(MSGTR_Exit_error); + exit_player(MSGTR_Fatal_error); } // check audio_out driver name: @@ -995,7 +995,7 @@ if(isprint(c[0]) && isprint(c[1]) && isprint(c[2]) && isprint(c[3])) mpxp_info<<std::setw(4)<<c; else - mpxp_info<<std::hex<<std::setw(8)<<fmt; + mpxp_info<<std::hex<<std::setfill('0')<<std::setw(8)<<fmt; } if(sh_audio) { mpxp_info<<" Audio="; @@ -1004,7 +1004,7 @@ if(isprint(c[0]) && isprint(c[1]) && isprint(c[2]) && isprint(c[3])) mpxp_info<<std::setw(4)<<c; else - mpxp_info<<std::hex<<std::setw(8)<<fmt; + mpxp_info<<std::hex<<std::setfill('0')<<std::setw(8)<<fmt; } mpxp_info<<std::endl; } @@ -1131,8 +1131,8 @@ if(isprint(fmt[0]) && isprint(fmt[1]) && isprint(fmt[2]) && isprint(fmt[3])) mpxp_err<<std::setw(4)<<" '"<<fmt<<"'!"<<std::endl; else - mpxp_err<<" 0x"<<std::hex<<std::setprecision(8)<<sh_audio->wtag<<"!"<<std::endl; - MSG_HINT( MSGTR_TryUpgradeCodecsConfOrRTFM,get_path("win32codecs.conf")); + mpxp_err<<" 0x"<<std::hex<<std::setfill('0')<<std::setw(8)<<sh_audio->wtag<<"!"<<std::endl; + mpxp_hint<<get_path("win32codecs.conf")<<":"<<MSGTR_TryUpgradeCodecsConfOrRTFM<<std::endl; d_audio->sh=NULL; sh_audio=reinterpret_cast<sh_audio_t*>(d_audio->sh); } else { @@ -1145,7 +1145,7 @@ ao_inited=mpxp_context().audio().output->_register(mp_conf.audio_driver?mp_conf.audio_driver:"",0); if (ao_inited!=MPXP_Ok){ mpxp_fatal<<MSGTR_InvalidAOdriver<<": "<<mp_conf.audio_driver<<std::endl; - exit_player(MSGTR_Exit_error); + exit_player(MSGTR_Fatal_error); } } } @@ -1193,8 +1193,8 @@ if(isprint(fmt[0]) && isprint(fmt[1]) && isprint(fmt[2]) && isprint(fmt[3])) mpxp_err<<std::setw(4)<<" '"<<fmt<<"'!"<<std::endl; else - mpxp_err<<" 0x"<<std::hex<<std::setw(8)<<sh_video->fourcc<<std::endl; - MSG_HINT( MSGTR_TryUpgradeCodecsConfOrRTFM,get_path("win32codecs.conf")); + mpxp_err<<" 0x"<<std::hex<<std::setfill('0')<<std::setw(8)<<sh_video->fourcc<<std::endl; + mpxp_hint<<get_path("win32codecs.conf")<<":"<<MSGTR_TryUpgradeCodecsConfOrRTFM<<std::endl; d_video->sh = NULL; sh_video = reinterpret_cast<sh_video_t*>(d_video->sh); rc=MPXP_False; @@ -1245,7 +1245,7 @@ } else { mpxp_v<<"AF_pre: "<<samplerate<<"Hz "<<channels<<"ch (" <<ao_format_name(format)<< - ") afmt="<<std::hex<<std::setw(8)<<format + ") afmt="<<std::hex<<std::setfill('0')<<std::setw(8)<<format <<" sh_audio_min="<<sh_audio->audio_out_minsize<<std::endl; } @@ -1301,8 +1301,8 @@ sh_audio_t* sh_audio=reinterpret_cast<sh_audio_t*>(_demuxer->audio->sh); /* PAINT audio OSD */ unsigned ipts,rpts; - unsigned char h,m,s,rh,rm,rs; - static char ph=0,pm=0,ps=0; + unsigned h,m,s,rh,rm,rs; + static unsigned ph=0,pm=0,ps=0; ipts=(unsigned)(sh_audio->timer-mpxp_context().audio().output->get_delay()); rpts=_demuxer->movi_length-ipts; h = ipts/3600; @@ -1314,8 +1314,12 @@ rs = rpts%60; } else rh=rm=rs=0; if(h != ph || m != pm || s != ps) { - mpxp_status<<std::setw(2)<<">"<<h<<":"<<m<<":"<<s - <<"("<<rh<<":"<<rm<<":"<<rs<<")\r"; + mpxp_status<<">"<<std::setfill('0')<<std::setw(2)<<h<<":" + <<std::setfill('0')<<std::setw(2)<<m<<":" + <<std::setfill('0')<<std::setw(2)<<s<<"(" + <<std::setfill('0')<<std::setw(2)<<rh<<":" + <<std::setfill('0')<<std::setw(2)<<rm<<":" + <<std::setfill('0')<<std::setw(2)<<rs<<")\r"; mpxp_status.flush(); ph = h; pm = m; @@ -1775,7 +1779,7 @@ if(mp_conf.stream_dump) if((stream_dump_type=dump_parse(mp_conf.stream_dump))==0) { mpxp_err<<"Wrong dump parameters! Unable to continue"<<std::endl; - exit_player(MSGTR_Exit_error); + exit_player(MSGTR_Fatal_error); } if(stream_dump_type) mp_conf.s_cache_size=0; @@ -1812,7 +1816,7 @@ MP_UNIT("demux_open"); if(!input_state.after_dvdmenu) MPXPSys.assign_demuxer(Demuxer::open(stream,MPXPSys.libinput(),mp_conf.audio_id,mp_conf.video_id,mp_conf.dvdsub_id)); - if(!MPXPSys.demuxer()) goto goto_next_file; // exit_player(MSGTR_Exit_error); // ERROR + if(!MPXPSys.demuxer()) goto goto_next_file; input_state.after_dvdmenu=0; Demuxer_Stream *d_video; @@ -1841,7 +1845,7 @@ if(!sh_video && !sh_audio) { mpxp_fatal<<"No stream found"<<std::endl; - goto goto_next_file; // exit_player(MSGTR_Exit_error); + goto goto_next_file; } //================== Read SUBTITLES (DVD & TEXT) ========================== @@ -1959,7 +1963,7 @@ if(mp_conf.force_fps && sh_video) { sh_video->fps=mp_conf.force_fps; - MSG_INFO(MSGTR_FPSforced,sh_video->fps,1.0f/sh_video->fps); + mpxp_info<<MSGTR_FPSforced<<sh_video->fps<<"(fitme: "<<1.0f/sh_video->fps<<")"<<std::endl; } /* Init timers and benchmarking */ @@ -2003,7 +2007,7 @@ <<")"<<std::endl; //==================== START PLAYING ======================= - mpxp_ok<<MSGTR_StartPlaying<<std::endl; + mpxp_ok<<MSGTR_Playing<<"..."<<std::endl; mpxp_print_flush(); while(!eof){ Modified: mplayerxp/nls/mpxp_help-cz.h =================================================================== --- mplayerxp/nls/mpxp_help-cz.h 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/nls/mpxp_help-cz.h 2012-12-20 09:57:50 UTC (rev 581) @@ -40,144 +40,10 @@ // ========================= MPlayer messages =========================== -// mplayer.c: - #define MSGTR_Exiting "Končím" #define MSGTR_Exit_frames "Požadovaný počet snímků přehrán" #define MSGTR_Exit_quit "Konec" #define MSGTR_Exit_eof "Konec souboru" -#define MSGTR_Exit_error "Závažná chyba" -#define MSGTR_IntBySignal "\nMPlayerXP přerušen signálem %d v modulu: %s \n" -#define MSGTR_NoHomeDir "Nemohu nalézt domácí (HOME) adresář\n" -#define MSGTR_GetpathProblem "get_path(\"config\") problém\n" -#define MSGTR_CreatingCfgFile "Vytvářím konfigurační soubor" -#define MSGTR_InvalidVOdriver "Neplané jméno výstupního videoovladače" -#define MSGTR_InvalidAOdriver "Neplané jméno výstupního audioovladače" -#define MSGTR_CopyCodecsConf "(copy/ln etc/codecs.conf (ze zdrojových kódů MPlayerXPu) do ~/.mplayerxp/codecs.conf)\n" -#define MSGTR_CantLoadFont "Nemohu načíst font" -#define MSGTR_CantLoadSub "Nemohu načíst titulky" -#define MSGTR_ErrorDVDkey "Chyba při zpracování klíče DVD.\n" -#define MSGTR_CmdlineDVDkey "DVD klíč požadovaný na příkazové řádce je uschován pro rozkódování.\n" -#define MSGTR_DVDauthOk "DVD autentikační sekvence vypadá vpořádku.\n" -#define MSGTR_DumpSelectedSteramMissing "dump: FATAL: požadovaný proud chybí!\n" -#define MSGTR_CantOpenDumpfile "Nelze otevřít soubor pro dump!!!\n" -#define MSGTR_CoreDumped "jádro vypsáno :)\n" -#define MSGTR_FPSnotspecified "V hlavičce souboru není udáno (nebo je špatné) FPS! Použijte volbu -fps !\n" -#define MSGTR_NoVideoStream "Bohužel, žádný videoproud... to se zatím nedá přehrát.\n" -#define MSGTR_TryForceAudioFmt "Pokouším se vynutit rodinu audiokodeku" -#define MSGTR_CantFindAfmtFallback "Nemohu nalézt audio kodek pro požadovanou rodinu, použiji ostatní.\n" -#define MSGTR_CantFindAudioCodec "Nemohu nalézt kodek pro audio formát" -#define MSGTR_TryUpgradeCodecsConfOrRTFM "*** Pokuste se upgradovat %s z etc/codecs.conf\n*** Pokud problém přetrvá, pak si přečtěte DOCS/CODECS!\n" -#define MSGTR_CouldntInitAudioCodec "Nelze inicializovat audio kodek! -> beze zvuku\n" -#define MSGTR_TryForceVideoFmt "Pokuším se vynutit rodinu videokodeku" -#define MSGTR_CantFindVfmtFallback "Nemohu nalézt video kodek pro požadovanou rodinu, použiji ostatní.\n" -#define MSGTR_CantFindVideoCodec "Nemohu nalézt kodek pro video formát" -#define MSGTR_VOincompCodec "Bohužel, vybrané video_out zařízení je nekompatibilní s tímto kodekem.\n" -#define MSGTR_CouldntInitVideoCodec "FATAL: Nemohu inicializovat videokodek :(\n" -#define MSGTR_EncodeFileExists "Soubor již existuje: %s (nepřepište si svůj oblíbený AVI soubor!)\n" -#define MSGTR_CantCreateEncodeFile "Nemohu vytvořit soubor\n" // toto doopravit - need to be corrected -#define MSGTR_CannotInitVO "FATAL: Nemohu inicializovat video driver!\n" -#define MSGTR_CannotInitAO "nemohu otevřít/inicializovat audio driver -> TICHO\n" -#define MSGTR_StartPlaying "Začínám přehrávat...\n" - +#define MSGTR_Fatal_error "Závažná chyba" +#define MSGTR_NoHomeDir "Nemohu nalézt domácí (HOME) adresář" #define MSGTR_Playing "Přehrávám" -#define MSGTR_NoSound "Audio: beze zvuku!!!\n" -#define MSGTR_FPSforced "FPS vynuceno na hodnotu %5.3f (ftime: %5.3f)\n" - -// open.c, stream.c: -#define MSGTR_CdDevNotfound "CD-ROM zařízení '%s' nenalezeno!\n" -#define MSGTR_ErrTrackSelect "Chyba při výběru VCD stopy!" -#define MSGTR_ReadSTDIN "Čtu ze stdin...\n" -#define MSGTR_UnableOpenURL "Nelze otevřít URL: %s\n" -#define MSGTR_ConnToServer "Připojen k serveru: %s\n" -#define MSGTR_FileNotFound "Soubor nenalezen: '%s'\n" - -#define MSGTR_CantOpenDVD "Nelze otevřít DVD zařízení: %s\n" -#define MSGTR_DVDwait "Čtu strukturu disku, prosím čekejte...\n" -#define MSGTR_DVDnumTitles "Na tomto DVD je %d titulů.\n" -#define MSGTR_DVDinvalidTitle "Neplatné číslo DVD titulu: %d\n" -#define MSGTR_DVDinvalidChapter "Neplatné číslo kapitoly DVD: %d\n" -#define MSGTR_DVDnumAngles "Na tomto DVD je %d úhlů pohledu.\n" -#define MSGTR_DVDinvalidAngle "Neplatné číslo úhlu pohledu DVD: %d\n" -#define MSGTR_DVDnoIFO "Nemohu otevřít soubor IFO pro DVD titul %d.\n" -#define MSGTR_DVDnoVOBs "Nemohu otevřít VOB soubor (VTS_%02d_1.VOB).\n" -#define MSGTR_DVDopenOk "DVD úspěšně otevřeno!\n" - -// demuxer.c, demux_*.c: -#define MSGTR_AudioStreamRedefined "Upozornění! Hlavička audio proudu %d předefinována!\n" -#define MSGTR_VideoStreamRedefined "Upozornění! Hlavička video proudu %d předefinována!\n" -#define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Příliš mnoho (%d v %d bajtech) audio paketů v bufferu!\n" -#define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Příliš mnoho (%d v %d bajtech) video paketů v bufferu!\n" -#define MSGTR_MaybeNI "(možná přehráváte neprokládaný proud/soubor nebo kodek selhal)\n" -#define MSGTR_DetectedFILMfile "Detekován FILM formát souboru!\n" -#define MSGTR_DetectedFLIfile "Detekován FLI formát souboru!\n" -#define MSGTR_DetectedROQfile "Detekován RoQ formát souboru!\n" -#define MSGTR_DetectedREALfile "Detekován REAL formát souboru!\n" -#define MSGTR_DetectedAVIfile "Detekován AVI formát souboru!\n" -#define MSGTR_DetectedASFfile "Detekován ASF formát souboru!\n" -#define MSGTR_DetectedMPEGPESfile "Detekován MPEG-PES formát souboru!\n" -#define MSGTR_DetectedMPEGPSfile "Detekován MPEG-PS formát souboru!\n" -#define MSGTR_DetectedMPEGESfile "Detekován MPEG-ES formát souboru!\n" -#define MSGTR_DetectedQTMOVfile "Detekován QuickTime/MOV formát souboru!\n" -#define MSGTR_MissingMpegVideo "Chybějící MPEG video proud!? Kontaktujte autora, možná to je chyba (bug) :(\n" -#define MSGTR_InvalidMPEGES "Neplatný MPEG-ES proud!? Kontaktuje autora, možná to je chyba (bug) :(\n" -#define MSGTR_FormatNotRecognized "========== Bohužel, tento formát souboru není rozpoznán/podporován =========\n"\ - "==== Pokud je tento soubor AVI, ASF nebo MPEG proud, kontaktuje autora! ====\n" -#define MSGTR_MissingVideoStream "Žádný video proud nenalezen!\n" -#define MSGTR_MissingAudioStream "Žádný audio proud nenalezen... ->beze zvuku\n" -#define MSGTR_MissingVideoStreamBug "Chybějící video proud!? Kontaktuje autora, možná to je chyba (bug) :(\n" - -#define MSGTR_DoesntContainSelectedStream "demux: soubor neobsahuje vybraný audio nebo video proud\n" - -#define MSGTR_NI_Forced "Vynucen" -#define MSGTR_NI_Detected "Detekován" -#define MSGTR_NI_Message "%s NEPROKLÁDANÝ formát souboru AVI!\n" - -#define MSGTR_UsingNINI "Používám NEPROKLÁDANÝ poškozený formát souboru AVI!\n" //tohle taky nějak opravit -#define MSGTR_CouldntDetFNo "Nemohu určit počet snímků (pro SOFní posun) \n" -#define MSGTR_CantSeekRawAVI "Nelze se posouvat v surových (raw) .AVI proudech! (Potřebuji index, zkuste použít volbu -idx !) \n" -#define MSGTR_CantSeekFile "Nemohu posouvat v tomto souboru! \n" - -#define MSGTR_MOVcomprhdr "MOV: Komprimované hlavičky nejsou (ještě) podporovány!\n" -#define MSGTR_MOVvariableFourCC "MOV: Upozornění! proměnná FOURCC detekována!?\n" -#define MSGTR_MOVtooManyTrk "MOV: Upozornění! Příliš mnoho stop!" -#define MSGTR_MOVnotyetsupp "\n****** Quicktime MOV formát není ještě podporován !!! *******\n" - -// dec_video.c & dec_audio.c: -#define MSGTR_CantOpenCodec "nemohu otevřít kodek\n" -#define MSGTR_CantCloseCodec "nemohu uzavřít kodek\n" - -#define MSGTR_MissingDLLcodec "CHYBA: Nemohu otevřít potřebný DirectShow kodek: %s\n" -#define MSGTR_ACMiniterror "Nemohu načíst/inicializovat Win32/ACM AUDIO kodek (chybějící soubor DLL?)\n" -#define MSGTR_MissingLAVCcodec "Nemohu najít kodek '%s' v libavcodec...\n" - -#define MSGTR_NoDShowSupport "MPlayerXP byl přeložen BEZ podpory directshow!\n" -#define MSGTR_NoWfvSupport "Podpora pro kodeky win32 neaktivní nebo nedostupná mimo platformy x86!\n" -#define MSGTR_NoDivx4Support "MPlayerXP byl přeložen BEZ podpory DivX4Linux (libdivxdecore.so)!\n" -#define MSGTR_NoLAVCsupport "MPlayerXP byl přeložen BEZ podpory lavc/libavcodec!\n" -#define MSGTR_NoACMSupport "Win32/ACM audio kodek neaktivní nebo nedostupný mimo platformy x86 -> vynuceno beze zvuku :(\n" -#define MSGTR_NoDShowAudio "Přeloženo BEZ podpory DirectShow -> vynuceno beze zvuku :(\n" -#define MSGTR_NoOggVorbis "OggVorbis audio kodek neaktivní -> vynuceno beze zvuku :(\n" -#define MSGTR_NoXAnimSupport "MPlayerXP byl přeložen BEZ podpory XAnim!\n" - -#define MSGTR_MpegNoSequHdr "MPEG: FATAL: EOF - konec souboru v průběhu vyhledávání hlavičky sekvence\n" -#define MSGTR_CannotReadMpegSequHdr "FATAL: Nelze přečíst hlavičku sekvence!\n" -#define MSGTR_CannotReadMpegSequHdrEx "FATAL: Nelze přečíst rozšíření hlavičky sekvence!\n" -#define MSGTR_BadMpegSequHdr "MPEG: Špatná hlavička sekvence!\n" -#define MSGTR_BadMpegSequHdrEx "MPEG: Špatné rozšíření hlavičky sekvence!\n" - -#define MSGTR_ShMemAllocFail "Nemohu alokovat sdílenou paměť\n" -#define MSGTR_OutOfMemory "nedostatek paměti\n" -#define MSGTR_CantAllocAudioBuf "Nemohu alokovat paměť pro výstupní audio buffer\n" -#define MSGTR_NoMemForDecodedImage "nedostatek paměti pro buffer pro dekódování obrazu (%ld bytes)\n" - -#define MSGTR_AC3notvalid "Neplatný AC3 proud.\n" -#define MSGTR_AC3only48k "Pouze proudy o frekvenci 48000 Hz podporovány.\n" -#define MSGTR_UnknownAudio "Neznámý/chybějící audio formát -> beze zvuku\n" - -// LIRC: -#define MSGTR_SettingUpLIRC "Nastavuji podporu lirc ...\n" -#define MSGTR_LIRCdisabled "Nebudete moci používat dálkový ovladač.\n" -#define MSGTR_LIRCopenfailed "Selhal pokus o otevření podpory LIRC!\n" -#define MSGTR_LIRCsocketerr "Nějaká chyba se soketem lirc: %s\n" -#define MSGTR_LIRCcfgerr "Selhalo čtení konfiguračního souboru LIRC %s !\n" Modified: mplayerxp/nls/mpxp_help-de.h =================================================================== --- mplayerxp/nls/mpxp_help-de.h 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/nls/mpxp_help-de.h 2012-12-20 09:57:50 UTC (rev 581) @@ -42,138 +42,6 @@ #define MSGTR_Exit_frames "Angeforderte Anzahl an Frames gespielt" #define MSGTR_Exit_quit "Ende" #define MSGTR_Exit_eof "Ende der Datei" -#define MSGTR_Exit_error "Schwerer Fehler" -#define MSGTR_IntBySignal "\nMPlayerXP wurde durch Signal %d von Modul %s beendet\n" -#define MSGTR_NoHomeDir "Kann Homeverzeichnis nicht finden\n" -#define MSGTR_GetpathProblem "get_path(\"config\") Problem\n" -#define MSGTR_CreatingCfgFile "Erstelle Konfigurationsdatei" -#define MSGTR_InvalidVOdriver "Ungültiger Videoausgabetreibername" -#define MSGTR_InvalidAOdriver "Ungültiger Audioausgabetreibername" -#define MSGTR_CopyCodecsConf "(kopiere/linke etc/codecs.conf nach ~/.mplayerxp/codecs.conf)\n" -#define MSGTR_CantLoadFont "Kann Schriftdatei nicht laden" -#define MSGTR_CantLoadSub "Kann Untertitel nicht laden" -#define MSGTR_ErrorDVDkey "Fehler beim Bearbeiten des DVD-Schlüssels..\n" -#define MSGTR_CmdlineDVDkey "Der DVD-Schlüssel der Kommandozeile wurde für das Descrambeln gespeichert.\n" -#define MSGTR_DVDauthOk "DVD Authentifizierungssequenz scheint OK zu sein.\n" -#define MSGTR_DumpSelectedSteramMissing "dump: FATAL: Ausgewählter Stream fehlt!\n" -#define MSGTR_CantOpenDumpfile "Kann dump-Datei nicht öffnen!!!\n" -#define MSGTR_CoreDumped "core dumped :)\n" -#define MSGTR_FPSnotspecified "FPS ist im Header nicht angegeben (oder ungültig)! Benutze -fps Option!\n" -#define MSGTR_NoVideoStream "Sorry, kein Videostream... ist nicht abspielbar\n" -#define MSGTR_TryForceAudioFmt "Erzwinge Audiocodecgruppe" -#define MSGTR_CantFindAfmtFallback "Kann keinen Audiocodec für gewünschte Gruppe finden, verwende anderen.\n" -#define MSGTR_CantFindAudioCodec "Kann Codec für Audioformat nicht finden:" -#define MSGTR_TryUpgradeCodecsConfOrRTFM "*** Versuche %s mit etc/codecs.conf zu erneuern\n*** Sollte es weiterhin nicht gehen, dann lese DOCS/CODECS!\n" -#define MSGTR_CouldntInitAudioCodec "Kann Audiocodec nicht finden! -> Kein Ton\n" -#define MSGTR_TryForceVideoFmt "Erzwinge Videocodecgruppe" -#define MSGTR_CantFindVfmtFallback "Kann keinen Videocodec für gewünschte Gruppe finden, verwende anderen.\n" -#define MSGTR_CantFindVideoCodec "Kann Videocodec für Format nicht finden:" -#define MSGTR_VOincompCodec "Sorry, der ausgewählte Videoausgabetreiber ist nicht kompatibel mit diesem Codec.\n" -#define MSGTR_CouldntInitVideoCodec "FATAL: Kann Videocodec nicht initialisieren :(\n" -#define MSGTR_EncodeFileExists "Datei existiert: %s (überschreibe nicht deine schönsten AVI's!)\n" -#define MSGTR_CantCreateEncodeFile "Kann Datei zum Encoden nicht öffnen\n" -#define MSGTR_CannotInitVO "FATAL: Kann Videoausgabetreiber nicht initialisieren!\n" -#define MSGTR_CannotInitAO "Kann Audiotreiber/Soundkarte nicht initialisieren -> Kein Ton\n" -#define MSGTR_StartPlaying "Starte Wiedergabe...\n" - +#define MSGTR_Fatal_error "Schwerer Fehler" +#define MSGTR_NoHomeDir "Kann Homeverzeichnis nicht finden" #define MSGTR_Playing "Spiele" -#define MSGTR_NoSound "Audio: kein Ton!!!\n" -#define MSGTR_FPSforced "FPS fixiert auf %5.3f (ftime: %5.3f)\n" - -// open.c, stream.c: -#define MSGTR_CdDevNotfound "CD-ROM Gerät '%s' nicht gefunden!\n" -#define MSGTR_ErrTrackSelect "Fehler beim Auswählen des VCD Tracks!" -#define MSGTR_ReadSTDIN "Lese von stdin...\n" -#define MSGTR_UnableOpenURL "Kann URL nicht öffnen: %s\n" -#define MSGTR_ConnToServer "Verbunden mit Server: %s\n" -#define MSGTR_FileNotFound "Datei nicht gefunden: '%s'\n" - -#define MSGTR_CantOpenDVD "Kann DVD Gerät nicht öffnen: %s\n" -#define MSGTR_DVDwait "Lese Disk-Struktur, bitte warten...\n" -#define MSGTR_DVDnumTitles "Es sind %d Titel auf dieser DVD.\n" -#define MSGTR_DVDinvalidTitle "Ungültige DVD Titelnummer: %d\n" -#define MSGTR_DVDinvalidChapter "Ungültige DVD Kapitelnummer: %d\n" -#define MSGTR_DVDnumAngles "Es sind %d Sequenzen auf diesem DVD Titel.\n" -#define MSGTR_DVDinvalidAngle "Ungültige DVD Sequenznummer: %d\n" -#define MSGTR_DVDnoIFO "Kann die IFO-Datei für den DVD-Titel nicht öffnen %d.\n" -#define MSGTR_DVDnoVOBs "Kann Titel-VOBS (VTS_%02d_1.VOB) nicht öffnen.\n" -#define MSGTR_DVDopenOk "DVD erfolgreich geöffnet!\n" - -// demuxer.c, demux_*.c: -#define MSGTR_AudioStreamRedefined "Warnung! Audiostreamheader %d redefiniert!\n" -#define MSGTR_VideoStreamRedefined "Warnung! Videostreamheader %d redefiniert!\n" -#define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Zu viele (%d in %d bytes) Audiopakete im Puffer!\n" -#define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Zu viele (%d in %d bytes) Videopakete im Puffer!\n" -#define MSGTR_MaybeNI "Vielleicht spielst du einen non-interleaved Stream/Datei oder der Codec funktioniert nicht.\n" -#define MSGTR_DetectedFILMfile "FILM Dateiformat erkannt!\n" -#define MSGTR_DetectedFLIfile "FLI Dateiformat erkannt!\n" -#define MSGTR_DetectedROQfile "RoQ Dateiformat erkannt!\n" -#define MSGTR_DetectedREALfile "REAL Dateiformat erkannt!\n" -#define MSGTR_DetectedAVIfile "AVI Dateiformat erkannt!\n" -#define MSGTR_DetectedASFfile "ASF Dateiformat erkannt!\n" -#define MSGTR_DetectedMPEGPESfile "MPEG-PES Dateiformat erkannt!\n" -#define MSGTR_DetectedMPEGPSfile "MPEG-PS Dateiformat erkannt!\n" -#define MSGTR_DetectedMPEGESfile "MPEG-ES Dateiformat erkannt!\n" -#define MSGTR_DetectedQTMOVfile "QuickTime/MOV Dateiformat erkannt!\n" -#define MSGTR_MissingMpegVideo "Vermisse MPEG Videostream!? Kontaktiere den Author, das könnte ein Bug sein :(\n" -#define MSGTR_InvalidMPEGES "Ungültiger MPEG-ES Stream??? Kontaktiere den Author, das könnte ein Bug sein :(\n" -#define MSGTR_FormatNotRecognized "=========== Sorry, das Dateiformat/Codec wird nicht unterstützt ==============\n"\ - "============== Sollte dies ein AVI, ASF oder MPEG Stream sein, ===============\n"\ - "================== dann kontaktiere bitte den Author =========================\n" -#define MSGTR_MissingVideoStream "kann keinen Videostream finden!\n" -#define MSGTR_MissingAudioStream "kann keinen Audiostream finden... -> kein Ton\n" -#define MSGTR_MissingVideoStreamBug "Vermisse Videostream!? Kontaktiere den Author, möglicherweise ein Bug :(\n" - -#define MSGTR_DoesntContainSelectedStream "Demux: Datei enthält den gewählen Audio- oder Videostream nicht\n" - -#define MSGTR_NI_Forced "Erzwungen" -#define MSGTR_NI_Detected "Erkannt" -#define MSGTR_NI_Message "%s NON-INTERLEAVED AVI Dateiformat!\n" - -#define MSGTR_UsingNINI "Verwende NON-INTERLEAVED defektes AVI Dateiformat!\n" -#define MSGTR_CouldntDetFNo "Konnte die Anzahl der Frames (für absulute Suche) nicht finden \n" -#define MSGTR_CantSeekRawAVI "Kann keine RAW .AVI-Streams durchsuchen! (Index erforderlich, versuche es mit der -idx Option!) \n" -#define MSGTR_CantSeekFile "Kann diese Datei nicht durchsuchen! \n" - -#define MSGTR_MOVcomprhdr "MOV: Komprimierte Header werden (zur Zeit) nicht unterstützt!\n" -#define MSGTR_MOVvariableFourCC "MOV: Warnung! Variable FOURCC erkannt!?\n" -#define MSGTR_MOVtooManyTrk "MOV: Warnung! Zu viele Tracks!" -#define MSGTR_MOVnotyetsupp "\n******** Quicktime MOV Format wird zu Zeit nicht unterstützt!!!!!!! *********\n" - -// dec_video.c & dec_audio.c: -#define MSGTR_CantOpenCodec "kann Codec nicht öffnen\n" -#define MSGTR_CantCloseCodec "kann Codec nicht schließen\n" - -#define MSGTR_MissingDLLcodec "FEHLER: Kann erforderlichen DirectShow Codec nicht finden: %s\n" -#define MSGTR_ACMiniterror "Kann Win32/ACM AUDIO Codec nicht finden (fehlende DLL-Datei?)\n" -#define MSGTR_MissingLAVCcodec "Kann Codec '%s' von libavcodec nicht finden...\n" - -#define MSGTR_NoDShowSupport "MPlayerXP wurde OHNE DirectShow Unterstützung kompiliert!\n" -#define MSGTR_NoWfvSupport "Unterstützung für Win32 Codecs ausgeschaltet oder nicht verfügbar auf nicht-x86 Plattformen!\n" -#define MSGTR_NoDivx4Support "MPlayerXP wurde OHNE DivX4Linux (libdivxdecore.so) Unterstützung kompiliert!\n" -#define MSGTR_NoLAVCsupport "MPlayerXP wurde OHNE lavc/libavcodec Unterstützung kompiliert!\n" -#define MSGTR_NoACMSupport "Win32/ACM Audiocodecs ausgeschaltet oder nicht verfügbar auf nicht-x86 Plattformen -> erzwinge -nosound :(\n" -#define MSGTR_NoDShowAudio "MPlayerXP wurde ohne DirectShow Unterstützung kompiliert -> erzwinge -nosound :(\n" -#define MSGTR_NoOggVorbis "OggVorbis Audiocodec ausgeschaltet -> erzwinge -nosound :(\n" - -#define MSGTR_MpegNoSequHdr "MPEG: FATAL: Ende der Datei während der Suche für Sequenzheader\n" -#define MSGTR_CannotReadMpegSequHdr "FATAL: Kann Sequenzheader nicht lesen!\n" -#define MSGTR_CannotReadMpegSequHdrEx "FATAL: Kann Sequenzheader-Erweiterung nicht lesen!\n" -#define MSGTR_BadMpegSequHdr "MPEG: Schlechte Sequenzheader!\n" -#define MSGTR_BadMpegSequHdrEx "MPEG: Schlechte Sequenzheader-Erweiterung!\n" - -#define MSGTR_ShMemAllocFail "Kann keine gemeinsamen Speicher zuweisen\n" -#define MSGTR_OutOfMemory "Kein Speicher mehr verfügbar!\n" -#define MSGTR_CantAllocAudioBuf "Kann keinen Audioausgabe-Puffer zuweisen\n" -#define MSGTR_NoMemForDecodedImage "nicht genug Speicher für den Puffer der dekodierten Bilder (%ld Bytes)\n" - -#define MSGTR_AC3notvalid "AC3 Stream ungültig.\n" -#define MSGTR_AC3only48k "Nur 48000 Hz Streams werden unterstützt.\n" -#define MSGTR_UnknownAudio "Unbekanntes/fehlendes Audioformat -> kein Ton\n" - -// LIRC: -#define MSGTR_SettingUpLIRC "Initialisiere Lirc Unterstützung...\n" -#define MSGTR_LIRCdisabled "Verwenden der Fernbedienung nicht möglich\n" -#define MSGTR_LIRCopenfailed "Fehler beim Öffnen der LIRC Unterstützung!\n" -#define MSGTR_LIRCsocketerr "Fehler im LIRC Socket: %s\n" -#define MSGTR_LIRCcfgerr "Kann LIRC Konfigurationsdatei nicht lesen %s !\n" Modified: mplayerxp/nls/mpxp_help-dk.h =================================================================== --- mplayerxp/nls/mpxp_help-dk.h 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/nls/mpxp_help-dk.h 2012-12-20 09:57:50 UTC (rev 581) @@ -43,138 +43,7 @@ #define MSGTR_Exit_frames "Anmoder om et antal billeder bliver afspillet" #define MSGTR_Exit_quit "Afslut" #define MSGTR_Exit_eof "Slutningen af filen" -#define MSGTR_Exit_error "Fatal fejl" -#define MSGTR_IntBySignal "\nMPlayerXP afbrudt af signal %d i modul: %s \n" -#define MSGTR_NoHomeDir "Kan ikke finde hjemmekatalog (HOME)\n" -#define MSGTR_GetpathProblem "get_path(\"config\") problem\n" -#define MSGTR_CreatingCfgFile "Genererer konfig fil" -#define MSGTR_InvalidVOdriver "Ugyldig valg af video driver" -#define MSGTR_InvalidAOdriver "Ugyldig valg af lyd driver" -#define MSGTR_CopyCodecsConf "(kopier/linker etc/codecs.conf (fra MPlayerXP kilde (source) katalog) til ~/.mplayerxp/codecs.conf)\n" -#define MSGTR_CantLoadFont "Kan ikke loade fonten" -#define MSGTR_CantLoadSub "Kan ikke loade undertekst-filen" -#define MSGTR_ErrorDVDkey "Fejl under afvikling af DVD NØGLE.\n" -#define MSGTR_CmdlineDVDkey "DVD kommandolinje nøgle er gemt til dekryptering.\n" -#define MSGTR_DVDauthOk "DVD auth sekvens synes af være OK.\n" -#define MSGTR_DumpSelectedSteramMissing "dump: FATAL: kan ikke finde den valge fil eller adresse!\n" -#define MSGTR_CantOpenDumpfile "Kan ikke åbne dump filen!!!\n" -#define MSGTR_CoreDumped "kernen dumped :)\n" -#define MSGTR_FPSnotspecified "FPS ikke specificeret (eller ugyldig) i headeren! Brug -fps !\n" -#define MSGTR_NoVideoStream "Desværre, filmen kan enten ikke findes eller kan ikke afspilles endnu\n" -#define MSGTR_TryForceAudioFmt "Prøver at tvinge en lyd codec driver familie" -#define MSGTR_CantFindAfmtFallback "Kan ikke finde lyd codec for den tvungede driver familie, falder tilbage på en anden driver.\n" -#define MSGTR_CantFindAudioCodec "Kan ikke finde codec til lyd formatet" -#define MSGTR_TryUpgradeCodecsConfOrRTFM "*** Prøv at opgradere %s fra etc/codecs.conf\n*** Hvis dette ikke hjælper, så læs filen DOCS/codecs.html!\n" -#define MSGTR_CouldntInitAudioCodec "Kunne ikke initialisere lyd codec! -> ingen lyd\n" -#define MSGTR_TryForceVideoFmt "Prøver at tvinge en video codec driver familie" -#define MSGTR_CantFindVfmtFallback "Kan ikke finde video codec for den tvungede driver familie, falder tilbage på en anden driver.\n" -#define MSGTR_CantFindVideoCodec "Kan ikke finde video codec til formatet" -#define MSGTR_VOincompCodec "Desværre, den valgte video driver enhed er ikke kompatibel med dette codec.\n" -#define MSGTR_CouldntInitVideoCodec "FATAL: Kunne ikke initialisere video codec :(\n" -#define MSGTR_EncodeFileExists "Filen eksisterer allerede: %s (overskriv ikke din favorit film (AVI)!)\n" -#define MSGTR_CantCreateEncodeFile "Kan ikke oprette fil til enkodning\n" -#define MSGTR_CannotInitVO "FATAL: Kan ikke initialisere video driveren!\n" -#define MSGTR_CannotInitAO "Kunne ikke åbne/initialisere lydkortet -> INGEN LYD\n" -#define MSGTR_StartPlaying "Starter afspilning ...\n" - +#define MSGTR_Fatal_error "Fatal fejl" +#define MSGTR_NoHomeDir "Kan ikke finde hjemmekatalog (HOME)" #define MSGTR_Playing "Afspiller" -#define MSGTR_NoSound "Lyd: ingen lyd!!!\n" -#define MSGTR_FPSforced "FPS tvunget til %5.3f (ftime: %5.3f)\n" -// open.c, stream.c: -#define MSGTR_CdDevNotfound "CD-ROM Drev '%s' ikke fundet!\n" -#define MSGTR_ErrTrackSelect "Fejl i valg af VCD nummer!" -#define MSGTR_ReadSTDIN "Læser fra stdin...\n" -#define MSGTR_UnableOpenURL "Ikke mulig at få kontakt til URL: %s\n" -#define MSGTR_ConnToServer "Koblet op til serveren: %s\n" -#define MSGTR_FileNotFound "Filen blev ikke fundet: '%s'\n" - -#define MSGTR_CantOpenDVD "Kunne ikke åbne DVD drev: %s\n" -#define MSGTR_DVDwait "Læser disken struktur, vent venligst...\n" -#define MSGTR_DVDnumTitles "Der er %d titler på denne DVD.\n" -#define MSGTR_DVDinvalidTitle "Forkert DVD titel nummer: %d\n" -#define MSGTR_DVDinvalidChapter "Forkert DVD katalog nummmer: %d\n" -#define MSGTR_DVDnumAngles "Der er %d vinkler i denne DVD titel.\n" -#define MSGTR_DVDinvalidAngle "Forkert DVD vinkelnummer: %d\n" -#define MSGTR_DVDnoIFO "Kan ikke finde IFO filen for DVD titlen %d.\n" -#define MSGTR_DVDnoVOBs "Kan ikke åbne titlen VOBS (VTS_%02d_1.VOB).\n" -#define MSGTR_DVDopenOk "DVD korrekt åbnet!\n" - -// demuxer.c, demux_*.c: -#define MSGTR_AudioStreamRedefined "Advarsel! Lyd-filens header %d er blevet omdefineret!\n" -#define MSGTR_VideoStreamRedefined "Advarsel! Video-filens header %d er blevet omdefineret!\n" -#define MSGTR_TooManyAudioInBuffer "\nDEMUXER: For mange (%d i %d bytes) lyd pakker i bufferen!\n" -#define MSGTR_TooManyVideoInBuffer "\nDEMUXER: For mange (%d i %d bytes) video pakker i bufferen!\n" -#define MSGTR_MaybeNI "(måske afspiller du en 'non-interleaved' stream/fil ellers fejlede codec'et)\n" -#define MSGTR_DetectedFILMfile "Detecterede FILM fil format!\n" -#define MSGTR_DetectedFLIfile "Detecterede FLI fil format!\n" -#define MSGTR_DetectedROQfile "Detecterede RoQ fil format!\n" -#define MSGTR_DetectedREALfile "Detecterede REAL fil format!\n" -#define MSGTR_DetectedAVIfile "Detecterede AVI fil format!\n" -#define MSGTR_DetectedASFfile "Detecterede ASF fil format!\n" -#define MSGTR_DetectedMPEGPESfile "Detecterede MPEG-PES fil format!\n" -#define MSGTR_DetectedMPEGPSfile "Detecterede MPEG-PS fil format!\n" -#define MSGTR_DetectedMPEGESfile "Detecterede MPEG-ES fil format!\n" -#define MSGTR_DetectedQTMOVfile "Detecterede QuickTime/MOV fil format!\n" -#define MSGTR_MissingMpegVideo "Manglende MPEG video stream!? Rapporter venligst dette, det kan være en bug :(\n" -#define MSGTR_InvalidMPEGES "Ugyldig MPEG-ES stream??? Rapporter venligst dette, det kunne være en bug :(\n" -#define MSGTR_FormatNotRecognized \ -"============= Desværre, dette fil-format er ikke detecteret eller understøttet ===============\n"\ -"=== Hvis denne fil er en AVI, ASF or MPEG stream, så rapporter venligst dette, det kunne være en bug :(===\n" -#define MSGTR_MissingVideoStream "Ingen video stream fundet!\n" -#define MSGTR_MissingAudioStream "Ingen lyd stream fundet... ->ingen lyd\n" -#define MSGTR_MissingVideoStreamBug "Manglende video stream!? Rapporter venligst dette, det kunne være en bug :(\n" - -#define MSGTR_DoesntContainSelectedStream "demux: filen indeholder ikke den valgte lyd eller video stream\n" - -#define MSGTR_NI_Forced "Tvunget" -#define MSGTR_NI_Detected "Detecteret" -#define MSGTR_NI_Message "%s NON-INTERLEAVED AVI fil-format!\n" - -#define MSGTR_UsingNINI "Bruger NON-INTERLEAVED ødelagt AVI fil-format!\n" -#define MSGTR_CouldntDetFNo "Kunne ikke finde antallet af billeder (for en SOF søgning) \n" -#define MSGTR_CantSeekRawAVI "Kan ikke søge i rå .AVI streams! (manglende index, prøv med -idx!) \n" -#define MSGTR_CantSeekFile "Kan ikke søge i denne fil! \n" - -#define MSGTR_MOVcomprhdr "MOV: Komprimeret header (endnu) ikke supported!\n" -#define MSGTR_MOVvariableFourCC "MOV: Advarsel! variablen FOURCC detecteret!?\n" -#define MSGTR_MOVtooManyTrk "MOV: Advarsel! For mange numre!" -#define MSGTR_MOVnotyetsupp "\n****** Quicktime MOV format endnu ikke supporteret!!!!!!! *******\n" - -// dec_video.c & dec_audio.c: -#define MSGTR_CantOpenCodec "kunne ikke åbne codec\n" -#define MSGTR_CantCloseCodec "kunne ikke afslutte codec\n" - -#define MSGTR_MissingDLLcodec "FEJL: Kunne ikke åbne DirectShow codec: %s\n" -#define MSGTR_ACMiniterror "Kunne ikke loade/initialisere Win32/ACM LYD codec (manglende DLL fil?)\n" -#define MSGTR_MissingLAVCcodec "Kunne ikke finde codec '%s' i libavcodec...\n" - -#define MSGTR_NoDShowSupport "MPlayerXP blev kompileret uden directshow support!\n" -#define MSGTR_NoWfvSupport "Support for win32 codecs slået fra, eller er ikke tilråde på ikke-x86 platforme!\n" -#define MSGTR_NoDivx4Support "MPlayerXP blev kompileret UDEN DivX4Linux (libdivxdecore.so) support!\n" -#define MSGTR_NoLAVCsupport "MPlayerXP was kompileret UDEN lavc/libavcodec support!\n" -#define MSGTR_NoACMSupport "Win32/ACM lyd codec slået fra, eller ikke tilråde på ikke-x86 CPU -> ingen lyd tvunget :(\n" -#define MSGTR_NoDShowAudio "Kompileret uden DirectShow support -> tvunget ingen lyd :(\n" -#define MSGTR_NoOggVorbis "OggVorbis lyd codec slået fra -> tvunget ingen lyd :(\n" -#define MSGTR_NoXAnimSupport "MPlayerXP blev kompileret UDEN XAnim support!\n" - -#define MSGTR_MpegNoSequHdr "MPEG: FATAL: EOF under søgning efter sekvens header\n" -#define MSGTR_CannotReadMpegSequHdr "FATAL: Kunne ikke læse sekvens header!\n" -#define MSGTR_CannotReadMpegSequHdrEx "FATAL: Kunne ikke læse sekvems header extension!\n" -#define MSGTR_BadMpegSequHdr "MPEG: Ugyldig sekvens header!\n" -#define MSGTR_BadMpegSequHdrEx "MPEG: Ugyldig sekvens header extension!\n" - -#define MSGTR_ShMemAllocFail "Kunne ikke allokere delt ram\n" -#define MSGTR_CantAllocAudioBuf "Kunne ikke allokere lyd buffer\n" -#define MSGTR_NoMemForDecodedImage "ikke nok ram til at dekode billed buffer (%ld bytes)\n" - -#define MSGTR_AC3notvalid "AC3 stream invalid.\n" -#define MSGTR_AC3only48k "Kun 48000 Hz streams supporteret.\n" -#define MSGTR_UnknownAudio "Ukendt/manglende lyd format, slår over til ingen lyd\n" - -// LIRC: -#define MSGTR_SettingUpLIRC "Sætter LIRC support op...\n" -#define MSGTR_LIRCdisabled "Du vil ikke være i stand til at bruge din fjernbetjening\n" -#define MSGTR_LIRCopenfailed "Ingen lirc support!\n" -#define MSGTR_LIRCsocketerr "Der er noget galt med LIRC socket: %s\n" -#define MSGTR_LIRCcfgerr "Kunne ikke læse LIRC config file %s !\n" Modified: mplayerxp/nls/mpxp_help-en.h =================================================================== --- mplayerxp/nls/mpxp_help-en.h 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/nls/mpxp_help-en.h 2012-12-20 09:57:50 UTC (rev 581) @@ -78,15 +78,20 @@ #ifndef MSGTR_Exit_eof #define MSGTR_Exit_eof "End of file" #endif -#ifndef MSGTR_Exit_error -#define MSGTR_Exit_error "Fatal error" +#ifndef MSGTR_Fatal_error +#define MSGTR_Fatal_error "Fatal error" #endif +#ifndef MSGTR_NoHomeDir +#define MSGTR_NoHomeDir "Can't find HOME dir" +#endif +#ifndef MSGTR_Playing +#define MSGTR_Playing "Playing" +#endif + + #ifndef MSGTR_IntBySignal #define MSGTR_IntBySignal "\nMPlayerXP interrupted by signal %d in module: %s \n" #endif -#ifndef MSGTR_NoHomeDir -#define MSGTR_NoHomeDir "Can't find HOME dir\n" -#endif #ifndef MSGTR_GetpathProblem #define MSGTR_GetpathProblem "get_path(\"config\") problem\n" #endif @@ -142,7 +147,7 @@ #define MSGTR_CantFindAudioCodec "Can't find codec for audio format" #endif #ifndef MSGTR_TryUpgradeCodecsConfOrRTFM -#define MSGTR_TryUpgradeCodecsConfOrRTFM "*** Try to upgrade %s from etc/codecs.conf\n*** If it's still not OK, then read DOCS/codecs.html!\n" +#define MSGTR_TryUpgradeCodecsConfOrRTFM "*** Try to upgrade it from etc/codecs.conf*** If it's still not OK, then read DOCS/codecs.html!" #endif #ifndef MSGTR_CouldntInitAudioCodec #define MSGTR_CouldntInitAudioCodec "Couldn't initialize audio codec! -> nosound\n" @@ -174,9 +179,6 @@ #ifndef MSGTR_CannotInitAO #define MSGTR_CannotInitAO "couldn't open/init audio device -> NOSOUND\n" #endif -#ifndef MSGTR_StartPlaying -#define MSGTR_StartPlaying "Start playing...\n" -#endif #ifndef MSGTR_CODEC_INITAL_AV_RESYNC #define MSGTR_CODEC_INITAL_AV_RESYNC "i_bps==0!!! You may have initial A-V resync\nUse '-' and '+' keys to supress that\n" @@ -213,14 +215,11 @@ #endif //#define MSGTR_NoGui "MPlayer was compiled WITHOUT GUI support!\n" //#define MSGTR_GuiNeedsX "MPlayer GUI requires X11!\n" -#ifndef MSGTR_Playing -#define MSGTR_Playing "Playing" -#endif #ifndef MSGTR_NoSound #define MSGTR_NoSound "Audio: no sound!!!\n" #endif #ifndef MSGTR_FPSforced -#define MSGTR_FPSforced "FPS forced to be %5.3f (ftime: %5.3f)\n" +#define MSGTR_FPSforced "FPS forced to be" #endif // open.c, stream.c: @@ -293,13 +292,13 @@ // demuxer.c, demux_*.c: #ifndef MSGTR_AudioStreamRedefined -#define MSGTR_AudioStreamRedefined "Warning! Audio stream header %d redefined!\n" +#define MSGTR_AudioStreamRedefined "Warning! Audio stream header redefined" #endif #ifndef MSGTR_VideoStreamRedefined -#define MSGTR_VideoStreamRedefined "Warning! video stream header %d redefined!\n" +#define MSGTR_VideoStreamRedefined "Warning! video stream header redefined" #endif #ifndef MSGTR_SubStreamRedefined -#define MSGTR_SubStreamRedefined "Warning! subtitle stream id: %d redefined!\n" +#define MSGTR_SubStreamRedefined "Warning! subtitle stream header redefined" #endif #ifndef MSGTR_TooManyAudioInBuffer #define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Too many (%d in %d bytes) audio packets in the buffer!\n" @@ -310,45 +309,8 @@ #ifndef MSGTR_MaybeNI #define MSGTR_MaybeNI "(maybe you play a non-interleaved stream/file or the codec failed)\n" #endif -#ifndef MSGTR_DetectedFILMfile -#define MSGTR_DetectedFILMfile "Detected FILM file format!\n" -#endif -#ifndef MSGTR_DetectedFLIfile -#define MSGTR_DetectedFLIfile "Detected FLI file format!\n" -#endif -#ifndef MSGTR_DetectedROQfile -#define MSGTR_DetectedROQfile "Detected RoQ file format!\n" -#endif -#ifndef MSGTR_DetectedREALfile -#define MSGTR_DetectedREALfile "Detected REAL file format!\n" -#endif -#ifndef MSGTR_DetectedAVIfile -#define MSGTR_DetectedAVIfile "Detected AVI file format!\n" -#endif -#ifndef MSGTR_DetectedASFfile -#define MSGTR_DetectedASFfile "Detected ASF file format!\n" -#endif -#ifndef MSGTR_DetectedMPEGPESfile -#define MSGTR_DetectedMPEGPESfile "Detected MPEG-PES file format!\n" -#endif -#ifndef MSGTR_DetectedMPEGPSfile -#define MSGTR_DetectedMPEGPSfile "Detected MPEG-PS file format!\n" -#endif -#ifndef MSGTR_DetectedMPEGESfile -#define MSGTR_DetectedMPEGESfile "Detected MPEG-ES file format!\n" -#endif -#ifndef MSGTR_DetectedQTMOVfile -#define MSGTR_DetectedQTMOVfile "Detected QuickTime/MOV file format!\n" -#endif -#ifndef MSGTR_MissingMpegVideo -#define MSGTR_MissingMpegVideo "Missing MPEG video stream!? contact the author, it may be a bug :(\n" -#endif -#ifndef MSGTR_InvalidMPEGES -#define MSGTR_InvalidMPEGES "Invalid MPEG-ES stream??? contact the author, it may be a bug :(\n" -#endif #ifndef MSGTR_FormatNotRecognized -#define MSGTR_FormatNotRecognized "============= Sorry, this file format not recognized/supported ===============\n"\ - "=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===\n" +#define MSGTR_FormatNotRecognized "============= Sorry, this file format not recognized/supported ===============" #endif #ifndef MSGTR_MissingVideoStream #define MSGTR_MissingVideoStream "No video stream found!\n" Modified: mplayerxp/nls/mpxp_help-es.h =================================================================== --- mplayerxp/nls/mpxp_help-es.h 2012-12-20 08:10:31 UTC (rev 580) +++ mplayerxp/nls/mpxp_help-es.h 2012-12-20 09:57:50 UTC (rev 581) @@ -44,138 +44,6 @@ #define MSGTR_Exit_frames "Número de cuadros requeridos reproducidos" #define MSGTR_Exit_quit "Salida" #define MSGTR_Exit_eof "Fin del archivo" -#define MSGTR_Exit_error "Error fatal" -#define MSGTR_IntBySignal "\nMPlayerXP interrumpido por señal %d en el módulo: %s \n" -#define MSGTR_NoHomeDir "No se puede encontrar el directorio HOME\n" -#define MSGTR_GetpathProblem "problema en get_path(\"config\")\n" -#define MSGTR_CreatingCfgFile "Creando archivo de configuración" -#define MSGTR_InvalidVOdriver "Nombre del driver de salida de video incorrecto" -#define MSGTR_InvalidAOdriver "Nombre del driver de salida de audio incorrecto" -#define MSGTR_CopyCodecsConf "(copie/ln etc/codecs.conf (en el árbol del codigo fuente de MPlayerXP) a ~/.mplayerxp/codecs.conf)\n" -#define MSGTR_CantLoadFont "No se puede cargar la fuente" -#define MSGTR_CantLoadSub "No se puede cargar el subtítulo" -#define MSGTR_ErrorDVDkey "Error procesando la clave del DVD.\n" -#define MSGTR_CmdlineDVDkey "Clave de DVD requerida en la línea de comandos esta almacenada para 'descrambling'.\n" -#define MSGTR_DVDauthOk "La secuencia de autorización del DVD parece estar bien.\n" -#define MSGTR_DumpSelectedSteramMissing "dump: FATAL: no se encuentra el stream seleccionado!\n" -#define MSGTR_CantOpenDumpfile "No se puede abrir el archivo de dump!!!\n" -#define MSGTR_CoreDumped "core dumped :)\n" -#define MSGTR_FPSnotspecified "FPS no especificado (o inválido) en la cabecera! Use la opción -fps!\n" -#define MSGTR_NoVideoStream "Disculpe, no tiene stream de video... no es reproducible todavía\n" -#define MSGTR_TryForceAudioFmt "Tratando de forzar la familia del codec de audio" -#define MSGTR_CantFindAfmtFallback "No se encuentra codec de audio para la familia forzada, se usan otros drivers.\n" -#define MSGTR_CantFindAudioCodec "No se encuentra codec para el formato de audio" -#define MSGTR_TryUpgradeCodecsConfOrRTFM "*** Intente actualizar %s en etc/codecs.conf\n*** Si todavía no funciona, lea DOCS/codecs.html!\n" -#define MSGTR_CouldntInitAudioCodec "No se pudo inicializar el codec de audio! -> sin sonido\n" -#define MSGTR_TryForceVideoFmt "Tratando de forzar la familia del codec de video" -#define MSGTR_CantFindVfmtFallback "No se encuentra codec de video para la familia forzada, se usan otros drivers.\n" -#define MSGTR_CantFindVideoCodec "No se encuentra codec para el formato de video" -#define MSGTR_VOincompCodec "Disculpe, el dispositivo de salida de video es incompatible con este codec.\n" -#define MSGTR_CouldntInitVideoCodec "FATAL: No se puede inicializar el codec de video :(\n" -#define MSGTR_EncodeFileExists "El archivo ya existe: %s (no sobrescriba su AVI favorito!)\n" -#define MSGTR_CantCreateEncodeFile "No se puede crear el archivo para 'encodear'\n" -#define MSGTR_CannotInitVO "FATAL: No se puede inicializar el driver de video!\n" -#define MSGTR_CannotInitAO "no se puede abrir/inicializar dispositivo de audio -> SIN SONIDO\n" -#define MSGTR_StartPlaying "Empezando a reproducir...\n" - +#define MSGTR_Fatal_error "Error fatal" +#define MSGTR_NoHomeDir "No se puede encontrar el directorio HOME" #define MSGTR_Playing "Reproduciendo" -#define MSGTR_NoSound "Audio: sin sonido!!!\n" -#define MSGTR_FPSforced "FPS forzado en %5.3f (ftime: %5.3f)\n" - -// open.c, stream.c: -#define MSGTR_CdDevNotfound "Dispositivo de CD-ROM '%s' no encontrado!\n" -#define MSGTR_ErrTrackSelect "Error seleccionando la pista de VCD!" -#define MSGTR_ReadSTDIN "Leyendo desde la entrada estándar (stdin)...\n" -#define MSGTR_UnableOpenURL "No es posible abrir URL: %s\n" -#define MSGTR_ConnToServer "Connectado al servidor: %s\n" -#define MSGTR_FileNotFound "Archivo no encontrado: '%s'\n" - -#define MSGTR_CantOpenDVD "No se puede abrir el dispositivo de DVD: %s\n" -#define MSGTR_DVDwait "Leyendo la estructura del disco, espere por favor...\n" -#define MSGTR_DVDnumTitles "Hay %d títulos en este DVD.\n" -#define MSGTR_DVDinvalidTitle "Número de título de DVD inválido: %d\n" -#define MSGTR_DVDinvalidChapter "Número de capítulo de DVD inválido: %d\n" -#define MSGTR_DVDnumAngles "Hay %d ángulos en este título de DVD.\n" -#define MSGTR_DVDinvalidAngle "Número de ángulo de DVD inválido: %d\n" -#define MSGTR_DVDnoIFO "No se puede abrir archivo IFO para el título de DVD %d.\n" -#define MSGTR_DVDnoVOBs "No se puede abrir VOBS del título (VTS_%02d_1.VOB).\n" -#define MSGTR_DVDopenOk "DVD abierto existosamente!\n" - -// demuxer.c, demux_*.c: -#define MSGTR_AudioStreamRedefined "Advertencia! Cabecera de stream de audio %d redefinida!\n" -#define MSGTR_VideoStreamRedefined "Advertencia! Cabecera de stream de video %d redefinida!\n" -#define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Demasiados (%d en %d bytes) paquetes de audio en el buffer!\n" -#define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Demasiados (%d en %d bytes) paquetes de video en el buffer!\n" -#define MSGTR_MaybeNI "(tal vez está reproduciendo un stream/archivo 'non-interleaved' o falló el codec)\n" -#define MSGTR_DetectedFILMfile "Detectado formato de archivo FILM!\n" -#define MSGTR_DetectedFLIfile "Detectado formato de archivo FLI!\n" -#define MSGTR_DetectedROQfile "Detectado formato de archivo RoQ!\n" -#define MSGTR_DetectedREALfile "Detectado formato de archivo REAL!\n" -#define MSGTR_DetectedAVIfile "Detectado formato de archivo AVI!\n" -#define MSGTR_DetectedASFfile "Detectado formato de archivo ASF!\n" -#define MSGTR_DetectedMPEGPESfile "Detectado formato de archivo MPEG-PES!\n" -#define MSGTR_DetectedMPEGPSfile "Detectado formato de archivo MPEG-PS!\n" -#define MSGTR_DetectedMPEGESfile "Detectado formato de archivo MPEG-ES!\n" -#define MSGTR_DetectedQTMOVfile "Detectado formato de archivo QuickTime/MOV!\n" -#define MSGTR_MissingMpegVideo "Stream de video MPEG no encontrado!? contacte al autor, puede ser un bug :(\n" -#define MSGTR_InvalidMPEGES "Stream MPEG-ES inválido??? contacte al autor, puede ser un bug :(\n" -#define MSGTR_FormatNotRecognized "============ Disculpe, este formato no está soporta... [truncated message content] |
From: <nic...@us...> - 2012-12-20 13:30:10
|
Revision: 582 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=582&view=rev Author: nickols_k Date: 2012-12-20 13:29:57 +0000 (Thu, 20 Dec 2012) Log Message: ----------- remove '\n' symbols from static NLS texts Modified Paths: -------------- mplayerxp/libmpstream2/http.cpp mplayerxp/mplayerxp.cpp mplayerxp/nls/mpxp_help-bg.h mplayerxp/nls/mpxp_help-cz.h mplayerxp/nls/mpxp_help-de.h mplayerxp/nls/mpxp_help-dk.h mplayerxp/nls/mpxp_help-el.h mplayerxp/nls/mpxp_help-en.h mplayerxp/nls/mpxp_help-es.h mplayerxp/nls/mpxp_help-fr.h mplayerxp/nls/mpxp_help-hu.h mplayerxp/nls/mpxp_help-it.h mplayerxp/nls/mpxp_help-ja.h mplayerxp/nls/mpxp_help-ko.h mplayerxp/nls/mpxp_help-mk.h mplayerxp/nls/mpxp_help-nb.h mplayerxp/nls/mpxp_help-nl.h mplayerxp/nls/mpxp_help-no.h mplayerxp/nls/mpxp_help-pl.h mplayerxp/nls/mpxp_help-pt.h mplayerxp/nls/mpxp_help-ro.h mplayerxp/nls/mpxp_help-ru.h mplayerxp/nls/mpxp_help-sk.h mplayerxp/nls/mpxp_help-sv.h mplayerxp/nls/mpxp_help-tr.h mplayerxp/nls/mpxp_help-uk.h mplayerxp/nls/mpxp_help-zh.h mplayerxp/xmpcore/xmp_vplayer.cpp Modified: mplayerxp/libmpstream2/http.cpp =================================================================== --- mplayerxp/libmpstream2/http.cpp 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/libmpstream2/http.cpp 2012-12-20 13:29:57 UTC (rev 582) @@ -306,7 +306,7 @@ const char *aut; if( *auth_retry==1 ) { - MSG_ERR(MSGTR_ConnAuthFailed); + mpxp_err<<MSGTR_ConnAuthFailed<<std::endl; return -1; } if( *auth_retry>0 ) url.clear_login(); @@ -321,7 +321,7 @@ MSG_INFO("Authentication required\n"); } if( !net_conf.username ) { - MSG_ERR(MSGTR_ConnAuthFailed); + mpxp_err<<MSGTR_ConnAuthFailed<<std::endl; return -1; } if( !net_conf.password ) MSG_INFO("No password provided, trying blank password\n"); Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/mplayerxp.cpp 2012-12-20 13:29:57 UTC (rev 582) @@ -594,7 +594,7 @@ void show_help(void) { // no file/vcd/dvd -> show HELP: - mpxp_info<<help_text<<std::endl; + for(unsigned j=0;help_text[j];j++) mpxp_info<<help_text[j]<<std::endl; Stream::print_drivers(); mpxp_info<<std::endl; mpxp_info<<"Example: mplayerxp -ao alsa:hw:0 -vo x11 your.avi"<<std::endl; @@ -1680,7 +1680,7 @@ xmp_register_main(exit_sighandler); mpxp_print_init(mp_conf.verbose+MSGL_STATUS); - mpxp_info<<banner_text<<std::endl; + for(unsigned j=0;banner_text[j];j++) mpxp_info<<banner_text[j]<<std::endl; /* currently it's lowest point of MPXPSystem initialization */ mpxp_context().engine().MPXPSys = new(zeromem) MPXPSystem; Modified: mplayerxp/nls/mpxp_help-bg.h =================================================================== --- mplayerxp/nls/mpxp_help-bg.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-bg.h 2012-12-20 13:29:57 UTC (rev 582) @@ -3,35 +3,39 @@ // UTF-8 #ifdef HELP_MPXP_DEFINE_STATIC #ifndef MSGTR_BANNER_TEXT -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"Употреба: mplayerxp [опции] [url|път/]име_на_файл\n" -"\n" -"Основни опции: (пълният списък е в ръководството - 'man mplayerxp')\n" -" -vo <дрв[:устр]> избор на видео драйвер & устройство ('-vo help' дава списък)\n" -" -ao <дрв[:устр]> избор на звуков драйвер & устройство ('-ao help' дава списък)\n" -" -play.ss <позиция>превъртане до дадена (в секунди или чч:мм:сс) позиция\n" -" -audio.off изключване на звука\n" -" -video.fs пълноекранно възпроизвеждане (или -video.vm, -video.zoom, вж. manpage)\n" -" -sub.file <файл> задава файла със субтитри\n" -" -play.list <файл> отваря playlist файл\n" -" -sync.framedrop разрешава прескачането на кадри (при бавни машини)\n" -"\n" -"Основни клавиши: (пълен списък има в ръководството, проверете също input.conf)\n" -" <- или -> превърта назад/напред с 10 секунди\n" -" up или down превърта назад/напред с 1 минута\n" -" pgup или pgdown превърта назад/напред с 10 минути\n" -" < или > стъпка назад/напред в playlist списъка\n" -" p или SPACE пауза (натиснете произволен клавиш за продължение)\n" -" q или ESC спиране на възпроизвеждането и изход от програмата\n" -" o превключва OSD режима: без/лента за превъртане/лента и таймер\n" -" * или / увеличава или намалява силата на звука (PCM)\n" -"\n" -" * * * ЗА ПОДРОБНОСТИ, ДОПЪЛНИТЕЛНИ ОПЦИИ И КЛАВИШИ, ВИЖТЕ РЪКОВОДСТВОТО! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Употреба: mplayerxp [опции] [url|път/]име_на_файл", +"", +"Основни опции: (пълният списък е в ръководството - 'man mplayerxp')", +" -vo <дрв[:устр]> избор на видео драйвер & устройство ('-vo help' дава списък)", +" -ao <дрв[:устр]> избор на звуков драйвер & устройство ('-ao help' дава списък)", +" -play.ss <позиция>превъртане до дадена (в секунди или чч:мм:сс) позиция", +" -audio.off изключване на звука", +" -video.fs пълноекранно възпроизвеждане (или -video.vm, -video.zoom, вж. manpage)", +" -sub.file <файл> задава файла със субтитри", +" -play.list <файл> отваря playlist файл", +" -sync.framedrop разрешава прескачането на кадри (при бавни машини)", +"", +"Основни клавиши: (пълен списък има в ръководството, проверете също input.conf)", +" <- или -> превърта назад/напред с 10 секунди", +" up или down превърта назад/напред с 1 минута", +" pgup или pgdown превърта назад/напред с 10 минути", +" < или > стъпка назад/напред в playlist списъка", +" p или SPACE пауза (натиснете произволен клавиш за продължение)", +" q или ESC спиране на възпроизвеждането и изход от програмата", +" o превключва OSD режима: без/лента за превъртане/лента и таймер", +" * или / увеличава или намалява силата на звука (PCM)", +"", +" * * * ЗА ПОДРОБНОСТИ, ДОПЪЛНИТЕЛНИ ОПЦИИ И КЛАВИШИ, ВИЖТЕ РЪКОВОДСТВОТО! * * *", +NULL +}; #endif #endif Modified: mplayerxp/nls/mpxp_help-cz.h =================================================================== --- mplayerxp/nls/mpxp_help-cz.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-cz.h 2012-12-20 13:29:57 UTC (rev 582) @@ -5,37 +5,40 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (viz DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"\n", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (viz DOCS!)", +NULL +}; // Překlad do češtiny Jiří Svoboda -static char help_text[]= -"Použití: mplayerxp [přepínače] [cesta/]jmenosouboru\n" -"\n" -"Přepínače:\n" -" -vo <drv[:dev]> výběr výstupního video ovladače&zařízení (-vo help pro seznam)\n" -" -ao <drv[:dev]> výběr výstupního audio ovladače&zařízení (-ao help pro seznam)\n" -" -play.ss <timepos> posun na pozici (sekundy nebo hh:mm:ss)\n" -" -audio.off přehrávat beze zvuku\n" -" -video.fs volby pro přehrávání přes celou obrazovku (celá obrazovka\n měnit videorežim, softwarový zoom)\n" -" -sub.file <file> volba souboru s titulky\n" -" -play.list <file>určení souboru se seznamem přehrávaných souborů\n" -" -sync.framedrop povolit zahazování snímků (pro pomale stroje)\n" -"\n" -"Klávesy:\n" -" <- nebo -> posun vzad/vpřed o 10 sekund\n" -" nahoru či dolů posun vzad/vpřed o 1 minutu\n" -" < nebo > posun vzad/vpřed v seznamu přehrávaných souborů\n" -" p nebo mezerník pauza při přehrávání (pokračování stiskem kterékoliv klávesy)\n" -" q nebo ESC konec přehrávání a ukončení programu\n" -" o cyklická změna režimu OSD: nic / pozice / pozice+čas\n" -" * nebo / přidat nebo ubrat hlasitost (stiskem 'm' výběr master/pcm)\n" -"\n" -" * * * * PŘEČTĚTE SI MAN STRÁNKU PRO DETAILY (DALŠÍ VOLBY A KLÁVESY)! * * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Použití: mplayerxp [přepínače] [cesta/]jmenosouboru", +"", +"Přepínače:", +" -vo <drv[:dev]> výběr výstupního video ovladače&zařízení (-vo help pro seznam)", +" -ao <drv[:dev]> výběr výstupního audio ovladače&zařízení (-ao help pro seznam)", +" -play.ss <timepos> posun na pozici (sekundy nebo hh:mm:ss)", +" -audio.off přehrávat beze zvuku", +" -video.fs volby pro přehrávání přes celou obrazovku (celá obrazovka\n měnit videorežim, softwarový zoom)", +" -sub.file <file> volba souboru s titulky", +" -play.list <file>určení souboru se seznamem přehrávaných souborů", +" -sync.framedrop povolit zahazování snímků (pro pomale stroje)", +"", +"Klávesy:", +" <- nebo -> posun vzad/vpřed o 10 sekund", +" nahoru či dolů posun vzad/vpřed o 1 minutu", +" < nebo > posun vzad/vpřed v seznamu přehrávaných souborů", +" p nebo mezerník pauza při přehrávání (pokračování stiskem kterékoliv klávesy)", +" q nebo ESC konec přehrávání a ukončení programu", +" o cyklická změna režimu OSD: nic / pozice / pozice+čas", +" * nebo / přidat nebo ubrat hlasitost (stiskem 'm' výběr master/pcm)", +"", +" * * * * PŘEČTĚTE SI MAN STRÁNKU PRO DETAILY (DALŠÍ VOLBY A KLÁVESY)! * * * *", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-de.h =================================================================== --- mplayerxp/nls/mpxp_help-de.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-de.h 2012-12-20 13:29:57 UTC (rev 582) @@ -5,33 +5,37 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (siehe DOCS!)\n" -"\n"; +static const char* banner_text={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (siehe DOCS!)", +NULL +}; -static char help_text[]= -"Verwendung: mplayerxp [optionen] [verzeichnis/]dateiname\n" -"\n" -"Optionen:\n" -" -vo <drv[:dev]> Videoausgabetreiber & -Gerät (siehe '-vo help' für eine Liste)\n" -" -ao <drv[:dev]> Audioausgabetreiber & -Gerät (siehe '-ao help' für eine Liste)\n" -" -play.ss <timepos> Starte abspielen ab Position (Sekunden oder hh:mm:ss)\n" -" -audio.off Spiele keinen Sound\n" -" -video.fs Vollbild Optionen (Vollbild, Videomode, Softwareskalierung)\n" -" -sub.file <file>Benutze Untertitledatei\n" -" -sync.framedrop Benutze frame-dropping (für langsame Rechner)\n" -"\n" -"Tasten:\n" -" <- oder -> Springe zehn Sekunden vor/zurück\n" -" rauf / runter Springe eine Minute vor/zurück\n" -" p oder LEER PAUSE (beliebige Taste zum Fortsetzen)\n" -" q oder ESC Abspielen stoppen und Programm beenden\n" -" o OSD Mode: Aus / Suchleiste / Suchleiste + Zeit\n" -" * oder / Lautstärke verstellen ('m' für Auswahl Master/Wave)\n" -"\n" -" * * * IN DER MANPAGE STEHEN WEITERE KEYS UND OPTIONEN ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Verwendung: mplayerxp [optionen] [verzeichnis/]dateiname", +"", +"Optionen:", +" -vo <drv[:dev]> Videoausgabetreiber & -Gerät (siehe '-vo help' für eine Liste)", +" -ao <drv[:dev]> Audioausgabetreiber & -Gerät (siehe '-ao help' für eine Liste)", +" -play.ss <timepos> Starte abspielen ab Position (Sekunden oder hh:mm:ss)", +" -audio.off Spiele keinen Sound", +" -video.fs Vollbild Optionen (Vollbild, Videomode, Softwareskalierung)", +" -sub.file <file>Benutze Untertitledatei", +" -sync.framedrop Benutze frame-dropping (für langsame Rechner)", +"", +"Tasten:", +" <- oder -> Springe zehn Sekunden vor/zurück", +" rauf / runter Springe eine Minute vor/zurück", +" p oder LEER PAUSE (beliebige Taste zum Fortsetzen)", +" q oder ESC Abspielen stoppen und Programm beenden", +" o OSD Mode: Aus / Suchleiste / Suchleiste + Zeit", +" * oder / Lautstärke verstellen ('m' für Auswahl Master/Wave)", +"", +" * * * IN DER MANPAGE STEHEN WEITERE KEYS UND OPTIONEN ! * * *", +NULL +}; #endif // ========================= MPlayer Ausgaben =========================== Modified: mplayerxp/nls/mpxp_help-dk.h =================================================================== --- mplayerxp/nls/mpxp_help-dk.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-dk.h 2012-12-20 13:29:57 UTC (rev 582) @@ -4,35 +4,39 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (se DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (se DOCS!)", +NULL +}; -static char help_text[]= -"Brug: mplayerxp [muligheder] [sti/]filnavn\n" -"\n" -"Muligheder:\n" -" -vo <drv[:dev]> vælger video driver og enhed (se '-vo help for en komplet liste')\n" -" -ao <drv[:dev]> vælger lyd driver og enhed (se '-ao help for en komplet liste')\n" -" -play.ss <timepos> søger til en given (sekunder eller hh:mm:ss) position\n" -" -audio.off afspiller uden lyd\n" -" -video.fs type af afspilning i fuldskærm (fuldskærm, video mode, software skalering)\n" -" -sub.file <file>specificer undertekst-fil\n" -" -play.list<file>specificer afspilningsliste-fil\n" -" -sync.framedrop slår billede-skip til (kan hjælpe langsomme maskiner)\n" -"\n" -"Keys:\n" -" <- or -> søger 10 sekunder frem eller tilbage\n" -" up or down søger 1 minut frem eller tilbage \n" -" < or > søger frem og tilbage i en afspilningsliste\n" -" p or SPACE pause filmen (starter igen ved en vilkårlig tast)\n" -" q or ESC stop afspilning og afslut program\n" -" o vælger OSD typer: ingen / søgebar / søgebar+tid\n" -" * or / forøjer eller formindsker volumen (tryk 'm' for at vælge master/pcm)\n" -"\n" -" * * * SE MANPAGE FOR FLERE DETALJER, YDERLIGERE (AVANCEREDE) MULIGHEDER OG TASTER ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Brug: mplayerxp [muligheder] [sti/]filnavn", +"", +"Muligheder:", +" -vo <drv[:dev]> vælger video driver og enhed (se '-vo help for en komplet liste')", +" -ao <drv[:dev]> vælger lyd driver og enhed (se '-ao help for en komplet liste')", +" -play.ss <timepos> søger til en given (sekunder eller hh:mm:ss) position", +" -audio.off afspiller uden lyd", +" -video.fs type af afspilning i fuldskærm (fuldskærm, video mode, software skalering)", +" -sub.file <file>specificer undertekst-fil", +" -play.list<file>specificer afspilningsliste-fil", +" -sync.framedrop slår billede-skip til (kan hjælpe langsomme maskiner)", +"", +"Keys:", +" <- or -> søger 10 sekunder frem eller tilbage", +" up or down søger 1 minut frem eller tilbage ", +" < or > søger frem og tilbage i en afspilningsliste", +" p or SPACE pause filmen (starter igen ved en vilkårlig tast)", +" q or ESC stop afspilning og afslut program", +" o vælger OSD typer: ingen / søgebar / søgebar+tid", +" * or / forøjer eller formindsker volumen (tryk 'm' for at vælge master/pcm)", +"", +" * * * SE MANPAGE FOR FLERE DETALJER, YDERLIGERE (AVANCEREDE) MULIGHEDER OG TASTER ! * * *", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-el.h =================================================================== --- mplayerxp/nls/mpxp_help-el.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-el.h 2012-12-20 13:29:57 UTC (rev 582) @@ -3,35 +3,38 @@ // UTF-8 #ifdef HELP_MPXP_DEFINE_STATIC #ifndef MSGTR_BANNER_TEXT -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"\n", +"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"Usage: mplayerxp [επιλογές] [url|διαδρομή/]όνομα_αρχείου\n" -"\n" -"Βασικές επιλογές: (Ανατρέξτε στη σελίδα εγχειριδίου για ολοκληρωμένη λίστα με επιλογές)\n" -" -vo <drv[:dev]> επιλέξτε τον οδηγό εξόδου βίντεο και τη συσκευή (βλέπε '-vo help' για τη λίστα)\n" -" -ao <drv[:dev]> επιλέξτε τον οδηγό εξόδου ήχου και τη συσκευή (βλέπε '-ao help' για τη λίστα)\n" -" -play.ss <timepos> αναζήτηση σε δεδομένη θέση (δευτερόλεπτα ή ωω:λλ:δδ)\n" -" -audio.off μη αναπαραγωγή του ήχου\n" -" -video.fs επιλογές για αναπαραγωγή σε πλήρη οθόνη (ή -video.vm -video.zoom, δείτε man page για περισσότερες πληροφορίες)\n" -" -sub.file <αρχείο> επιλογή του αρχείου \n" -" -play.list <αρχείο> ορίζει το αρχείο της λίστας αναπαραγωγής\n" -" -sync.framedrop ενεργοποίηση του frame-dropping (για αργά μηχανήματα)\n" -"\n" -"Βασικά πλήκτρα: (Ανατρέξτε στη σελίδα εγχειριδίου για ολοκληρωμένη λίστα , καθώς επίσης και στο αρχείο input.conf)\n" -" <- ή -> αναζήτηση μπρος/πίσω κατά 10 δευτερόλεπτα\n" -" up ή down αναζήτηση μπρος/πίσω κατά 1 λεπτό\n" -" pgup ή pgdown αναζήτηση μπρος/πίσω κατά 10 λεπτά\n" -" < ή > αναζήτηση μπρος/πίσω στην λίστα αναπαραγωγής\n" -" p ή SPACE παύση ταινίας (πατήστε οποιοδήποτε πλήκτρο για να συνεχίσετε)\n" -" q ή ESC στοπ την αναπαραγωγή και έξοδος προγράμματος\n" -" o αλλαγή της OSD μεθόδου: τίποτα / μπάρα προόδου / μπάρα προόδου+χρόνος\n" -" * ή / αύξηση ή μείωση της έντασης του ήχου (πατήστε 'm' για επιλογή master/pcm)\n" -"\n" -" Ανατρέξτε στη σελίδα εγχειριδίου για περισσότερες λεπτομέρειες, πιο προχωρημένες επιλογές και λίστα με πλήκτρα \n" -"\n"; +static const char* help_text[]={ +"", +"Usage: mplayerxp [επιλογές] [url|διαδρομή/]όνομα_αρχείου", +"", +"Βασικές επιλογές: (Ανατρέξτε στη σελίδα εγχειριδίου για ολοκληρωμένη λίστα με επιλογές)", +" -vo <drv[:dev]> επιλέξτε τον οδηγό εξόδου βίντεο και τη συσκευή (βλέπε '-vo help' για τη λίστα)", +" -ao <drv[:dev]> επιλέξτε τον οδηγό εξόδου ήχου και τη συσκευή (βλέπε '-ao help' για τη λίστα)", +" -play.ss <timepos> αναζήτηση σε δεδομένη θέση (δευτερόλεπτα ή ωω:λλ:δδ)", +" -audio.off μη αναπαραγωγή του ήχου", +" -video.fs επιλογές για αναπαραγωγή σε πλήρη οθόνη (ή -video.vm -video.zoom, δείτε man page για περισσότερες πληροφορίες)", +" -sub.file <αρχείο> επιλογή του αρχείου ", +" -play.list <αρχείο> ορίζει το αρχείο της λίστας αναπαραγωγής", +" -sync.framedrop ενεργοποίηση του frame-dropping (για αργά μηχανήματα)", +"", +"Βασικά πλήκτρα: (Ανατρέξτε στη σελίδα εγχειριδίου για ολοκληρωμένη λίστα , καθώς επίσης και στο αρχείο input.conf)", +" <- ή -> αναζήτηση μπρος/πίσω κατά 10 δευτερόλεπτα", +" up ή down αναζήτηση μπρος/πίσω κατά 1 λεπτό", +" pgup ή pgdown αναζήτηση μπρος/πίσω κατά 10 λεπτά", +" < ή > αναζήτηση μπρος/πίσω στην λίστα αναπαραγωγής", +" p ή SPACE παύση ταινίας (πατήστε οποιοδήποτε πλήκτρο για να συνεχίσετε)", +" q ή ESC στοπ την αναπαραγωγή και έξοδος προγράμματος", +" o αλλαγή της OSD μεθόδου: τίποτα / μπάρα προόδου / μπάρα προόδου+χρόνος", +" * ή / αύξηση ή μείωση της έντασης του ήχου (πατήστε 'm' για επιλογή master/pcm)", +"", +" Ανατρέξτε στη σελίδα εγχειριδίου για περισσότερες λεπτομέρειες, πιο προχωρημένες επιλογές και λίστα με πλήκτρα ", +NULL +}; #endif #endif Modified: mplayerxp/nls/mpxp_help-en.h =================================================================== --- mplayerxp/nls/mpxp_help-en.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-en.h 2012-12-20 13:29:57 UTC (rev 582) @@ -9,62 +9,69 @@ #ifdef HELP_MPXP_DEFINE_STATIC #ifndef MSGTR_BANNER_TEXT -static const char* banner_text= -"\n\n" -"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static const char help_text[]= -"Usage: mplayerxp [options] [path/]filename\n" -"\n" -"Options:\n" -" -vo <drv[:dev]> select video output driver & device (see '-vo help' for list)\n" -" -ao <drv[:dev]> select audio output driver & device (see '-ao help' for list)\n" -" -play.ss <timepos> seek to given (seconds or hh:mm:ss) position\n" -" -audio.off don't play sound\n" -" -video.fs fullscreen playing options (fullscr,vidmode chg,softw.scale)\n" -" -sub.file <file> specify subtitle file to use\n" -" -play.list<file> specify playlist file\n" -" -sync.framedrop enable frame-dropping (for slow machines)\n" -"\n" -"Keys:\n" -" <- or -> seek backward/forward 10 seconds\n" -" up or down seek backward/forward 1 minute\n" -" < or > seek backward/forward in playlist\n" -" p or SPACE pause movie (press any key to continue)\n" -" q or ESC stop playing and quit program\n" -" o cycle OSD mode: none / seekbar / seekbar+timer\n" -" * or / increase or decrease volume (press 'm' to select master/pcm)\n" -"\n" -" * * * SEE MANPAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Usage: mplayerxp [options] [path/]filename", +"", +"Options:", +" -vo <drv[:dev]> select video output driver & device (see '-vo help' for list)", +" -ao <drv[:dev]> select audio output driver & device (see '-ao help' for list)", +" -play.ss <timepos> seek to given (seconds or hh:mm:ss) position", +" -audio.off don't play sound", +" -video.fs fullscreen playing options (fullscr,vidmode chg,softw.scale)," +" -sub.file <file> specify subtitle file to use", +" -play.list<file> specify playlist file", +" -sync.framedrop enable frame-dropping (for slow machines)", +"", +"Keys:", +" <- or -> seek backward/forward 10 seconds", +" up or down seek backward/forward 1 minute", +" < or > seek backward/forward in playlist", +" p or SPACE pause movie (press any key to continue)", +" q or ESC stop playing and quit program", +" o cycle OSD mode: none / seekbar / seekbar+timer", +" * or / increase or decrease volume (press 'm' to select master/pcm)", +"", +" * * * SEE MANPAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS ! * * *", +NULL +}; #endif -#endif // ========================= MPlayer messages =========================== // mplayer.c: -#ifndef MSGTR_SystemTooSlow -#define MSGTR_SystemTooSlow "\n\n"\ -" ************************************************\n"\ -" **** Your system is too SLOW to play this! ****\n"\ -" ************************************************\n"\ -"!!! Possible reasons, problems, workaround:\n"\ -"- Most common: broken/buggy AUDIO driver. Workaround: -ao sdl or -ao alsa\n"\ -"- Slow VIDEO card. Try different -vo driver (for list: -vo help)\n"\ -" -vo (*)vidix is recommended (if available) or try with -framedrop !\n"\ -"- Slow cpu. Don't try to playback big dvd/divx on slow cpu! try -hardframedrop\n"\ -"- Broken file. Try various combinations of these: -nobps -ni -mc 0 -forceidx\n"\ -"*******************************************************************************\n"\ -" Also try study these keys:\n"\ -" -video.bm (currently may work with some vidix drivers only) [speedup upto 30%]\n"\ -" '/bin/sh hdparm -u1 -d1 -a8 /dev/hdX' [25%]\n"\ -" Try disable OSD by pressing 'O' key twice [5-15%]\n"\ -"Also try to decrease the number of buffers for decoding ahead: '-core.da_buffs'\n"\ -"*******************************************************************************\n"\ -"On SMP -lavc.slices=0 may help too\n" +#ifndef MSGTR_SystemTooSlow_Text +static const char* MSGTR_SystemTooSlow[] = { +"", +" ************************************************", +" **** Your system is too SLOW to play this! ****", +" ************************************************", +"!!! Possible reasons, problems, workaround:", +"- Most common: broken/buggy AUDIO driver. Workaround: -ao sdl or -ao alsa", +"- Slow VIDEO card. Try different -vo driver (for list: -vo help)", +" -vo (*)vidix is recommended (if available) or try with -framedrop !", +"- Slow cpu. Don't try to playback big dvd/divx on slow cpu! try -hardframedrop", +"- Broken file. Try various combinations of these: -nobps -ni -mc 0 -forceidx", +"*******************************************************************************", +" Also try study these keys:", +" -video.bm (currently may work with some vidix drivers only) [speedup upto 30%]", +" '/bin/sh hdparm -u1 -d1 -a8 /dev/hdX' [25%]", +" Try disable OSD by pressing 'O' key twice [5-15%]", +"Also try to decrease the number of buffers for decoding ahead: '-core.da_buffs'", +"*******************************************************************************", +"On SMP -lavc.slices=0 may help too", +NULL +}; #endif +#endif #ifndef MSGTR_Exiting #define MSGTR_Exiting "Exiting" @@ -248,9 +255,7 @@ #define MSGTR_ConnError "Connect error: %s\n" #endif #ifndef MSGTR_ConnAuthFailed -#define MSGTR_ConnAuthFailed "Authentication failed\n"\ - "Please use the option -user and -passwd to provide your username/password for a list of URLs,\n"\ - "or form an URL like: http://username:password@hostname/file\n" +#define MSGTR_ConnAuthFailed "Authentication failed. Please use the option -user and -passwd or form an URL like: http://username:password@hostname/file" #endif #ifndef MSGTR_FileNotFound #define MSGTR_FileNotFound "File not found: '%s'\n" Modified: mplayerxp/nls/mpxp_help-es.h =================================================================== --- mplayerxp/nls/mpxp_help-es.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-es.h 2012-12-20 13:29:57 UTC (rev 582) @@ -5,35 +5,39 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (vea DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (vea DOCS!)", +NULL +}; -static char help_text[]= -"Uso: mplayerxp [opciones] [ruta/]archivo\n" -"\n" -"Opciones:\n" -" -vo <drv[:dev]> selecciona el driver de salida de video y el dispositivo ('-vo help' para obtener una lista)\n" -" -ao <drv[:dev]> selecciona el driver de salida de audio y el dispositivo ('-ao help' para obtener una lista)\n" -" -play.ss <timepos>busca una determindad posicion (en segundos o hh:mm:ss)\n" -" -audio.off no reproduce el sonido\n" -" -video.fs opciones de pantalla completa (pantalla completa,cambio de modo de video,escalado por software)\n" -" -sub.file <file> especifica el archivo de subtitulos a usar\n" -" -play.list<file> especifica el archivo con la lista de reproducción\n" -" -sync.framedrop activa frame-dropping (para máquinas lentas)\n" -"\n" -"Teclas:\n" -" <- o -> avanza/retrocede 10 segundos\n" -" arriba o abajo avanza/retrocede 1 minuto\n" -" < o > avanza/retrocede en la lista de reproducción\n" -" p o ESPACIO pausa el video (presione cualquier tecla para continuar)\n" -" q o ESC detiene la reproducción y sale del programa\n" -" o cambia el modo OSD: nada / búsqueda / búsqueda+tiempo\n" -" * o / aumenta o disminuye el volumen (presione 'm' para elegir entre master/pcm)\n" -"\n" -" * * * VEA LA PÁGINA DE MANUAL PARA MÁS DETALLES, OPCIONES AVANZADAS Y TECLAS ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Uso: mplayerxp [opciones] [ruta/]archivo", +"", +"Opciones:", +" -vo <drv[:dev]> selecciona el driver de salida de video y el dispositivo ('-vo help' para obtener una lista)", +" -ao <drv[:dev]> selecciona el driver de salida de audio y el dispositivo ('-ao help' para obtener una lista)", +" -play.ss <timepos>busca una determindad posicion (en segundos o hh:mm:ss)", +" -audio.off no reproduce el sonido", +" -video.fs opciones de pantalla completa (pantalla completa,cambio de modo de video,escalado por software)", +" -sub.file <file> especifica el archivo de subtitulos a usar", +" -play.list<file> especifica el archivo con la lista de reproducción", +" -sync.framedrop activa frame-dropping (para máquinas lentas)", +"", +"Teclas:", +" <- o -> avanza/retrocede 10 segundos", +" arriba o abajo avanza/retrocede 1 minuto", +" < o > avanza/retrocede en la lista de reproducción", +" p o ESPACIO pausa el video (presione cualquier tecla para continuar)", +" q o ESC detiene la reproducción y sale del programa", +" o cambia el modo OSD: nada / búsqueda / búsqueda+tiempo", +" * o / aumenta o disminuye el volumen (presione 'm' para elegir entre master/pcm)", +"", +" * * * VEA LA PÁGINA DE MANUAL PARA MÁS DETALLES, OPCIONES AVANZADAS Y TECLAS ! * * *", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-fr.h =================================================================== --- mplayerxp/nls/mpxp_help-fr.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-fr.h 2012-12-20 13:29:57 UTC (rev 582) @@ -5,38 +5,42 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"Utilisation: mplayerxp [options] [répertoire/]fichier\n" -"\n" -"Options:\n" -" -vo <pil[:pér]> Sélectionne le pilote et le périphérique de sortie vidéo\n" -" ('-vo help' pour la liste)\n" -" -ao <pil[:pér]> Sélectionne le pilote et le périphérique de sortie audio\n" -" ('-ao help' pour la liste)\n" -" -play.ss <postemp> Démarre la lecture à partir de la pos. (secondes ou hh:mm:ss)\n" -" -audio.off Ne jouer aucun son\n" -" -video.fs Options plein-écran (fs: plein-écran, vm: changement de mode\n" -" vidéo, zoom: changement de taille (logiciel)\n" -" -sub.file <fichier>Utilise les sous-titres dans 'fichier'\n" -" -play.list<fich.>Spécifie la liste des fichiers à jouer\n" -" -sync.framedrop Active le drop d'images (pour ordinateurs lents)\n" -"\n" -"Touches:\n" -" <- ou -> Saute en avant/arrière de 10 secondes\n" -" haut ou bas Saute en avant/arrière de 1 minute\n" -" < ou > Saute en avant/arrière dans la playlist\n" -" p ou ESPACE Pause (presser n'importe quelle touche pour continuer)\n" -" q ou ESC Arrête la lecture et quitter le programme\n" -" o Mode OSD: aucun / cherchable / cherchable+temps\n" -" * ou / Augmente/diminue volume ('m' pour sélectionner maître/pcm)\n" -"\n" -" * * * IL Y A D'AUTRES TOUCHES ET OPTIONS DANS LA PAGE MAN ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Utilisation: mplayerxp [options] [répertoire/]fichier", +"", +"Options:", +" -vo <pil[:pér]> Sélectionne le pilote et le périphérique de sortie vidéo", +" ('-vo help' pour la liste)", +" -ao <pil[:pér]> Sélectionne le pilote et le périphérique de sortie audio", +" ('-ao help' pour la liste)", +" -play.ss <postemp> Démarre la lecture à partir de la pos. (secondes ou hh:mm:ss)", +" -audio.off Ne jouer aucun son", +" -video.fs Options plein-écran (fs: plein-écran, vm: changement de mode", +" vidéo, zoom: changement de taille (logiciel)", +" -sub.file <fichier>Utilise les sous-titres dans 'fichier'", +" -play.list<fich.>Spécifie la liste des fichiers à jouer", +" -sync.framedrop Active le drop d'images (pour ordinateurs lents)", +"", +"Touches:", +" <- ou -> Saute en avant/arrière de 10 secondes", +" haut ou bas Saute en avant/arrière de 1 minute", +" < ou > Saute en avant/arrière dans la playlist", +" p ou ESPACE Pause (presser n'importe quelle touche pour continuer)", +" q ou ESC Arrête la lecture et quitter le programme", +" o Mode OSD: aucun / cherchable / cherchable+temps", +" * ou / Augmente/diminue volume ('m' pour sélectionner maître/pcm)", +"", +" * * * IL Y A D'AUTRES TOUCHES ET OPTIONS DANS LA PAGE MAN ! * * *", +NULL +}; #endif // ========================= Messages MPlayer =========================== Modified: mplayerxp/nls/mpxp_help-hu.h =================================================================== --- mplayerxp/nls/mpxp_help-hu.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-hu.h 2012-12-20 13:29:57 UTC (rev 582) @@ -4,34 +4,38 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (lásd DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (lásd DOCS!)", +NULL +}; -static char help_text[]= -"Indítás: mplayerxp [opciók] [útvonal/]filenév\n" -"\n" -"Opciók:\n" -" -vo <drv[:dev]> videomeghajtó és -alegység kiválasztása (lista: '-vo help')\n" -" -ao <drv[:dev]> audiomeghajtó és -alegység kiválasztása (lista: '-ao help')\n" -" -play.ss <időpoz>a megadott (másodperc v. óra:perc:mperc) pozícióra tekerés\n" -" -audio.off hanglejátszás kikapcsolása\n" -" -video.fs teljesképernyős lejátszás opciói (teljkép,módvált,szoft.nagy)\n" -" -sub.file <file>felhasználandó felirat-file megadása\n" -" -sync.framedrop képkockák eldobásának engedélyezése (lassú gépekhez)\n" -"\n" -"Billentyűk:\n" -" <- vagy -> 10 másodperces hátra/előre ugrás\n" -" fel vagy le 1 percnyi hátra/előre ugrás\n" -" pgup v. pgdown 10 percnyi hátra/előre ugrás\n" -" p vagy SPACE pillanatállj (bármely billentyűre továbbmegy)\n" -" q vagy ESC kilépés\n" -" o OSD-mód váltása: nincs / keresősáv / keresősáv+idő\n" -" * vagy / hangerő fel/le ('m' billentyű master/pcm között vált)\n" -"\n" -" * * * A MANPAGE TOVÁBBI RÉSZLETEKET, OPCIÓKAT, BILLENTYŰKET TARTALMAZ ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Indítás: mplayerxp [opciók] [útvonal/]filenév", +"", +"Opciók:", +" -vo <drv[:dev]> videomeghajtó és -alegység kiválasztása (lista: '-vo help')", +" -ao <drv[:dev]> audiomeghajtó és -alegység kiválasztása (lista: '-ao help')", +" -play.ss <időpoz>a megadott (másodperc v. óra:perc:mperc) pozícióra tekerés", +" -audio.off hanglejátszás kikapcsolása", +" -video.fs teljesképernyős lejátszás opciói (teljkép,módvált,szoft.nagy)", +" -sub.file <file>felhasználandó felirat-file megadása", +" -sync.framedrop képkockák eldobásának engedélyezése (lassú gépekhez)", +"", +"Billentyűk:", +" <- vagy -> 10 másodperces hátra/előre ugrás", +" fel vagy le 1 percnyi hátra/előre ugrás", +" pgup v. pgdown 10 percnyi hátra/előre ugrás", +" p vagy SPACE pillanatállj (bármely billentyűre továbbmegy)", +" q vagy ESC kilépés", +" o OSD-mód váltása: nincs / keresősáv / keresősáv+idő", +" * vagy / hangerő fel/le ('m' billentyű master/pcm között vált)", +"", +" * * * A MANPAGE TOVÁBBI RÉSZLETEKET, OPCIÓKAT, BILLENTYŰKET TARTALMAZ ! * * *", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-it.h =================================================================== --- mplayerxp/nls/mpxp_help-it.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-it.h 2012-12-20 13:29:57 UTC (rev 582) @@ -7,35 +7,39 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (vedi DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (vedi DOCS!)", +NULL +}; -static char help_text[]= -"Uso: mplayerxp [opzioni] [percorso/]nome_file\n" -"\n" -"Opzioni:\n" -" -vo <drv[:dev]> seleziona il driver ed il dispositivo video di output ('-vo help' per la lista)\n" -" -ao <drv[:dev]> seleziona il driver ed il dispositivo audio di output ('-ao help' per la lista)\n" -" -play.ss <timepos>cerca una determinata posizione (in secondi o in hh:mm:ss) \n" -" -audio.off non riproduce l\'audio\n" -" -video.fs opzioni di riproduzione a schermo intero (schermo int,cambia video,scalatura softw)\n" -" -sub.file <file>specifica il file dei sottotitoli da usare\n" -" -play.list<file> specifica il file della playlist\n" -" -sync.framedrop abilita lo scarto dei fotogrammi (per macchine lente)\n" -"\n" -"Tasti:\n" -" <- o -> va indietro/avanti di 10 secondi\n" -" su o giù va indietro/avanti di 1 minuto\n" -" < o > va indietro/avanti nella playlist\n" -" p o SPAZIO mette in pausa il filmato (premere un qualunque tasto per continuare)\n" -" q o ESC ferma la riproduzione ed esce dal programma\n" -" o cambia tra le modalità OSD: niente / barra di ricerca / barra di ricerca + tempo\n" -" * o / incrementa o decrementa il volume (premere 'm' per selezionare master/pcm)\n" -"\n" -" * * * VEDI LA PAGINA MAN PER DETTAGLI, ULTERIORI OPZIONI AVANZATE E TASTI ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Uso: mplayerxp [opzioni] [percorso/]nome_file", +"", +"Opzioni:", +" -vo <drv[:dev]> seleziona il driver ed il dispositivo video di output ('-vo help' per la lista)", +" -ao <drv[:dev]> seleziona il driver ed il dispositivo audio di output ('-ao help' per la lista)", +" -play.ss <timepos>cerca una determinata posizione (in secondi o in hh:mm:ss) ", +" -audio.off non riproduce l\'audio", +" -video.fs opzioni di riproduzione a schermo intero (schermo int,cambia video,scalatura softw)", +" -sub.file <file>specifica il file dei sottotitoli da usare", +" -play.list<file> specifica il file della playlist", +" -sync.framedrop abilita lo scarto dei fotogrammi (per macchine lente)", +"", +"Tasti:", +" <- o -> va indietro/avanti di 10 secondi", +" su o giù va indietro/avanti di 1 minuto", +" < o > va indietro/avanti nella playlist", +" p o SPAZIO mette in pausa il filmato (premere un qualunque tasto per continuare)", +" q o ESC ferma la riproduzione ed esce dal programma", +" o cambia tra le modalità OSD: niente / barra di ricerca / barra di ricerca + tempo", +" * o / incrementa o decrementa il volume (premere 'm' per selezionare master/pcm)", +"", +" * * * VEDI LA PAGINA MAN PER DETTAGLI, ULTERIORI OPZIONI AVANZATE E TASTI ! * * *", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-ja.h =================================================================== --- mplayerxp/nls/mpxp_help-ja.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-ja.h 2012-12-20 13:29:57 UTC (rev 582) @@ -3,35 +3,39 @@ // UTF-8 #ifdef HELP_MPXP_DEFINE_STATIC #ifndef MSGTR_BANNER_TEXT -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text={ +"", +"", +"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"使い方: mplayerxp [オプション] [url|パス/]ファイル名\n" -"\n" -"基本的なオプション: (man page に全て網羅されています)\n" -" -vo <drv[:dev]> 映像出力ドライバ及びデバイスを選択します ('-vo help'で一覧表示されます)\n" -" -ao <drv[:dev]> 音声出力ドライバ及びデバイスを選択します ('-ao help'で一覧表示されます)\n" -" -play.ss <timepos>timeposに与えられた場所から再生します(seconds or hh:mm:ss)\n" -" -audio.off 音声出力を抑止します\n" -" -video.fs フルスクリーン表示します(もしくは -video.vm, -video.zoom, 詳細はmanにあります)\n" -" -sub.file <file> 利用する subtitle ファイルを選択する\n" -" -play.list<file> playlistファイルを選択する\n" -" -sync.framedrop frame droppingを有効にする (低速なマシン向きです)\n" -"\n" -"基本的なコマンド: (man pageに全て網羅されています。事前にinput.confも確認して下さい)\n" -" <- or -> 10秒単位で前後にシークします\n" -" up or down 1分単位で前後にシークします\n" -" pgup or pgdown 10分単位で前後にシークします\n" -" < or > プレイリストを元に前後のファイルに遷移します\n" -" p or SPACE 再生を静止します(何かボタンを押下すると再生を開始します)\n" -" q or ESC 再生を静止し、プログラムを停止します\n" -" o cycle OSD mode: none / seekbar / seekbar + timer\n" -" * or / PCM 音量を上げたり下げたりする\n" -"\n" -" * * * man pageに詳細がありますので、確認して下さい。さらに高度で進んだオプションやキーも記載してます * * *\n" -"\n"; +static const char* help_text[]={ +"", +"使い方: mplayerxp [オプション] [url|パス/]ファイル名", +"", +"基本的なオプション: (man page に全て網羅されています)", +" -vo <drv[:dev]> 映像出力ドライバ及びデバイスを選択します ('-vo help'で一覧表示されます)", +" -ao <drv[:dev]> 音声出力ドライバ及びデバイスを選択します ('-ao help'で一覧表示されます)", +" -play.ss <timepos>timeposに与えられた場所から再生します(seconds or hh:mm:ss)", +" -audio.off 音声出力を抑止します", +" -video.fs フルスクリーン表示します(もしくは -video.vm, -video.zoom, 詳細はmanにあります)", +" -sub.file <file> 利用する subtitle ファイルを選択する", +" -play.list<file> playlistファイルを選択する", +" -sync.framedrop frame droppingを有効にする (低速なマシン向きです)", +"", +"基本的なコマンド: (man pageに全て網羅されています。事前にinput.confも確認して下さい)", +" <- or -> 10秒単位で前後にシークします", +" up or down 1分単位で前後にシークします", +" pgup or pgdown 10分単位で前後にシークします", +" < or > プレイリストを元に前後のファイルに遷移します", +" p or SPACE 再生を静止します(何かボタンを押下すると再生を開始します)", +" q or ESC 再生を静止し、プログラムを停止します", +" o cycle OSD mode: none / seekbar / seekbar + timer", +" * or / PCM 音量を上げたり下げたりする", +"", +" * * * man pageに詳細がありますので、確認して下さい。さらに高度で進んだオプションやキーも記載してます * * *", +NULL +}; #endif #endif Modified: mplayerxp/nls/mpxp_help-ko.h =================================================================== --- mplayerxp/nls/mpxp_help-ko.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-ko.h 2012-12-20 13:29:57 UTC (rev 582) @@ -7,35 +7,39 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (DOCS 참조!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (DOCS 참조!)", +NULL +}; -static char help_text[]= -"사용법: mplayerxp [선택사항] [경로/]파일명\n" -"\n" -"선택사항들:\n" -" -vo <drv[:dev]> 비디오 출력 드라이버 및 장치 선택 (목록보기는 '-vo help')\n" -" -ao <drv[:dev]> 오디오 출력 드라이버 및 장치 선택 (목록보기는 '-ao help')\n" -" -play.ss <timepos>특정 위치로 찾아가기 (초 또는 시:분:초)\n" -" -audio.off 소리 재생 안함\n" -" -video.fs 화면 크기 지정 (전체화면, 비디오모드, s/w확대)\n" -" -sub.file <file> 사용할 자막파일 지정\n" -" -play.list<file> 재생목록파일 지정\n" -" -sync.framedrop 프레임 빠뜨리기 사용 (느린 machine용)\n" -"\n" -"조정키:\n" -" <- 또는 -> 10초 뒤로/앞으로 이동\n" -" up 또는 dn 1분 뒤로/앞으로 이동\n" -" < 또는 > 재생목록에서 뒤로/앞으로 이동\n" -" p 또는 SPACE 잠시 멈춤 (아무키나 누르면 계속)\n" -" q 또는 ESC 재생을 멈추고 프로그램을 끝냄\n" -" o OSD모드 변경: 없음/탐색줄/탐색줄+타이머\n" -" * 또는 / 볼륨 높임/낮춤 ('m'을 눌러 master/pcm 선택)\n" -"\n" -" * * * 자세한 사항(더 많은 선택사항 및 조정키등)은 MANPAGE를 참조하세요 ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"사용법: mplayerxp [선택사항] [경로/]파일명", +"", +"선택사항들:", +" -vo <drv[:dev]> 비디오 출력 드라이버 및 장치 선택 (목록보기는 '-vo help')", +" -ao <drv[:dev]> 오디오 출력 드라이버 및 장치 선택 (목록보기는 '-ao help')", +" -play.ss <timepos>특정 위치로 찾아가기 (초 또는 시:분:초)", +" -audio.off 소리 재생 안함", +" -video.fs 화면 크기 지정 (전체화면, 비디오모드, s/w확대)", +" -sub.file <file> 사용할 자막파일 지정", +" -play.list<file> 재생목록파일 지정", +" -sync.framedrop 프레임 빠뜨리기 사용 (느린 machine용)", +"", +"조정키:", +" <- 또는 -> 10초 뒤로/앞으로 이동", +" up 또는 dn 1분 뒤로/앞으로 이동", +" < 또는 > 재생목록에서 뒤로/앞으로 이동", +" p 또는 SPACE 잠시 멈춤 (아무키나 누르면 계속)", +" q 또는 ESC 재생을 멈추고 프로그램을 끝냄", +" o OSD모드 변경: 없음/탐색줄/탐색줄+타이머", +" * 또는 / 볼륨 높임/낮춤 ('m'을 눌러 master/pcm 선택)", +"", +" * * * 자세한 사항(더 많은 선택사항 및 조정키등)은 MANPAGE를 참조하세요 ! * * *", +NULL +}; #endif // ========================= MPlayer 메세지 =========================== Modified: mplayerxp/nls/mpxp_help-mk.h =================================================================== --- mplayerxp/nls/mpxp_help-mk.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-mk.h 2012-12-20 13:29:57 UTC (rev 582) @@ -3,35 +3,39 @@ // UTF-8 #ifdef HELP_MPXP_DEFINE_STATIC #ifndef MSGTR_BANNER_TEXT -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"Употреба: mplayerxp [опции] [url|патека/]ИмеНаДатотеката\n" -"\n" -"Основни Опции: (комплетна листа на man страницата)\n" -" -vo <drv[:dev]> избира излезен видео драјвер и уред ('-vo help' за листа)\n" -" -ao <drv[:dev]> избира излезен аудио драјвер и уред ('-ao help' за листа)\n" -" -play.ss <timepos>бара до дадената (секунди или hh:mm:ss) позиција\n" -" -audio.off не го пушта звукот\n" -" -video.fs плејбек на цел екран (или -video.vm, -video.zoom, подетално во man страната)\n" -" -sub.file <file> одредува датотека со превод за употреба\n" -" -play.list <file>одредува датотека со плејлиста\n" -" -sync.framedrop овозможува отфрлање на фрејмови (за слаби машини)\n" -"\n" -"Основни копчиња: (комплетна листа во man страната, проверете го исто така и input.conf)\n" -" <- или -> бара назад/напред за 10 секунди\n" -" up или down бара назад/напред за 1 минута\n" -" pgup или pgdown бара назад/напред за 10 минути\n" -" < или > чекор назад/напред во плејлистата\n" -" p или SPACE го паузира филмот (притиснете на било кое копче да продолжи)\n" -" q или ESC го стопира пуштањето и излегува од програмата\n" -" o цикличен OSD мод: ниеден / барот за барање / барот за барање + тајмер\n" -" * или / зголемување или намалување на PCM тонот\n" -"\n" -" * * * ВИДЕТЕ ЈА MAN СТРАНАТА ЗА ДЕТАЛИ, ПОВЕЌЕ (НАПРЕДНИ) ОПЦИИ И КОПЧИЊА* * *\n" -"\n"; +static const char* help_text[]={ +"", +"Употреба: mplayerxp [опции] [url|патека/]ИмеНаДатотеката", +"", +"Основни Опции: (комплетна листа на man страницата)", +" -vo <drv[:dev]> избира излезен видео драјвер и уред ('-vo help' за листа)", +" -ao <drv[:dev]> избира излезен аудио драјвер и уред ('-ao help' за листа)", +" -play.ss <timepos>бара до дадената (секунди или hh:mm:ss) позиција", +" -audio.off не го пушта звукот", +" -video.fs плејбек на цел екран (или -video.vm, -video.zoom, подетално во man страната)", +" -sub.file <file> одредува датотека со превод за употреба", +" -play.list <file>одредува датотека со плејлиста", +" -sync.framedrop овозможува отфрлање на фрејмови (за слаби машини)", +"", +"Основни копчиња: (комплетна листа во man страната, проверете го исто така и input.conf)", +" <- или -> бара назад/напред за 10 секунди", +" up или down бара назад/напред за 1 минута", +" pgup или pgdown бара назад/напред за 10 минути", +" < или > чекор назад/напред во плејлистата", +" p или SPACE го паузира филмот (притиснете на било кое копче да продолжи)", +" q или ESC го стопира пуштањето и излегува од програмата", +" o цикличен OSD мод: ниеден / барот за барање / барот за барање + тајмер", +" * или / зголемување или намалување на PCM тонот", +"", +" * * * ВИДЕТЕ ЈА MAN СТРАНАТА ЗА ДЕТАЛИ, ПОВЕЌЕ (НАПРЕДНИ) ОПЦИИ И КОПЧИЊА* * *", +NULL +}; #endif #endif Modified: mplayerxp/nls/mpxp_help-nb.h =================================================================== --- mplayerxp/nls/mpxp_help-nb.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-nb.h 2012-12-20 13:29:57 UTC (rev 582) @@ -3,33 +3,37 @@ // UTF-8 #ifdef HELP_MPXP_DEFINE_STATIC #ifndef MSGTR_BANNER_TEXT -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"Bruk: mplayerxp [valg] [sti/]filnavn\n" -"\n" -"Valg:\n" -" -vo <drv[:dev]> velg video-ut driver og enhet (se '-vo help' for liste)\n" -" -ao <drv[:dev]> velg lyd-ut driver og enhet (se '-ao help' for liste)\n" -" -play.ss <timepos>søk til gitt (sekunder eller hh:mm:ss) posisjon\n" -" -audio.off ikke spill av lyd\n" -" -video.fs fullskjerm avspillings valg (fullscr,vidmode chg,softw.scale)\n" -" -sub.file <fil> spesifiser hvilken subtitle fil som skal brukes\n" -" -sync.framedrop slå på bilde-dropping (for trege maskiner)\n" -"\n" -"Tastatur:\n" -" <- eller -> søk bakover/fremover 10 sekunder\n" -" opp eller ned søk bakover/fremover 1 minutt\n" -" < or > søk bakover/fremover i playlisten\n" -" p eller MELLOMROM pause filmen (trykk en tast for å fortsette)\n" -" q eller ESC stopp avspilling og avslutt programmet\n" -" o gå gjennom OSD modi: ingen / søkelinje / søkelinje+tidsvisning\n" -" * eller / øk eller mink volumet (trykk 'm' for å velge master/pcm)\n" -"\n" -" * * * SE PÅ MANSIDE FOR DETALJER, FLERE (AVANSERTE) VALG OG TASTER! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Bruk: mplayerxp [valg] [sti/]filnavn", +"", +"Valg:", +" -vo <drv[:dev]> velg video-ut driver og enhet (se '-vo help' for liste)", +" -ao <drv[:dev]> velg lyd-ut driver og enhet (se '-ao help' for liste)", +" -play.ss <timepos>søk til gitt (sekunder eller hh:mm:ss) posisjon", +" -audio.off ikke spill av lyd", +" -video.fs fullskjerm avspillings valg (fullscr,vidmode chg,softw.scale)", +" -sub.file <fil> spesifiser hvilken subtitle fil som skal brukes", +" -sync.framedrop slå på bilde-dropping (for trege maskiner)", +"", +"Tastatur:", +" <- eller -> søk bakover/fremover 10 sekunder", +" opp eller ned søk bakover/fremover 1 minutt", +" < or > søk bakover/fremover i playlisten", +" p eller MELLOMROM pause filmen (trykk en tast for å fortsette)", +" q eller ESC stopp avspilling og avslutt programmet", +" o gå gjennom OSD modi: ingen / søkelinje / søkelinje+tidsvisning", +" * eller / øk eller mink volumet (trykk 'm' for å velge master/pcm)", +"", +" * * * SE PÅ MANSIDE FOR DETALJER, FLERE (AVANSERTE) VALG OG TASTER! * * *", +NULL +}; #endif #endif Modified: mplayerxp/nls/mpxp_help-nl.h =================================================================== --- mplayerxp/nls/mpxp_help-nl.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-nl.h 2012-12-20 13:29:57 UTC (rev 582) @@ -2,36 +2,40 @@ // UTF-8 #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (zie DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (zie DOCS!)", +NULL +}; -static char help_text[]= -"Gebruik: mplayerxp [opties] [pad/]bestandsnaam\n" -"\n" -"Opties:\n" -" -vo <drv[:dev]> selecteer video uitvoer driver & device (zie '-vo help' voor lijst)\n" -" -ao <drv[:dev]> selecteer audio uitvoer driver & device (zie '-ao help' voor lijst)\n" -" -play.ss <timepos>ga naar opgegeven (seconden of hh:mm:ss) positie\n" -" -audio.off speel het geluid niet af\n" -" -video.fs volledig scherm afspeel opties (fullscr,vidmode chg,softw.scale)\n" -" -sub.file <bestand>specificeer het te gebruiken ondertitel bestand\n" -" -play.list<file> specificeer het te gebruiken playlist bestand\n" -" -sync.framedrop activeer frame-dropping (voor trage machines)\n" -"\n" -"Toetsen:\n" -" <- of -> ga 10 seconden achterwaarts/voorwaarts\n" -" omhoog of omlaag ga 1 minuut achterwaarts/voorwaarts\n" -" PGUP of PGDOWN ga 10 minuten achterwaarts/voorwaarts\n" -" < or > ga naar vorige/volgende item in playlist\n" -" p of SPACE pauzeer film (druk eender welke toets om verder te gaan)\n" -" q of ESC stop afspelen en sluit programma af\n" -" o cycle OSD mode: geen / zoekbalk / zoekbalk+tijd\n" -" * of / verhoog of verlaag volume (druk 'm' om master/pcm te selecteren)\n" -"\n" -" * * * ZIE MANPAGE VOOR DETAILS, OVERIGE (GEAVANCEERDE) OPTIES EN TOETSEN ! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Gebruik: mplayerxp [opties] [pad/]bestandsnaam", +"", +"Opties:", +" -vo <drv[:dev]> selecteer video uitvoer driver & device (zie '-vo help' voor lijst)", +" -ao <drv[:dev]> selecteer audio uitvoer driver & device (zie '-ao help' voor lijst)", +" -play.ss <timepos>ga naar opgegeven (seconden of hh:mm:ss) positie", +" -audio.off speel het geluid niet af", +" -video.fs volledig scherm afspeel opties (fullscr,vidmode chg,softw.scale)", +" -sub.file <bestand>specificeer het te gebruiken ondertitel bestand", +" -play.list<file> specificeer het te gebruiken playlist bestand", +" -sync.framedrop activeer frame-dropping (voor trage machines)", +"", +"Toetsen:", +" <- of -> ga 10 seconden achterwaarts/voorwaarts", +" omhoog of omlaag ga 1 minuut achterwaarts/voorwaarts", +" PGUP of PGDOWN ga 10 minuten achterwaarts/voorwaarts", +" < or > ga naar vorige/volgende item in playlist", +" p of SPACE pauzeer film (druk eender welke toets om verder te gaan)", +" q of ESC stop afspelen en sluit programma af", +" o cycle OSD mode: geen / zoekbalk / zoekbalk+tijd", +" * of / verhoog of verlaag volume (druk 'm' om master/pcm te selecteren)", +"", +" * * * ZIE MANPAGE VOOR DETAILS, OVERIGE (GEAVANCEERDE) OPTIES EN TOETSEN ! * * *", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-no.h =================================================================== --- mplayerxp/nls/mpxp_help-no.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-no.h 2012-12-20 13:29:57 UTC (rev 582) @@ -5,34 +5,38 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (se DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (se DOCS!)", +NULL +}; -static char help_text[]= -"Bruk: mplayerxp [valg] [sti/]filnavn\n" -"\n" -"Valg:\n" -" -vo <drv[:dev]> velg video-ut driver og enhet (se '-vo help' for liste)\n" -" -ao <drv[:dev]> velg lyd-ut driver og enhet (se '-ao help' for liste)\n" -" -play.ss <timepos>søk til gitt (sekunder eller hh:mm:ss) posisjon\n" -" -audio.off ikke spill av lyd\n" -" -video.fs fullskjerm avspillings valg (fullscr,vidmode chg,softw.scale)\n" -" -sub.file <fil> spesifiser hvilken subtitle fil som skal brukes\n" -" -sync.framedrop slå på bilde-dropping (for trege maskiner)\n" -"\n" -"Tastatur:\n" -" <- eller -> søk bakover/fremover 10 sekunder\n" -" opp eller ned søk bakover/fremover 1 minutt\n" -" < or > søk bakover/fremover i playlisten\n" -" p eller MELLOMROM pause filmen (trykk en tast for å fortsette)\n" -" q eller ESC stopp avspilling og avslutt programmet\n" -" o gå gjennom OSD modi: ingen / søkelinje / søkelinje+tidsvisning\n" -" * eller / øk eller mink volumet (trykk 'm' for å velge master/pcm)\n" -"\n" -" * * * SE PÅ MANSIDE FOR DETALJER, FLERE (AVANSERTE) VALG OG TASTER! * * *\n" -"\n"; +static const char* help_text[]={ +"", +"Bruk: mplayerxp [valg] [sti/]filnavn", +"", +"Valg:", +" -vo <drv[:dev]> velg video-ut driver og enhet (se '-vo help' for liste)", +" -ao <drv[:dev]> velg lyd-ut driver og enhet (se '-ao help' for liste)", +" -play.ss <timepos>søk til gitt (sekunder eller hh:mm:ss) posisjon", +" -audio.off ikke spill av lyd", +" -video.fs fullskjerm avspillings valg (fullscr,vidmode chg,softw.scale)", +" -sub.file <fil> spesifiser hvilken subtitle fil som skal brukes", +" -sync.framedrop slå på bilde-dropping (for trege maskiner)", +"", +"Tastatur:", +" <- eller -> søk bakover/fremover 10 sekunder", +" opp eller ned søk bakover/fremover 1 minutt", +" < or > søk bakover/fremover i playlisten", +" p eller MELLOMROM pause filmen (trykk en tast for å fortsette)", +" q eller ESC stopp avspilling og avslutt programmet", +" o gå gjennom OSD modi: ingen / søkelinje / søkelinje+tidsvisning", +" * eller / øk eller mink volumet (trykk 'm' for å velge master/pcm)", +"", +" * * * SE PÅ MANSIDE FOR DETALJER, FLERE (AVANSERTE) VALG OG TASTER! * * *", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-pl.h =================================================================== --- mplayerxp/nls/mpxp_help-pl.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-pl.h 2012-12-20 13:29:57 UTC (rev 582) @@ -4,36 +4,40 @@ #ifdef HELP_MPXP_DEFINE_STATIC #define MSGTR_BANNER_TEXT 1 -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"Użycie: mplayerxp [opcje] [ścieżka/]nazwa\n" -"\n" -"Opcje:\n" -" -vo <drv[:dev]> wybór sterownika[:urządzenia] video (lista po '-vo help')\n" -" -ao <drv[:dev]> wybór sterownika[:urządzenia] audio (lista po '-ao help')\n" -" -play.ss <timepos>skok do podanej pozycji (sekundy albo hh:mm:ss)\n" -" -audio.off odtwarzanie bez dźwięku\n" -" -video.fs opcje pełnoekranowe (pełen ekran,zmiana trybu,skalowanie)\n" -" -sub.file <file>wybór pliku z napisami\n" -" -play.list<file>wybór pliku z playlistą\n" -" -sync.framedrop gubienie klatek (dla wolnych maszyn)\n" -"\n" -"Klawisze:\n" -" Right,Up,PgUp skok naprzód o 10 sekund, 1 minutę, 10 minut\n" -" Left,Down,PgDn skok do tyłu o 10 sekund, 1 minutę, 10 minut\n" -" < lub > przeskok o jedną pozycję w playliście\n" -" p lub SPACE zatrzymanie filmu (kontynuacja - dowolny klawisz)\n" -" q lub ESC zatrzymanie odtwarzania i wyjście z programu\n" -" o przełączanie trybów OSD: pusty / belka / belka i zegar\n" -" * lub / zwiększenie lub zmniejszenie natężenia dźwięku\n" -" (naciśnij 'm' żeby wybrać master/pcm)\n" -"\n" -" **** DOKŁADNY SPIS WSZYSTKICH DOSTĘPNYCH OPCJI ZNAJDUJE SIĘ W MANUALU! ****\n" -"\n"; +static const char* help_text[]={ +"", +"Użycie: mplayerxp [opcje] [ścieżka/]nazwa", +"", +"Opcje:", +" -vo <drv[:dev]> wybór sterownika[:urządzenia] video (lista po '-vo help')", +" -ao <drv[:dev]> wybór sterownika[:urządzenia] audio (lista po '-ao help')", +" -play.ss <timepos>skok do podanej pozycji (sekundy albo hh:mm:ss)", +" -audio.off odtwarzanie bez dźwięku", +" -video.fs opcje pełnoekranowe (pełen ekran,zmiana trybu,skalowanie)", +" -sub.file <file>wybór pliku z napisami", +" -play.list<file>wybór pliku z playlistą", +" -sync.framedrop gubienie klatek (dla wolnych maszyn)", +"", +"Klawisze:", +" Right,Up,PgUp skok naprzód o 10 sekund, 1 minutę, 10 minut", +" Left,Down,PgDn skok do tyłu o 10 sekund, 1 minutę, 10 minut", +" < lub > przeskok o jedną pozycję w playliście", +" p lub SPACE zatrzymanie filmu (kontynuacja - dowolny klawisz)", +" q lub ESC zatrzymanie odtwarzania i wyjście z programu", +" o przełączanie trybów OSD: pusty / belka / belka i zegar", +" * lub / zwiększenie lub zmniejszenie natężenia dźwięku", +" (naciśnij 'm' żeby wybrać master/pcm)", +"", +" **** DOKŁADNY SPIS WSZYSTKICH DOSTĘPNYCH OPCJI ZNAJDUJE SIĘ W MANUALU! ****", +NULL +}; #endif // ========================= MPlayer messages =========================== Modified: mplayerxp/nls/mpxp_help-pt.h =================================================================== --- mplayerxp/nls/mpxp_help-pt.h 2012-12-20 09:57:50 UTC (rev 581) +++ mplayerxp/nls/mpxp_help-pt.h 2012-12-20 13:29:57 UTC (rev 582) @@ -3,38 +3,42 @@ // UTF-8 #ifdef HELP_MPXP_DEFINE_STATIC #ifndef MSGTR_BANNER_TEXT -static char* banner_text= -"\n\n" -"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)\n" -"\n"; +static const char* banner_text[]={ +"", +"", +"MPlayerXP " VERSION "(C) 2002 Nickols_K 2000-2002 Arpad Gereoffy (see DOCS!)", +NULL +}; -static char help_text[]= -"Uso: mplayerxp [opções] [url|caminho/]nome-d... [truncated message content] |
From: <nic...@us...> - 2012-12-20 15:46:59
|
Revision: 584 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=584&view=rev Author: nickols_k Date: 2012-12-20 15:46:50 +0000 (Thu, 20 Dec 2012) Log Message: ----------- fixes+improvements+converting MSG_* info mpxp_* Modified Paths: -------------- mplayerxp/dump.cpp mplayerxp/input2/input.cpp mplayerxp/input2/joystick.cpp mplayerxp/input2/lirc.cpp mplayerxp/libao3/audio_out.cpp mplayerxp/libao3/audio_out.h mplayerxp/libvo2/video_out.cpp mplayerxp/libvo2/video_out.h mplayerxp/mplayerxp.cpp mplayerxp/mpxp_msg.cpp mplayerxp/mpxp_msg.h mplayerxp/nls/mpxp_help-en.h mplayerxp/nls/mpxp_help-ru.h mplayerxp/postproc/vf_vo2.cpp Modified: mplayerxp/dump.cpp =================================================================== --- mplayerxp/dump.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/dump.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -67,7 +67,7 @@ if(len>0) fwrite(buf,len,1,f); } fclose(f); - MSG_INFO(MSGTR_CoreDumped); /* nice joke ;) */ + mpxp_info<<MSGTR_StreamDumped<<std::endl; exit_player(MSGTR_Exit_eof); } @@ -274,7 +274,7 @@ delete demuxer->priv; demuxer->priv=NULL; } - MSG_INFO(MSGTR_CoreDumped); + mpxp_info<<MSGTR_StreamDumped<<std::endl; } Modified: mplayerxp/input2/input.cpp =================================================================== --- mplayerxp/input2/input.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/input2/input.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -1,6 +1,8 @@ #include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; +#include <iomanip> + #include <stdlib.h> #include <string.h> #include <stdio.h> @@ -466,7 +468,7 @@ static MPXP_Rc mp_input_add_cmd_fd(libinput_t& priv,any_t* opaque, int sel, mp_cmd_func_t read_func, mp_close_func_t close_func) { if(priv.num_cmd_fd == MP_MAX_CMD_FD) { - MSG_ERR("Too much command fd, unable to register fd\n"); + mpxp_err<<"Too much command fd, unable to register fd"<<std::endl; return MPXP_False; } @@ -507,7 +509,7 @@ static MPXP_Rc mp_input_add_key_fd(libinput_t& priv,any_t* opaque, int sel, mp_key_func_t read_func, mp_close_func_t close_func) { if(priv.num_key_fd == MP_MAX_KEY_FD) { - MSG_ERR("Too much key fd, unable to register fd\n"); + mpxp_err<<"Too much key fd, unable to register fd"<<std::endl; return MPXP_False; } @@ -564,7 +566,7 @@ errno = 0; cmd->args[i].v.i = atoi(ptr); if(errno != 0) { - MSG_ERR("Command %s : argument %d isn't an integer\n",cmd_def->name,i+1); + mpxp_err<<"Command: "<<cmd_def->name<<" argument "<<i+1<<" isn't an integer"<<std::endl; ptr = NULL; } break; @@ -579,7 +581,7 @@ setlocale(LC_NUMERIC, ""); #endif if(errno != 0) { - MSG_ERR("Command %s : argument %d isn't a float\n",cmd_def->name,i+1); + mpxp_err<<"Command: "<<cmd_def->name<<" argument "<<i+1<<" isn't a float"<<std::endl; ptr = NULL; } break; @@ -599,7 +601,7 @@ ptr2 = e + 1; } if(term != ' ' && (!e || e[0] == '\0')) { - MSG_ERR("Command %s : argument %d is unterminated\n",cmd_def->name,i+1); + mpxp_err<<"Command: "<<cmd_def->name<<" argument "<<i+1<<" is unterminated"<<std::endl; ptr = NULL; break; } else if(!e) e = ptr+strlen(ptr); @@ -614,13 +616,13 @@ } } break; case -1: ptr = NULL; - default: MSG_ERR("Unknown argument %d\n",i); + default: mpxp_err<<"Unknown argument "<<i<<std::endl; } } cmd->nargs = i; if(cmd_def->nargs > cmd->nargs) { - MSG_ERR("Got command '%s' but\n",str); - MSG_ERR("command %s require at least %d arguments, we found only %d so far\n",cmd_def->name,cmd_def->nargs,cmd->nargs); + mpxp_err<<"Got command '"<<str<<"' but"<<std::endl; + mpxp_err<<"command "<<cmd_def->name<<" require at least "<<cmd_def->nargs<<" arguments, we found only "<<cmd->nargs<<" so far"<<std::endl; mp_cmd_free(cmd); delete str; return NULL; @@ -674,7 +676,7 @@ switch(r) { case MP_INPUT_ERROR: case MP_INPUT_DEAD: - MSG_ERR("Error while reading cmd fd: %s\n",strerror(errno)); + mpxp_err<<"Error while reading cmd fd: "<<strerror(errno)<<std::endl; case MP_INPUT_NOTHING: return r; } // EOF ? @@ -696,7 +698,7 @@ if(!end) { // If buffer is full we must drop all until the next \n if(mp_fd->size - mp_fd->pos <= 1) { - MSG_ERR("Cmd buffer is full: dropping content\n"); + mpxp_err<<"Cmd buffer is full: dropping content"<<std::endl; mp_fd->pos = 0; mp_fd->flags |= MP_FD_DROP; } @@ -776,22 +778,22 @@ if(priv.cmd_binds) cmd = mp_input_find_bind_for_key(priv.cmd_binds,n,keys); if(cmd == NULL) cmd = mp_input_find_bind_for_key(def_cmd_binds,n,keys); if(cmd == NULL) { - MSG_WARN("No bind found for key %s",mp_input_get_key_name(priv,keys[0])); + mpxp_warn<<"No bind found for key: "<<mp_input_get_key_name(priv,keys[0]); if(n > 1) { int s; - for(s=1; s < n; s++) MSG_WARN("-%s",mp_input_get_key_name(priv,keys[s])); + for(s=1; s < n; s++) mpxp_warn<<std::left<<mp_input_get_key_name(priv,keys[s]); } - MSG_WARN(" \n"); + mpxp_warn<<std::endl; return NULL; } ret = mp_input_parse_cmd(cmd); if(!ret) { - MSG_ERR("Invalid command for binded key %s",mp_input_get_key_name(priv,priv.key_down[0])); + mpxp_err<<"Invalid command for binded key: "<<mp_input_get_key_name(priv,priv.key_down[0]); if(priv.num_key_down > 1) { unsigned int s; - for(s=1; s < priv.num_key_down; s++) MSG_ERR("-%s",mp_input_get_key_name(priv,priv.key_down[s])); + for(s=1; s < priv.num_key_down; s++) mpxp_err<<std::left<<mp_input_get_key_name(priv,priv.key_down[s]); } - MSG_ERR(" : %s \n",cmd); + mpxp_err<<" : "<<cmd<<std::endl; } return ret; } @@ -820,9 +822,9 @@ code = ((mp_key_func_t)priv.key_fds[i].read.key_func)(priv.key_fds[i].opaque); if(code >= 0) return code; - if(code == MP_INPUT_ERROR) MSG_ERR("Error on key input fd\n"); + if(code == MP_INPUT_ERROR) mpxp_err<<"Error on key input fd"<<std::endl; else if(code == MP_INPUT_DEAD) { - MSG_ERR("Dead key input on fd\n"); + mpxp_err<<"Dead key input on fd"<<std::endl; mp_input_rm_key_fd(priv,priv.key_fds[i].opaque); } } @@ -847,7 +849,7 @@ // key pushed if(code & MP_KEY_DOWN) { if(priv.num_key_down > MP_MAX_KEY_DOWN) { - MSG_ERR("Too much key down at the same time\n"); + mpxp_err<<"Too much key down at the same time"<<std::endl; continue; } code &= ~MP_KEY_DOWN; @@ -871,7 +873,7 @@ } if(j == priv.num_key_down) { // key was not in the down keys : add it if(priv.num_key_down > MP_MAX_KEY_DOWN) { - MSG_ERR("Too much key down at the same time\n"); + mpxp_err<<"Too much key down at the same time"<<std::endl; continue; } priv.key_down[priv.num_key_down] = code; @@ -937,7 +939,7 @@ char* cmd; r = mp_input_read_cmd(&priv.cmd_fds[i],&cmd); if(r < 0) { - if(r == MP_INPUT_ERROR) MSG_ERR("Error on cmd fd\n"); + if(r == MP_INPUT_ERROR) mpxp_err<<"Error on cmd fd"<<std::endl; else if(r == MP_INPUT_DEAD) priv.cmd_fds[i].flags |= MP_FD_DEAD; continue; } @@ -1136,11 +1138,11 @@ fd = open(file,O_RDONLY); if(fd < 0) { - MSG_ERR("Can't open input config file %s : %s\n",file,strerror(errno)); + mpxp_err<<"Can't open input config file "<<file<<" : "<<strerror(errno)<<std::endl; return 0; } - MSG_V("Parsing input config file %s\n",file); + mpxp_v<<"Parsing input config file "<<file<<std::endl; while(1) { if(! eof && bs < BS_MAX-1) { @@ -1148,7 +1150,7 @@ r = read(fd,buffer+bs,BS_MAX-1-bs); if(r < 0) { if(errno == EINTR) continue; - MSG_ERR("Error while reading input config file %s : %s\n",file,strerror(errno)); + mpxp_err<<"Error while reading input config file "<<file<<" : "<<strerror(errno)<<std::endl; mp_input_free_binds(binds); close(fd); return 0; @@ -1161,7 +1163,7 @@ } // Empty buffer : return if(bs <= 1) { - MSG_INFO("Input config file %s parsed : %d binds\n",file,n_binds); + mpxp_info<<"Input config file "<<file<<" parsed : "<<n_binds<<" binds"<<std::endl; if(binds) priv.cmd_binds = binds; close(fd); return 1; @@ -1196,8 +1198,8 @@ for(end = iter; end[0] != '\0' && strchr(SPACE_CHAR,end[0]) == NULL ; end++)/*NOTHING */; if(end[0] == '\0') { // Key name don't fit in the buffer if(buffer == iter) { - if(eof && (buffer-iter) == bs) MSG_ERR("Unfinished binding %s\n",iter); - else MSG_ERR("Buffer is too small for this key name : %s\n",iter); + if(eof && (buffer-iter) == bs) mpxp_err<<"Unfinished binding "<<iter<<std::endl; + else mpxp_err<<"Buffer is too small for this key name : "<<iter<<std::endl; mp_input_free_binds(binds); return 0; } @@ -1209,7 +1211,7 @@ strncpy(name,iter,end-iter); name[end-iter] = '\0'; if(! mp_input_get_input_from_name(name,keys)) { - MSG_ERR("Unknown key '%s'\n",name); + mpxp_err<<"Unknown key '"<<name<<"'"<<std::endl; mp_input_free_binds(binds); close(fd); return 0; @@ -1222,9 +1224,9 @@ // Found new line if(iter[0] == '\n' || iter[0] == '\r') { int i; - MSG_ERR("No command found for key %s" ,mp_input_get_key_name(priv,keys[0])); - for(i = 1; keys[i] != 0 ; i++) MSG_ERR("-%s",mp_input_get_key_name(priv,keys[i])); - MSG_ERR("\n"); + mpxp_err<<"No command found for key "<<mp_input_get_key_name(priv,keys[0]); + for(i = 1; keys[i] != 0 ; i++) mpxp_err<<std::left<<mp_input_get_key_name(priv,keys[i]); + mpxp_err<<std::endl; keys[0] = 0; if(iter > buffer) { memmove(buffer,iter,bs- (iter-buffer)); @@ -1235,7 +1237,7 @@ for(end = iter ; end[0] != '\n' && end[0] != '\r' && end[0] != '\0' ; end++)/* NOTHING */; if(end[0] == '\0' && ! (eof && ((end+1) - buffer) == bs)) { if(iter == buffer) { - MSG_ERR("Buffer is too small for command %s\n",buffer); + mpxp_err<<"Buffer is too small for command "<<buffer<<std::endl; mp_input_free_binds(binds); close(fd); return 0; @@ -1258,7 +1260,7 @@ continue; } } - MSG_ERR("What are we doing here ?\n"); + mpxp_err<<"What are we doing here ?"<<std::endl; close(fd); return 0; } @@ -1272,13 +1274,13 @@ if(! mp_input_parse_config(priv,file)) { // Try global conf dir file = CONFDIR "/input.conf"; - if(! mp_input_parse_config(priv,file)) MSG_WARN("Falling back on default (hardcoded) input config\n"); + if(! mp_input_parse_config(priv,file)) mpxp_warn<<"Falling back on default (hardcoded) input config"<<std::endl; } #ifdef HAVE_JOYSTICK if(libinput_conf.use_joystick) { any_t* joystick_fd; joystick_fd = mp_input_joystick_open(libinput_conf.js_dev); - if(!joystick_fd) MSG_ERR("Can't init input joystick with using: %s\n",libinput_conf.js_dev); + if(!joystick_fd) mpxp_err<<"Can't init input joystick with using: "<<libinput_conf.js_dev<<std::endl; else mp_input_add_key_fd(priv,joystick_fd,1,mp_input_joystick_read,(mp_close_func_t)mp_input_joystick_close); } #endif @@ -1298,11 +1300,11 @@ #endif if(libinput_conf.in_file) { struct stat st; - if(stat(libinput_conf.in_file,&st)) MSG_ERR("Can't stat %s: %s\n",libinput_conf.in_file,strerror(errno)); + if(stat(libinput_conf.in_file,&st)) mpxp_err<<"Can't stat: "<<libinput_conf.in_file<<" : "<<strerror(errno)<<std::endl; else { priv.in_file_fd = open(libinput_conf.in_file,(S_ISFIFO(st.st_mode)?O_RDWR:O_RDONLY)|O_NONBLOCK); if(priv.in_file_fd >= 0) mp_input_add_cmd_fd(priv,&priv,1,NULL,(mp_close_func_t)close); - else MSG_ERR("Can't open %s: %s\n",libinput_conf.in_file,strerror(errno)); + else mpxp_err<<"Can't open: "<<libinput_conf.in_file<<" : "<<strerror(errno)<<std::endl; } } priv.in_file_fd = 0; @@ -1354,8 +1356,8 @@ void mp_input_print_keys(libinput_t& handle) { unsigned i; UNUSED(handle); - MSG_INFO("List of available KEYS:\n"); - for(i= 0; key_names[i].name != NULL ; i++) MSG_INFO("%s\n",key_names[i].name); + mpxp_info<<"List of available KEYS:"<<std::endl; + for(i= 0; key_names[i].name != NULL ; i++) mpxp_info<<key_names[i].name<<std::endl; } static int mp_input_print_key_list(libinput_t& handle) { @@ -1365,12 +1367,12 @@ void mp_input_print_binds(libinput_t& handle) { unsigned i,j; - MSG_INFO("List of available key bindings:\n"); + mpxp_info<<"List of available key bindings:"<<std::endl; for(i=0; def_cmd_binds[i].cmd != NULL ; i++) { for(j=0;def_cmd_binds[i].input[j] != 0;j++) { - MSG_INFO(" %-20s",mp_input_get_key_name(handle,def_cmd_binds[i].input[j])); + mpxp_info<<std::left<<" "<<mp_input_get_key_name(handle,def_cmd_binds[i].input[j]); } - MSG_INFO(" %s\n",def_cmd_binds[i].cmd); + mpxp_info<<" "<<def_cmd_binds[i].cmd<<std::endl; } } @@ -1380,9 +1382,9 @@ const char* type; UNUSED(handle); - MSG_INFO("List of available input commands:\n"); + mpxp_info<<"List of available input commands:"<<std::endl; for(i = 0; (cmd = &mp_cmds[i])->name != NULL ; i++) { - MSG_INFO(" %-20.20s",cmd->name); + mpxp_info<<std::left<<" "<<cmd->name; for(j= 0 ; j < MP_CMD_MAX_ARGS && cmd->args[j].type != -1 ; j++) { switch(cmd->args[j].type) { case MP_CMD_ARG_INT: @@ -1397,10 +1399,10 @@ default: type = "??"; } - if(j+1 > cmd->nargs) MSG_INFO(" [%s]",type); - else MSG_INFO(" %s",type); + if(j+1 > cmd->nargs) mpxp_info<<" ["<<type<<"]"; + else mpxp_info<<" "<<type; } - MSG_INFO("\n"); + mpxp_info<<std::endl; } } Modified: mplayerxp/input2/joystick.cpp =================================================================== --- mplayerxp/input2/joystick.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/input2/joystick.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -41,10 +41,10 @@ struct js_event ev; priv_t* priv=new(zeromem) priv_t; - MSG_INFO("Opening joystick device %s\n",dev ? dev : JS_DEV); + mpxp_info<<"Opening joystick device:"<<(dev?dev:JS_DEV)<<std::endl; if((priv->fd=open(dev?dev:JS_DEV,O_RDONLY|O_NONBLOCK))<0) { - MSG_ERR("Can't open joystick device %s : %s\n",dev ? dev : JS_DEV,strerror(errno)); + mpxp_err<<"Can't open joystick device: "<<(dev?dev:JS_DEV)<<" : "<<strerror(errno)<<std::endl; delete priv; return NULL; } @@ -59,7 +59,7 @@ inited = 1; break; } - MSG_ERR("Error while reading joystick device : %s\n",strerror(errno)); + mpxp_err<<"Error while reading joystick device: "<<strerror(errno)<<std::endl; close(priv->fd); delete priv; return NULL; @@ -67,7 +67,7 @@ l += r; } if((unsigned int)l < sizeof(struct js_event)) { - if(l > 0) MSG_ERR("Joystick : we loose %d bytes of data\n",l); + if(l > 0) mpxp_err<<"Joystick: we loose "<<l<<"bytes of data"<<std::endl; break; } ev.type &= ~JS_EVENT_INIT; @@ -93,20 +93,20 @@ if(r <= 0) { if(errno == EINTR) continue; else if(errno == EAGAIN) return MP_INPUT_NOTHING; - if(r < 0) MSG_ERR("Joystick error while reading joystick device : %s\n",strerror(errno)); - else MSG_ERR("Joystick error while reading joystick device : EOF\n"); + if(r < 0) mpxp_err<<"Joystick error while reading joystick device: "<<strerror(errno)<<std::endl; + else mpxp_err<<"Joystick error while reading joystick device: EOF"<<std::endl; return MP_INPUT_DEAD; } l += r; } if((unsigned int)l < sizeof(struct js_event)) { - if(l > 0) MSG_ERR("Joystick : we loose %d bytes of data\n",l); + if(l > 0) mpxp_err<<"Joystick: we loose "<<l<<"bytes of data"<<std::endl; return MP_INPUT_NOTHING; } if(ev.type & JS_EVENT_INIT) { - MSG_WARN("Joystick : warning init event, we have lost sync with driver\n"); + mpxp_warn<<"Joystick: warning init event, we have lost sync with driver"<<std::endl; ev.type &= ~JS_EVENT_INIT; if(ev.type == JS_EVENT_BUTTON) { int s = (priv.btns >> ev.number) & 1; @@ -141,7 +141,7 @@ } else return MP_INPUT_NOTHING; } else { - MSG_ERR("Joystick warning unknow event type %d\n",ev.type); + mpxp_err<<"Joystick warning unknow event type "<<ev.type<<std::endl; return MP_INPUT_ERROR; } return MP_INPUT_NOTHING; Modified: mplayerxp/input2/lirc.cpp =================================================================== --- mplayerxp/input2/lirc.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/input2/lirc.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -29,16 +29,16 @@ any_t* mp_input_lirc_open(void) { priv_t* priv=new(zeromem) priv_t; - MSG_INFO(MSGTR_SettingUpLIRC); + mpxp_info<<MSGTR_SettingUpLIRC<<std::endl; if((priv->lirc_sock=lirc_init(const_cast<char*>("mplayer"),1))==-1){ - MSG_ERR(MSGTR_LIRCopenfailed MSGTR_LIRCdisabled); + mpxp_err<<MSGTR_LIRCopenfailed<<std::endl<<MSGTR_LIRCdisabled<<std::endl; delete priv; return NULL; } if(lirc_readconfig( lirc_configfile,&lirc_config,NULL )!=0 ){ - MSG_ERR(MSGTR_LIRCcfgerr MSGTR_LIRCdisabled, - lirc_configfile == NULL ? "~/.lircrc" : lirc_configfile); + mpxp_err<<MSGTR_LIRCcfgerr<<": "<<(lirc_configfile==NULL?"~/.lircrc":lirc_configfile)<<std::endl; + mpxp_err<<MSGTR_LIRCdisabled<<std::endl; lirc_deinit(); delete priv; return NULL; @@ -72,14 +72,14 @@ while((r = select(1,&fds,NULL,NULL,&tv)) <= 0) { if(r < 0) { if(errno == EINTR) continue; - MSG_ERR("Select error : %s\n",strerror(errno)); + mpxp_err<<"Select error:"<<strerror(errno)<<std::endl; return MP_INPUT_ERROR; } else return MP_INPUT_NOTHING; } // There's something to read if(lirc_nextcode(&code) != 0) { - MSG_ERR("Lirc error :(\n"); + mpxp_err<<"Lirc error :("<<std::endl; return MP_INPUT_DEAD; } Modified: mplayerxp/libao3/audio_out.cpp =================================================================== --- mplayerxp/libao3/audio_out.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/libao3/audio_out.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -194,15 +194,15 @@ delete &priv; } -void Audio_Output::print_help() const { +void Audio_Output::print_help() { unsigned i; - MSG_INFO("Available audio output drivers:\n"); + mpxp_info<<"Available audio output drivers:"<<std::endl; i=0; while (audio_out_drivers[i]) { const ao_info_t *info = audio_out_drivers[i++]; - MSG_INFO("\t%s\t%s\n", info->short_name, info->name); + mpxp_info<<"\t"<<info->short_name<<"\t"<<info->name<<std::endl; } - MSG_INFO("\n"); + mpxp_info<<std::endl; } MPXP_Rc Audio_Output::_register(const char *driver_name,unsigned flags) const { Modified: mplayerxp/libao3/audio_out.h =================================================================== --- mplayerxp/libao3/audio_out.h 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/libao3/audio_out.h 2012-12-20 15:46:50 UTC (rev 584) @@ -33,7 +33,7 @@ Audio_Output(const char* subdevice); virtual ~Audio_Output(); - virtual void print_help() const; + static void print_help(); virtual MPXP_Rc _register(const char *driver_name,unsigned flags) const; virtual const ao_info_t* get_info() const; virtual MPXP_Rc configure(unsigned rate,unsigned channels,unsigned format) const; Modified: mplayerxp/libvo2/video_out.cpp =================================================================== --- mplayerxp/libvo2/video_out.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/libvo2/video_out.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -147,8 +147,7 @@ delete &priv; } -void Video_Output::print_help() const -{ +void Video_Output::print_help() { unsigned i; MSG_INFO("Available video output drivers:\n"); i=0; Modified: mplayerxp/libvo2/video_out.h =================================================================== --- mplayerxp/libvo2/video_out.h 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/libvo2/video_out.h 2012-12-20 15:46:50 UTC (rev 584) @@ -168,7 +168,7 @@ void FLIP_REVERT() { flags^=VOFLAG_FLIPPING; } virtual MPXP_Rc init(const std::string& driver_name) const; - virtual void print_help() const; + static void print_help(); virtual const vo_info_t* get_info() const; virtual MPXP_Rc configure(vf_stream_t* parent,uint32_t width, uint32_t height, uint32_t d_width, Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/mplayerxp.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -606,8 +606,8 @@ m_config_show_options(*mpxp_context().mconfig); mp_input_print_binds(MPXPSys.libinput()); Stream::print_drivers(); - mpxp_context().video().output->print_help(); - mpxp_context().audio().output->print_help(); + Video_Output::print_help(); + Audio_Output::print_help(); vf_help(); af_help(); vfm_help(); Modified: mplayerxp/mpxp_msg.cpp =================================================================== --- mplayerxp/mpxp_msg.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/mpxp_msg.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -47,7 +47,7 @@ } void mpxp_streambuf::put_chars(char const* begin, char const* end) const { - if(!(parent._type&mp_conf.msg_filter)) { parent.setstate(std::ios_base::badbit); return; } + parent.test_conditions(); if(::isatty(::fileno(::stderr))) ::fwrite(data.c_str(),data.length(),1,::stderr); ::fwrite(begin,end-begin,1,::stderr); } @@ -88,6 +88,10 @@ return std::min(_idx,unsigned(sizeof(msg_prefix)/sizeof(msg_prefix[0]))); } +void mpxp_ostream::test_conditions() { + if(!(_type&mp_conf.msg_filter)) setstate(std::ios_base::badbit); +} + /* TODO: replace this block with std::string */ static const char blue[]="\033[0;34;40m"; static const char green[]="\033[0;32;40m"; @@ -125,17 +129,33 @@ mpxp_ostream_status::mpxp_ostream_status(mpxp_msgt_e type):mpxp_ostream(light_blue,type){} mpxp_ostream_status::~mpxp_ostream_status() {} -mpxp_ostream_v::mpxp_ostream_v(mpxp_msgt_e type):mpxp_ostream(cyan,type){ if(mp_conf.verbose<1) setstate(ios_base::badbit); /* do not display */ } +mpxp_ostream_v::mpxp_ostream_v(mpxp_msgt_e type):mpxp_ostream(cyan,type){} mpxp_ostream_v::~mpxp_ostream_v() {} +void mpxp_ostream_v::test_conditions() { + if(mp_conf.verbose<1) setstate(ios_base::badbit); /* do not display */ + mpxp_ostream::test_conditions(); +} -mpxp_ostream_dbg2::mpxp_ostream_dbg2(mpxp_msgt_e type):mpxp_ostream(gray,type){ if(mp_conf.verbose<2) setstate(ios_base::badbit); /* do not display */ } +mpxp_ostream_dbg2::mpxp_ostream_dbg2(mpxp_msgt_e type):mpxp_ostream(gray,type){} mpxp_ostream_dbg2::~mpxp_ostream_dbg2() {} +void mpxp_ostream_dbg2::test_conditions() { + if(mp_conf.verbose<2) setstate(ios_base::badbit); /* do not display */ + mpxp_ostream::test_conditions(); +} -mpxp_ostream_dbg3::mpxp_ostream_dbg3(mpxp_msgt_e type):mpxp_ostream(gray,type){ if(mp_conf.verbose<3) setstate(ios_base::badbit); /* do not display */ } +mpxp_ostream_dbg3::mpxp_ostream_dbg3(mpxp_msgt_e type):mpxp_ostream(gray,type){} mpxp_ostream_dbg3::~mpxp_ostream_dbg3() {} +void mpxp_ostream_dbg3::test_conditions() { + if(mp_conf.verbose<3) setstate(ios_base::badbit); /* do not display */ + mpxp_ostream::test_conditions(); +} -mpxp_ostream_dbg4::mpxp_ostream_dbg4(mpxp_msgt_e type):mpxp_ostream(gray,type){ if(mp_conf.verbose<4) setstate(ios_base::badbit); /* do not display */ } +mpxp_ostream_dbg4::mpxp_ostream_dbg4(mpxp_msgt_e type):mpxp_ostream(gray,type){} mpxp_ostream_dbg4::~mpxp_ostream_dbg4() {} +void mpxp_ostream_dbg4::test_conditions() { + if(mp_conf.verbose<4) setstate(ios_base::badbit); /* do not display */ + mpxp_ostream::test_conditions(); +} /* old stuff: */ Modified: mplayerxp/mpxp_msg.h =================================================================== --- mplayerxp/mpxp_msg.h 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/mpxp_msg.h 2012-12-20 15:46:50 UTC (rev 584) @@ -86,7 +86,8 @@ virtual ~mpxp_ostream(); protected: mpxp_msgt_e _type; - friend class mpxp_streambuf; + friend class mpxp_streambuf; + virtual void test_conditions(); private: unsigned compute_idx(mpxp_msgt_e type) const; unsigned idx; @@ -140,24 +141,32 @@ public: mpxp_ostream_v(mpxp_msgt_e type); virtual ~mpxp_ostream_v(); + protected: + virtual void test_conditions(); }; class mpxp_ostream_dbg2 : public mpxp_ostream { public: mpxp_ostream_dbg2(mpxp_msgt_e type); virtual ~mpxp_ostream_dbg2(); + protected: + virtual void test_conditions(); }; class mpxp_ostream_dbg3 : public mpxp_ostream { public: mpxp_ostream_dbg3(mpxp_msgt_e type); virtual ~mpxp_ostream_dbg3(); + protected: + virtual void test_conditions(); }; class mpxp_ostream_dbg4 : public mpxp_ostream { public: mpxp_ostream_dbg4(mpxp_msgt_e type); virtual ~mpxp_ostream_dbg4(); + protected: + virtual void test_conditions(); }; void mpxp_print_init(int verbose); Modified: mplayerxp/nls/mpxp_help-en.h =================================================================== --- mplayerxp/nls/mpxp_help-en.h 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/nls/mpxp_help-en.h 2012-12-20 15:46:50 UTC (rev 584) @@ -135,8 +135,8 @@ #ifndef MSGTR_CantOpenDumpfile #define MSGTR_CantOpenDumpfile "Can't open dump file!!!\n" #endif -#ifndef MSGTR_CoreDumped -#define MSGTR_CoreDumped "core dumped :)\n" +#ifndef MSGTR_StreamDumped +#define MSGTR_StreamDumped "stream dumped :)\n" #endif #ifndef MSGTR_FPSnotspecified #define MSGTR_FPSnotspecified "FPS not specified (or invalid) in the header! Use the -fps option!\n" @@ -451,19 +451,19 @@ // LIRC: #ifndef MSGTR_SettingUpLIRC -#define MSGTR_SettingUpLIRC "Setting up lirc support...\n" +#define MSGTR_SettingUpLIRC "Setting up lirc support..." #endif #ifndef MSGTR_LIRCdisabled -#define MSGTR_LIRCdisabled "You won't be able to use your remote control\n" +#define MSGTR_LIRCdisabled "You won't be able to use your remote control" #endif #ifndef MSGTR_LIRCopenfailed -#define MSGTR_LIRCopenfailed "Failed opening lirc support!\n" +#define MSGTR_LIRCopenfailed "Failed opening lirc support!" #endif #ifndef MSGTR_LIRCsocketerr -#define MSGTR_LIRCsocketerr "Something's wrong with the lirc socket: %s\n" +#define MSGTR_LIRCsocketerr "Something's wrong with the lirc socket" #endif #ifndef MSGTR_LIRCcfgerr -#define MSGTR_LIRCcfgerr "Failed to read LIRC config file %s !\n" +#define MSGTR_LIRCcfgerr "Failed to read LIRC config file" #endif #endif /*__MPXP_EN_HELP_INCLUDED*/ Modified: mplayerxp/nls/mpxp_help-ru.h =================================================================== --- mplayerxp/nls/mpxp_help-ru.h 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/nls/mpxp_help-ru.h 2012-12-20 15:46:50 UTC (rev 584) @@ -88,7 +88,7 @@ #define MSGTR_DVDauthOk "Авторизация DVD выглядит OK.\n" #define MSGTR_DumpSelectedSteramMissing "dump: FATAL: выбранный поток потерян!\n" #define MSGTR_CantOpenDumpfile "Не могу открыть файл дампа!!!\n" -#define MSGTR_CoreDumped "core dumped :)\n" +#define MSGTR_StreamDumped "stream dumped :)" #define MSGTR_FPSnotspecified "Кадр/сек не указаны (или недопустимые) в заголовке! Используйте -fps опцию!\n" #define MSGTR_NoVideoStream "Видео поток не найден... это невоспроизводимо пока\n" #define MSGTR_TryForceAudioFmt "Попытка форсировать семейство аудио кодеков" @@ -206,8 +206,8 @@ #define MSGTR_UnknownAudio "Неизвестный/потерянный аудио формат, отказ от звука\n" // LIRC: -#define MSGTR_SettingUpLIRC "Установка поддержки lirc...\n" -#define MSGTR_LIRCdisabled "Вы не сможете использовать Ваше удалённое управление\n" -#define MSGTR_LIRCopenfailed "Неудачное открытие поддержки lirc!\n" -#define MSGTR_LIRCsocketerr "Что-то неправильно с сокетом lirc: %s\n" -#define MSGTR_LIRCcfgerr "Неудачное чтение файла конфигурации LIRC %s !\n" +#define MSGTR_SettingUpLIRC "Установка поддержки lirc..." +#define MSGTR_LIRCdisabled "Вы не сможете использовать Ваше удалённое управление" +#define MSGTR_LIRCopenfailed "Неудачное открытие поддержки lirc!" +#define MSGTR_LIRCsocketerr "Что-то неправильно с сокетом lirc" +#define MSGTR_LIRCcfgerr "Неудачное чтение файла конфигурации LIRC" Modified: mplayerxp/postproc/vf_vo2.cpp =================================================================== --- mplayerxp/postproc/vf_vo2.cpp 2012-12-20 15:07:43 UTC (rev 583) +++ mplayerxp/postproc/vf_vo2.cpp 2012-12-20 15:46:50 UTC (rev 584) @@ -27,18 +27,19 @@ static void __FASTCALL__ print_conf(vf_instance_t* vf) { const vo_info_t *info = mpxp_context().video().output->get_info(); - MSG_INFO("VO-CONF: [%s] %dx%d => %dx%d %s %s%s%s%s\n",info->short_name, - vf->priv->sw, vf->priv->sh, - vf->priv->dw, vf->priv->dh, - vo_format_name(vf->priv->ofmt), - (vf->priv->sflg&1)?" [fs]":"", - (vf->priv->sflg&2)?" [vm]":"", - (vf->priv->sflg&4)?" [zoom]":"", - (vf->priv->sflg&8)?" [flip]":""); - MSG_V("VO: Description: %s\n",info->name); - MSG_V("VO: Author: %s\n", info->author); + mpxp_info<<"VO-CONF: ["<<info->short_name<<"] " + <<vf->priv->sw<<"x"<<vf->priv->sh + <<" => "<<vf->priv->dw<<"x"<<vf->priv->dh + <<" "<<vo_format_name(vf->priv->ofmt) + <<" " + <<((vf->priv->sflg&1)?" [fs]":"") + <<((vf->priv->sflg&2)?" [vm]":"") + <<((vf->priv->sflg&4)?" [zoom]":"") + <<((vf->priv->sflg&8)?" [flip]":"")<<std::endl; + mpxp_v<<"VO: Description: "<<info->name<<std::endl; + mpxp_v<<"VO: Author: "<<info->author<<std::endl; if(info->comment && strlen(info->comment) > 0) - MSG_V("VO: Comment: %s\n", info->comment); + mpxp_v<<"VO: Comment: "<<info->comment<<std::endl; } static int __FASTCALL__ vf_config(vf_instance_t* vf, @@ -47,7 +48,7 @@ if ((width <= 0) || (height <= 0) || (d_width <= 0) || (d_height <= 0)) { - MSG_ERR("VO: invalid dimensions!\n"); + mpxp_err<<"VO: invalid dimensions!"<<std::endl; return 0; } @@ -63,6 +64,8 @@ // save vo's stride capability for the wanted colorspace: vf->default_caps=query_format(vf,outfmt,d_width,d_height);// & VFCAP_ACCEPT_STRIDE; + mpxp_dbg2<<"vf_vo2->config("<<width<<","<<height<<","<<d_width<<","<<d_height + <<","<<flags<<","<<vo_format_name(outfmt)<<")"<<std::endl; if(MPXP_Ok!=mpxp_context().video().output->configure(vf->parent,width,height,d_width,d_height,flags,"MPlayerXP",outfmt)) return 0; vf->priv->is_planar=vo_describe_fourcc(outfmt,&vf->priv->vd); @@ -76,7 +79,7 @@ static MPXP_Rc __FASTCALL__ control_vf(vf_instance_t* vf, int request,any_t* data) { UNUSED(vf); - MSG_DBG2("vf_control: %u\n",request); + mpxp_dbg2<<"vf_control: "<<request<<std::endl; switch(request){ case VFCTRL_SET_EQUALIZER: { vf_equalizer_t *eq=reinterpret_cast<vf_equalizer_t*>(data); @@ -97,7 +100,7 @@ dri_surface_cap_t dcaps; int rflags; uint32_t flags=mpxp_context().video().output->query_format(&fmt,w,h); - MSG_DBG2("[vf_vo2] %i=query_format(%s)\n",flags,vo_format_name(fmt)); + mpxp_dbg2<<"[vf_vo2] "<<flags<<"=query_format("<<vo_format_name(fmt)<<")"<<std::endl; rflags=0; UNUSED(vf); if(flags) { @@ -121,15 +124,15 @@ if(retval==MPXP_Ok) { mpi->flags |= MP_IMGFLAG_FINAL|MP_IMGFLAG_DIRECT; if(finalize) mpi->flags |= MP_IMGFLAG_FINALIZED; - MSG_DBG2("vf_vo_get_image was called successfully\n"); - } - MSG_DBG2("vf_vo_get_image was called failed\n"); + mpxp_dbg2<<"vf_vo_get_image was called successfully"<<std::endl; + } else mpxp_dbg2<<"vf_vo_get_image was called failed"<<std::endl; } static int __FASTCALL__ put_slice(vf_instance_t* vf, mp_image_t *mpi){ if(!vo_config_count) return 0; // vo not configured? if(!(mpi->flags & MP_IMGFLAG_FINAL) || (vf_first(vf)==vf && !(mpi->flags & MP_IMGFLAG_RENDERED))) { - MSG_DBG2("vf_vo_put_slice was called(%u): %u %u %u %u\n",mpi->xp_idx,mpi->x,mpi->y,mpi->w,mpi->h); + mpxp_dbg2<<"vf_vo_put_slice was called(" + <<mpi->xp_idx<<"): "<<mpi->x<<" "<<mpi->y<<" "<<mpi->w<<" "<<mpi->h<<std::endl; mpxp_context().video().output->draw_slice(mpi); } return 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-20 16:15:38
|
Revision: 586 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=586&view=rev Author: nickols_k Date: 2012-12-20 16:15:28 +0000 (Thu, 20 Dec 2012) Log Message: ----------- fix: It seems that call of setstate in mpxp_ostream does not always work move it into mpxp_streambuf About illegal patch: Just a new patch which i cannot upload most probably due hacked compiler: Index: libvo2/video_out.cpp =================================================================== --- libvo2/video_out.cpp (revision 584) +++ libvo2/video_out.cpp (working copy) @@ -22,6 +22,7 @@ * */ #include <algorithm> +#include <iomanip> #include <stdio.h> #include <stdint.h> @@ -142,30 +143,28 @@ Video_Output::~Video_Output() { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: vo_uninit\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_uninit"<<std::endl; inited--; delete &priv; } void Video_Output::print_help() { unsigned i; - MSG_INFO("Available video output drivers:\n"); + mpxp_info<<"Available video output drivers:"<<std::endl; i=0; while (vo_infos[i]) { const vo_info_t *info = vo_infos[i++]; - MSG_INFO("\t%s\t%s\n", info->short_name, info->name); + mpxp_info<<"\t"<<info->short_name<<"\t"<<info->name<<std::endl; } - MSG_INFO("\n"); + mpxp_info<<std::endl; } -const vo_info_t* Video_Output::get_info() const -{ +const vo_info_t* Video_Output::get_info() const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); return priv.video_out; } -MPXP_Rc Video_Output::init(const std::string& driver_name) const -{ +MPXP_Rc Video_Output::init(const std::string& driver_name) const { size_t offset; std::string drv_name; std::string subdev; @@ -313,9 +312,9 @@ priv.parent=s; MPXP_Rc retval; unsigned dest_fourcc,w,d_w,h,d_h; - MSG_DBG3("dri_vo_dbg: vo_config\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_config"<<std::endl; if(inited) { - MSG_FATAL("!!!priv.video_out internal fatal error: priv.video_out is initialized more than once!!!\n"); + mpxp_fatal<<"!!!priv.video_out internal fatal error: priv.video_out is initialized more than once!!!"<<std::endl; return MPXP_False; } inited++; @@ -331,8 +330,8 @@ priv.dri.d_width = d_w; priv.dri.d_height = d_h; - MSG_V("priv.video_out->config(%u,%u,%u,%u,0x%x,'%s',%s)\n" - ,w,h,d_w,d_h,_fullscreen,title.c_str(),vo_format_name(dest_fourcc)); + mpxp_v<<"priv.video_out->config("<<w<<","<<h<<","<<d_w<<","<<d_h + <<", 0x"<<std::hex<<_fullscreen<<",'"<<title.c_str()<<"',"<<vo_format_name(dest_fourcc)<<")"<<std::endl; retval = priv.vo_iface->configure(w,h,d_w,d_h,_fullscreen,title,dest_fourcc); priv.srcFourcc=format; if(retval == MPXP_Ok) { @@ -342,24 +341,21 @@ priv.image_height = h; ps_tune(priv.image_width,priv.org_height); dri_reconfig(0); - MSG_V("dri_vo_caps: driver does %s support DRI\n",priv.dri.has_dri?"":"not"); - MSG_V("dri_vo_caps: caps=%08X fourcc=%08X(%s) x,y,w,h(%u %u %u %u)\n" - "dri_vo_caps: width_height(%u %u) strides(%u %u %u %u) priv.dri.bpp=%u\n" - ,priv.dri.cap.caps - ,priv.dri.cap.fourcc - ,vo_format_name(priv.dri.cap.fourcc) - ,priv.dri.cap.x,priv.dri.cap.y,priv.dri.cap.w,priv.dri.cap.h - ,priv.dri.cap.width,priv.dri.cap.height - ,priv.dri.cap.strides[0],priv.dri.cap.strides[1] - ,priv.dri.cap.strides[2],priv.dri.cap.strides[3] - ,priv.dri.bpp); - MSG_V("dri_vo_src: w,h(%u %u) d_w,d_h(%u %u)\n" - "dri_vo_src: flags=%08X fourcc=%08X(%s)\n" - ,width,height - ,d_width,d_height - ,_fullscreen - ,format - ,vo_format_name(format)); + mpxp_v<<"dri_vo_caps: driver does "<<(priv.dri.has_dri?"":"not")<<" support DRI"<<std::endl; + mpxp_v<<"dri_vo_caps: caps="<<std::hex<<std::setfill('0')<<std::setw(8)<<priv.dri.cap.caps + <<" fourcc="<<std::hex<<std::setfill('0')<<std::setw(8)<<priv.dri.cap.fourcc + <<"("<<vo_format_name(priv.dri.cap.fourcc)<<") x,y,w,h(" + <<priv.dri.cap.x<<" "<<priv.dri.cap.y<<" "<<priv.dri.cap.w<<" "<<priv.dri.cap.h<<")"<<std::endl; + mpxp_v<<"dri_vo_caps: width,height("<<priv.dri.cap.width<<","<<priv.dri.cap.height + <<") strides(" + <<priv.dri.cap.strides[0]<<priv.dri.cap.strides[1] + <<priv.dri.cap.strides[2]<<priv.dri.cap.strides[3] + <<") priv.dri.bpp="<<priv.dri.bpp<<std::endl; + mpxp_v<<"dri_vo_src: w,h("<<width<<","<<height + <<") d_w,d_h("<<d_width<<","<<d_height<<std::endl; + mpxp_v<<"dri_vo_src: flags="<<std::hex<<std::setfill('0')<<std::setw(8)<<_fullscreen + <<" fourcc="<<std::hex<<std::setfill('0')<<std::setw(8)<<format + <<"("<<vo_format_name(format)<<")"<<std::endl; priv.dri.flags = _fullscreen; } return retval; @@ -371,13 +367,13 @@ vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); uint32_t dri_forced_fourcc; vo_query_fourcc_t qfourcc; - MSG_DBG3("dri_vo_dbg: vo_query_format(%08lX)\n",*fourcc); + mpxp_dbg3<<"dri_vo_dbg: vo_query_format("<<std::hex<<std::setfill('0')<<std::setw(8)<<*fourcc<<")"<<std::endl; qfourcc.fourcc = *fourcc; qfourcc.w = src_w; qfourcc.h = src_h; if(priv.vo_iface->query_format(&qfourcc)==MPXP_False) qfourcc.flags=VOCAP_NA; - MSG_V("dri_vo: request for %s fourcc: %i\n",vo_format_name(*fourcc),qfourcc.flags); + mpxp_v<<"dri_vo: request for "<<vo_format_name(*fourcc)<<" fourcc: "<<qfourcc.flags<<std::endl; dri_forced_fourcc = *fourcc; return qfourcc.flags; } @@ -385,7 +381,7 @@ MPXP_Rc Video_Output::reset() const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: vo_reset\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_reset"<<std::endl; return priv.vo_iface->reset(); } @@ -393,7 +389,7 @@ { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); char buf[256]; - MSG_DBG3("dri_vo_dbg: vo_screenshot\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_screenshot"<<std::endl; sprintf(buf,"%llu",priv.frame_counter); dri_surface_t surf; surf.idx=idx; @@ -404,14 +400,14 @@ MPXP_Rc Video_Output::pause() const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: vo_pause\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_pause"<<std::endl; return priv.vo_iface->pause(); } MPXP_Rc Video_Output::resume() const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: vo_resume\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_resume"<<std::endl; return priv.vo_iface->resume(); } @@ -425,7 +421,7 @@ { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); int width_less_stride; - MSG_DBG2("dri_vo_dbg: vo_get_surface type=%X flg=%X\n",mpi->type,mpi->flags); + mpxp_dbg2<<"dri_vo_dbg: vo_get_surface type="<<std::hex<<mpi->type<<" flg="<<std::hex<<mpi->flags<<std::endl; width_less_stride = 0; if(mpi->flags & MP_IMGFLAG_PLANAR) { width_less_stride = mpi->w <= priv.dri.cap.strides[0] && @@ -436,22 +432,22 @@ if(priv.dri.has_dri) { /* static is singlebuffered decoding */ if(mpi->type==MP_IMGTYPE_STATIC && priv.dri.num_xp_frames>1) { - MSG_DBG2("dri_vo_dbg: vo_get_surface FAIL mpi->type==MP_IMGTYPE_STATIC && priv.dri.num_xp_frames>1\n"); + mpxp_dbg2<<"dri_vo_dbg: vo_get_surface FAIL mpi->type==MP_IMGTYPE_STATIC && priv.dri.num_xp_frames>1"<<std::endl; return MPXP_False; } /*I+P requires 2+ static buffers for R/W */ if(mpi->type==MP_IMGTYPE_IP && (priv.dri.num_xp_frames < 2 || (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED)) { - MSG_DBG2("dri_vo_dbg: vo_get_surface FAIL (mpi->type==MP_IMGTYPE_IP && priv.dri.num_xp_frames < 2) || (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED\n"); + mpxp_dbg2<<"dri_vo_dbg: vo_get_surface FAIL (mpi->type==MP_IMGTYPE_IP && priv.dri.num_xp_frames < 2) || (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED"<<std::endl; return MPXP_False; } /*I+P+B requires 3+ static buffers for R/W */ if(mpi->type==MP_IMGTYPE_IPB && (priv.dri.num_xp_frames != 3 || (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED)) { - MSG_DBG2("dri_vo_dbg: vo_get_surface FAIL (mpi->type==MP_IMGTYPE_IPB && priv.dri.num_xp_frames != 3) || (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED\n"); + mpxp_dbg2<<"dri_vo_dbg: vo_get_surface FAIL (mpi->type==MP_IMGTYPE_IPB && priv.dri.num_xp_frames != 3) || (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED"<<std::endl; return MPXP_False; } /* video surface is bad thing for reading */ if(((mpi->flags&MP_IMGFLAG_READABLE)||(mpi->type==MP_IMGTYPE_TEMP)) && (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED) { - MSG_DBG2("dri_vo_dbg: vo_get_surface FAIL mpi->flags&MP_IMGFLAG_READABLE && (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED\n"); + mpxp_dbg2<<"dri_vo_dbg: vo_get_surface FAIL mpi->flags&MP_IMGFLAG_READABLE && (priv.dri.cap.caps&DRI_CAP_VIDEO_MMAPED)==DRI_CAP_VIDEO_MMAPED"<<std::endl; return MPXP_False; } /* it seems that surfaces are equal */ @@ -466,10 +462,10 @@ mpi->stride[1]=priv.dri.cap.strides[1]; mpi->stride[2]=priv.dri.cap.strides[2]; mpi->flags|=MP_IMGFLAG_DIRECT; - MSG_DBG2("dri_vo_dbg: vo_get_surface OK\n"); + mpxp_dbg2<<"dri_vo_dbg: vo_get_surface OK"<<std::endl; return MPXP_True; } - MSG_DBG2("dri_vo_dbg: vo_get_surface FAIL (mpi->flags&MP_IMGFLAG_ACCEPT_STRIDE && width_less_stride) || priv.dri.planes_eq) && priv.dri.dr\n"); + mpxp_dbg2<<"dri_vo_dbg: vo_get_surface FAIL (mpi->flags&MP_IMGFLAG_ACCEPT_STRIDE && width_less_stride) || priv.dri.planes_eq) && priv.dri.dr"<<std::endl; return MPXP_False; } else return MPXP_False; @@ -478,7 +474,7 @@ int Video_Output::adjust_size(unsigned cw,unsigned ch,unsigned *nw,unsigned *nh) const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: adjust_size was called %u %u %u %u\n",cw,ch,*nw,*nh); + mpxp_dbg3<<"dri_vo_dbg: adjust_size was called "<<cw<<" "<<ch<<" "<<*nw<<" "<<*nh<<std::endl; if((priv.dri.flags & VOFLAG_SWSCALE) && (cw != *nw || ch != *nh) && !(priv.dri.flags & VOFLAG_FULLSCREEN)) { float aspect,newv; @@ -495,7 +491,7 @@ *nw = newv; if(newv-(float)(unsigned)newv > 0.5) (*nw)++; } - MSG_DBG3("dri_vo_dbg: adjust_size returns %u %u\n",*nw,*nh); + mpxp_dbg3<<"dri_vo_dbg: adjust_size returns "<<*nw<<" "<<*nh<<std::endl; return 1; } return 0; @@ -512,7 +508,7 @@ uint32_t retval; int need_repaint; vo_resize_t vrest; - MSG_DBG3("dri_vo_dbg: vo_check_events\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_check_events"<<std::endl; vrest.event_type = 0; vrest.vo = this; vrest.adjust_size = ::adjust_size; @@ -532,7 +528,7 @@ { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); MPXP_Rc retval; - MSG_DBG3("dri_vo_dbg: vo_fullscreen\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_fullscreen"<<std::endl; retval = priv.vo_iface->toggle_fullscreen(); if(priv.dri.has_dri && retval == MPXP_True) dri_reconfig(1); @@ -549,7 +545,7 @@ { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); unsigned i,_w[4],_h[4],x,y; - MSG_DBG3("dri_vo_dbg: vo_draw_slice xywh=%i %i %i %i\n",mpi->x,mpi->y,mpi->w,mpi->h); + mpxp_dbg3<<"dri_vo_dbg: vo_draw_slice mpi.xywh="<<mpi->x<<" "<<mpi->y<<" "<<mpi->w<<" "<<mpi->h<<std::endl; if(priv.dri.has_dri) { uint8_t *dst[4]; const uint8_t *ps_src[4]; @@ -586,14 +582,14 @@ void Video_Output::select_frame(unsigned play_idx) const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG2("dri_vo_dbg: vo_select_frame(play_idx=%u)\n",play_idx); + mpxp_dbg2<<"dri_vo_dbg: vo_select_frame(play_idx="<<play_idx<<")"<<std::endl; priv.vo_iface->select_frame(play_idx); } void Video_Output::flush_page(unsigned decoder_idx) const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: vo_flush_pages [idx=%u]\n",decoder_idx); + mpxp_dbg3<<"dri_vo_dbg: vo_flush_pages [idx="<<decoder_idx<<"]"<<std::endl; priv.frame_counter++; if((priv.dri.cap.caps & DRI_CAP_VIDEO_MMAPED)!=DRI_CAP_VIDEO_MMAPED) priv.vo_iface->flush_page(decoder_idx); @@ -752,7 +748,7 @@ void Video_Output::draw_osd(unsigned idx) const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: vo_draw_osd\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_draw_osd"<<std::endl; if(priv.dri.has_dri && !(priv.dri.cap.caps & DRI_CAP_HWOSD)) { if( priv.dri.cap.x || priv.dri.cap.y || @@ -765,7 +761,7 @@ void Video_Output::draw_spudec_direct(unsigned idx) const { vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); - MSG_DBG3("dri_vo_dbg: vo_draw_osd\n"); + mpxp_dbg3<<"dri_vo_dbg: vo_draw_osd"<<std::endl; if(priv.dri.has_dri && !(priv.dri.cap.caps & DRI_CAP_HWOSD)) { // if( priv.dri.cap.x || priv.dri.cap.y || @@ -781,7 +777,7 @@ MPXP_Rc rval; vo_priv_t& priv=static_cast<vo_priv_t&>(vo_priv); rval=priv.vo_iface->ctrl(request,data); - MSG_DBG3("dri_vo_dbg: %u=vo_control( %u, %p )\n",rval,request,data); + mpxp_dbg3<<"dri_vo_dbg: "<<rval<<"=vo_control("<<request<<","<<std::hex<<reinterpret_cast<long>(data)<<std::endl; return rval; } Revision Links: -------------- http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=584&view=rev Modified Paths: -------------- mplayerxp/mpxp_msg.cpp mplayerxp/mpxp_msg.h Modified: mplayerxp/mpxp_msg.cpp =================================================================== --- mplayerxp/mpxp_msg.cpp 2012-12-20 16:14:09 UTC (rev 585) +++ mplayerxp/mpxp_msg.cpp 2012-12-20 16:15:28 UTC (rev 586) @@ -47,7 +47,7 @@ } void mpxp_streambuf::put_chars(char const* begin, char const* end) const { - parent.test_conditions(); + if(parent.test_conditions()!=MPXP_Ok) { parent.setstate(std::ios_base::badbit); return; } if(::isatty(::fileno(::stderr))) ::fwrite(data.c_str(),data.length(),1,::stderr); ::fwrite(begin,end-begin,1,::stderr); } @@ -88,8 +88,9 @@ return std::min(_idx,unsigned(sizeof(msg_prefix)/sizeof(msg_prefix[0]))); } -void mpxp_ostream::test_conditions() { - if(!(_type&mp_conf.msg_filter)) setstate(std::ios_base::badbit); +MPXP_Rc mpxp_ostream::test_conditions() { + if(!(_type&mp_conf.msg_filter)) return MPXP_False; + return MPXP_Ok; } /* TODO: replace this block with std::string */ @@ -131,30 +132,30 @@ mpxp_ostream_v::mpxp_ostream_v(mpxp_msgt_e type):mpxp_ostream(cyan,type){} mpxp_ostream_v::~mpxp_ostream_v() {} -void mpxp_ostream_v::test_conditions() { - if(mp_conf.verbose<1) setstate(ios_base::badbit); /* do not display */ - mpxp_ostream::test_conditions(); +MPXP_Rc mpxp_ostream_v::test_conditions() { + if(mp_conf.verbose<1) return MPXP_False; + return mpxp_ostream::test_conditions(); } mpxp_ostream_dbg2::mpxp_ostream_dbg2(mpxp_msgt_e type):mpxp_ostream(gray,type){} mpxp_ostream_dbg2::~mpxp_ostream_dbg2() {} -void mpxp_ostream_dbg2::test_conditions() { - if(mp_conf.verbose<2) setstate(ios_base::badbit); /* do not display */ - mpxp_ostream::test_conditions(); +MPXP_Rc mpxp_ostream_dbg2::test_conditions() { + if(mp_conf.verbose<2) return MPXP_False; + return mpxp_ostream::test_conditions(); } mpxp_ostream_dbg3::mpxp_ostream_dbg3(mpxp_msgt_e type):mpxp_ostream(gray,type){} mpxp_ostream_dbg3::~mpxp_ostream_dbg3() {} -void mpxp_ostream_dbg3::test_conditions() { - if(mp_conf.verbose<3) setstate(ios_base::badbit); /* do not display */ - mpxp_ostream::test_conditions(); +MPXP_Rc mpxp_ostream_dbg3::test_conditions() { + if(mp_conf.verbose<3) return MPXP_False; + return mpxp_ostream::test_conditions(); } mpxp_ostream_dbg4::mpxp_ostream_dbg4(mpxp_msgt_e type):mpxp_ostream(gray,type){} mpxp_ostream_dbg4::~mpxp_ostream_dbg4() {} -void mpxp_ostream_dbg4::test_conditions() { - if(mp_conf.verbose<4) setstate(ios_base::badbit); /* do not display */ - mpxp_ostream::test_conditions(); +MPXP_Rc mpxp_ostream_dbg4::test_conditions() { + if(mp_conf.verbose<4) return MPXP_False; + return mpxp_ostream::test_conditions(); } /* old stuff: */ Modified: mplayerxp/mpxp_msg.h =================================================================== --- mplayerxp/mpxp_msg.h 2012-12-20 16:14:09 UTC (rev 585) +++ mplayerxp/mpxp_msg.h 2012-12-20 16:15:28 UTC (rev 586) @@ -87,7 +87,7 @@ protected: mpxp_msgt_e _type; friend class mpxp_streambuf; - virtual void test_conditions(); + virtual MPXP_Rc test_conditions(); private: unsigned compute_idx(mpxp_msgt_e type) const; unsigned idx; @@ -142,7 +142,7 @@ mpxp_ostream_v(mpxp_msgt_e type); virtual ~mpxp_ostream_v(); protected: - virtual void test_conditions(); + virtual MPXP_Rc test_conditions(); }; class mpxp_ostream_dbg2 : public mpxp_ostream { @@ -150,7 +150,7 @@ mpxp_ostream_dbg2(mpxp_msgt_e type); virtual ~mpxp_ostream_dbg2(); protected: - virtual void test_conditions(); + virtual MPXP_Rc test_conditions(); }; class mpxp_ostream_dbg3 : public mpxp_ostream { @@ -158,7 +158,7 @@ mpxp_ostream_dbg3(mpxp_msgt_e type); virtual ~mpxp_ostream_dbg3(); protected: - virtual void test_conditions(); + virtual MPXP_Rc test_conditions(); }; class mpxp_ostream_dbg4 : public mpxp_ostream { @@ -166,7 +166,7 @@ mpxp_ostream_dbg4(mpxp_msgt_e type); virtual ~mpxp_ostream_dbg4(); protected: - virtual void test_conditions(); + virtual MPXP_Rc test_conditions(); }; void mpxp_print_init(int verbose); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-22 13:51:19
|
Revision: 598 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=598&view=rev Author: nickols_k Date: 2012-12-22 13:51:04 +0000 (Sat, 22 Dec 2012) Log Message: ----------- convert MSG_* into mpxp_ostream compatible output About illegal-patch: i've found out that total size of executable is being decreased when i replace MSG_* with corresponded mpxp_* classes for printing messages on screen. When i performed such opeartion on timer-lx.cpp then size of executable became less for more than 100Kb. The same it's possible to say about many files from libmpstream2 same as various other subfolders. It seems that malefactor(s) <together with substitution of m_config_parse_command_line() call> substitute calls of MSG_ with own versions by using of specially hacked development environment. Also, it seems that malefactor(s) somehow take into account dot('.') at end of printed messages. Modified Paths: -------------- mplayerxp/nls/mpxp_help-en.h mplayerxp/nls/mpxp_help-ru.h mplayerxp/osdep/aclib.cpp mplayerxp/osdep/aclib_template.h mplayerxp/osdep/cpudetect.cpp mplayerxp/osdep/getch2.cpp mplayerxp/osdep/lrmi.cpp mplayerxp/osdep/mp_malloc.cpp mplayerxp/osdep/osdep_msg.h mplayerxp/osdep/shmem.cpp mplayerxp/osdep/timer-lx.cpp mplayerxp/osdep/vbelib.cpp Modified: mplayerxp/nls/mpxp_help-en.h =================================================================== --- mplayerxp/nls/mpxp_help-en.h 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/nls/mpxp_help-en.h 2012-12-22 13:51:04 UTC (rev 598) @@ -427,7 +427,7 @@ #endif #ifndef MSGTR_ShMemAllocFail -#define MSGTR_ShMemAllocFail "Cannot allocate shared memory\n" +#define MSGTR_ShMemAllocFail "Cannot allocate shared memory" #endif #ifndef MSGTR_OutOfMemory #define MSGTR_OutOfMemory "Out of memory" Modified: mplayerxp/nls/mpxp_help-ru.h =================================================================== --- mplayerxp/nls/mpxp_help-ru.h 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/nls/mpxp_help-ru.h 2012-12-22 13:51:04 UTC (rev 598) @@ -196,7 +196,7 @@ #define MSGTR_BadMpegSequHdr "MPEG: Плохая последовательность заголовков!\n" #define MSGTR_BadMpegSequHdrEx "MPEG: Плохое расширение последовательности заголовков!\n" -#define MSGTR_ShMemAllocFail "Не могу захватить общую память\n" +#define MSGTR_ShMemAllocFail "Не могу захватить разделяемую память" #define MSGTR_OutOfMemory "Нехватает памяти" #define MSGTR_CantAllocAudioBuf "Не могу захватить выходной буффер аудио\n" #define MSGTR_NoMemForDecodedImage "Не достаточно памяти для буффера декодирования картинки (%ld байт)\n" Modified: mplayerxp/osdep/aclib.cpp =================================================================== --- mplayerxp/osdep/aclib.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/aclib.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -27,70 +27,63 @@ static any_t* init_fast_memcpy(any_t* to, const any_t* from, size_t len) { #ifdef __SSE2__ - if(gCpuCaps.hasSSE2) - { - MSG_V("Using SSE2 optimized memcpy\n"); - fast_memcpy_ptr = fast_memcpy_SSE2; - } - else + if(gCpuCaps.hasSSE2) { + mpxp_v<<"Using SSE2 optimized memcpy"<<std::endl; + fast_memcpy_ptr = fast_memcpy_SSE2; + } else #endif #ifndef __x86_64__ #ifdef __SSE__ - if(gCpuCaps.hasMMX2) - { - MSG_V("Using MMX2 optimized memcpy\n"); - fast_memcpy_ptr = fast_memcpy_SSE; - } - else + if(gCpuCaps.hasMMX2) { + mpxp_v<<"Using MMX2 optimized memcpy"<<std::endl; + fast_memcpy_ptr = fast_memcpy_SSE; + } else #endif //#ifdef __MMX__ // if(gCpuCaps.hasMMX) // { -// MSG_V("Using MMX optimized memcpy\n"); +// mpxp_v<<"Using MMX optimized memcpy"<<std::endl; // fast_memcpy_ptr = fast_memcpy_MMX; // } // else //#endif #endif - { - MSG_V("Using generic memcpy\n"); - fast_memcpy_ptr = memcpy; /* prior to mmx we use the standart memcpy */ - } - return (*fast_memcpy_ptr)(to,from,len); + { + mpxp_v<<"Using generic memcpy"<<std::endl; + fast_memcpy_ptr = memcpy; /* prior to mmx we use the standart memcpy */ + } + return (*fast_memcpy_ptr)(to,from,len); } static any_t* init_stream_copy(any_t* to, const any_t* from, size_t len) { #ifdef __SSE2__ - if(gCpuCaps.hasSSE2) - { - MSG_V("Using SSE2 optimized agpcpy\n"); - fast_stream_copy_ptr = fast_stream_copy_SSE2; - } + if(gCpuCaps.hasSSE2) { + mpxp_v<<"Using SSE2 optimized agpcpy"<<std::endl; + fast_stream_copy_ptr = fast_stream_copy_SSE2; + } #endif #ifndef __x86_64__ #ifdef __SSE__ - if(gCpuCaps.hasMMX2) - { - MSG_V("Using MMX2 optimized agpcpy\n"); - fast_stream_copy_ptr = fast_stream_copy_SSE; - } - else + if(gCpuCaps.hasMMX2) { + mpxp_v<<"Using MMX2 optimized agpcpy"<<std::endl; + fast_stream_copy_ptr = fast_stream_copy_SSE; + } else #endif //#ifdef __MMX__ // if(gCpuCaps.hasMMX) // { -// MSG_V("Using MMX optimized agpcpy\n"); +// mpxp_v<<"Using MMX optimized agpcpy"<<std::endl; // fast_stream_copy_ptr = fast_stream_copy_MMX; // } // else //#endif #endif - { - MSG_V("Using generic optimized agpcpy\n"); - fast_stream_copy_ptr = ::memcpy; /* prior to mmx we use the standart memcpy */ - } - return (*fast_stream_copy_ptr)(to,from,len); + { + mpxp_v<<"Using generic optimized agpcpy"<<std::endl; + fast_stream_copy_ptr = ::memcpy; /* prior to mmx we use the standart memcpy */ + } + return (*fast_stream_copy_ptr)(to,from,len); } any_t*(*fast_memcpy_ptr)(any_t* to, const any_t* from, size_t len) = init_fast_memcpy; Modified: mplayerxp/osdep/aclib_template.h =================================================================== --- mplayerxp/osdep/aclib_template.h 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/aclib_template.h 2012-12-22 13:51:04 UTC (rev 598) @@ -164,7 +164,7 @@ #define MEM_SFENCE _ivec_sfence(); static inline any_t* PVECTOR_RENAME(fast_stream_copy)(any_t* to, const any_t* from, size_t len) { - MSG_DBG3("fast_stream_copy(%p, %p, %u) [cl_size=%u]\n",to,from,len,gCpuCaps.cl_size); + mpxp_dbg3<<"fast_stream_copy("<<to<<", "<<from<<", "<<len<<") [cl_size="<<gCpuCaps.cl_size<<"]"<<std::endl; FAST_MEMORY_COPY(to,from,len); } @@ -174,7 +174,7 @@ #define MEM_SFENCE static inline any_t* PVECTOR_RENAME(fast_memcpy)(any_t* to, const any_t* from, size_t len) { - MSG_DBG3("fast_memcpy(%p, %p, %u) [cl_size=%u]\n",to,from,len,gCpuCaps.cl_size); + mpxp_dbg3<<"fast_memcpy("<<to<<", "<<from<<", "<<len<<") [cl_size="<<gCpuCaps.cl_size<<"]"<<std::endl; FAST_MEMORY_COPY(to,from,len); } } // namesapce mpxp Modified: mplayerxp/osdep/cpudetect.cpp =================================================================== --- mplayerxp/osdep/cpudetect.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/cpudetect.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -87,21 +87,18 @@ caps->isX86=1; caps->cl_size=32; /* default */ if (!has_cpuid()) { - MSG_WARN("CPUID not supported!???\n"); + mpxp_warn<<"CPUID not supported!???"<<std::endl; return; } do_cpuid(0x00000000, regs); // get _max_ cpuid level and vendor name - MSG_V("CPU vendor name: %.4s%.4s%.4s max cpuid level: %d\n", - (char*) (regs+1),(char*) (regs+3),(char*) (regs+2), regs[0]); - if (regs[0]>=0x00000001) - { + if (regs[0]>=0x00000001) { char *tmpstr; unsigned cl_size; do_cpuid(0x00000001, regs2); tmpstr=GetCpuFriendlyName(regs, regs2); - MSG_V("CPU: %s ",tmpstr); + mpxp_v<<"CPU: "<<tmpstr<<std::endl; delete tmpstr; caps->cpuType=(regs2[0] >> 8)&0xf; @@ -110,8 +107,7 @@ caps->cpuType=8+((regs2[0]>>20)&255); } caps->cpuStepping=regs2[0] & 0xf; - MSG_V("(Type: %d, Stepping: %d)\n", - caps->cpuType, caps->cpuStepping); + mpxp_v<<"(Type: "<<caps->cpuType<<", Stepping: "<<caps->cpuStepping<<")"<<std::endl; // general feature flags: caps->hasMMX = (regs2[3] & (1 << 23 )) >> 23; // 0x0800000 @@ -130,7 +126,7 @@ } do_cpuid(0x80000000, regs); if (regs[0]>=0x80000001) { - MSG_V("extended cpuid-level: %d\n",regs[0]&0x7FFFFFFF); + mpxp_v<<"extended cpuid-level: "<<(regs[0]&0x7FFFFFFF)<<std::endl; do_cpuid(0x80000001, regs2); caps->hasMMX |= (regs2[3] & (1 << 23 )) >> 23; // 0x0800000 caps->hasMMX2 |= (regs2[3] & (1 << 22 )) >> 22; // 0x400000 @@ -140,25 +136,24 @@ if(regs[0]>=0x80000006) { do_cpuid(0x80000006, regs2); - MSG_V("extended cache-info: %d\n",regs2[2]); + mpxp_v<<"extended cache-info: "<<regs2[2]<<std::endl; caps->cl_size = regs2[2] & 0xFF; } - MSG_V("Detected cache-line size is %u bytes\n",caps->cl_size); - MSG_V("cpudetect: MMX=%d MMX2=%d 3DNow=%d 3DNow2=%d SSE=%d SSE2=%d SSE3=%d SSSE3=%d SSE41=%d SSE42=%d AES=%d AVX=%d FMA=%d\n", - gCpuCaps.hasMMX, - gCpuCaps.hasMMX2, - gCpuCaps.has3DNow, - gCpuCaps.has3DNowExt, - gCpuCaps.hasSSE, - gCpuCaps.hasSSE2, - gCpuCaps.hasSSE3, - gCpuCaps.hasSSSE3, - gCpuCaps.hasSSE41, - gCpuCaps.hasSSE42, - gCpuCaps.hasAES, - gCpuCaps.hasAVX, - gCpuCaps.hasFMA -); + mpxp_v<<"Detected cache-line size is "<<caps->cl_size<<" bytes"<<std::endl; + mpxp_v<<"cpudetect: MMX="<<gCpuCaps.hasMMX + <<" MMX2="<<gCpuCaps.hasMMX2 + <<" 3DNow="<<gCpuCaps.has3DNow + <<" 3DNow2="<<gCpuCaps.has3DNowExt + <<" SSE="<<gCpuCaps.hasSSE + <<" SSE2="<<gCpuCaps.hasSSE2 + <<" SSE3="<<gCpuCaps.hasSSE3 + <<" SSSE3="<<gCpuCaps.hasSSSE3 + <<" SSE41="<<gCpuCaps.hasSSE41 + <<" SSE42="<<gCpuCaps.hasSSE42 + <<" AES="<<gCpuCaps.hasAES + <<" AVX="<<gCpuCaps.hasAVX + <<" FMA="<<gCpuCaps.hasFMA + <<std::endl; } @@ -176,8 +171,8 @@ int i; if (NULL==(retname=(char*)mp_malloc(256))) { - MSG_ERR(MSGTR_OutOfMemory); - exit(1); + mpxp_err<<MSGTR_OutOfMemory<<std::endl; + ::exit(1); } sprintf(vendor,"%.4s%.4s%.4s",(char*)(regs+1),(char*)(regs+3),(char*)(regs+2)); @@ -188,20 +183,14 @@ snprintf(retname,255,"%s %s",cpuvendors[i].name,cpuname[i][CPUID_FAMILY][CPUID_MODEL]); } else { snprintf(retname,255,"unknown %s %d. Generation CPU",cpuvendors[i].name,CPUID_FAMILY); - MSG_ERR("unknown %s CPU:\n" - "Vendor: %s\n" - "Type: %d\n" - "Family: %d (ext: %d)\n" - "Model: %d (ext: %d)\n" - "Stepping: %d\n" - "Please send the above info along with the exact CPU name" - "to the MPlayer-Developers, so we can add it to the list!\n" - ,cpuvendors[i].name - ,cpuvendors[i].string - ,CPUID_TYPE - ,CPUID_FAMILY,CPUID_EXTFAMILY - ,CPUID_MODEL,CPUID_EXTMODEL - ,CPUID_STEPPING); + mpxp_err<<"unknown "<<cpuvendors[i].name<<" CPU:"<<std::endl; + mpxp_err<<"Vendor: "<<cpuvendors[i].string<<std::endl; + mpxp_err<<"Type: "<<CPUID_TYPE<<std::endl; + mpxp_err<<"Family: "<<CPUID_FAMILY<<" (ext: "<<CPUID_EXTFAMILY<<")"<<std::endl; + mpxp_err<<"Model: "<<CPUID_MODEL<<" (ext: "<<CPUID_EXTMODEL<<")"<<std::endl; + mpxp_err<<"Stepping: "<<CPUID_STEPPING<<std::endl; + mpxp_err<<"Please send the above info along with the exact CPU name"<<std::endl; + mpxp_err<<"to the MPlayer-Developers, so we can add it to the list!"<<std::endl; } } } @@ -221,7 +210,7 @@ #if defined(__linux__) && defined(_POSIX_SOURCE) && defined(X86_FXSR_MAGIC) static void sigill_handler_sse( int signal, struct sigcontext sc ) { - MSG_ERR( "SIGILL, " ); + mpxp_err<<"SIGILL, "; /* Both the "xorps %%xmm0,%%xmm0" and "divps %xmm0,%%xmm1" * instructions are 3 bytes long. We must increment the instruction @@ -240,7 +229,7 @@ static void sigfpe_handler_sse( int signal, struct sigcontext sc ) { - MSG_ERR( "SIGFPE, " ); + mpxp_err<<"SIGFPE, "; if ( sc.fpstate->magic != 0xffff ) { /* Our signal context has the extended FPU state, so reset the @@ -252,8 +241,8 @@ } else { /* If we ever get here, we're completely hosed. */ - MSG_ERR( "\n\n" ); - MSG_ERR( "SSE enabling test failed badly!" ); + mpxp_err<<std::endl; + mpxp_err<<"SSE enabling test failed badly!"<<std::endl; } } #endif /* __linux__ && _POSIX_SOURCE && X86_FXSR_MAGIC */ @@ -295,16 +284,13 @@ * does. */ if ( gCpuCaps.hasSSE ) { - MSG_V( "Testing OS support for SSE... " ); + mpxp_v<<"Testing OS support for SSE... "; // __asm __volatile ("xorps %%xmm0, %%xmm0"); __asm __volatile ("xorps %xmm0, %xmm0"); - if ( gCpuCaps.hasSSE ) { - MSG_V( "yes.\n" ); - } else { - MSG_V( "no!\n" ); - } + if ( gCpuCaps.hasSSE ) mpxp_v<<"yes"<<std::endl; + else mpxp_v<<"no!"<<std::endl; } /* Emulate test for OSXMMEXCPT in CR4. The OS will set this bit if @@ -321,15 +307,12 @@ * and therefore to be safe I'm going to leave this test in here. */ if ( gCpuCaps.hasSSE ) { - MSG_V( "Testing OS support for SSE unmasked exceptions... " ); + mpxp_v<<"Testing OS support for SSE unmasked exceptions... "; // test_os_katmai_exception_support(); - if ( gCpuCaps.hasSSE ) { - MSG_V( "yes.\n" ); - } else { - MSG_V( "no!\n" ); - } + if ( gCpuCaps.hasSSE ) mpxp_v<<"yes"<<std::endl; + else mpxp_v<<"no!"<<std::endl; } /* Restore the original signal handlers. @@ -340,22 +323,19 @@ /* If we've gotten to here and the XMM CPUID bit is still set, we're * safe to go ahead and hook out the SSE code throughout Mesa. */ - if ( gCpuCaps.hasSSE ) { - MSG_V( "Tests of OS support for SSE passed.\n" ); - } else { - MSG_WARN( "Tests of OS support for SSE failed!\n" ); - } + if ( gCpuCaps.hasSSE ) mpxp_v<<"Tests of OS support for SSE passed"<<std::endl; + else mpxp_warn<<"Tests of OS support for SSE failed!"<<std::endl; #else /* We can't use POSIX signal handling to test the availability of * SSE, so we disable it by default. */ - MSG_WARN( "Cannot test OS support for SSE, disabling to be safe.\n" ); + mpxp_warn<<"Cannot test OS support for SSE, disabling to be safe"<<std::endl; gCpuCaps.hasSSE=0; #endif /* _POSIX_SOURCE && X86_FXSR_MAGIC */ #else /* Do nothing on other platforms for now. */ - MSG_V( "Not testing OS support for SSE, leaving disabled.\n" ); + mpxp_v<<"Not testing OS support for SSE, leaving disabled"<<std::endl; gCpuCaps.hasSSE=0; #endif /* __linux__ */ #endif /*ARCH_X86_64*/ Modified: mplayerxp/osdep/getch2.cpp =================================================================== --- mplayerxp/osdep/getch2.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/getch2.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -83,8 +83,8 @@ int load_termcap(const char *termtype){ if(!termtype) termtype=getenv("TERM"); success=tgetent(term_buffer, termtype); - if(success<0){ MSG_ERR("Could not access the 'termcap' data base.\n"); return 0; } - if(success==0){ MSG_ERR("Terminal type `%s' is not defined.\n", termtype);return 0;} + if(success<0){ mpxp_err<<"Could not access the 'termcap' data base"<<std::endl; return 0; } + if(success==0){ mpxp_err<<"Terminal type `"<<termtype<<"' is not defined"<<std::endl; return 0;} screen_width=tgetnum("co"); screen_height=tgetnum("li"); Modified: mplayerxp/osdep/lrmi.cpp =================================================================== --- mplayerxp/osdep/lrmi.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/lrmi.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -803,32 +803,32 @@ unsigned char *p; fputs("vm86() failed\n", stderr); - MSG_V( "return = 0x%x\n", vret); - MSG_V( "eax = 0x%08lx\n", context.vm.regs.eax); - MSG_V( "ebx = 0x%08lx\n", context.vm.regs.ebx); - MSG_V( "ecx = 0x%08lx\n", context.vm.regs.ecx); - MSG_V( "edx = 0x%08lx\n", context.vm.regs.edx); - MSG_V( "esi = 0x%08lx\n", context.vm.regs.esi); - MSG_V( "edi = 0x%08lx\n", context.vm.regs.edi); - MSG_V( "ebp = 0x%08lx\n", context.vm.regs.ebp); - MSG_V( "eip = 0x%08lx\n", context.vm.regs.eip); - MSG_V( "cs = 0x%04x\n", context.vm.regs.cs); - MSG_V( "esp = 0x%08lx\n", context.vm.regs.esp); - MSG_V( "ss = 0x%04x\n", context.vm.regs.ss); - MSG_V( "ds = 0x%04x\n", context.vm.regs.ds); - MSG_V( "es = 0x%04x\n", context.vm.regs.es); - MSG_V( "fs = 0x%04x\n", context.vm.regs.fs); - MSG_V( "gs = 0x%04x\n", context.vm.regs.gs); - MSG_V( "eflags = 0x%08lx\n", context.vm.regs.eflags); + mpxp_v<< "return = 0x"<<std::hex<<vret<<std::endl; + mpxp_v<< "eax = 0x"<<std::hex<<context.vm.regs.eax<<std::endl; + mpxp_v<< "ebx = 0x"<<std::hex<<context.vm.regs.ebx<<std::endl; + mpxp_v<< "ecx = 0x"<<std::hex<<context.vm.regs.ecx<<std::endl; + mpxp_v<< "edx = 0x"<<std::hex<<context.vm.regs.edx<<std::endl; + mpxp_v<< "esi = 0x"<<std::hex<<context.vm.regs.esi<<std::endl; + mpxp_v<< "edi = 0x"<<std::hex<<context.vm.regs.edi<<std::endl; + mpxp_v<< "ebp = 0x"<<std::hex<<context.vm.regs.ebp<<std::endl; + mpxp_v<< "eip = 0x"<<std::hex<<context.vm.regs.eip<<std::endl; + mpxp_v<< "cs = 0x"<<std::hex<<context.vm.regs.cs<<std::endl; + mpxp_v<< "esp = 0x"<<std::hex<<context.vm.regs.esp<<std::endl; + mpxp_v<< "ss = 0x"<<std::hex<<context.vm.regs.ss<<std::endl; + mpxp_v<< "ds = 0x"<<std::hex<<context.vm.regs.ds<<std::endl; + mpxp_v<< "es = 0x"<<std::hex<<context.vm.regs.es<<std::endl; + mpxp_v<< "fs = 0x"<<std::hex<<context.vm.regs.fs<<std::endl; + mpxp_v<< "gs = 0x"<<std::hex<<context.vm.regs.gs<<std::endl; + mpxp_v<< "eflags = 0x"<<std::hex<<context.vm.regs.eflags<<std::endl; - MSG_V("cs:ip = [ "); + mpxp_v<<"cs:ip = [ "); p = (unsigned char *)((context.vm.regs.cs << 4) + (context.vm.regs.eip & 0xffff)); for (i = 0; i < 16; ++i) - MSG_V( "%02x ", (unsigned int)p[i]); + mpxp_v<<(unsigned int)p[i]); - MSG_V("]\n"); + mpxp_v<<"]"<<std::endl; } #endif @@ -923,7 +923,7 @@ if (seg < 0xa000 || (seg << 4) + off >= 0x100000) { #ifdef ORIGINAL_LRMI_CODE_THAT_GOT_IFDEFED_OUT - MSG_WARN( "Int 0x%x is not in rom (%04x:%04x)\n", i, seg, off); + mpxp_warn<<"Int 0x"<<std::hex<<i<<" is not in rom ("<<std::hex<<seg<<":"<<std::hex<<off<<")"<<std::endl; #endif return 0; } Modified: mplayerxp/osdep/mp_malloc.cpp =================================================================== --- mplayerxp/osdep/mp_malloc.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/mp_malloc.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -59,10 +59,7 @@ static void __prot_print_slots(mp_slot_container_t* c) { size_t i; for(i=0;i<c->nslots;i++) { - MSG_INFO("slot[%u] address: %p size: %u\n" - ,i - ,c->slots[i].page_ptr - ,c->slots[i].size); + mpxp_info<<"slot["<<i<<"] address: "<<c->slots[i].page_ptr<<" size: "<<c->slots[i].size<<std::endl; } } @@ -203,9 +200,9 @@ any_t* calls[num]; unsigned i,ncalls; ncalls=backtrace(calls,num); - MSG_INFO("*** Backtrace for suspect call ***\n"); + mpxp_info<<"*** Backtrace for suspect call ***"<<std::endl; for(i=0;i<ncalls;i++) { - MSG_INFO(" %p -> %s\n",calls[i],addr2line(cache,calls[i])); + mpxp_info<<" "<<calls[i]<<" -> "<<addr2line(cache,calls[i])<<std::endl; } uninit_bt_cache(cache); } @@ -213,9 +210,9 @@ void print_backtrace(const std::string& why,any_t** stack,unsigned num) { char result[4096]; unsigned i; - MSG_INFO(!why.empty()?why.c_str():"*** Backtrace for suspect call ***\n"); + mpxp_info<<(!why.empty()?why.c_str():"*** Backtrace for suspect call ***")<<std::endl; for(i=0;i<num;i++) { - MSG_INFO(" %p -> %s\n",stack[i],exec_addr2line(stack[i],result,sizeof(result))); + mpxp_info<<" "<<stack[i]<<" -> "<<exec_addr2line(stack[i],result,sizeof(result))<<std::endl; } } @@ -355,7 +352,7 @@ if(rp) { slot=prot_find_slot(&priv->mallocs,ptr); if(!slot) { - MSG_WARN("[bt_realloc] suspect call found! Can't find slot for address: %p\n",ptr); + mpxp_warn<<"[bt_realloc] suspect call found! Can't find slot for address: "<<ptr<<std::endl; mp_slot_t* _slot; _slot=prot_append_slot(&priv->reallocs,ptr,size); _slot->ncalls=backtrace(_slot->calls,Max_BackTraces); @@ -370,7 +367,7 @@ static __always_inline void bt_free(any_t*ptr) { mp_slot_t* slot=prot_find_slot(&priv->mallocs,ptr); if(!slot) { - MSG_WARN("[bt_free] suspect call found! Can't find slot for address: %p\n",ptr); + mpxp_warn<<"[bt_free] suspect call found! Can't find slot for address: "<<ptr<<std::endl; mp_slot_t* _slot; _slot=prot_append_slot(&priv->frees,ptr,0); _slot->ncalls=backtrace(_slot->calls,Max_BackTraces); @@ -387,7 +384,7 @@ for(i=0;i<c->nslots;i++) { char *s; int printable=1; - MSG_INFO("address: %p size: %u dump: ",c->slots[i].page_ptr,c->slots[i].size); + mpxp_info<<"address: "<<c->slots[i].page_ptr<<" size: "<<c->slots[i].size<<" dump: "; s=reinterpret_cast<char *>(c->slots[i].page_ptr); for(j=0;j<std::min(c->slots[i].size,size_t(20));j++) { if(!isprint(s[j])) { @@ -395,13 +392,13 @@ break; } } - if(printable) MSG_INFO("%20s",s); + if(printable) mpxp_info<<std::string(s).substr(0,20)<<std::endl; else for(j=0;j<std::min(c->slots[i].size,size_t(Max_BackTraces));j++) { - MSG_INFO("%02X ",(unsigned char)s[j]); + mpxp_info<<(unsigned char)s[j]<<" "; } - MSG_INFO("\n"); + mpxp_info<<std::endl; for(j=0;j<c->slots[i].ncalls;j++) { - MSG_INFO("%s%p -> %s\n",j==0?"bt=>":" ",c->slots[i].calls[j],addr2line(cache,c->slots[i].calls[j])); + mpxp_info<<(j==0?"bt=>":" ")<<c->slots[i].calls[j]<<" -> "<<addr2line(cache,c->slots[i].calls[j])<<std::endl; } } } @@ -427,31 +424,31 @@ unsigned i; total=0; for(i=0;i<priv->mallocs.nslots;i++) total+=priv->mallocs.slots[i].size; - MSG_WARN("Warning! %lli slots were not freed. Totally %llu bytes was leaked\n",priv->mallocs.nslots,total); + mpxp_warn<<"Warning! "<<priv->mallocs.nslots<<" slots were not freed. Totally "<<total<<" bytes was leaked"<<std::endl; } if(verbose) { if(priv->mallocs.nslots) { - MSG_INFO("****** List of malloced but not freed pointers *******\n"); + mpxp_info<<"****** List of malloced but not freed pointers *******"<<std::endl; bt_print_slots(cache,&priv->mallocs); done=1; } if(priv->reallocs.nslots) { - MSG_INFO("\n****** List of suspect realloc() calls *******\n"); + mpxp_info<<std::endl<<"****** List of suspect realloc() calls *******"<<std::endl; bt_print_slots(cache,&priv->reallocs); done=1; } if(priv->frees.nslots) { - MSG_INFO("\n****** List of suspect free() calls *******\n"); + mpxp_info<<std::endl<<"****** List of suspect free() calls *******"<<std::endl; bt_print_slots(cache,&priv->frees); done=1; } } else { if(priv->reallocs.nslots || priv->frees.nslots) - MSG_WARN("*** Were found suspect calls of mp_realloc or mp_free ***\n" - "*** Most probably your copy of program contains viruses!!!\n"); + mpxp_warn<<"*** Were found suspect calls of mp_realloc or mp_free ***"<<std::endl; + mpxp_warn<<"*** Most probably your copy of program contains viruses!!!"<<std::endl; } } - if(done) MSG_HINT("\nFor source lines you may also print in (gdb): list *0xADDRESS\n"); + if(done) mpxp_hint<<std::endl<<"For source lines you may also print in (gdb): list *0xADDRESS"<<std::endl; uninit_bt_cache(cache); free(priv); priv=NULL; Modified: mplayerxp/osdep/osdep_msg.h =================================================================== --- mplayerxp/osdep/osdep_msg.h 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/osdep_msg.h 2012-12-22 13:51:04 UTC (rev 598) @@ -1,9 +1,6 @@ #ifndef OSDEP_MSG_H #define OSDEP_MSG_H -#ifndef MSGT_CLASS -#define MSGT_CLASS MSGT_OSDEP -#endif #include "mpxp_msg.h" namespace mpxp { Modified: mplayerxp/osdep/shmem.cpp =================================================================== --- mplayerxp/osdep/shmem.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/shmem.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -47,18 +47,18 @@ #ifdef MAP_ANON p=mmap(0,size,PROT_READ|PROT_WRITE,MAP_ANON|MAP_SHARED,-1,0); if(p==MAP_FAILED) break; // failed - MSG_DBG2( "shmem: %d bytes allocated using mmap anon (%p)\n",size,p); + mpxp_dbg2<<"shmem: "<<size<<" bytes allocated using mmap anon"<<std::endl; return p; #else // system does not support MAP_ANON at all (e.g. solaris 2.5.1/2.6), just fail - MSG_DBG3( "shmem: using mmap anon failed\n"); + mpxp_dbg3<<"shmem: using mmap anon failed"<<std::endl; #endif break; case 1: // ========= MAP_SHARED + /dev/zero ========== if (devzero == -1 && (devzero = open("/dev/zero", O_RDWR, 0)) == -1) break; p=mmap(0,size,PROT_READ|PROT_WRITE,MAP_SHARED,devzero,0); if(p==MAP_FAILED) break; // failed - MSG_DBG2( "shmem: %d bytes allocated using mmap /dev/zero (%p)\n",size,p); + mpxp_dbg2<<"shmem: "<<size<<" bytes allocated using mmap /dev/zero"<<std::endl; return p; case 2: { // ========= shmget() ========== #ifdef HAVE_SHM @@ -66,24 +66,24 @@ int shmemid; if ((shmemid = shmget(IPC_PRIVATE, size, IPC_CREAT | 0600)) == -1) break; if ((p = shmat(shmemid, 0, 0)) == (any_t*)-1){ - MSG_ERR( "shmem: shmat() failed: %s\n", strerror(errno)); + mpxp_err<<"shmem: shmat() failed: "<<strerror(errno)<<std::endl; shmctl (shmemid, IPC_RMID, &shmemds); break; } if (shmctl(shmemid, IPC_RMID, &shmemds) == -1) { - MSG_ERR( "shmem: shmctl() failed: %s\n", strerror(errno)); + mpxp_err<<"shmem: shmctl() failed: "<<strerror(errno)<<std::endl; if (shmdt(p) == -1) perror ("shmdt()"); break; } - MSG_DBG2( "shmem: %d bytes allocated using SHM (%p)\n",size,p); + mpxp_dbg2<<"shmem: "<<size<<" bytes allocated using SHM"<<std::endl; return p; #else - MSG_FATAL( "shmem: no SHM support was compiled in!\n"); + mpxp_fatal<<"shmem: no SHM support was compiled in!"<<std::endl; return(NULL); #endif } default: - MSG_FATAL(MSGTR_ShMemAllocFail); + mpxp_fatal<<MSGTR_ShMemAllocFail<<std::endl; return NULL; } ++shmem_type; @@ -94,11 +94,10 @@ switch(shmem_type){ case 2: #ifdef HAVE_SHM - if (shmdt(p) == -1) - MSG_ERR( "shmfree: shmdt() failed: %s\n", - strerror(errno)); + if (shmdt(p) == -1) + mpxp_err<<"shmfree: shmdt() failed: "<<strerror(errno)<<std::endl; #else - MSG_ERR( "shmfree: no SHM support was compiled in!\n"); + mpxp_err<<"shmfree: no SHM support was compiled in!"<<std::endl; #endif break; } Modified: mplayerxp/osdep/timer-lx.cpp =================================================================== --- mplayerxp/osdep/timer-lx.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/timer-lx.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -24,31 +24,31 @@ struct timespec ts; ts.tv_sec = usec_delay / 1000000; ts.tv_nsec = (usec_delay % 1000000) * 1000; - return nanosleep(&ts, NULL); + return ::nanosleep(&ts, NULL); #else - return usleep(usec_delay); + return ::usleep(usec_delay); #endif } // Returns current time in microseconds unsigned int GetTimer(){ - struct timeval tv; - struct timezone tz; + struct timeval tv; + struct timezone tz; // float s; - gettimeofday(&tv,NULL); + ::gettimeofday(&tv,NULL); // s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec; - return (tv.tv_sec*1000000ULL+tv.tv_usec); + return (tv.tv_sec*1000000ULL+tv.tv_usec); } // Returns current time in milliseconds unsigned int GetTimerMS(){ - struct timeval tv; - struct timezone tz; + struct timeval tv; + struct timezone tz; // float s; - gettimeofday(&tv,NULL); + ::gettimeofday(&tv,NULL); // s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec; - return (tv.tv_sec*1000+tv.tv_usec/1000); + return (tv.tv_sec*1000+tv.tv_usec/1000); } static unsigned int RelativeTime=0; @@ -56,33 +56,33 @@ // Returns time spent between now and last call in seconds float GetRelativeTime(){ unsigned int t,r; - t=GetTimer(); - r=t-RelativeTime; - RelativeTime=t; - return (float)r * 0.000001F; + t=GetTimer(); + r=t-RelativeTime; + RelativeTime=t; + return (float)r * 0.000001F; } // Initialize timer, must be called at least once at start int InitTimer(void){ - int rtc_fd=-1; - GetRelativeTime(); + int rtc_fd=-1; + GetRelativeTime(); #ifdef HAVE_RTC - if ((rtc_fd = open("/dev/rtc", O_RDONLY)) < 0) perror ("Linux RTC init: open"); - else { + if ((rtc_fd = ::open("/dev/rtc", O_RDONLY)) < 0) perror ("Linux RTC init: open"); + else { unsigned long irqp; /* if (ioctl(rtc_fd, RTC_IRQP_SET, _) < 0) */ - if (ioctl(rtc_fd, RTC_IRQP_READ, &irqp) < 0) { - perror ("Linux RTC init: ioctl (rtc_irqp_read)"); - close (rtc_fd); - rtc_fd = -1; - } else if (ioctl(rtc_fd, RTC_PIE_ON, 0) < 0) { - /* variable only by the root */ - perror ("Linux RTC init: ioctl (rtc_pie_on)"); - close (rtc_fd); - rtc_fd = -1; + if (::ioctl(rtc_fd, RTC_IRQP_READ, &irqp) < 0) { + ::perror ("Linux RTC init: ioctl (rtc_irqp_read)"); + ::close (rtc_fd); + rtc_fd = -1; + } else if (::ioctl(rtc_fd, RTC_PIE_ON, 0) < 0) { + /* variable only by the root */ + ::perror ("Linux RTC init: ioctl (rtc_pie_on)"); + ::close (rtc_fd); + rtc_fd = -1; } else - MSG_V("Using Linux's hardware RTC timing (%ldHz)\n", irqp); + mpxp_v<<"Using Linux's hardware RTC timing ("<<irqp<<"Hz)"<<std::endl; } #endif return rtc_fd; @@ -95,8 +95,8 @@ // -------- RTC ----------- while (time_frame > 0.000) { unsigned long rtc_ts; - if (read (rtc_fd, &rtc_ts, sizeof(rtc_ts)) <= 0) - MSG_ERR( "Linux RTC read error: %s\n", strerror(errno)); + if (::read (rtc_fd, &rtc_ts, sizeof(rtc_ts)) <= 0) + mpxp_err<<"Linux RTC read error: "<<strerror(errno)<<std::endl; time_frame-=GetRelativeTime(); } } else @@ -112,7 +112,7 @@ time_frame-=GetRelativeTime(); } if(softsleep){ - if(time_frame<0) MSG_WARN( "Warning! Softsleep underflow!\n"); + if(time_frame<0) mpxp_warn<<"Warning! Softsleep underflow!"<<std::endl; while(time_frame>0) time_frame-=GetRelativeTime(); // burn the CPU } } Modified: mplayerxp/osdep/vbelib.cpp =================================================================== --- mplayerxp/osdep/vbelib.cpp 2012-12-22 12:47:25 UTC (rev 597) +++ mplayerxp/osdep/vbelib.cpp 2012-12-22 13:51:04 UTC (rev 598) @@ -65,14 +65,25 @@ static void __dump_regs(struct LRMI_regs *r) { - MSG_DBG2("vbelib: eax=%08lXh ebx=%08lXh ecx=%08lXh edx=%08lXh\n" - "vbelib: edi=%08lXh esi=%08lXh ebp=%08lXh esp=%08lXh\n" - "vbelib: ds=%04Xh es=%04Xh ss=%04Xh cs:ip=%04X:%04X\n" - "vbelib: fs=%04Xh gs=%04Xh ss:sp=%04X:%04X flags=%04X\n" - ,(unsigned long)r->eax,(unsigned long)r->ebx,(unsigned long)r->ecx,(unsigned long)r->edx - ,(unsigned long)r->edi,(unsigned long)r->esi,(unsigned long)r->ebp,(unsigned long)r->reserved - ,r->ds,r->es,r->ss,r->cs,r->ip - ,r->fs,r->gs,r->ss,r->sp,r->flags); + mpxp_dbg2<<"vbelib:" + <<"eax="<<std::hex<<(unsigned long)r->eax + <<"ebx="<<std::hex<<(unsigned long)r->ebx + <<"ecx="<<std::hex<<(unsigned long)r->ecx + <<"edx="<<std::hex<<(unsigned long)r->edx<<std::endl; + mpxp_dbg2<<"vbelib:" + <<"edi="<<std::hex<<(unsigned long)r->edi + <<"esi="<<std::hex<<(unsigned long)r->esi + <<"ebp="<<std::hex<<(unsigned long)r->ebp + <<"esp="<<std::hex<<(unsigned long)r->reserved<<std::endl; + mpxp_dbg2<<"vbelib:" + <<"ds="<<r->ds + <<"es="<<r->es + <<"ss="<<r->ss + <<"fs="<<r->fs + <<"gs="<<r->gs + <<"cs="<<r->cs<<":ip="<<r->ip + <<"ss="<<r->ss<<":sp="<<r->sp + <<"flags="<<r->flags<<std::endl; } static inline int VBE_LRMI_int(int int_no, struct LRMI_regs *r) @@ -80,16 +91,14 @@ int retval; if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: registers before int %02X\n",int_no); + mpxp_dbg2<<"vbelib: registers before int "<<std::hex<<int_no<<std::endl; __dump_regs(r); } retval = LRMI_int(int_no,r); if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: Interrupt handler returns: %X\n" - "vbelib: registers after int %02X\n" - ,retval - ,int_no); + mpxp_dbg2<<"vbelib: Interrupt handler returns: "<<std::hex<<retval<<std::endl; + mpxp_dbg2<<"vbelib: registers after int "<<std::hex<<int_no<<std::endl; __dump_regs(r); } return retval; @@ -223,20 +232,19 @@ { size_t i; fflush(stdout); - MSG_V("vbelib: "); - for(i = 0;i < 256;i++) { MSG_V("%02X(%c) ",str[i],isprint(str[i])?str[i]:'.'); if(!str[i]) break; } - MSG_V("\n"); - fflush(stdout); + mpxp_v<<"vbelib: "; + for(i = 0;i < 256;i++) { mpxp_v<<std::hex<<str[i]<<"("<<str[i]<<")"; if(!str[i]) break; } + mpxp_v<<std::endl; + mpxp_v.flush(); } static void print_wrd(unsigned short *str) { size_t i; - fflush(stdout); - MSG_V("vbelib: "); - for(i = 0;i < 256;i++) { MSG_V("%04X ",str[i]); if(str[i] == 0xffff) break; } - MSG_V("\n"); - fflush(stdout); + mpxp_v<<"vbelib: "; + for(i = 0;i < 256;i++) { mpxp_v<<std::hex<<str[i]; if(str[i] == 0xffff) break; } + mpxp_v<<std::endl; + mpxp_v.flush(); } int vbeGetControllerInfo(struct VbeInfoBlock *data) @@ -262,7 +270,7 @@ #ifdef HAVE_VERBOSE_VAR if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: OemStringPtr=%04X:%04X => %p\n",fpdata.seg,fpdata.off,data->OemStringPtr); + mpxp_dbg2<<"vbelib: OemStringPtr="<<std::hex<<fpdata.seg<<":"<<std::hex<<fpdata.off<<" => "<<data->OemStringPtr<<std::endl; if(data->OemStringPtr) print_str(data->OemStringPtr); fflush(stdout); } @@ -278,7 +286,7 @@ #ifdef HAVE_VERBOSE_VAR if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: VideoModePtr=%04X:%04X => %p\n",fpdata.seg,fpdata.off,data->VideoModePtr); + mpxp_dbg2<<"vbelib: VideoModePtr="<<std::hex<<fpdata.seg<<":"<<std::hex<<fpdata.off<<" => "<<data->VideoModePtr<<std::endl; if(data->VideoModePtr) print_wrd(data->VideoModePtr); fflush(stdout); } @@ -290,7 +298,7 @@ #ifdef HAVE_VERBOSE_VAR if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: OemVendorNamePtr=%04X:%04X => %p\n",fpdata.seg,fpdata.off,data->OemVendorNamePtr); + mpxp_dbg2<<"vbelib: OemVendorNamePtr="<<std::hex<<fpdata.seg<<":"<<std::hex<<fpdata.off<<" => "<<data->OemVendorNamePtr<<std::endl; if(data->OemVendorNamePtr) print_str(data->OemVendorNamePtr); fflush(stdout); } @@ -302,7 +310,7 @@ #ifdef HAVE_VERBOSE_VAR if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: OemProductNamePtr=%04X:%04X => %p\n",fpdata.seg,fpdata.off,data->OemProductNamePtr); + mpxp_dbg2<<"vbelib: OemProductNamePtr="<<std::hex<<fpdata.seg<<":"<<std::hex<<fpdata.off<<" => "<<data->OemProductNamePtr<<std::endl; if(data->OemVendorNamePtr) print_str(data->OemProductNamePtr); fflush(stdout); } @@ -314,7 +322,7 @@ #ifdef HAVE_VERBOSE_VAR if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: OemProductRevPtr=%04X:%04X => %p\n",fpdata.seg,fpdata.off,data->OemProductRevPtr); + mpxp_dbg2<<"vbelib: OemProductRevPtr="<<std::hex<<fpdata.seg<<":"<<std::hex<<fpdata.off<<" => "<<data->OemProductRevPtr<<std::endl; if(data->OemProductRevPtr) print_str(data->OemProductRevPtr); fflush(stdout); } @@ -656,17 +664,17 @@ pm_info->SetWindowCall = (void (*)())PhysToVirtSO(r.es,info_offset+rm_info->SetWindowCall); if(!is_addr_valid(reinterpret_cast<any_t*>(pm_info->SetWindowCall))) retval = VBE_BROKEN_BIOS; #ifdef HAVE_VERBOSE_VAR - MSG_DBG2("vbelib: SetWindowCall=%04X:%04X => %p\n",r.es,info_offset+rm_info->SetWindowCall,pm_info->SetWindowCall); + mpxp_dbg2<<"vbelib: SetWindowCall="<<std::hex<<r.es<<":"<<std::hex<<(info_offset+rm_info->SetWindowCall)<<" => "<<pm_info->SetWindowCall<<std::endl; #endif pm_info->SetDisplayStart = (void(*)())PhysToVirtSO(r.es,info_offset+rm_info->SetDisplayStart); if(!is_addr_valid(reinterpret_cast<any_t*>(pm_info->SetDisplayStart))) retval = VBE_BROKEN_BIOS; #ifdef HAVE_VERBOSE_VAR - MSG_DBG2("vbelib: SetDisplayStart=%04X:%04X => %p\n",r.es,info_offset+rm_info->SetDisplayStart,pm_info->SetDisplayStart); + mpxp_dbg2<<"vbelib: SetDisplayStart="<<std::hex<<r.es<<":"<<std::hex<<(info_offset+rm_info->SetDisplayStart)<<" => "<<pm_info->SetDisplayStart<<std::endl; #endif pm_info->SetPaletteData = (void(*)())PhysToVirtSO(r.es,info_offset+rm_info->SetPaletteData); if(!is_addr_valid(reinterpret_cast<any_t*>(pm_info->SetPaletteData))) retval = VBE_BROKEN_BIOS; #ifdef HAVE_VERBOSE_VAR - MSG_DBG2("vbelib: SetPaletteData=%04X:%04X => %p\n",r.es,info_offset+rm_info->SetPaletteData,pm_info->SetPaletteData); + mpxp_dbg2<<"vbelib: SetPaletteData="<<std::hex<<r.es<<":"<<std::hex<<(info_offset+rm_info->SetPaletteData)<<" => "<<pm_info->SetPaletteData<<std::endl; #endif pm_info->iopl_ports = (unsigned short*)PhysToVirtSO(r.es,info_offset+rm_info->iopl_ports); if(!rm_info->iopl_ports) pm_info->iopl_ports = NULL; @@ -679,7 +687,7 @@ #ifdef HAVE_VERBOSE_VAR if(mp_conf.verbose > 1) { - MSG_DBG2("vbelib: iopl_ports=%04X:%04X => %p\n",r.es,info_offset+rm_info->iopl_ports,pm_info->iopl_ports); + mpxp_dbg2<<"vbelib: iopl_ports="<<std::hex<<r.es<<":"<<std::hex<<(info_offset+rm_info->iopl_ports)<<" => "<<pm_info->iopl_ports<<std::endl; if(pm_info->iopl_ports) print_wrd(pm_info->iopl_ports); fflush(stdout); } @@ -714,7 +722,7 @@ { any_t*lfb; if(fd_mem == -1) return NULL; - MSG_DBG2("vbelib: vbeMapVideoBuffer(%08lX,%08lX)\n",phys_addr,size); + mpxp_dbg2<<"vbelib: vbeMapVideoBuffer("<<std::hex<<phys_addr<<","<<std::hex<<size<<")"<<std::endl; /* Here we don't need with MAP_FIXED and prefered address (first argument) */ lfb = mmap((any_t*)0,size,PROT_READ | PROT_WRITE,MAP_SHARED,fd_mem,phys_addr); return lfb == (any_t*)-1 ? 0 : lfb; @@ -722,7 +730,7 @@ void vbeUnmapVideoBuffer(unsigned long linear_addr,unsigned long size) { - MSG_DBG2("vbelib: vbeUnmapVideoBuffer(%08lX,%08lX)\n",linear_addr,size); + mpxp_dbg2<<"vbelib: vbeUnmapVideoBuffer("<<std::hex<<linear_addr<<","<<std::hex<<size<<")"<<std::endl; munmap((any_t*)linear_addr,size); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-22 14:33:08
|
Revision: 599 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=599&view=rev Author: nickols_k Date: 2012-12-22 14:32:53 +0000 (Sat, 22 Dec 2012) Log Message: ----------- cleanups Modified Paths: -------------- mplayerxp/input2/joystick.cpp mplayerxp/libao3/audio_out.cpp mplayerxp/libmpcodecs/ad_acm.cpp mplayerxp/libmpcodecs/ad_twin.cpp mplayerxp/libmpcodecs/vd_xanim.cpp mplayerxp/libmpcodecs/vd_xvid.cpp mplayerxp/libmpstream2/rtp_cache.cpp mplayerxp/libmpstream2/s_tv.cpp mplayerxp/libmpstream2/tvi/tvi_dummy.cpp mplayerxp/libmpstream2/tvi/tvi_v4l.cpp mplayerxp/libvo2/img_format.cpp mplayerxp/osdep/getch2.cpp mplayerxp/osdep/mp_malloc.cpp mplayerxp/osdep/mplib.cpp mplayerxp/osdep/shmem.cpp mplayerxp/osdep/timer-lx.cpp mplayerxp/osdep/timer.cpp mplayerxp/postproc/aflib.cpp Modified: mplayerxp/input2/joystick.cpp =================================================================== --- mplayerxp/input2/joystick.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/input2/joystick.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -125,15 +125,15 @@ if(ev.type & JS_EVENT_BUTTON) { priv.btns &= ~(1 << ev.number); priv.btns |= (ev.value << ev.number); - if(ev.value == 1) return ((JOY_BTN0+ev.number) | MP_KEY_DOWN); - else return (JOY_BTN0+ev.number); + if(ev.value == 1) return (JOY_BTN0+ev.number)|MP_KEY_DOWN; + else return JOY_BTN0+ev.number; } else if(ev.type & JS_EVENT_AXIS) { if(ev.value < -JOY_AXIS_DELTA && priv.axis[ev.number] != -1) { priv.axis[ev.number] = -1; - return (JOY_AXIS0_MINUS+(2*ev.number)) | MP_KEY_DOWN; + return (JOY_AXIS0_MINUS+(2*ev.number))|MP_KEY_DOWN; } else if(ev.value > JOY_AXIS_DELTA && priv.axis[ev.number] != 1) { priv.axis[ev.number] = 1; - return (JOY_AXIS0_PLUS+(2*ev.number)) | MP_KEY_DOWN; + return (JOY_AXIS0_PLUS+(2*ev.number))|MP_KEY_DOWN; } else if(ev.value <= JOY_AXIS_DELTA && ev.value >= -JOY_AXIS_DELTA && priv.axis[ev.number] != 0) { int r = priv.axis[ev.number] == 1 ? JOY_AXIS0_PLUS+(2*ev.number) : JOY_AXIS0_MINUS+(2*ev.number); priv.axis[ev.number] = 0; Modified: mplayerxp/libao3/audio_out.cpp =================================================================== --- mplayerxp/libao3/audio_out.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libao3/audio_out.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -86,51 +86,51 @@ switch (format) { case AFMT_MU_LAW: - return("Mu-Law"); + return "Mu-Law"; case AFMT_A_LAW: - return("A-Law"); + return "A-Law"; case AFMT_IMA_ADPCM: - return("Ima-ADPCM"); + return "Ima-ADPCM"; case AFMT_S8: - return("Signed 8-bit"); + return "Signed 8-bit"; case AFMT_U8: - return("Unsigned 8-bit"); + return "Unsigned 8-bit"; case AFMT_U16_LE: - return("Unsigned 16-bit (Little-Endian)"); + return "Unsigned 16-bit (Little-Endian)"; case AFMT_U16_BE: - return("Unsigned 16-bit (Big-Endian)"); + return "Unsigned 16-bit (Big-Endian)"; case AFMT_S16_LE: - return("Signed 16-bit (Little-Endian)"); + return "Signed 16-bit (Little-Endian)"; case AFMT_S16_BE: - return("Signed 16-bit (Big-Endian)"); + return "Signed 16-bit (Big-Endian)"; case AFMT_U24_LE: - return("Unsigned 24-bit (Little-Endian)"); + return "Unsigned 24-bit (Little-Endian)"; case AFMT_U24_BE: - return("Unsigned 24-bit (Big-Endian)"); + return "Unsigned 24-bit (Big-Endian)"; case AFMT_S24_LE: - return("Signed 24-bit (Little-Endian)"); + return "Signed 24-bit (Little-Endian)"; case AFMT_S24_BE: - return("Signed 24-bit (Big-Endian)"); + return "Signed 24-bit (Big-Endian)"; case AFMT_U32_LE: - return("Unsigned 32-bit (Little-Endian)"); + return "Unsigned 32-bit (Little-Endian)"; case AFMT_U32_BE: - return("Unsigned 32-bit (Big-Endian)"); + return "Unsigned 32-bit (Big-Endian)"; case AFMT_S32_LE: - return("Signed 32-bit (Little-Endian)"); + return "Signed 32-bit (Little-Endian)"; case AFMT_S32_BE: - return("Signed 32-bit (Big-Endian)"); + return "Signed 32-bit (Big-Endian)"; case AFMT_MPEG: - return("MPEG (2) audio"); + return "MPEG (2) audio"; case AFMT_AC3: - return("AC3"); + return "AC3"; case AFMT_FLOAT32: - return("Float32"); + return "Float32"; /* the following two formats are not available with old linux kernel headers (e.g. in 2.2.16) */ } - return("Unknown"); + return "Unknown"; } // return number of bits for 1 sample in one channel, or 8 bits for compressed Modified: mplayerxp/libmpcodecs/ad_acm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -116,16 +116,16 @@ case ACMERR_CANCELED: MSG_DBG2( "ACM_Decoder: stream busy, waiting..\n"); sleep(100); - return(close_acm_audio_codec(priv)); + return close_acm_audio_codec(priv); case ACMERR_UNPREPARED: case ACMERR_NOTPOSSIBLE: - return(0); + return 0; default: MSG_WARN( "ACM_Decoder: unknown error occured: %d\n", ret); - return(0); + return 0; } /* MSACM_UnregisterAllDrivers();*/ - return(1); + return 1; } MPXP_Rc init(ad_private_t *priv) Modified: mplayerxp/libmpcodecs/ad_twin.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -386,7 +386,7 @@ *pts=FIX_APTS(sh,priv->pts,priv->ptr); iptr = priv->ptr; /* current file data buffer pointer */ if ( iptr >= priv->nbuf ) /* If data file is empty then return */ - return(retval); + return retval; ibufadr = iptr/BYTE_BIT; /* current file data buffer address */ ibufbit = iptr%BYTE_BIT; /* current file data buffer bit */ /* tmpdat = stream->buf[ibufadr] >> (BYTE_BIT-ibufbit-1); */ @@ -405,7 +405,7 @@ } ++retval; } - return(retval); + return retval; } #define BITS_INT (sizeof(int)*8) @@ -437,7 +437,7 @@ mask >>= 1; } *data = work; - return(retval); + return retval; } static int GetVqInfo( tvqConfInfoSubBlock *cfg, Modified: mplayerxp/libmpcodecs/vd_xanim.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_xanim.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpcodecs/vd_xanim.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -269,21 +269,21 @@ MSG_FATAL( "xacodec: failed to dlopen %s while %s\n", filename, error); else MSG_FATAL( "xacodec: failed to dlopen %s\n", filename); - return(0); + return 0; } what_the = (any_t* (*)())ld_sym(codec_driver->file_handler, "What_The"); if ((error = dlerror()) != NULL) { MSG_FATAL( "xacodec: failed to init %s while %s\n", filename, error); dlclose(codec_driver->file_handler); - return(0); + return 0; } mod_hdr = reinterpret_cast<XAVID_MOD_HDR *>(what_the()); if (!mod_hdr) { MSG_FATAL( "xacodec: initializer function failed in %s\n", filename); dlclose(codec_driver->file_handler); - return(0); + return 0; } MSG_INFO( "=== XAnim Codec ===\n"); @@ -300,14 +300,14 @@ MSG_FATAL( "xacodec: not supported api revision (%d) in %s\n", mod_hdr->api_rev, filename); dlclose(codec_driver->file_handler); - return(0); + return 0; } func = mod_hdr->funcs; if (!func) { MSG_FATAL( "xacodec: function table error in %s\n", filename); dlclose(codec_driver->file_handler); - return(0); + return 0; } MSG_DBG2( "Exported functions by codec: [functable: 0x%08x entries: %d]\n", @@ -331,7 +331,7 @@ codec_driver->dec_func = (unsigned (*)(unsigned char*,unsigned char *,unsigned int, XA_DEC_INFO *))func[i].dec_func; } } - return(1); + return 1; } int xacodec_query(xacodec_driver_t *codec_driver, XA_CODEC_HDR *codec_hdr) @@ -343,7 +343,7 @@ if (codec_driver->dec_func) { codec_hdr->decoder = codec_driver->dec_func; MSG_DBG2( "We got decoder's address at init! %p\n", codec_hdr->decoder); - return(1); + return 1; } #endif codec_ret = codec_driver->iq_func(codec_hdr); @@ -352,16 +352,16 @@ codec_driver->dec_func = (unsigned (*)(unsigned char*,unsigned char *,unsigned int, XA_DEC_INFO *))codec_hdr->decoder; MSG_DBG2( "Codec is supported: found decoder for %s at 0x%08x\n", codec_hdr->description, codec_hdr->decoder); - return(1); + return 1; case CODEC_UNSUPPORTED: MSG_FATAL( "Codec (%s) is unsupported by driver\n", codec_hdr->description); - return(0); + return 0; case CODEC_UNKNOWN: default: MSG_FATAL( "Codec (%s) is unknown by driver\n", codec_hdr->description); - return(0); + return 0; } } @@ -377,7 +377,7 @@ if (xacodec_driver == NULL) { MSG_FATAL( "xacodec: memory allocation error: %s\n", strerror(errno)); - return(0); + return 0; } xacodec_driver->iq_func = NULL; @@ -391,7 +391,7 @@ snprintf(dll, 1024, "%s/%s", xacodec_def_path, vidinfo->codec->dll_name); if (xacodec_init(dll, xacodec_driver) == 0) - return(0); + return 0; codec_hdr.xapi_rev = XAVID_API_REV; codec_hdr.anim_hdr = mp_malloc(4096); @@ -444,13 +444,13 @@ default: MSG_FATAL( "xacodec: not supported image out format (%s)\n", vo_format_name(out_format)); - return(0); + return 0; } MSG_INFO( "xacodec: querying for input %dx%d %dbit [fourcc: %4x] (%s)...\n", codec_hdr.x, codec_hdr.y, codec_hdr.depth, codec_hdr.compression, codec_hdr.description); if (xacodec_query(xacodec_driver, &codec_hdr) == 0) - return(0); + return 0; // delete codec_hdr.anim_hdr; @@ -458,7 +458,7 @@ if (xacodec_driver->decinfo == NULL) { MSG_FATAL( "xacodec: memory allocation error: %s\n", strerror(errno)); - return(0); + return 0; } xacodec_driver->decinfo->cmd = 0; xacodec_driver->decinfo->skip_flag = 0; @@ -483,10 +483,10 @@ if (xacodec_driver->image.mem == NULL) { MSG_FATAL( "xacodec: memory allocation error: %s\n", strerror(errno)); - return(0); + return 0; } - return(1); + return 1; } #define ACT_DLTA_NORM 0x00000000 @@ -720,7 +720,7 @@ { MSG_DBG3( "YUV2x2_Map_Func('image_type: %d', 'dith_type: %d')", image_type, dith_type); - return((any_t*)XA_YUV_2x2_clr); + return (any_t*)XA_YUV_2x2_clr; } /* -------------------- whole YUV frame converters ------------------------- */ @@ -812,7 +812,7 @@ any_t*XA_YUV1611_Func(unsigned int image_type) { MSG_DBG3( "XA_YUV1611_Func('image_type: %d')", image_type); - return((any_t*)XA_YUV1611_Convert); + return (any_t*)XA_YUV1611_Convert; } /* -------------- YUV 4x1 1x1 1x1 (4:1:1 ?) [CYUV] ------------------ */ @@ -829,7 +829,7 @@ any_t*XA_YUV411111_Func(unsigned int image_type) { MSG_DBG3( "XA_YUV411111_Func('image_type: %d')", image_type); - return((any_t*)XA_YUV411111_Convert); + return (any_t*)XA_YUV411111_Convert; } /* --------------- YUV 2x2 1x1 1x1 (4:2:0 aka YV12) [3ivX,H263] ------------ */ @@ -877,7 +877,7 @@ any_t*XA_YUV221111_Func(unsigned int image_type) { MSG_DBG3( "XA_YUV221111_Func('image_type: %d')\n",image_type); - return((any_t*)XA_YUV221111_Convert); + return (any_t*)XA_YUV221111_Convert; } /* *** EOF XANIM *** */ Modified: mplayerxp/libmpcodecs/vd_xvid.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_xvid.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpcodecs/vd_xvid.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -310,10 +310,10 @@ dar = ((float)stats->data.vol.width*wpar); dar /= ((float)stats->data.vol.height*hpar); - return(dar); + return dar; } - return(0.0f); + return 0.0f; } #endif Modified: mplayerxp/libmpstream2/rtp_cache.cpp =================================================================== --- mplayerxp/libmpstream2/rtp_cache.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpstream2/rtp_cache.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -193,7 +193,7 @@ while ((length = get_next(buffer, length)) == 0) { mpxp_err<<"Got empty packet from RTP cache!?"<<std::endl; } - return(length); + return length; } int Rtp_Cache::getrtp2(struct rtpheader *rh, char** data, int* lengthData) const { Modified: mplayerxp/libmpstream2/s_tv.cpp =================================================================== --- mplayerxp/libmpstream2/s_tv.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpstream2/s_tv.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -411,7 +411,7 @@ #endif mpxp_err<< "No such driver: "<<tv_param.driver<<std::endl; - return(NULL); + return NULL; } int __FASTCALL__ tv_init(tvi_handle_t *tvh) @@ -509,7 +509,7 @@ mpxp_warn<<"Unknown color option ("<<opt<<") specified!"<<std::endl; } - return(1); + return 1; } int __FASTCALL__ tv_set_freq(tvi_handle_t *tvh, unsigned long freq) Modified: mplayerxp/libmpstream2/tvi/tvi_dummy.cpp =================================================================== --- mplayerxp/libmpstream2/tvi/tvi_dummy.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpstream2/tvi/tvi_dummy.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -32,7 +32,7 @@ tvi_handle_t *tvi_init_dummy(const char *device) { UNUSED(device); - return(new_handle()); + return new_handle(); } /* initialisation */ @@ -40,7 +40,7 @@ { priv->width = 320; priv->height = 200; - return(1); + return 1; } /* that's the real start, we'got the format parameters (checked with control) */ @@ -61,34 +61,34 @@ switch(cmd) { case TVI_CONTROL_IS_VIDEO: - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_FORMAT: *(int *)arg = IMGFMT_YV12; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_SET_FORMAT: { int req_fmt = (long)*(any_t**)arg; if (req_fmt != IMGFMT_YV12) - return(TVI_CONTROL_FALSE); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_FALSE; + return TVI_CONTROL_TRUE; } case TVI_CONTROL_VID_SET_WIDTH: priv->width = (long)*(any_t**)arg; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_WIDTH: *(int *)arg = priv->width; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_SET_HEIGHT: priv->height = (long)*(any_t**)arg; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_HEIGHT: *(int *)arg = priv->height; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_CHK_WIDTH: case TVI_CONTROL_VID_CHK_HEIGHT: - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } - return(TVI_CONTROL_UNKNOWN); + return TVI_CONTROL_UNKNOWN; } #ifdef HAVE_TV_BSDBT848 @@ -110,7 +110,7 @@ static int get_video_framesize(priv_t *priv) { /* YV12 */ - return(priv->width*priv->height*12/8); + return priv->width*priv->height*12/8; } static double grab_audio_frame(priv_t *priv,unsigned char *buffer, int len) @@ -133,12 +133,12 @@ tvi_handle_t *h = (tvi_handle_t *)mp_malloc(sizeof(tvi_handle_t)); if (!h) - return(NULL); + return NULL; h->priv = (priv_t *)mp_mallocz(sizeof(priv_t)); if (!h->priv) { delete h; - return(NULL); + return NULL; } h->info = &info; h->functions = &functions; @@ -147,7 +147,7 @@ h->chanlist_s = NULL; h->norm = -1; h->channel = -1; - return(h); + return h; } void free_handle(tvi_handle_t *h) Modified: mplayerxp/libmpstream2/tvi/tvi_v4l.cpp =================================================================== --- mplayerxp/libmpstream2/tvi/tvi_v4l.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libmpstream2/tvi/tvi_v4l.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -108,18 +108,18 @@ { /* component */ case VIDEO_PALETTE_RGB555: - return(15); + return 15; case VIDEO_PALETTE_RGB565: - return(16); + return 16; case VIDEO_PALETTE_RGB24: - return(24); + return 24; case VIDEO_PALETTE_RGB32: - return(32); + return 32; /* planar */ case VIDEO_PALETTE_YUV411P: case VIDEO_PALETTE_YUV420P: case VIDEO_PALETTE_YUV410P: - return(12); + return 12; /* packed */ case VIDEO_PALETTE_YUV422P: case VIDEO_PALETTE_YUV422: @@ -127,9 +127,9 @@ case VIDEO_PALETTE_UYVY: case VIDEO_PALETTE_YUV420: case VIDEO_PALETTE_YUV411: - return(16); + return 16; } - return(-1); + return -1; } static int format2palette(int format) @@ -137,22 +137,22 @@ switch(format) { case IMGFMT_RGB15: - return(VIDEO_PALETTE_RGB555); + return VIDEO_PALETTE_RGB555; case IMGFMT_RGB16: - return(VIDEO_PALETTE_RGB565); + return VIDEO_PALETTE_RGB565; case IMGFMT_RGB24: - return(VIDEO_PALETTE_RGB24); + return VIDEO_PALETTE_RGB24; case IMGFMT_RGB32: - return(VIDEO_PALETTE_RGB32); + return VIDEO_PALETTE_RGB32; case IMGFMT_YV12: case IMGFMT_I420: - return(VIDEO_PALETTE_YUV420P); + return VIDEO_PALETTE_YUV420P; case IMGFMT_UYVY: - return(VIDEO_PALETTE_YUV422); + return VIDEO_PALETTE_YUV422; case IMGFMT_YUY2: - return(VIDEO_PALETTE_YUYV); + return VIDEO_PALETTE_YUYV; } - return(-1); + return -1; } tvi_handle_t *tvi_init_v4l(const char *device) @@ -162,7 +162,7 @@ h = new_handle(); if (!h) - return(NULL); + return NULL; priv = h->priv; @@ -175,13 +175,13 @@ /* allocation failed */ if (!priv->video_device) { free_handle(h); - return(NULL); + return NULL; } /* set audio device name */ priv->audio_device = mp_strdup("/dev/dsp"); - return(h); + return h; } static int init(struct priv_s *priv) @@ -425,21 +425,21 @@ /* ========== GENERIC controls =========== */ case TVI_CONTROL_IS_VIDEO: { if (priv->capability.type & VID_TYPE_CAPTURE) - return(TVI_CONTROL_TRUE); - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_TRUE; + return TVI_CONTROL_FALSE; } case TVI_CONTROL_IS_AUDIO: if (priv->channels[priv->act_channel].flags & VIDEO_VC_AUDIO) { - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_IS_TUNER: { // if (priv->capability.type & VID_TYPE_TUNER) if (priv->channels[priv->act_channel].flags & VIDEO_VC_TUNER) - return(TVI_CONTROL_TRUE); - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_TRUE; + return TVI_CONTROL_FALSE; } /* ========== VIDEO controls =========== */ @@ -450,20 +450,20 @@ output_fmt = priv->wtag; *(int *)arg = output_fmt; mpxp_v<<"Output format: "<<vo_format_name(output_fmt)<<std::endl; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_VID_SET_FORMAT: priv->wtag = (int)*(any_t**)arg; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_PLANES: *(int *)arg = 1; /* FIXME, also not needed at this time */ - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_BITS: *(int *)arg = palette2depth(format2palette(priv->wtag)); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_WIDTH: *(int *)arg = priv->width; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_CHK_WIDTH: { int req_width = *(int *)arg; @@ -471,15 +471,15 @@ mpxp_v<<"Requested width: "<<req_width<<std::endl; if ((req_width >= priv->capability.minwidth) && (req_width <= priv->capability.maxwidth)) - return(TVI_CONTROL_TRUE); - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_TRUE; + return TVI_CONTROL_FALSE; } case TVI_CONTROL_VID_SET_WIDTH: priv->width = *(int *)arg; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_HEIGHT: *(int *)arg = priv->height; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_CHK_HEIGHT: { int req_height = *(int *)arg; @@ -487,45 +487,45 @@ mpxp_v<<"Requested height: "<<req_height<<std::endl; if ((req_height >= priv->capability.minheight) && (req_height <= priv->capability.maxheight)) - return(TVI_CONTROL_TRUE); - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_TRUE; + return TVI_CONTROL_FALSE; } case TVI_CONTROL_VID_SET_HEIGHT: priv->height = *(int *)arg; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_PICTURE: if (ioctl(priv->video_fd, VIDIOCGPICT, &priv->picture) == -1) { mpxp_err<<"ioctl get picture failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_SET_PICTURE: if (ioctl(priv->video_fd, VIDIOCSPICT, &priv->picture) == -1) { mpxp_err<<"ioctl get picture failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_SET_BRIGHTNESS: priv->picture.brightness = *(int *)arg; control(priv, TVI_CONTROL_VID_SET_PICTURE, 0); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_SET_HUE: priv->picture.hue = *(int *)arg; control(priv, TVI_CONTROL_VID_SET_PICTURE, 0); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_SET_SATURATION: priv->picture.colour = *(int *)arg; control(priv, TVI_CONTROL_VID_SET_PICTURE, 0); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_SET_CONTRAST: priv->picture.contrast = *(int *)arg; control(priv, TVI_CONTROL_VID_SET_PICTURE, 0); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; case TVI_CONTROL_VID_GET_FPS: *(int *)arg=priv->fps; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; /* ========== TUNER controls =========== */ case TVI_CONTROL_TUN_GET_FREQ: @@ -535,14 +535,14 @@ if (ioctl(priv->video_fd, VIDIOCGFREQ, &freq) == -1) { mpxp_err<<"ioctl get freq failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } /* tuner uses khz not mhz ! */ // if (priv->tuner.flags & VIDEO_TUNER_LOW) // freq /= 1000; *(unsigned long *)arg = freq; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_TUN_SET_FREQ: { @@ -557,29 +557,29 @@ if (ioctl(priv->video_fd, VIDIOCSFREQ, &freq) == -1) { mpxp_err<<"ioctl set freq failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_TUN_GET_TUNER: { if (ioctl(priv->video_fd, VIDIOCGTUNER, &priv->tuner) == -1) { mpxp_err<<"ioctl get tuner failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } mpxp_v<<"Tuner ("<<priv->tuner.name<<") range: "<<priv->tuner.rangelow<<" ->"<<priv->tuner.rangehigh<<std::endl; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_TUN_SET_TUNER: { if (ioctl(priv->video_fd, VIDIOCSTUNER, &priv->tuner) == -1) { mpxp_err<<"ioctl get tuner failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_TUN_SET_NORM: { @@ -591,53 +591,53 @@ ((req_mode == VIDEO_MODE_SECAM) && !(priv->tuner.flags & VIDEO_TUNER_SECAM))) { mpxp_err<<"Tuner isn't capable to set norm!"<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } priv->tuner.mode = req_mode; if (control(priv, TVI_CONTROL_TUN_SET_TUNER, &priv->tuner) != TVI_CONTROL_TRUE) - return(TVI_CONTROL_FALSE); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_FALSE; + return TVI_CONTROL_TRUE; } case TVI_CONTROL_TUN_GET_NORM: { *(int *)arg = priv->tuner.mode; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } /* ========== AUDIO controls =========== */ case TVI_CONTROL_AUD_GET_FORMAT: { *(int *)arg = priv->audio_format[priv->audio_id]; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_AUD_GET_CHANNELS: { *(int *)arg = priv->audio_channels[priv->audio_id]; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_AUD_GET_SAMPLERATE: { *(int *)arg = priv->audio_samplerate[priv->audio_id]; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_AUD_GET_SAMPLESIZE: { *(int *)arg = priv->audio_samplesize[priv->audio_id]/8; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_AUD_SET_SAMPLERATE: { int tmp = priv->audio_samplerate[priv->audio_id] = *(int *)arg; if (ioctl(priv->audio_fd, SNDCTL_DSP_SPEED, &tmp) == -1) - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; priv->audio_samplesize[priv->audio_id] = priv->audio_samplerate[priv->audio_id]/8/priv->fps* priv->audio_channels[priv->audio_id]; - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } /* ========== SPECIFIC controls =========== */ case TVI_CONTROL_SPC_GET_INPUT: @@ -656,9 +656,9 @@ if (ioctl(priv->video_fd, VIDIOCGCHAN, &priv->channels[i]) == -1) { mpxp_err<<"ioctl get channel failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } case TVI_CONTROL_SPC_SET_INPUT: @@ -670,7 +670,7 @@ if (req_chan >= priv->capability.channels) { mpxp_err<<"Invalid input requested: "<<req_chan<<", valid: 0-"<<priv->capability.channels<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } for (i = 0; i < priv->capability.channels; i++) @@ -682,7 +682,7 @@ if (ioctl(priv->video_fd, VIDIOCSCHAN, &chan) == -1) { mpxp_err<<"ioctl set chan failed: "<<strerror(errno)<<std::endl; - return(TVI_CONTROL_FALSE); + return TVI_CONTROL_FALSE; } mpxp_v<<"Using input: "<<chan.name<<std::endl; @@ -695,11 +695,11 @@ /* update local channel list */ control(priv, TVI_CONTROL_SPC_GET_INPUT, &req_chan); - return(TVI_CONTROL_TRUE); + return TVI_CONTROL_TRUE; } } - return(TVI_CONTROL_UNKNOWN); + return TVI_CONTROL_UNKNOWN; } static double grab_video_frame(struct priv_s *priv,unsigned char *buffer, int len) @@ -712,7 +712,7 @@ if (ioctl(priv->video_fd, VIDIOCMCAPTURE, &priv->buf[nextframe]) == -1) { mpxp_err<<"ioctl mcapture failed: "<<strerror(errno)<<std::endl; - return(0); + return 0; } while (ioctl(priv->video_fd, VIDIOCSYNC, &priv->buf[frame].frame) < 0 && @@ -729,12 +729,12 @@ /* copy the actual frame */ memcpy(buffer, priv->mmap+priv->mbuf.offsets[frame], len); - return(timestamp-priv->starttime); + return timestamp-priv->starttime; } static int get_video_framesize(struct priv_s *priv) { - return(priv->bytesperline * priv->height); + return priv->bytesperline * priv->height; } static double grab_audio_frame(struct priv_s *priv,unsigned char *buffer, int len) @@ -759,8 +759,8 @@ static int get_audio_framesize(struct priv_s *priv) { - return(priv->audio_blocksize); -// return(priv->audio_samplesize[priv->audio_id]); + return priv->audio_blocksize; +// return priv->audio_samplesize[priv->audio_id]; } #endif /* USE_TV */ Modified: mplayerxp/libvo2/img_format.cpp =================================================================== --- mplayerxp/libvo2/img_format.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/libvo2/img_format.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -11,62 +11,62 @@ static char unknow_format[20]; switch(format) { - case IMGFMT_RGB1: return("RGB 1-bit"); - case IMGFMT_RGB4: return("RGB 4-bit"); - case IMGFMT_RG4B: return("RGB 4-bit per byte"); - case IMGFMT_RGB8: return("RGB 8-bit"); - case IMGFMT_RGB15: return("RGB 15-bit"); - case IMGFMT_RGB16: return("RGB 16-bit"); - case IMGFMT_RGB24: return("RGB 24-bit"); - case IMGFMT_RGB48NE: return("RGB 48-bit"); -// case IMGFMT_RGB32: return("RGB 32-bit"); - case IMGFMT_BGR1: return("BGR 1-bit"); - case IMGFMT_BGR4: return("BGR 4-bit"); - case IMGFMT_BG4B: return("BGR 4-bit per byte"); - case IMGFMT_BGR8: return("BGR 8-bit"); - case IMGFMT_BGR15: return("BGR 15-bit"); - case IMGFMT_BGR16: return("BGR 16-bit"); - case IMGFMT_BGR24: return("BGR 24-bit"); - case IMGFMT_BGR48NE: return("BGR 48-bit"); -// case IMGFMT_BGR32: return("BGR 32-bit"); - case IMGFMT_ABGR: return("ABGR"); - case IMGFMT_BGRA: return("BGRA"); - case IMGFMT_ARGB: return("ARGB"); - case IMGFMT_RGBA: return("RGBA"); - case IMGFMT_YVU9: return("Planar YVU9"); - case IMGFMT_IF09: return("Planar IF09"); - case IMGFMT_YV12: return("Planar YV12"); - case IMGFMT_I420: return("Planar I420"); - case IMGFMT_IYUV: return("Planar IYUV"); - case IMGFMT_CLPL: return("Planar CLPL"); - case IMGFMT_Y800: return("Planar Y800"); - case IMGFMT_Y8: return("Planar Y8"); - case IMGFMT_444P: return("Planar 444P"); - case IMGFMT_422P: return("Planar 422P"); - case IMGFMT_411P: return("Planar 411P"); - case IMGFMT_NV12: return("Planar NV12"); - case IMGFMT_NV21: return("Planar NV21"); - case IMGFMT_HM12: return("Planar NV12 Macroblock"); - case IMGFMT_IUYV: return("Packed IUYV"); - case IMGFMT_IY41: return("Packed IY41"); - case IMGFMT_IYU1: return("Packed IYU1"); - case IMGFMT_IYU2: return("Packed IYU2"); - case IMGFMT_UYVY: return("Packed UYVY"); - case IMGFMT_UYNV: return("Packed UYNV"); - case IMGFMT_cyuv: return("Packed CYUV"); - case IMGFMT_Y422: return("Packed Y422"); - case IMGFMT_YUY2: return("Packed YUY2"); - case IMGFMT_YUNV: return("Packed YUNV"); - case IMGFMT_YVYU: return("Packed YVYU"); - case IMGFMT_Y41P: return("Packed Y41P"); - case IMGFMT_Y211: return("Packed Y211"); - case IMGFMT_Y41T: return("Packed Y41T"); - case IMGFMT_Y42T: return("Packed Y42T"); - case IMGFMT_V422: return("Packed V422"); - case IMGFMT_V655: return("Packed V655"); - case IMGFMT_CLJR: return("Packed CLJR"); - case IMGFMT_YUVP: return("Packed YUVP"); - case IMGFMT_UYVP: return("Packed UYVP"); + case IMGFMT_RGB1: return "RGB 1-bit"; + case IMGFMT_RGB4: return "RGB 4-bit"; + case IMGFMT_RG4B: return "RGB 4-bit per byte"; + case IMGFMT_RGB8: return "RGB 8-bit"; + case IMGFMT_RGB15: return "RGB 15-bit"; + case IMGFMT_RGB16: return "RGB 16-bit"; + case IMGFMT_RGB24: return "RGB 24-bit"; + case IMGFMT_RGB48NE: return "RGB 48-bit"; +// case IMGFMT_RGB32: return "RGB 32-bit"; + case IMGFMT_BGR1: return "BGR 1-bit"; + case IMGFMT_BGR4: return "BGR 4-bit"; + case IMGFMT_BG4B: return "BGR 4-bit per byte"; + case IMGFMT_BGR8: return "BGR 8-bit"; + case IMGFMT_BGR15: return "BGR 15-bit"; + case IMGFMT_BGR16: return "BGR 16-bit"; + case IMGFMT_BGR24: return "BGR 24-bit"; + case IMGFMT_BGR48NE: return "BGR 48-bit"; +// case IMGFMT_BGR32: return "BGR 32-bit"; + case IMGFMT_ABGR: return "ABGR"; + case IMGFMT_BGRA: return "BGRA"; + case IMGFMT_ARGB: return "ARGB"; + case IMGFMT_RGBA: return "RGBA"; + case IMGFMT_YVU9: return "Planar YVU9"; + case IMGFMT_IF09: return "Planar IF09"; + case IMGFMT_YV12: return "Planar YV12"; + case IMGFMT_I420: return "Planar I420"; + case IMGFMT_IYUV: return "Planar IYUV"; + case IMGFMT_CLPL: return "Planar CLPL"; + case IMGFMT_Y800: return "Planar Y800"; + case IMGFMT_Y8: return "Planar Y8"; + case IMGFMT_444P: return "Planar 444P"; + case IMGFMT_422P: return "Planar 422P"; + case IMGFMT_411P: return "Planar 411P"; + case IMGFMT_NV12: return "Planar NV12"; + case IMGFMT_NV21: return "Planar NV21"; + case IMGFMT_HM12: return "Planar NV12 Macroblock"; + case IMGFMT_IUYV: return "Packed IUYV"; + case IMGFMT_IY41: return "Packed IY41"; + case IMGFMT_IYU1: return "Packed IYU1"; + case IMGFMT_IYU2: return "Packed IYU2"; + case IMGFMT_UYVY: return "Packed UYVY"; + case IMGFMT_UYNV: return "Packed UYNV"; + case IMGFMT_cyuv: return "Packed CYUV"; + case IMGFMT_Y422: return "Packed Y422"; + case IMGFMT_YUY2: return "Packed YUY2"; + case IMGFMT_YUNV: return "Packed YUNV"; + case IMGFMT_YVYU: return "Packed YVYU"; + case IMGFMT_Y41P: return "Packed Y41P"; + case IMGFMT_Y211: return "Packed Y211"; + case IMGFMT_Y41T: return "Packed Y41T"; + case IMGFMT_Y42T: return "Packed Y42T"; + case IMGFMT_V422: return "Packed V422"; + case IMGFMT_V655: return "Packed V655"; + case IMGFMT_CLJR: return "Packed CLJR"; + case IMGFMT_YUVP: return "Packed YUVP"; + case IMGFMT_UYVP: return "Packed UYVP"; case IMGFMT_420A: return "Planar YV12 with alpha"; case IMGFMT_420P16_LE: return "Planar 420P 16-bit little-endian"; case IMGFMT_420P16_BE: return "Planar 420P 16-bit big-endian"; @@ -74,12 +74,12 @@ case IMGFMT_422P16_BE: return "Planar 422P 16-bit big-endian"; case IMGFMT_444P16_LE: return "Planar 444P 16-bit little-endian"; case IMGFMT_444P16_BE: return "Planar 444P 16-bit big-endian"; - case IMGFMT_MPEGPES: return("Mpeg PES"); - case IMGFMT_ZRMJPEGNI: return("Zoran MJPEG non-interlaced"); - case IMGFMT_ZRMJPEGIT: return("Zoran MJPEG top field first"); - case IMGFMT_ZRMJPEGIB: return("Zoran MJPEG bottom field first"); - case IMGFMT_XVMC_MOCO_MPEG2: return("MPEG1/2 Motion Compensation"); - case IMGFMT_XVMC_IDCT_MPEG2: return("MPEG1/2 Motion Compensation and IDCT"); + case IMGFMT_MPEGPES: return "Mpeg PES"; + case IMGFMT_ZRMJPEGNI: return "Zoran MJPEG non-interlaced"; + case IMGFMT_ZRMJPEGIT: return "Zoran MJPEG top field first"; + case IMGFMT_ZRMJPEGIB: return "Zoran MJPEG bottom field first"; + case IMGFMT_XVMC_MOCO_MPEG2: return "MPEG1/2 Motion Compensation"; + case IMGFMT_XVMC_IDCT_MPEG2: return "MPEG1/2 Motion Compensation and IDCT"; } char *p=reinterpret_cast<char *>(&format); if(isprint(p[0])&&isprint(p[1])&&isprint(p[2])&&isprint(p[4])) Modified: mplayerxp/osdep/getch2.cpp =================================================================== --- mplayerxp/osdep/getch2.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/osdep/getch2.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -121,7 +121,7 @@ static void get_screen_size(){ #ifdef USE_IOCTL struct winsize ws; - if (ioctl(0, TIOCGWINSZ, &ws) < 0 || !ws.ws_row || !ws.ws_col) return; + if (::ioctl(0, TIOCGWINSZ, &ws) < 0 || !ws.ws_row || !ws.ws_col) return; screen_width=ws.ws_col; screen_height=ws.ws_row; #endif @@ -141,10 +141,10 @@ FD_ZERO(&rfds); FD_SET(0,&rfds); /* Wait up to 'time' microseconds. */ tv.tv_sec=_time/1000; tv.tv_usec = (_time%1000)*1000; - retval=select(1, &rfds, NULL, NULL, &tv); + retval=::select(1, &rfds, NULL, NULL, &tv); if(retval<=0) return -1; /* Data is available now. */ - retval=read(0,&getch2_buf[getch2_len],BUF_LEN-getch2_len); + retval=::read(0,&getch2_buf[getch2_len],BUF_LEN-getch2_len); if(retval<1) return -1; getch2_len+=retval; } @@ -220,22 +220,22 @@ #ifdef HAVE_TERMIOS struct termios tio_new; #if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) - tcgetattr(0,&tio_orig); + ::tcgetattr(0,&tio_orig); #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__) - ioctl(0,TIOCGETA,&tio_orig); + ::ioctl(0,TIOCGETA,&tio_orig); #else - ioctl(0,TCGETS,&tio_orig); + ::ioctl(0,TCGETS,&tio_orig); #endif tio_new=tio_orig; tio_new.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO. */ tio_new.c_cc[VMIN] = 1; tio_new.c_cc[VTIME] = 0; #if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) - tcsetattr(0,TCSANOW,&tio_new); + ::tcsetattr(0,TCSANOW,&tio_new); #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__) - ioctl(0,TIOCSETA,&tio_new); + ::ioctl(0,TIOCSETA,&tio_new); #else - ioctl(0,TCSETS,&tio_new); + ::ioctl(0,TCSETS,&tio_new); #endif #endif getch2_status=1; @@ -245,11 +245,11 @@ if(!getch2_status) return; // already disabled / never enabled #ifdef HAVE_TERMIOS #if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) - tcsetattr(0,TCSANOW,&tio_orig); + ::tcsetattr(0,TCSANOW,&tio_orig); #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__) - ioctl(0,TIOCSETA,&tio_orig); + ::ioctl(0,TIOCSETA,&tio_orig); #else - ioctl(0,TCSETS,&tio_orig); + ::ioctl(0,TCSETS,&tio_orig); #endif #endif getch2_status=0; Modified: mplayerxp/osdep/mp_malloc.cpp =================================================================== --- mplayerxp/osdep/mp_malloc.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/osdep/mp_malloc.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -91,7 +91,7 @@ } } c->slots=s; - memset(&c->slots[c->nslots],0,sizeof(mp_slot_t)); + ::memset(&c->slots[c->nslots],0,sizeof(mp_slot_t)); c->slots[c->nslots].page_ptr=ptr; c->slots[c->nslots].size=size; c->nslots++; @@ -101,7 +101,7 @@ static void prot_free_slot(mp_slot_container_t* c,any_t* ptr) { size_t idx=prot_find_slot_idx(c,ptr); if(idx!=UINT_MAX) { - memmove(&c->slots[idx],&c->slots[idx+1],sizeof(mp_slot_t)*(c->nslots-(idx+1))); + ::memmove(&c->slots[idx],&c->slots[idx+1],sizeof(mp_slot_t)*(c->nslots-(idx+1))); c->nslots--; if(c->nslots<c->size-16) { c->size-=16; @@ -115,11 +115,11 @@ static any_t* __prot_malloc_append(size_t size) { any_t* rp; size_t fullsize=app_fullsize(size); - rp=memalign(__VM_PAGE_SIZE__,fullsize); + rp=::memalign(__VM_PAGE_SIZE__,fullsize); if(rp) { prot_append_slot(&priv->mallocs,rp,size); // protect last page here - mprotect(prot_last_page(rp,fullsize),__VM_PAGE_SIZE__,MP_DENY_ALL); + ::mprotect(prot_last_page(rp,fullsize),__VM_PAGE_SIZE__,MP_DENY_ALL); rp=reinterpret_cast<any_t*>(reinterpret_cast<long>(rp)+fullsize-__VM_PAGE_SIZE__-size); } return rp; @@ -143,8 +143,8 @@ static void uninit_bt_cache(bt_cache_t* cache) { unsigned i; for(i=0;i<cache->num_entries;i++) free(cache->entry[i].str); - free(cache->entry); - free(cache); + ::free(cache->entry); + ::free(cache); } static char* bt_find_cache(bt_cache_t* cache,any_t* ptr) { @@ -165,19 +165,19 @@ static char* exec_addr2line(any_t*ptr, char* result,unsigned len) { unsigned i; char ch,cmd[4096]; - sprintf(cmd,"addr2line -s -e %s %p\n",priv->argv0,ptr); - FILE* in=popen(cmd,"r"); + ::sprintf(cmd,"addr2line -s -e %s %p\n",priv->argv0,ptr); + FILE* in=::popen(cmd,"r"); if(!in) return NULL; i=0; while(1) { - ch=fgetc(in); - if(feof(in)) break; + ch=::fgetc(in); + if(::feof(in)) break; if(ch=='\n') break; result[i++]=ch; if(i>=len-1) break; } result[i]='\0'; - pclose(in); + ::pclose(in); return result; } @@ -199,7 +199,7 @@ bt_cache_t* cache=init_bt_cache(); any_t* calls[num]; unsigned i,ncalls; - ncalls=backtrace(calls,num); + ncalls=::backtrace(calls,num); mpxp_info<<"*** Backtrace for suspect call ***"<<std::endl; for(i=0;i<ncalls;i++) { mpxp_info<<" "<<calls[i]<<" -> "<<addr2line(cache,calls[i])<<std::endl; @@ -220,14 +220,14 @@ any_t *page_ptr=prot_page_align(ptr); mp_slot_t* slot=prot_find_slot(&priv->mallocs,page_ptr); if(!slot) { - printf("[__prot_free_append] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,page_ptr); + ::printf("[__prot_free_append] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,page_ptr); __prot_print_slots(&priv->mallocs); __print_backtrace(Max_BackTraces); - kill(getpid(), SIGILL); + ::kill(::getpid(), SIGILL); } size_t fullsize=app_fullsize(slot->size); - mprotect(prot_last_page(page_ptr,fullsize),__VM_PAGE_SIZE__,MP_PROT_READ|MP_PROT_WRITE); - free(page_ptr); + ::mprotect(prot_last_page(page_ptr,fullsize),__VM_PAGE_SIZE__,MP_PROT_READ|MP_PROT_WRITE); + ::free(page_ptr); prot_free_slot(&priv->mallocs,page_ptr); } @@ -236,12 +236,12 @@ if((rp=__prot_malloc_append(size))!=NULL && ptr) { mp_slot_t* slot=prot_find_slot(&priv->mallocs,prot_page_align(ptr)); if(!slot) { - printf("[__prot_realloc_append] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,prot_page_align(ptr)); + ::printf("[__prot_realloc_append] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,prot_page_align(ptr)); __prot_print_slots(&priv->mallocs); __print_backtrace(Max_BackTraces); - kill(getpid(), SIGILL); + ::kill(::getpid(), SIGILL); } - memcpy(rp,ptr,std::min(slot->size,size)); + ::memcpy(rp,ptr,std::min(slot->size,size)); __prot_free_append(ptr); } return rp; @@ -254,11 +254,11 @@ static any_t* __prot_malloc_prepend(size_t size) { any_t* rp; size_t fullsize=pre_fullsize(size); - rp=memalign(__VM_PAGE_SIZE__,fullsize); + rp=::memalign(__VM_PAGE_SIZE__,fullsize); if(rp) { prot_append_slot(&priv->mallocs,rp,size); // protect last page here - mprotect(rp,__VM_PAGE_SIZE__,MP_DENY_ALL); + ::mprotect(rp,__VM_PAGE_SIZE__,MP_DENY_ALL); rp=reinterpret_cast<any_t*>(reinterpret_cast<long>(rp)+__VM_PAGE_SIZE__); } return rp; @@ -270,13 +270,13 @@ any_t *page_ptr=pre_page_align(ptr); mp_slot_t* slot=prot_find_slot(&priv->mallocs,page_ptr); if(!slot) { - printf("[__prot_free_prepend] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,page_ptr); + ::printf("[__prot_free_prepend] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,page_ptr); __prot_print_slots(&priv->mallocs); __print_backtrace(Max_BackTraces); - kill(getpid(), SIGILL); + ::kill(::getpid(), SIGILL); } - mprotect(page_ptr,__VM_PAGE_SIZE__,MP_PROT_READ|MP_PROT_WRITE); - free(page_ptr); + ::mprotect(page_ptr,__VM_PAGE_SIZE__,MP_PROT_READ|MP_PROT_WRITE); + ::free(page_ptr); prot_free_slot(&priv->mallocs,page_ptr); } @@ -285,12 +285,12 @@ if((rp=__prot_malloc_prepend(size))!=NULL && ptr) { mp_slot_t* slot=prot_find_slot(&priv->mallocs,pre_page_align(ptr)); if(!slot) { - printf("[__prot_realloc_prepend] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,pre_page_align(ptr)); + ::printf("[__prot_realloc_prepend] suspect call found! Can't find slot for address: %p [aligned: %p]\n",ptr,pre_page_align(ptr)); __prot_print_slots(&priv->mallocs); __print_backtrace(Max_BackTraces); - kill(getpid(), SIGILL); + ::kill(getpid(), SIGILL); } - memcpy(rp,ptr,std::min(slot->size,size)); + ::memcpy(rp,ptr,std::min(slot->size,size)); __prot_free_prepend(ptr); } return rp; @@ -325,21 +325,21 @@ static __always_inline any_t* bt_malloc(size_t size) { any_t*rp; mp_slot_t* slot; - rp=malloc(size); + rp=::malloc(size); if(rp) { slot=prot_append_slot(&priv->mallocs,rp,size); - slot->ncalls=backtrace(slot->calls,Max_BackTraces); + slot->ncalls=::backtrace(slot->calls,Max_BackTraces); } return rp; } static __always_inline any_t* bt_memalign(size_t boundary,size_t size) { any_t*rp; - rp=memalign(boundary,size); + rp=::memalign(boundary,size); if(rp) { mp_slot_t* slot; slot=prot_append_slot(&priv->mallocs,rp,size); - slot->ncalls=backtrace(slot->calls,Max_BackTraces); + slot->ncalls=::backtrace(slot->calls,Max_BackTraces); } return rp; } @@ -348,14 +348,14 @@ any_t* rp; mp_slot_t* slot; if(!ptr) return bt_malloc(size); - rp=realloc(ptr,size); + rp=::realloc(ptr,size); if(rp) { slot=prot_find_slot(&priv->mallocs,ptr); if(!slot) { mpxp_warn<<"[bt_realloc] suspect call found! Can't find slot for address: "<<ptr<<std::endl; mp_slot_t* _slot; _slot=prot_append_slot(&priv->reallocs,ptr,size); - _slot->ncalls=backtrace(_slot->calls,Max_BackTraces); + _slot->ncalls=::backtrace(_slot->calls,Max_BackTraces); } else { slot->page_ptr=rp; // update address after realloc slot->size=size; @@ -370,11 +370,11 @@ mpxp_warn<<"[bt_free] suspect call found! Can't find slot for address: "<<ptr<<std::endl; mp_slot_t* _slot; _slot=prot_append_slot(&priv->frees,ptr,0); - _slot->ncalls=backtrace(_slot->calls,Max_BackTraces); + _slot->ncalls=::backtrace(_slot->calls,Max_BackTraces); return; } prot_free_slot(&priv->mallocs,ptr); - free(ptr); + ::free(ptr); } /*======== STATISTICS =======*/ @@ -387,7 +387,7 @@ mpxp_info<<"address: "<<c->slots[i].page_ptr<<" size: "<<c->slots[i].size<<" dump: "; s=reinterpret_cast<char *>(c->slots[i].page_ptr); for(j=0;j<std::min(c->slots[i].size,size_t(20));j++) { - if(!isprint(s[j])) { + if(!::isprint(s[j])) { printable=0; break; } @@ -405,9 +405,9 @@ /* ================== HEAD FUNCTIONS ======================= */ void mp_init_malloc(const char *argv0,unsigned rnd_limit,unsigned every_nth_call,enum mp_malloc_e flags) { - srand(time(0)); - if(!priv) priv=(priv_t*)malloc(sizeof(priv_t)); - memset(priv,0,sizeof(priv_t)); + ::srand(::time(0)); + if(!priv) priv=(priv_t*)::malloc(sizeof(priv_t)); + ::memset(priv,0,sizeof(priv_t)); priv->argv0=argv0; priv->rnd_limit=rnd_limit; priv->every_nth_call=every_nth_call; @@ -450,7 +450,7 @@ } if(done) mpxp_hint<<std::endl<<"For source lines you may also print in (gdb): list *0xADDRESS"<<std::endl; uninit_bt_cache(cache); - free(priv); + ::free(priv); priv=NULL; } @@ -460,13 +460,13 @@ if(!priv) mp_init_malloc(NULL,1000,10,MPA_FLG_RANDOMIZER); if(priv->every_nth_call && priv->rnd_limit && !priv->flags) { if(priv->total_calls%priv->every_nth_call==0) { - rnd_buff=malloc(rand()%priv->rnd_limit); + rnd_buff=::malloc(::rand()%priv->rnd_limit); } } if(priv->flags&(MPA_FLG_BOUNDS_CHECK|MPA_FLG_BEFORE_CHECK)) rb=prot_malloc(__size); else if(priv->flags&MPA_FLG_BACKTRACE) rb=bt_malloc(__size); else rb=malloc(__size); - if(rnd_buff) free(rnd_buff); + if(rnd_buff) ::free(rnd_buff); priv->total_calls++; return rb; } @@ -499,7 +499,7 @@ else if(priv->flags&MPA_FLG_BACKTRACE) bt_free(__ptr); else - free(__ptr); + ::free(__ptr); } } @@ -508,7 +508,7 @@ any_t* mp_mallocz (size_t __size) { any_t* rp; rp=mp_malloc(__size); - if(rp) memset(rp,0,__size); + if(rp) ::memset(rp,0,__size); return rp; } @@ -524,7 +524,7 @@ int __FASTCALL__ mp_mprotect(any_t* addr,size_t len,enum mp_prot_e flags) { - return mprotect(addr,len,flags); + return ::mprotect(addr,len,flags); } } // namespace mpxp Modified: mplayerxp/osdep/mplib.cpp =================================================================== --- mplayerxp/osdep/mplib.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/osdep/mplib.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -21,7 +21,7 @@ unsigned i; char ch; for(i=0;i<size;i++) { - ch=rand()%255; + ch=::rand()%255; ((char *)buffer)[i]=ch; } return buffer; @@ -34,17 +34,17 @@ long hi_mask=~lo_mask; long filler; for(i=0;i<psize/sizeof(long);i++) { - filler=rand()&lo_mask; + filler=::rand()&lo_mask; filler=(reinterpret_cast<long>(buffer)&hi_mask)|lo_mask; - ((long *)buffer)[i]=rand()%2?filler:0; + ((long *)buffer)[i]=::rand()%2?filler:0; } - memset(&((char *)buffer)[psize],0,size-psize); + ::memset(&((char *)buffer)[psize],0,size-psize); return buffer; } any_t* get_caller_address(unsigned num_caller) { any_t* stack[3+num_caller]; - backtrace(stack,3+num_caller); + ::backtrace(stack,3+num_caller); return stack[2+num_caller]; } Modified: mplayerxp/osdep/shmem.cpp =================================================================== --- mplayerxp/osdep/shmem.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/osdep/shmem.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -45,7 +45,7 @@ switch(shmem_type){ case 0: // ========= MAP_ANON|MAP_SHARED ========== #ifdef MAP_ANON - p=mmap(0,size,PROT_READ|PROT_WRITE,MAP_ANON|MAP_SHARED,-1,0); + p=::mmap(0,size,PROT_READ|PROT_WRITE,MAP_ANON|MAP_SHARED,-1,0); if(p==MAP_FAILED) break; // failed mpxp_dbg2<<"shmem: "<<size<<" bytes allocated using mmap anon"<<std::endl; return p; @@ -55,8 +55,8 @@ #endif break; case 1: // ========= MAP_SHARED + /dev/zero ========== - if (devzero == -1 && (devzero = open("/dev/zero", O_RDWR, 0)) == -1) break; - p=mmap(0,size,PROT_READ|PROT_WRITE,MAP_SHARED,devzero,0); + if (devzero == -1 && (devzero = ::open("/dev/zero", O_RDWR, 0)) == -1) break; + p=::mmap(0,size,PROT_READ|PROT_WRITE,MAP_SHARED,devzero,0); if(p==MAP_FAILED) break; // failed mpxp_dbg2<<"shmem: "<<size<<" bytes allocated using mmap /dev/zero"<<std::endl; return p; @@ -64,22 +64,22 @@ #ifdef HAVE_SHM struct shmid_ds shmemds; int shmemid; - if ((shmemid = shmget(IPC_PRIVATE, size, IPC_CREAT | 0600)) == -1) break; - if ((p = shmat(shmemid, 0, 0)) == (any_t*)-1){ + if ((shmemid = ::shmget(IPC_PRIVATE, size, IPC_CREAT | 0600)) == -1) break; + if ((p = ::shmat(shmemid, 0, 0)) == (any_t*)-1){ mpxp_err<<"shmem: shmat() failed: "<<strerror(errno)<<std::endl; - shmctl (shmemid, IPC_RMID, &shmemds); + ::shmctl (shmemid, IPC_RMID, &shmemds); break; } - if (shmctl(shmemid, IPC_RMID, &shmemds) == -1) { + if (::shmctl(shmemid, IPC_RMID, &shmemds) == -1) { mpxp_err<<"shmem: shmctl() failed: "<<strerror(errno)<<std::endl; - if (shmdt(p) == -1) perror ("shmdt()"); + if (::shmdt(p) == -1) perror ("shmdt()"); break; } mpxp_dbg2<<"shmem: "<<size<<" bytes allocated using SHM"<<std::endl; return p; #else mpxp_fatal<<"shmem: no SHM support was compiled in!"<<std::endl; - return(NULL); + return NULL; #endif } default: @@ -94,7 +94,7 @@ switch(shmem_type){ case 2: #ifdef HAVE_SHM - if (shmdt(p) == -1) + if (::shmdt(p) == -1) mpxp_err<<"shmfree: shmdt() failed: "<<strerror(errno)<<std::endl; #else mpxp_err<<"shmfree: no SHM support was compiled in!"<<std::endl; Modified: mplayerxp/osdep/timer-lx.cpp =================================================================== --- mplayerxp/osdep/timer-lx.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/osdep/timer-lx.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -38,7 +38,7 @@ // float s; ::gettimeofday(&tv,NULL); // s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec; - return (tv.tv_sec*1000000ULL+tv.tv_usec); + return tv.tv_sec*1000000ULL+tv.tv_usec; } // Returns current time in milliseconds @@ -48,7 +48,7 @@ // float s; ::gettimeofday(&tv,NULL); // s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec; - return (tv.tv_sec*1000+tv.tv_usec/1000); + return tv.tv_sec*1000+tv.tv_usec/1000; } static unsigned int RelativeTime=0; @@ -67,7 +67,7 @@ int rtc_fd=-1; GetRelativeTime(); #ifdef HAVE_RTC - if ((rtc_fd = ::open("/dev/rtc", O_RDONLY)) < 0) perror ("Linux RTC init: open"); + if ((rtc_fd = ::open("/dev/rtc", O_RDONLY)) < 0) ::perror ("Linux RTC init: open"); else { unsigned long irqp; Modified: mplayerxp/osdep/timer.cpp =================================================================== --- mplayerxp/osdep/timer.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/osdep/timer.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -21,15 +21,15 @@ unsigned ret; struct itimerval itimer; user_func = func; - getitimer(ITIMER_REAL,&otimer); - old_alrm = signal(SIGALRM,my_alarm_handler); - signal(SIGALRM,my_alarm_handler); + ::getitimer(ITIMER_REAL,&otimer); + old_alrm = ::signal(SIGALRM,my_alarm_handler); + ::signal(SIGALRM,my_alarm_handler); itimer.it_interval.tv_sec = 0; itimer.it_interval.tv_usec = ms*1000; itimer.it_value.tv_sec = 0; itimer.it_value.tv_usec = ms*1000; - setitimer(ITIMER_REAL,&itimer,NULL); - getitimer(ITIMER_REAL,&itimer); + ::setitimer(ITIMER_REAL,&itimer,NULL); + ::getitimer(ITIMER_REAL,&itimer); ret = itimer.it_interval.tv_sec*1000 + itimer.it_interval.tv_usec/1000; if(!ret) restore_timer(); return ret; Modified: mplayerxp/postproc/aflib.cpp =================================================================== --- mplayerxp/postproc/aflib.cpp 2012-12-22 13:51:04 UTC (rev 598) +++ mplayerxp/postproc/aflib.cpp 2012-12-22 14:32:53 UTC (rev 599) @@ -596,7 +596,7 @@ sum += u; n++; } while (u >= BIZ_EPSILON * sum); - return(sum); + return sum; } /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-25 14:21:31
|
Revision: 600 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=600&view=rev Author: nickols_k Date: 2012-12-25 14:21:19 +0000 (Tue, 25 Dec 2012) Log Message: ----------- use references instead of pointer + minor redesign architecture of libmpcodecs Modified Paths: -------------- mplayerxp/dump.cpp mplayerxp/libmpcodecs/ad.cpp mplayerxp/libmpcodecs/ad.h mplayerxp/libmpcodecs/ad_a52.cpp mplayerxp/libmpcodecs/ad_acm.cpp mplayerxp/libmpcodecs/ad_dca.cpp mplayerxp/libmpcodecs/ad_dmo.cpp mplayerxp/libmpcodecs/ad_dshow.cpp mplayerxp/libmpcodecs/ad_dvdpcm.cpp mplayerxp/libmpcodecs/ad_faad.cpp mplayerxp/libmpcodecs/ad_hwac3.cpp mplayerxp/libmpcodecs/ad_internal.h mplayerxp/libmpcodecs/ad_lavc.cpp mplayerxp/libmpcodecs/ad_libdv.cpp mplayerxp/libmpcodecs/ad_mp3.cpp mplayerxp/libmpcodecs/ad_null.cpp mplayerxp/libmpcodecs/ad_pcm.cpp mplayerxp/libmpcodecs/ad_qtaudio.cpp mplayerxp/libmpcodecs/ad_real.cpp mplayerxp/libmpcodecs/ad_twin.cpp mplayerxp/libmpcodecs/ad_vorbis.cpp mplayerxp/libmpcodecs/dec_audio.cpp mplayerxp/libmpcodecs/dec_audio.h mplayerxp/libmpcodecs/dec_video.cpp mplayerxp/libmpcodecs/dec_video.h mplayerxp/libmpcodecs/vd.cpp mplayerxp/libmpcodecs/vd.h mplayerxp/libmpcodecs/vd_divx4.cpp mplayerxp/libmpcodecs/vd_dmo.cpp mplayerxp/libmpcodecs/vd_dshow.cpp mplayerxp/libmpcodecs/vd_huffyuv.cpp mplayerxp/libmpcodecs/vd_internal.h mplayerxp/libmpcodecs/vd_lavc.cpp mplayerxp/libmpcodecs/vd_libdv.cpp mplayerxp/libmpcodecs/vd_libmpeg2.cpp mplayerxp/libmpcodecs/vd_mpegpes.cpp mplayerxp/libmpcodecs/vd_null.cpp mplayerxp/libmpcodecs/vd_nuv.cpp mplayerxp/libmpcodecs/vd_qtvideo.cpp mplayerxp/libmpcodecs/vd_raw.cpp mplayerxp/libmpcodecs/vd_real.cpp mplayerxp/libmpcodecs/vd_theora.cpp mplayerxp/libmpcodecs/vd_vfw.cpp mplayerxp/libmpcodecs/vd_xanim.cpp mplayerxp/libmpcodecs/vd_xvid.cpp mplayerxp/libmpdemux/demux_avi.cpp mplayerxp/libmpdemux/demuxer_r.cpp mplayerxp/libmpdemux/demuxer_r.h mplayerxp/libmpstream2/network_asf.cpp mplayerxp/loader/afl.c mplayerxp/loader/dmo/DMO_AudioDecoder.c mplayerxp/loader/dmo/DMO_VideoDecoder.c mplayerxp/loader/dmo/Makefile mplayerxp/loader/dmo/buffer.c mplayerxp/loader/dmo/dmo.c mplayerxp/loader/driver.c mplayerxp/loader/dshow/DS_AudioDecoder.c mplayerxp/loader/dshow/DS_Filter.c mplayerxp/loader/dshow/DS_VideoDecoder.c mplayerxp/loader/dshow/Makefile mplayerxp/loader/dshow/allocator.c mplayerxp/loader/dshow/cmediasample.c mplayerxp/loader/dshow/inputpin.c mplayerxp/loader/dshow/outputpin.c mplayerxp/loader/ext.c mplayerxp/loader/ldt_keeper.c mplayerxp/loader/module.c mplayerxp/loader/pe_image.c mplayerxp/loader/registry.c mplayerxp/loader/vfl.c mplayerxp/loader/win32.c mplayerxp/mplayerxp.cpp mplayerxp/osdep/cpudetect.h mplayerxp/postproc/vf.cpp mplayerxp/xmpcore/xmp_adecoder.cpp mplayerxp/xmpcore/xmp_aplayer.cpp mplayerxp/xmpcore/xmp_vdecoder.cpp mplayerxp/xmpcore/xmp_vplayer.cpp Modified: mplayerxp/dump.cpp =================================================================== --- mplayerxp/dump.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/dump.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -338,7 +338,7 @@ seek_to_sec = NULL; MSG_INFO("seeking to %u seconds\n"); seek_p.secs=rel_seek_secs; - demux_seek_r(demuxer,&seek_p); + demux_seek_r(*demuxer,&seek_p); } aeof=sha?0:1; veof=shv?0:1; @@ -355,7 +355,7 @@ and don't generate badly interlaved stream. The ideal case is: type=read_packet(ANY_TYPE); put_packet(type); */ - in_size=ds_get_packet_r(sha->ds,&start,&a_pts); + in_size=ds_get_packet_r(*sha->ds,&start,a_pts); cmd = check_cmd(priv); if(cmd == -1) goto done; else @@ -420,7 +420,7 @@ float s_pts=0; while(s_pts < (shv?priv->vtimer:HUGE) || !shv || veof) /* autolimitation of sub reading */ { - in_size=ds_get_packet_r(demuxer->sub,&start,&s_pts); + in_size=ds_get_packet_r(*demuxer->sub,&start,s_pts); seof=demuxer->sub->eof; if(seof) break; cmd = check_cmd(priv); Modified: mplayerxp/libmpcodecs/ad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -77,23 +77,23 @@ } } -const ad_functions_t* afm_find_driver(const char *name) { +const ad_functions_t* afm_find_driver(const std::string& name) { unsigned i; for (i=0; mpcodecs_ad_drivers[i] != &mpcodecs_ad_null; i++) { - if(strcmp(mpcodecs_ad_drivers[i]->info->driver_name,name)==0){ + if(name==mpcodecs_ad_drivers[i]->info->driver_name){ return mpcodecs_ad_drivers[i]; } } return NULL; } -const audio_probe_t* afm_probe_driver(ad_private_t*ctx,sh_audio_t *sh,audio_filter_info_t* afi) { +const audio_probe_t* afm_probe_driver(Opaque& ctx,sh_audio_t *sh,audio_filter_info_t& afi) { unsigned i; const audio_probe_t* probe; for (i=0; mpcodecs_ad_drivers[i] != &mpcodecs_ad_null; i++) { MSG_V("Probing: %s\n",mpcodecs_ad_drivers[i]->info->driver_name); if((probe=mpcodecs_ad_drivers[i]->probe(sh->wtag))!=NULL) { - ad_private_t* priv=mpcodecs_ad_drivers[i]->preinit(probe,sh,afi); + Opaque* priv=mpcodecs_ad_drivers[i]->preinit(*probe,sh,afi); MSG_V("Driver: %s supports these outfmt for 0x%X wtag:\n" ,mpcodecs_ad_drivers[i]->info->driver_name,sh->wtag); for(i=0;i<Audio_MaxOutSample;i++) { @@ -101,7 +101,8 @@ if(probe->sample_fmt[i]==-1||probe->sample_fmt[i]==0) break; } MSG_V("\n"); - mpcodecs_ad_drivers[i]->uninit(priv); + mpcodecs_ad_drivers[i]->uninit(*priv); + delete priv; return probe; } } Modified: mplayerxp/libmpcodecs/ad.h =================================================================== --- mplayerxp/libmpcodecs/ad.h 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad.h 2012-12-25 14:21:19 UTC (rev 600) @@ -45,21 +45,20 @@ }; /* interface of video decoder drivers */ -struct ad_private_t; struct ad_functions_t { const ad_info_t* info; const config_t* options;/**< Optional: MPlayerXP's option related */ const audio_probe_t*(* __FASTCALL__ probe)(uint32_t wtag); - ad_private_t* (* __FASTCALL__ preinit)(const audio_probe_t*,sh_audio_t *,audio_filter_info_t*); - MPXP_Rc (* __FASTCALL__ init)(ad_private_t *ctx); - void (* __FASTCALL__ uninit)(ad_private_t *ctx); - MPXP_Rc (*control_ad)(ad_private_t *ctx,int cmd,any_t* arg, ...); - unsigned (* __FASTCALL__ decode)(ad_private_t *ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts); + Opaque* (* __FASTCALL__ preinit)(const audio_probe_t&,sh_audio_t*,audio_filter_info_t&); + MPXP_Rc (* __FASTCALL__ init)(Opaque& ctx); + void (* __FASTCALL__ uninit)(Opaque& ctx); + MPXP_Rc (*control_ad)(Opaque& ctx,int cmd,any_t* arg, ...); + unsigned (* __FASTCALL__ decode)(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts); }; -extern const ad_functions_t* afm_find_driver(const char *name); -extern const audio_probe_t* afm_probe_driver(ad_private_t*ctx,sh_audio_t*sh,audio_filter_info_t* afi); -#define FIX_APTS(sh_audio,pts,in_size) (sh_audio->i_bps?((float)(pts)+(float)(in_size)/(float)sh_audio->i_bps):((float)(pts))) +extern const ad_functions_t* afm_find_driver(const std::string& name); +extern const audio_probe_t* afm_probe_driver(Opaque& ctx,sh_audio_t*sh,audio_filter_info_t& afi); +inline float FIX_APTS(sh_audio_t* sh_audio,float& pts,unsigned in_size) { return sh_audio->i_bps?(pts+float(in_size))/float(sh_audio->i_bps):pts; } #endif Modified: mplayerxp/libmpcodecs/ad_a52.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -22,12 +22,17 @@ #include "libao3/audio_out.h" #include "postproc/af.h" -struct ad_private_t { +struct a52_private_t : public Opaque { + a52_private_t(); + virtual ~a52_private_t(); + sh_audio_t* sh; float last_pts; }; +a52_private_t::a52_private_t() {} +a52_private_t::~a52_private_t() {} -#define MAX_AC3_FRAME 3840 +static const int MAX_AC3_FRAME=3840; a52_state_t* mpxp_a52_state; uint32_t mpxp_a52_accel=0; @@ -64,20 +69,20 @@ return NULL; } -int a52_fillbuff(ad_private_t *priv,float *pts){ +int a52_fillbuff(a52_private_t& priv,float& pts){ int length=0; int flags=0; int sample_rate=0; int bit_rate=0; float apts=0.,null_pts; - sh_audio_t* sh_audio = priv->sh; + sh_audio_t* sh_audio = priv.sh; sh_audio->a_in_buffer_len=0; /* sync frame:*/ while(1){ while(sh_audio->a_in_buffer_len<8){ - int c=demux_getc_r(sh_audio->ds,apts?&null_pts:&apts); - if(c<0) { priv->last_pts=*pts=apts; return -1; } /* EOF*/ + int c=demux_getc_r(*sh_audio->ds,apts?null_pts:apts); + if(c<0) { priv.last_pts=pts=apts; return -1; } /* EOF*/ sh_audio->a_in_buffer[sh_audio->a_in_buffer_len++]=c; } if(sh_audio->wtag!=0x2000) swab(sh_audio->a_in_buffer,sh_audio->a_in_buffer,8); @@ -92,9 +97,9 @@ MSG_DBG2("a52: len=%d flags=0x%X %d Hz %d bit/s\n",length,flags,sample_rate,bit_rate); sh_audio->rate=sample_rate; sh_audio->i_bps=bit_rate/8; - demux_read_data_r(sh_audio->ds,(uint8_t*)sh_audio->a_in_buffer+8,length-8,apts?&null_pts:&apts); + demux_read_data_r(*sh_audio->ds,(uint8_t*)sh_audio->a_in_buffer+8,length-8,apts?null_pts:apts); if(sh_audio->wtag!=0x2000) swab(sh_audio->a_in_buffer+8,sh_audio->a_in_buffer+8,length-8); - priv->last_pts=*pts=apts; + priv.last_pts=pts=apts; if(crc16_block((uint8_t*)sh_audio->a_in_buffer+2,length-2)!=0) MSG_STATUS("a52: CRC check failed! \n"); return length; @@ -127,10 +132,10 @@ return (flags&A52_LFE) ? (channels+1) : channels; } -ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh,audio_filter_info_t* afi) +Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi) { UNUSED(probe); - ad_private_t* ctx=new(zeromem) ad_private_t; + a52_private_t* ctx=new(zeromem) a52_private_t; /* Dolby AC3 audio: */ /* however many channels, 2 bytes in a word, 256 samples in a block, 6 blocks in a frame */ #ifdef WORDS_BIGENDIAN @@ -141,9 +146,9 @@ #define A52_FMT24 AFMT_S24_LE #endif sh->afmt=bps2afmt(2); - if(af_query_fmt(afi->afilter,mpaf_format_e(AFMT_FLOAT32)) == MPXP_Ok|| - af_query_fmt(afi->afilter,mpaf_format_e(A52_FMT32)) == MPXP_Ok || - af_query_fmt(afi->afilter,mpaf_format_e(A52_FMT24)) == MPXP_Ok) { + if(af_query_fmt(afi.afilter,mpaf_format_e(AFMT_FLOAT32)) == MPXP_Ok|| + af_query_fmt(afi.afilter,mpaf_format_e(A52_FMT32)) == MPXP_Ok || + af_query_fmt(afi.afilter,mpaf_format_e(A52_FMT24)) == MPXP_Ok) { sh->afmt=AFMT_FLOAT32; } sh->audio_out_minsize=mp_conf.ao_channels*afmt2bps(sh->afmt)*256*6; @@ -152,9 +157,10 @@ return ctx; } -MPXP_Rc init(ad_private_t *ctx) +MPXP_Rc init(Opaque& ctx) { - sh_audio_t* sh_audio = ctx->sh; + a52_private_t& priv=static_cast<a52_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; sample_t level=1, bias=384; float pts; int flags=0; @@ -165,12 +171,12 @@ MSG_ERR("A52 init failed\n"); return MPXP_False; } - if(a52_fillbuff(ctx,&pts)<0){ + if(a52_fillbuff(priv,pts)<0){ MSG_ERR("A52 sync failed\n"); return MPXP_False; } /* 'a52 cannot upmix' hotfix:*/ - a52_printinfo(ctx->sh); + a52_printinfo(priv.sh); sh_audio->nch=mp_conf.ao_channels; while(sh_audio->nch>0){ switch(sh_audio->nch){ @@ -206,14 +212,12 @@ return MPXP_Ok; } -void uninit(ad_private_t *ctx) -{ - delete ctx; -} +void uninit(Opaque& ctx) { UNUSED(ctx); } -MPXP_Rc control_ad(ad_private_t *ctx,int cmd,any_t* arg, ...) +MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - sh_audio_t* sh = ctx->sh; + a52_private_t& priv=static_cast<a52_private_t&>(ctx); + sh_audio_t* sh = priv.sh; UNUSED(arg); switch(cmd) { case ADCTRL_RESYNC_STREAM: @@ -221,7 +225,7 @@ return MPXP_True; case ADCTRL_SKIP_FRAME: { float pts; - a52_fillbuff(ctx,&pts); // skip AC3 frame + a52_fillbuff(priv,pts); // skip AC3 frame return MPXP_True; } default: @@ -230,9 +234,10 @@ return MPXP_Unknown; } -unsigned decode(ad_private_t *ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh_audio = ctx->sh; + a52_private_t& priv=static_cast<a52_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; sample_t level=1, bias=384; int flags=mpxp_a52_flags|A52_ADJUST_LEVEL; unsigned i; @@ -240,8 +245,8 @@ UNUSED(minlen); UNUSED(maxlen); if(!sh_audio->a_in_buffer_len) { - if(a52_fillbuff(ctx,pts)<0) return len; /* EOF */ - } else *pts=ctx->last_pts; + if(a52_fillbuff(priv,pts)<0) return len; /* EOF */ + } else pts=priv.last_pts; sh_audio->a_in_buffer_len=0; if (a52_frame (mpxp_a52_state, (uint8_t*)sh_audio->a_in_buffer, &flags, &level, bias)){ MSG_WARN("a52: error decoding frame\n"); Modified: mplayerxp/libmpcodecs/ad_acm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -26,55 +26,60 @@ LIBAD_EXTERN(msacm) -struct ad_private_t { - float pts; - WAVEFORMATEX o_wf; // out format - HACMSTREAM srcstream; // handle - sh_audio_t* sh; +struct acm_private_t : public Opaque { + acm_private_t(); + virtual ~acm_private_t(); + + float pts; + WAVEFORMATEX o_wf; // out format + HACMSTREAM srcstream; // handle + sh_audio_t* sh; }; +acm_private_t::acm_private_t() {} +acm_private_t::~acm_private_t() {} static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } -static int init_acm_audio_codec(ad_private_t *priv){ - sh_audio_t* sh_audio = priv->sh; +static int init_acm_audio_codec(acm_private_t& priv){ + sh_audio_t* sh_audio = priv.sh; HRESULT ret; WAVEFORMATEX *in_fmt=sh_audio->wf; unsigned int srcsize=0; MSG_V("======= Win32 (ACM) AUDIO Codec init =======\n"); - priv->srcstream=0; + priv.srcstream=0; - priv->o_wf.nChannels=sh_audio->nch; - priv->o_wf.nSamplesPerSec=sh_audio->rate; - priv->o_wf.nAvgBytesPerSec=2*priv->o_wf.nSamplesPerSec*priv->o_wf.nChannels; - priv->o_wf.wFormatTag=WAVE_FORMAT_PCM; - priv->o_wf.nBlockAlign=2*sh_audio->nch; - priv->o_wf.wBitsPerSample=sh_audio->afmt?afmt2bps(sh_audio->afmt)*8:16; - priv->o_wf.cbSize=0; + priv.o_wf.nChannels=sh_audio->nch; + priv.o_wf.nSamplesPerSec=sh_audio->rate; + priv.o_wf.nAvgBytesPerSec=2*priv.o_wf.nSamplesPerSec*priv.o_wf.nChannels; + priv.o_wf.wFormatTag=WAVE_FORMAT_PCM; + priv.o_wf.nBlockAlign=2*sh_audio->nch; + priv.o_wf.wBitsPerSample=sh_audio->afmt?afmt2bps(sh_audio->afmt)*8:16; + priv.o_wf.cbSize=0; if(!in_fmt) { in_fmt=sh_audio->wf=new(zeromem) WAVEFORMATEX; - memcpy(in_fmt,&priv->o_wf,sizeof(WAVEFORMATEX)); + memcpy(in_fmt,&priv.o_wf,sizeof(WAVEFORMATEX)); in_fmt->wFormatTag=sh_audio->wtag; } if(mp_conf.verbose) { MSG_V("Output fmt:\n"); - print_wave_header(&priv->o_wf,sizeof(WAVEFORMATEX)); + print_wave_header(&priv.o_wf,sizeof(WAVEFORMATEX)); } MSACM_RegisterDriver((const char *)sh_audio->codec->dll_name, sh_audio->wtag, 0); - ret=acmStreamOpen(&priv->srcstream,(HACMDRIVER)NULL,in_fmt,&priv->o_wf,NULL,0,0,0); + ret=acmStreamOpen(&priv.srcstream,(HACMDRIVER)NULL,in_fmt,&priv.o_wf,NULL,0,0,0); if(ret){ if(ret==ACMERR_NOTPOSSIBLE) MSG_ERR("ACM_Decoder: Unappropriate audio format\n"); else MSG_ERR("ACM_Decoder: acmStreamOpen error: %d", (int)ret); - priv->srcstream=0; + priv.srcstream=0; return 0; } MSG_V("Audio codec opened OK! ;-)\n"); - acmStreamSize(priv->srcstream, in_fmt->nBlockAlign, (LPDWORD)&srcsize, ACM_STREAMSIZEF_SOURCE); + acmStreamSize(priv.srcstream, in_fmt->nBlockAlign, (LPDWORD)&srcsize, ACM_STREAMSIZEF_SOURCE); srcsize*=2; //if(srcsize<MAX_OUTBURST) srcsize=MAX_OUTBURST; if(!srcsize){ @@ -87,14 +92,14 @@ sh_audio->audio_out_minsize=srcsize; // audio output min. size MSG_V("Audio ACM output buffer min. size: %ld\n",srcsize); - acmStreamSize(priv->srcstream, srcsize, (LPDWORD)&srcsize, ACM_STREAMSIZEF_DESTINATION); + acmStreamSize(priv.srcstream, srcsize, (LPDWORD)&srcsize, ACM_STREAMSIZEF_DESTINATION); if(srcsize<in_fmt->nBlockAlign) srcsize=2*in_fmt->nBlockAlign; sh_audio->audio_in_minsize=srcsize; // audio input min. size MSG_V("Audio ACM input buffer min. size: %ld\n",srcsize); sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec; - sh_audio->nch=priv->o_wf.nChannels; - sh_audio->rate=priv->o_wf.nSamplesPerSec; - sh_audio->afmt=bps2afmt((priv->o_wf.wBitsPerSample+7)/8); + sh_audio->nch=priv.o_wf.nChannels; + sh_audio->rate=priv.o_wf.nSamplesPerSec; + sh_audio->afmt=bps2afmt((priv.o_wf.wBitsPerSample+7)/8); sh_audio->a_in_buffer_size=2*sh_audio->audio_in_minsize; sh_audio->a_in_buffer=new char [sh_audio->a_in_buffer_size]; sh_audio->a_in_buffer_len=0; @@ -102,12 +107,11 @@ return 1; } -static int close_acm_audio_codec(ad_private_t *priv) +static int close_acm_audio_codec(acm_private_t& priv) { - sh_audio_t* sh_audio = priv->sh; HRESULT ret; - ret = acmStreamClose(priv->srcstream, 0); + ret = acmStreamClose(priv.srcstream, 0); if (ret) switch(ret) @@ -128,11 +132,12 @@ return 1; } -MPXP_Rc init(ad_private_t *priv) +MPXP_Rc init(Opaque& ctx) { - sh_audio_t* sh_audio = priv->sh; + acm_private_t& priv=static_cast<acm_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; float pts; - int ret=decode(priv,reinterpret_cast<unsigned char*>(sh_audio->a_buffer),4096,sh_audio->a_buffer_size,&pts); + int ret=decode(priv,reinterpret_cast<unsigned char*>(sh_audio->a_buffer),4096,sh_audio->a_buffer_size,pts); if(ret<0){ MSG_INFO("ACM decoding error: %d\n",ret); return MPXP_False; @@ -141,15 +146,15 @@ return MPXP_Ok; } -ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh_audio,audio_filter_info_t* afi) +Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) { UNUSED(probe); UNUSED(afi); /* Win32 ACM audio codec: */ - ad_private_t *priv; - if(!(priv=new(zeromem) ad_private_t)) return NULL; + acm_private_t *priv; + if(!(priv=new(zeromem) acm_private_t)) return NULL; priv->sh = sh_audio; - if(!init_acm_audio_codec(priv)){ + if(!init_acm_audio_codec(*priv)){ MSG_ERR(MSGTR_ACMiniterror); delete priv; return NULL; @@ -158,16 +163,18 @@ return priv; } -void uninit(ad_private_t *p) +void uninit(Opaque& ctx) { - close_acm_audio_codec(p); - delete p; + acm_private_t& priv=static_cast<acm_private_t&>(ctx); + close_acm_audio_codec(priv); } -MPXP_Rc control_ad(ad_private_t *priv,int cmd,any_t* arg, ...) +MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - sh_audio_t* sh_audio = priv->sh; + acm_private_t& priv=static_cast<acm_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; int skip; + UNUSED(arg); switch(cmd) { // case ADCTRL_RESYNC_STREAM: // sh_audio->a_in_buffer_len=0;/* reset ACM/DShow audio buffer */ @@ -179,7 +186,7 @@ skip=(sh_audio->wf->nAvgBytesPerSec/16)&(~7); if(skip<16) skip=16; } - demux_read_data_r(sh_audio->ds,NULL,skip,&pts); + demux_read_data_r(*sh_audio->ds,NULL,skip,pts); return MPXP_True; } default: @@ -188,36 +195,37 @@ return MPXP_Unknown; } -unsigned decode(ad_private_t *priv,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh_audio = priv->sh; + acm_private_t& priv=static_cast<acm_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; ACMSTREAMHEADER ash; HRESULT hr; DWORD srcsize=0; DWORD len=minlen; - acmStreamSize(priv->srcstream,len , &srcsize, ACM_STREAMSIZEF_DESTINATION); + acmStreamSize(priv.srcstream,len , &srcsize, ACM_STREAMSIZEF_DESTINATION); MSG_V("acm says: srcsize=%ld (bufflen=%d size=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,len); if(srcsize<sh_audio->wf->nBlockAlign){ srcsize=sh_audio->wf->nBlockAlign; - acmStreamSize(priv->srcstream, srcsize, &len, ACM_STREAMSIZEF_SOURCE); + acmStreamSize(priv.srcstream, srcsize, &len, ACM_STREAMSIZEF_SOURCE); MSG_V("acm says: srcsize=%ld (bufflen=%d size=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,len); if(len>maxlen) len=maxlen; } - //if(srcsize==0) srcsize=priv->o_wf.nBlockAlign; + //if(srcsize==0) srcsize=priv.o_wf.nBlockAlign; if(srcsize>sh_audio->a_in_buffer_size) srcsize=sh_audio->a_in_buffer_size; // !!!!!! if(sh_audio->a_in_buffer_len<srcsize){ int l; - l = demux_read_data_r(sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), + l = demux_read_data_r(*sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), srcsize-sh_audio->a_in_buffer_len,pts); - *pts=FIX_APTS(sh_audio,*pts,-sh_audio->a_in_buffer_len); + pts=FIX_APTS(sh_audio,pts,-sh_audio->a_in_buffer_len); sh_audio->a_in_buffer_len+=l; - priv->pts=*pts; + priv.pts=pts; } - else *pts=priv->pts; + else pts=priv.pts; /* !!! NK: FINALY WE MUST KNOW size of output buffer after a_in_buffer_len modifying !!!! */ - acmStreamSize(priv->srcstream,sh_audio->a_in_buffer_len, &len, ACM_STREAMSIZEF_SOURCE); + acmStreamSize(priv.srcstream,sh_audio->a_in_buffer_len, &len, ACM_STREAMSIZEF_SOURCE); MSG_DBG2("acm convert %d -> %d bytes\n",sh_audio->a_in_buffer_len,len); memset(&ash, 0, sizeof(ash)); @@ -228,12 +236,12 @@ ash.cbSrcLength=sh_audio->a_in_buffer_len; ash.pbDst=buf; ash.cbDstLength=len; - hr=acmStreamPrepareHeader(priv->srcstream,&ash,0); + hr=acmStreamPrepareHeader(priv.srcstream,&ash,0); if(hr){ MSG_V("ACM_Decoder: acmStreamPrepareHeader error %d\n",(int)hr); return -1; } - hr=acmStreamConvert(priv->srcstream,&ash,0); + hr=acmStreamConvert(priv.srcstream,&ash,0); if(hr){ MSG_DBG2("ACM_Decoder: acmStreamConvert error %d\n",(int)hr); switch(hr) @@ -249,10 +257,10 @@ } else { sh_audio->a_in_buffer_len-=ash.cbSrcLengthUsed; memcpy(sh_audio->a_in_buffer,&sh_audio->a_in_buffer[ash.cbSrcLengthUsed],sh_audio->a_in_buffer_len); - priv->pts=FIX_APTS(sh_audio,priv->pts,ash.cbSrcLengthUsed); + priv.pts=FIX_APTS(sh_audio,priv.pts,ash.cbSrcLengthUsed); } len=ash.cbDstLengthUsed; - hr=acmStreamUnprepareHeader(priv->srcstream,&ash,0); + hr=acmStreamUnprepareHeader(priv.srcstream,&ash,0); if(hr){ MSG_V("ACM_Decoder: acmStreamUnprepareHeader error %d\n",(int)hr); } Modified: mplayerxp/libmpcodecs/ad_dca.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -22,16 +22,21 @@ #include "libao3/audio_out.h" #include "postproc/af.h" -#define MAX_AC5_FRAME 4096 +static const unsigned MAX_AC5_FRAME=4096; dca_state_t* mpxp_dca_state; uint32_t mpxp_dca_accel=0; uint32_t mpxp_dca_flags=0; -struct ad_private_t { +struct dca_private_t : public Opaque { + dca_private_t(); + virtual ~dca_private_t(); + float last_pts; sh_audio_t* sh; }; +dca_private_t::dca_private_t() {} +dca_private_t::~dca_private_t() {} static const ad_info_t info = { "DTS Coherent Acoustics", @@ -66,20 +71,19 @@ return NULL; } -int dca_fillbuff(ad_private_t *priv,float *pts){ +int dca_fillbuff(dca_private_t& priv,float& pts){ int length=0,flen=0; int flags=0; int sample_rate=0; int bit_rate=0; float apts=0.,null_pts; - sh_audio_t* sh_audio = priv->sh; - + sh_audio_t* sh_audio=priv.sh; sh_audio->a_in_buffer_len=0; /* sync frame:*/ while(1){ while(sh_audio->a_in_buffer_len<16){ - int c=demux_getc_r(sh_audio->ds,apts?&null_pts:&apts); - if(c<0) { priv->last_pts=*pts=apts; return -1; } /* EOF*/ + int c=demux_getc_r(*sh_audio->ds,apts?null_pts:apts); + if(c<0) { priv.last_pts=pts=apts; return -1; } /* EOF*/ sh_audio->a_in_buffer[sh_audio->a_in_buffer_len++]=c; } length = dca_syncinfo (mpxp_dca_state,reinterpret_cast<uint8_t*>(sh_audio->a_in_buffer), reinterpret_cast<int *>(&flags), &sample_rate, &bit_rate, &flen); @@ -92,8 +96,8 @@ MSG_DBG2("dca[%08X]: len=%d flags=0x%X %d Hz %d bit/s frame=%u\n",*((long *)sh_audio->a_in_buffer),length,flags,sample_rate,bit_rate,flen); sh_audio->rate=sample_rate; sh_audio->i_bps=bit_rate/8; - demux_read_data_r(sh_audio->ds,reinterpret_cast<unsigned char*>(sh_audio->a_in_buffer+16),length-16,apts?&null_pts:&apts); - priv->last_pts=*pts=apts; + demux_read_data_r(*sh_audio->ds,reinterpret_cast<unsigned char*>(sh_audio->a_in_buffer+16),length-16,apts?null_pts:apts); + priv.last_pts=pts=apts; return length; } @@ -125,7 +129,7 @@ return (flags&DCA_LFE) ? (channels+1) : channels; } -ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh,audio_filter_info_t* afi) +Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi) { UNUSED(probe); /* DTS audio: @@ -138,22 +142,23 @@ #define DCA_FMT24 AFMT_S24_LE #endif sh->afmt=bps2afmt(2); - if( af_query_fmt(afi->afilter,afmt2mpaf(AFMT_FLOAT32)) == MPXP_Ok|| - af_query_fmt(afi->afilter,afmt2mpaf(DCA_FMT32)) == MPXP_Ok || - af_query_fmt(afi->afilter,afmt2mpaf(DCA_FMT24)) == MPXP_Ok) + if( af_query_fmt(afi.afilter,afmt2mpaf(AFMT_FLOAT32)) == MPXP_Ok|| + af_query_fmt(afi.afilter,afmt2mpaf(DCA_FMT32)) == MPXP_Ok || + af_query_fmt(afi.afilter,afmt2mpaf(DCA_FMT24)) == MPXP_Ok) { sh->afmt=AFMT_FLOAT32; } sh->audio_out_minsize=mp_conf.ao_channels*afmt2bps(sh->afmt)*256*8; sh->audio_in_minsize=MAX_AC5_FRAME; - ad_private_t* priv = new(zeromem) ad_private_t; + dca_private_t* priv = new(zeromem) dca_private_t; priv->sh = sh; return priv; } -MPXP_Rc init(ad_private_t *priv) +MPXP_Rc init(Opaque& ctx) { - sh_audio_t* sh_audio = priv->sh; + dca_private_t& priv=static_cast<dca_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; sample_t level=1, bias=384; float pts; int flags=0; @@ -164,7 +169,7 @@ MSG_ERR("dca init failed\n"); return MPXP_False; } - if(dca_fillbuff(priv,&pts)<0){ + if(dca_fillbuff(priv,pts)<0){ MSG_ERR("dca sync failed\n"); return MPXP_False; } @@ -204,14 +209,12 @@ return MPXP_Ok; } -void uninit(ad_private_t *ctx) -{ - delete ctx; -} +void uninit(Opaque& ctx) { UNUSED(ctx); } -MPXP_Rc control_ad(ad_private_t *priv,int cmd,any_t* arg, ...) +MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - sh_audio_t* sh = priv->sh; + dca_private_t& priv=static_cast<dca_private_t&>(ctx); + sh_audio_t* sh = priv.sh; UNUSED(arg); switch(cmd) { case ADCTRL_RESYNC_STREAM: @@ -219,7 +222,7 @@ return MPXP_True; case ADCTRL_SKIP_FRAME: { float pts; - dca_fillbuff(priv,&pts); // skip AC3 frame + dca_fillbuff(priv,pts); // skip AC3 frame return MPXP_True; } default: @@ -228,18 +231,19 @@ return MPXP_Unknown; } -unsigned decode(ad_private_t *priv,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { + dca_private_t& priv=static_cast<dca_private_t&>(ctx); sample_t level=1, bias=384; unsigned i,nblocks,flags=mpxp_dca_flags|DCA_ADJUST_LEVEL; unsigned len=0; - sh_audio_t* sh_audio = priv->sh; + sh_audio_t* sh_audio = priv.sh; UNUSED(minlen); UNUSED(maxlen); if(!sh_audio->a_in_buffer_len) { if(dca_fillbuff(priv,pts)<0) return len; /* EOF */ } - else *pts=priv->last_pts; + else pts=priv.last_pts; sh_audio->a_in_buffer_len=0; if (dca_frame (mpxp_dca_state, reinterpret_cast<uint8_t *>(sh_audio->a_in_buffer), reinterpret_cast<int *>(&flags), &level, bias)!=0){ MSG_WARN("dca: error decoding frame\n"); Modified: mplayerxp/libmpcodecs/ad_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -28,28 +28,35 @@ #include "loader/dmo/DMO_AudioDecoder.h" -struct ad_private_t { +struct admo_private_t : public Opaque { + admo_private_t(); + virtual ~admo_private_t(); + float pts; DMO_AudioDecoder* ds_adec; sh_audio_t* sh; }; +admo_private_t::admo_private_t() {} +admo_private_t::~admo_private_t() { + DMO_AudioDecoder_Destroy(ds_adec); +} static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } -static MPXP_Rc init(ad_private_t *p) +static MPXP_Rc init(admo_private_t *p) { UNUSED(p); return MPXP_Ok; } -static ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh_audio,audio_filter_info_t* afi) +static Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) { UNUSED(probe); UNUSED(afi); - ad_private_t*priv; + admo_private_t*priv; int chans=(mp_conf.ao_channels==sh_audio->wf->nChannels) ? mp_conf.ao_channels : (sh_audio->wf->nChannels>=2 ? 2 : 1); - if(!(priv=new(zeromem) ad_private_t)) return NULL; + if(!(priv=new(zeromem) admo_private_t)) return NULL; priv->sh=sh_audio; if(!(priv->ds_adec=DMO_AudioDecoder_Open(sh_audio->codec->dll_name,&sh_audio->codec->guid,sh_audio->wf,chans))) { MSG_ERR(MSGTR_MissingDLLcodec,sh_audio->codec->dll_name); @@ -66,15 +73,12 @@ return priv; } -static void uninit(ad_private_t *priv) -{ - DMO_AudioDecoder_Destroy(priv->ds_adec); - delete priv; -} +static void uninit(Opaque& ctx) { UNUSED(ctx); } -static MPXP_Rc control_ad(ad_private_t *priv,int cmd,any_t* arg, ...) +static MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - sh_audio_t* sh_audio = priv->sh; + admo_private_t& priv=static_cast<admo_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; int skip; UNUSED(arg); switch(cmd) { @@ -85,42 +89,43 @@ skip=(sh_audio->wf->nAvgBytesPerSec/16)&(~7); if(skip<16) skip=16; } - demux_read_data_r(sh_audio->ds,NULL,skip,&pts); + demux_read_data_r(*sh_audio->ds,NULL,skip,pts); return MPXP_True; } } return MPXP_Unknown; } -static unsigned decode(ad_private_t *priv,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +static unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh_audio = priv->sh; + admo_private_t& priv=static_cast<admo_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; unsigned len=0; UNUSED(minlen); { unsigned size_in=0; unsigned size_out=0; - unsigned srcsize=DMO_AudioDecoder_GetSrcSize(priv->ds_adec, maxlen); + unsigned srcsize=DMO_AudioDecoder_GetSrcSize(priv.ds_adec, maxlen); MSG_DBG2("DMO says: srcsize=%d (buffsize=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_size,maxlen); if(srcsize>sh_audio->a_in_buffer_size) srcsize=sh_audio->a_in_buffer_size; // !!!!!! if((unsigned)sh_audio->a_in_buffer_len<srcsize){ unsigned l; - l=demux_read_data_r(sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), + l=demux_read_data_r(*sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), srcsize-sh_audio->a_in_buffer_len,pts); sh_audio->a_in_buffer_len+=l; - priv->pts=*pts; + priv.pts=pts; } - else *pts=priv->pts; - DMO_AudioDecoder_Convert(priv->ds_adec, sh_audio->a_in_buffer,sh_audio->a_in_buffer_len, + else pts=priv.pts; + DMO_AudioDecoder_Convert(priv.ds_adec, sh_audio->a_in_buffer,sh_audio->a_in_buffer_len, buf,maxlen, &size_in,&size_out); MSG_DBG2("DMO: audio %d -> %d converted (in_buf_len=%d of %d) %f\n" - ,size_in,size_out,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,*pts); + ,size_in,size_out,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,pts); if(size_in>=(unsigned)sh_audio->a_in_buffer_len){ sh_audio->a_in_buffer_len=0; } else { sh_audio->a_in_buffer_len-=size_in; memcpy(sh_audio->a_in_buffer,&sh_audio->a_in_buffer[size_in],sh_audio->a_in_buffer_len); - priv->pts=FIX_APTS(sh_audio,priv->pts,size_in); + priv.pts=FIX_APTS(sh_audio,priv.pts,size_in); } len=size_out; } Modified: mplayerxp/libmpcodecs/ad_dshow.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -23,26 +23,33 @@ LIBAD_EXTERN(dshow) -struct ad_private_t { +struct adshow_private_t : public Opaque { + adshow_private_t(); + virtual ~adshow_private_t(); + float pts; DS_AudioDecoder* ds_adec; sh_audio_t* sh; }; +adshow_private_t::adshow_private_t() {} +adshow_private_t::~adshow_private_t() { + DS_AudioDecoder_Destroy(ds_adec); +} static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } -MPXP_Rc init(ad_private_t *p) +MPXP_Rc init(Opaque& ctx) { - UNUSED(p); + UNUSED(ctx); return MPXP_Ok; } -ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh_audio,audio_filter_info_t* afi) +Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) { UNUSED(probe); UNUSED(afi); - ad_private_t *priv; - if(!(priv=new(zeromem) ad_private_t)) return NULL; + adshow_private_t *priv; + if(!(priv=new(zeromem) adshow_private_t)) return NULL; priv->sh = sh_audio; if(!(priv->ds_adec=DS_AudioDecoder_Open(sh_audio->codec->dll_name,&sh_audio->codec->guid,sh_audio->wf))) { MSG_ERR(MSGTR_MissingDLLcodec,sh_audio->codec->dll_name); @@ -59,15 +66,13 @@ return priv; } -void uninit(ad_private_t *priv) -{ - DS_AudioDecoder_Destroy(priv->ds_adec); - delete priv; -} +void uninit(Opaque& ctx) { UNUSED(ctx); } -MPXP_Rc control_ad(ad_private_t *p,int cmd,any_t* arg, ...) + +MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - sh_audio_t* sh_audio = p->sh; + adshow_private_t& priv=static_cast<adshow_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; int skip; UNUSED(arg); switch(cmd) { @@ -81,7 +86,7 @@ skip=(sh_audio->wf->nAvgBytesPerSec/16)&(~7); if(skip<16) skip=16; } - demux_read_data_r(sh_audio->ds,NULL,skip,&pts); + demux_read_data_r(*sh_audio->ds,NULL,skip,pts); } return MPXP_True; default: @@ -90,34 +95,35 @@ return MPXP_Unknown; } -unsigned decode(ad_private_t *priv,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh_audio = priv->sh; + adshow_private_t& priv=static_cast<adshow_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; unsigned len=0; UNUSED(minlen); { unsigned size_in=0; unsigned size_out=0; - unsigned srcsize=DS_AudioDecoder_GetSrcSize(priv->ds_adec, maxlen); + unsigned srcsize=DS_AudioDecoder_GetSrcSize(priv.ds_adec, maxlen); MSG_DBG3("DShow says: srcsize=%d (buffsize=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_size,maxlen); if(srcsize>sh_audio->a_in_buffer_size) srcsize=sh_audio->a_in_buffer_size; // !!!!!! if((unsigned)sh_audio->a_in_buffer_len<srcsize){ unsigned l; - l=demux_read_data_r(sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), + l=demux_read_data_r(*sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), srcsize-sh_audio->a_in_buffer_len,pts); sh_audio->a_in_buffer_len+=l; - priv->pts=*pts; + priv.pts=pts; } - else *pts=priv->pts; - DS_AudioDecoder_Convert(priv->ds_adec, reinterpret_cast<unsigned char*>(sh_audio->a_in_buffer),sh_audio->a_in_buffer_len, + else pts=priv.pts; + DS_AudioDecoder_Convert(priv.ds_adec, reinterpret_cast<unsigned char*>(sh_audio->a_in_buffer),sh_audio->a_in_buffer_len, buf,maxlen, &size_in,&size_out); MSG_DBG2("DShow: audio %d -> %d converted (in_buf_len=%d of %d) %f\n" - ,size_in,size_out,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,*pts); + ,size_in,size_out,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,pts); if(size_in>=(unsigned)sh_audio->a_in_buffer_len){ sh_audio->a_in_buffer_len=0; } else { sh_audio->a_in_buffer_len-=size_in; memcpy(sh_audio->a_in_buffer,&sh_audio->a_in_buffer[size_in],sh_audio->a_in_buffer_len); - priv->pts=FIX_APTS(sh_audio,priv->pts,size_in); + priv.pts=FIX_APTS(sh_audio,priv.pts,size_in); } len=size_out; } Modified: mplayerxp/libmpcodecs/ad_dvdpcm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -8,9 +8,14 @@ #include "osdep/bswap.h" #include "libao3/afmt.h" -struct ad_private_t { +struct dvdpcm_private_t : public Opaque { + dvdpcm_private_t(); + virtual ~dvdpcm_private_t(); + sh_audio_t* sh; }; +dvdpcm_private_t::dvdpcm_private_t() {} +dvdpcm_private_t::~dvdpcm_private_t() {} static const ad_info_t info = { "Uncompressed DVD/VOB LPCM audio decoder", @@ -38,10 +43,11 @@ return NULL; } -MPXP_Rc init(ad_private_t *priv) +MPXP_Rc init(Opaque& ctx) { + dvdpcm_private_t& priv=static_cast<dvdpcm_private_t&>(ctx); /* DVD PCM Audio:*/ - sh_audio_t* sh = priv->sh; + sh_audio_t* sh = priv.sh; sh->i_bps = 0; if(sh->codecdata_len==3){ // we have LPCM header: @@ -77,24 +83,22 @@ return MPXP_Ok; } -ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh,audio_filter_info_t* afi) +Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi) { UNUSED(probe); UNUSED(afi); sh->audio_out_minsize=2048; - ad_private_t* priv = new(zeromem) ad_private_t; + dvdpcm_private_t* priv = new(zeromem) dvdpcm_private_t; priv->sh = sh; return priv; } -void uninit(ad_private_t *priv) -{ - delete priv; -} +void uninit(Opaque& priv) { UNUSED(priv); } -MPXP_Rc control_ad(ad_private_t *priv,int cmd,any_t* arg, ...) +MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - sh_audio_t* sh = priv->sh; + dvdpcm_private_t& priv=static_cast<dvdpcm_private_t&>(ctx); + sh_audio_t* sh = priv.sh; int skip; UNUSED(arg); switch(cmd) { @@ -102,7 +106,7 @@ float pts; skip=sh->i_bps/16; skip=skip&(~3); - demux_read_data_r(sh->ds,NULL,skip,&pts); + demux_read_data_r(*sh->ds,NULL,skip,pts); return MPXP_True; } default: @@ -111,21 +115,22 @@ return MPXP_Unknown; } -unsigned decode(ad_private_t *priv,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +unsigned decode(Opaque &ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh_audio = priv->sh; - unsigned j; - unsigned len; - float null_pts; - UNUSED(maxlen); - if (afmt2bps(sh_audio->afmt) == 3) { - if (((sh_audio->codecdata[1] >> 6) & 3) == 1) { + dvdpcm_private_t& priv=static_cast<dvdpcm_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; + unsigned j; + unsigned len; + float null_pts; + UNUSED(maxlen); + if (afmt2bps(sh_audio->afmt) == 3) { + if (((sh_audio->codecdata[1] >> 6) & 3) == 1) { // 20 bit // not sure if the "& 0xf0" and "<< 4" are the right way around // can somebody clarify? for (j = 0; j < minlen; j += 12) { unsigned char tmp[10]; - len = demux_read_data_r(sh_audio->ds, tmp, 10,j?&null_pts:pts); + len = demux_read_data_r(*sh_audio->ds, tmp, 10,j?null_pts:pts); if (len < 10) break; // first sample buf[j + 0] = tmp[0]; @@ -149,7 +154,7 @@ // 24 bit for (j = 0; j < minlen; j += 12) { unsigned char tmp[12]; - len = demux_read_data_r(sh_audio->ds, tmp, 12, j?&null_pts:pts); + len = demux_read_data_r(*sh_audio->ds, tmp, 12, j?null_pts:pts); if (len < 12) break; // first sample buf[j + 0] = tmp[0]; @@ -171,6 +176,6 @@ len = j; } } else - len=demux_read_data_r(sh_audio->ds,buf,(minlen+3)&(~3),pts); + len=demux_read_data_r(*sh_audio->ds,buf,(minlen+3)&(~3),pts); return len; } Modified: mplayerxp/libmpcodecs/ad_faad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -35,11 +35,16 @@ LIBAD_EXTERN(faad) -struct ad_private_t { +struct faad_private_t : public Opaque { + faad_private_t(); + virtual ~faad_private_t(); + float pts; sh_audio_t* sh; audio_filter_info_t* afi; }; +faad_private_t::faad_private_t() {} +faad_private_t::~faad_private_t() {} static const audio_probe_t probes[] = { { "faad", "libfaad"SLIBSUFFIX, 0xFF, ACodecStatus_Working, {AFMT_FLOAT32, AFMT_S24_LE, AFMT_S16_LE} }, @@ -103,11 +108,11 @@ /* PS: 0: off, 1: on */ unsigned char ps; } NeAACDecFrameInfo; -#define FAAD_MIN_STREAMSIZE 768 /* 6144 bits/channel */ +static const int FAAD_MIN_STREAMSIZE=768; /* 6144 bits/channel */ /* configure maximum supported channels, * * this is theoretically max. 64 chans */ -#define FAAD_MAX_CHANNELS 6 -#define FAAD_BUFFLEN (FAAD_MIN_STREAMSIZE*FAAD_MAX_CHANNELS) +static const int FAAD_MAX_CHANNELS=6; +static const int FAAD_BUFFLEN=(FAAD_MIN_STREAMSIZE*FAAD_MAX_CHANNELS); #ifdef _WIN32 #pragma pack(push, 8) #ifndef NEAACDECAPI @@ -179,23 +184,24 @@ } -static ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh,audio_filter_info_t* afi) +static Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi) { sh->audio_out_minsize=8192*FAAD_MAX_CHANNELS; sh->audio_in_minsize=FAAD_BUFFLEN; - ad_private_t* priv = new(zeromem) ad_private_t; + faad_private_t* priv = new(zeromem) faad_private_t; priv->sh = sh; - priv->afi = afi; - if(load_dll(probe->codec_dll)!=MPXP_Ok) { + priv->afi = &afi; + if(load_dll(probe.codec_dll)!=MPXP_Ok) { delete priv; return NULL; } return priv; } -static MPXP_Rc init(ad_private_t *priv) +static MPXP_Rc init(Opaque& ctx) { - sh_audio_t* sh = priv->sh; + faad_private_t& priv=static_cast<faad_private_t&>(ctx); + sh_audio_t* sh = priv.sh; unsigned long NeAAC_samplerate; unsigned char NeAAC_channels; float pts; @@ -224,9 +230,9 @@ #endif /* Set the maximal quality */ /* This is useful for expesive audio cards */ - if(af_query_fmt(priv->afi->afilter,afmt2mpaf(AFMT_FLOAT32)) == MPXP_Ok || - af_query_fmt(priv->afi->afilter,afmt2mpaf(NeAAC_FMT32)) == MPXP_Ok || - af_query_fmt(priv->afi->afilter,afmt2mpaf(NeAAC_FMT24)) == MPXP_Ok) { + if(af_query_fmt(priv.afi->afilter,afmt2mpaf(AFMT_FLOAT32)) == MPXP_Ok || + af_query_fmt(priv.afi->afilter,afmt2mpaf(NeAAC_FMT32)) == MPXP_Ok || + af_query_fmt(priv.afi->afilter,afmt2mpaf(NeAAC_FMT24)) == MPXP_Ok) { sh->afmt=AFMT_FLOAT32; NeAAC_conf->outputFormat=FAAD_FMT_FLOAT; } else { @@ -236,7 +242,7 @@ /* Set the default object type and samplerate */ NeAACDecSetConfiguration(NeAAC_hdec, NeAAC_conf); if(!sh->codecdata_len) { - sh->a_in_buffer_len = demux_read_data_r(sh->ds, reinterpret_cast<unsigned char*>(sh->a_in_buffer), sh->a_in_buffer_size,&pts); + sh->a_in_buffer_len = demux_read_data_r(*sh->ds, reinterpret_cast<unsigned char*>(sh->a_in_buffer), sh->a_in_buffer_size,pts); /* init the codec */ NeAAC_init = NeAACDecInit(NeAAC_hdec, reinterpret_cast<unsigned char*>(sh->a_in_buffer), sh->a_in_buffer_len, &NeAAC_samplerate, @@ -276,24 +282,25 @@ return MPXP_Ok; } -static void uninit(ad_private_t *priv) +static void uninit(Opaque& ctx) { + UNUSED(ctx); MSG_V("FAAD: Closing decoder!\n"); NeAACDecClose(NeAAC_hdec); - delete priv; } -static MPXP_Rc control_ad(ad_private_t *priv,int cmd,any_t* arg, ...) +static MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - UNUSED(priv); + UNUSED(ctx); UNUSED(cmd); UNUSED(arg); return MPXP_Unknown; } -static unsigned decode(ad_private_t *priv,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +static unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh = priv->sh; + faad_private_t& priv=static_cast<faad_private_t&>(ctx); + sh_audio_t* sh = priv.sh; int j = 0; unsigned len = 0; any_t*NeAAC_sample_buffer; @@ -305,12 +312,12 @@ { if(sh->a_in_buffer_len < sh->a_in_buffer_size){ sh->a_in_buffer_len += - demux_read_data_r(sh->ds,reinterpret_cast<unsigned char*>(&sh->a_in_buffer[sh->a_in_buffer_len]), + demux_read_data_r(*sh->ds,reinterpret_cast<unsigned char*>(&sh->a_in_buffer[sh->a_in_buffer_len]), sh->a_in_buffer_size - sh->a_in_buffer_len,pts); - *pts=FIX_APTS(sh,*pts,-sh->a_in_buffer_len); - priv->pts=*pts; + pts=FIX_APTS(sh,pts,-sh->a_in_buffer_len); + priv.pts=pts; } - else *pts=priv->pts; + else pts=priv.pts; #ifdef DUMP_AAC_COMPRESSED {unsigned i; for (i = 0; i < 16; i++) @@ -329,7 +336,7 @@ } else { sh->a_in_buffer_len-=NeAAC_finfo.bytesconsumed; memcpy(sh->a_in_buffer,&sh->a_in_buffer[NeAAC_finfo.bytesconsumed],sh->a_in_buffer_len); - priv->pts=FIX_APTS(sh,priv->pts,NeAAC_finfo.bytesconsumed); + priv.pts=FIX_APTS(sh,priv.pts,NeAAC_finfo.bytesconsumed); } if(NeAAC_finfo.error > 0) { @@ -342,7 +349,7 @@ } else { // packetized (.mp4) aac stream: unsigned char* bufptr=NULL; - int buflen=ds_get_packet_r(sh->ds, &bufptr,pts); + int buflen=ds_get_packet_r(*sh->ds, &bufptr,pts); if(buflen<=0) break; NeAAC_sample_buffer = NeAACDecDecode(NeAAC_hdec, &NeAAC_finfo, bufptr, buflen); // printf("NeAAC decoded %d of %d (err: %d) \n",NeAAC_finfo.bytesconsumed,buflen,NeAAC_finfo.error); Modified: mplayerxp/libmpcodecs/ad_hwac3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -16,9 +16,12 @@ #include "osdep/bswap.h" #include "libao3/afmt.h" -#define IEC61937_DATA_TYPE_AC3 1 +static const int IEC61937_DATA_TYPE_AC3=1; -struct ad_private_t { +struct a52_private_t : public Opaque { + a52_private_t(); + virtual ~a52_private_t(); + sh_audio_t* sh; float last_pts; }; @@ -143,7 +146,7 @@ extern a52_state_t *mpxp_a52_state; extern uint32_t mpxp_a52_accel; extern uint32_t mpxp_a52_flags; -int a52_fillbuff(ad_private_t *sh_audio,float *pts); +int a52_fillbuff(a52_private_t& sh_audio,float& pts); static const ad_info_t info = { "AC3/DTS pass-through S/PDIF", @@ -159,7 +162,7 @@ LIBAD_EXTERN(hwac3) extern ad_functions_t mpcodecs_ad_a52; -static a52_state_t * (*a52_init_ptr) (uint32_t mm_accel); +static a52_state_t* (*a52_init_ptr) (uint32_t mm_accel); #define a52_init(a) (*a52_init_ptr)(a) static const audio_probe_t probes[] = { @@ -180,11 +183,11 @@ } -ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh,audio_filter_info_t* afi) +Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi) { UNUSED(probe); /* Dolby AC3 audio: */ - ad_private_t* ctx=mpcodecs_ad_a52.preinit(probe,sh,afi); + Opaque* ctx=mpcodecs_ad_a52.preinit(probe,sh,afi); sh->audio_out_minsize=4*256*6; sh->audio_in_minsize=3840; sh->nch=2; @@ -192,9 +195,10 @@ return ctx; } -MPXP_Rc init(ad_private_t *ctx) +MPXP_Rc init(Opaque& ctx) { - sh_audio_t* sh_audio = ctx->sh; + a52_private_t& priv=static_cast<a52_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; /* Dolby AC3 passthrough:*/ float pts; mpxp_a52_state=a52_init (mpxp_a52_accel); /* doesn't require mmx optimzation */ @@ -202,7 +206,7 @@ MSG_ERR("A52 init failed\n"); return MPXP_False; } - if(a52_fillbuff(ctx,&pts)<0) { + if(a52_fillbuff(priv,pts)<0) { MSG_ERR("A52 sync failed\n"); return MPXP_False; } @@ -220,14 +224,15 @@ return MPXP_Ok; } -void uninit(ad_private_t *ctx) +void uninit(Opaque& ctx) { mpcodecs_ad_a52.uninit(ctx); } -MPXP_Rc control_ad(ad_private_t *ctx,int cmd,any_t* arg, ...) +MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { - sh_audio_t* sh = ctx->sh; + a52_private_t& priv=static_cast<a52_private_t&>(ctx); + sh_audio_t* sh = priv.sh; UNUSED(arg); switch(cmd) { case ADCTRL_RESYNC_STREAM: @@ -235,7 +240,7 @@ return MPXP_True; case ADCTRL_SKIP_FRAME: { float pts; - a52_fillbuff(ctx,&pts); // skip AC3 frame + a52_fillbuff(priv,pts); // skip AC3 frame return MPXP_True; } default: @@ -244,15 +249,16 @@ return MPXP_Unknown; } -unsigned decode(ad_private_t *ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh_audio = ctx->sh; - unsigned len=0; - UNUSED(minlen); - UNUSED(maxlen); - if(!sh_audio->a_in_buffer_len) - if((int)(len=a52_fillbuff(ctx,pts))<0) return 0; /*EOF*/ - sh_audio->a_in_buffer_len=0; - len = ac3_iec958_build_burst(len, 0x01, 1, (unsigned char *)sh_audio->a_in_buffer, buf); - return len; + a52_private_t& priv=static_cast<a52_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; + unsigned len=0; + UNUSED(minlen); + UNUSED(maxlen); + if(!sh_audio->a_in_buffer_len) + if((int)(len=a52_fillbuff(priv,pts))<0) return 0; /*EOF*/ + sh_audio->a_in_buffer_len=0; + len = ac3_iec958_build_burst(len, 0x01, 1, (unsigned char *)sh_audio->a_in_buffer, buf); + return len; } Modified: mplayerxp/libmpcodecs/ad_internal.h =================================================================== --- mplayerxp/libmpcodecs/ad_internal.h 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_internal.h 2012-12-25 14:21:19 UTC (rev 600) @@ -9,11 +9,11 @@ #include "ad_msg.h" static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag); -static MPXP_Rc __FASTCALL__ init(ad_private_t *ctx); -static ad_private_t* __FASTCALL__ preinit(const audio_probe_t* probe,sh_audio_t *ctx,audio_filter_info_t* afi); -static void __FASTCALL__ uninit(ad_private_t *ctx); -static MPXP_Rc control_ad(ad_private_t *ctx,int cmd,any_t* arg, ...); -static unsigned __FASTCALL__ decode(ad_private_t *ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts); +static MPXP_Rc __FASTCALL__ init(Opaque& ctx); +static Opaque* __FASTCALL__ preinit(const audio_probe_t& probe,sh_audio_t *ctx,audio_filter_info_t& afi); +static void __FASTCALL__ uninit(Opaque& ctx); +static MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...); +static unsigned __FASTCALL__ decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts); #define LIBAD_EXTERN(x) extern const ad_functions_t mpcodecs_ad_##x = {\ &info,\ Modified: mplayerxp/libmpcodecs/ad_lavc.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -18,11 +18,22 @@ #include "mpxp_conf_lavc.h" #include "codecs_ld.h" -struct ad_private_t { +struct alavc_private_t : public Opaque { + alavc_private_t(); + virtual ~alavc_private_t(); + AVCodecContext* lavc_ctx; sh_audio_t* sh; audio_filter_info_t* afi; }; +alavc_private_t::alavc_private_t() {} +alavc_private_t::~alavc_private_t() { + if(lavc_ctx) { + avcodec_close(lavc_ctx); + if (lavc_ctx->extradata) delete lavc_ctx->extradata; + delete lavc_ctx; + } +} static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { unsigned i; @@ -53,8 +64,7 @@ return acodec; } -struct codecs_st* __FASTCALL__ find_lavc_audio(ad_private_t* priv) { - sh_audio_t* sh = priv->sh; +struct codecs_st* __FASTCALL__ find_lavc_audio(sh_audio_t* sh) { const audio_probe_t* aprobe=probe(sh->wtag); struct codecs_st* acodec = NULL; if(aprobe) { @@ -84,22 +94,23 @@ LIBAD_EXTERN(lavc) -ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh,audio_filter_info_t* afi) +Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi) { UNUSED(probe); - ad_private_t* priv = new(zeromem) ad_private_t; + alavc_private_t* priv = new(zeromem) alavc_private_t; sh->audio_out_minsize=AVCODEC_MAX_AUDIO_FRAME_SIZE; priv->sh = sh; - priv->afi = afi; + priv->afi = &afi; return priv; } -MPXP_Rc init(ad_private_t *priv) +MPXP_Rc init(Opaque& ctx) { + alavc_private_t& priv=static_cast<alavc_private_t&>(ctx); int x; float pts; AVCodec *lavc_codec=NULL; - sh_audio_t* sh_audio = priv->sh; + sh_audio_t* sh_audio = priv.sh; MSG_V("LAVC audio codec\n"); // avcodec_init(); avcodec_register_all(); @@ -109,45 +120,45 @@ MSG_ERR(MSGTR_MissingLAVCcodec,sh_audio->codec->dll_name); return MPXP_False; } - priv->lavc_ctx = avcodec_alloc_context3(lavc_codec); + priv.lavc_ctx = avcodec_alloc_context3(lavc_codec); if(sh_audio->wf) { - priv->lavc_ctx->channels = sh_audio->wf->nChannels; - priv->lavc_ctx->sample_rate = sh_audio->wf->nSamplesPerSec; - priv->lavc_ctx->bit_rate = sh_audio->wf->nAvgBytesPerSec * 8; - priv->lavc_ctx->block_align = sh_audio->wf->nBlockAlign; - priv->lavc_ctx->bits_per_coded_sample = sh_audio->wf->wBitsPerSample; + priv.lavc_ctx->channels = sh_audio->wf->nChannels; + priv.lavc_ctx->sample_rate = sh_audio->wf->nSamplesPerSec; + priv.lavc_ctx->bit_rate = sh_audio->wf->nAvgBytesPerSec * 8; + priv.lavc_ctx->block_align = sh_audio->wf->nBlockAlign; + priv.lavc_ctx->bits_per_coded_sample = sh_audio->wf->wBitsPerSample; /* alloc extra data */ if (sh_audio->wf->cbSize > 0) { - priv->lavc_ctx->extradata = new uint8_t[sh_audio->wf->cbSize+FF_INPUT_BUFFER_PADDING_SIZE]; - priv->lavc_ctx->extradata_size = sh_audio->wf->cbSize; - memcpy(priv->lavc_ctx->extradata, (char *)sh_audio->wf + sizeof(WAVEFORMATEX), - priv->lavc_ctx->extradata_size); + priv.lavc_ctx->extradata = new uint8_t[sh_audio->wf->cbSize+FF_INPUT_BUFFER_PADDING_SIZE]; + priv.lavc_ctx->extradata_size = sh_audio->wf->cbSize; + memcpy(priv.lavc_ctx->extradata, (char *)sh_audio->wf + sizeof(WAVEFORMATEX), + priv.lavc_ctx->extradata_size); } } // for QDM2 - if (sh_audio->codecdata_len && sh_audio->codecdata && !priv->lavc_ctx->extradata) { - priv->lavc_ctx->extradata = new uint8_t[sh_audio->codecdata_len]; - priv->lavc_ctx->extradata_size = sh_audio->codecdata_len; - memcpy(priv->lavc_ctx->extradata, (char *)sh_audio->codecdata, - priv->lavc_ctx->extradata_size); + if (sh_audio->codecdata_len && sh_audio->codecdata && !priv.lavc_ctx->extradata) { + priv.lavc_ctx->extradata = new uint8_t[sh_audio->codecdata_len]; + priv.lavc_ctx->extradata_size = sh_audio->codecdata_len; + memcpy(priv.lavc_ctx->extradata, (char *)sh_audio->codecdata, + priv.lavc_ctx->extradata_size); } - priv->lavc_ctx->codec_tag = sh_audio->wtag; - priv->lavc_ctx->codec_type = lavc_codec->type; - priv->lavc_ctx->codec_id = lavc_codec->id; + priv.lavc_ctx->codec_tag = sh_audio->wtag; + priv.lavc_ctx->codec_type = lavc_codec->type; + priv.lavc_ctx->codec_id = lavc_codec->id; /* open it */ - if (avcodec_open2(priv->lavc_ctx, lavc_codec, NULL) < 0) { + if (avcodec_open2(priv.lavc_ctx, lavc_codec, NULL) < 0) { MSG_ERR( MSGTR_CantOpenCodec); return MPXP_False; } MSG_V("INFO: libavcodec init OK!\n"); // Decode at least 1 byte: (to get header filled) - x=decode(priv,reinterpret_cast<unsigned char*>(sh_audio->a_buffer),1,sh_audio->a_buffer_size,&pts); + x=decode(priv,reinterpret_cast<unsigned char*>(sh_audio->a_buffer),1,sh_audio->a_buffer_size,pts); if(x>0) sh_audio->a_buffer_len=x; - sh_audio->nch=priv->lavc_ctx->channels; - sh_audio->rate=priv->lavc_ctx->sample_rate; - switch(priv->lavc_ctx->sample_fmt) { + sh_audio->nch=priv.lavc_ctx->channels; + sh_audio->rate=priv.lavc_ctx->sample_rate; + switch(priv.lavc_ctx->sample_fmt) { case AV_SAMPLE_FMT_U8: ///< unsigned 8 bits sh_audio->afmt=AFMT_U8; break; @@ -162,33 +173,29 @@ sh_audio->afmt=AFMT_FLOAT32; break; } - sh_audio->i_bps=priv->lavc_ctx->bit_rate/8; + sh_audio->i_bps=priv.lavc_ctx->bit_rate/8; return MPXP_Ok; } -void uninit(ad_private_t *priv) -{ - avcodec_close(priv->lavc_ctx); - if (priv->lavc_ctx->extradata) delete priv->lavc_ctx->extradata; - delete priv->lavc_ctx; - delete priv; -} +void uninit(Opaque& ctx) { UNUSED(ctx); } -MPXP_Rc control_ad(ad_private_t *priv,int cmd,any_t* arg, ...) +MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { + alavc_private_t& priv=static_cast<alavc_private_t&>(ctx); UNUSED(arg); switch(cmd){ case ADCTRL_RESYNC_STREAM: - avcodec_flush_buffers(priv->lavc_ctx); + avcodec_flush_buffers(priv.lavc_ctx); return MPXP_True; default: break; } return MPXP_Unknown; } -unsigned decode(ad_private_t *priv,unsigned char *buf,unsigned minlen,unsigned maxlen,float *pts) +unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) { - sh_audio_t* sh_audio = priv->sh; + alavc_private_t& priv=static_cast<alavc_private_t&>(ctx); + sh_audio_t* sh_audio = priv.sh; unsigned char *start=NULL; int y; unsigned len=0; @@ -196,13 +203,13 @@ while(len<minlen){ AVPacket pkt; int len2=maxlen; - int x=ds_get_packet_r(sh_audio->ds,&start,apts?&null_pts:&apts); + int x=ds_get_packet_r(*sh_audio->ds,&start,apts?null_pts:apts); if(x<=0) break; // error if(sh_audio->wtag==mmioFOURCC('d','n','e','t')) swab(start,start,x&(~1)); av_init_packet(&pkt); pkt.data = start; pkt.size = x; - y=avcodec_decode_audio3(priv->lavc_ctx,(int16_t*)buf,&len2,&pkt); + y=avcodec_decode_audio3(priv.lavc_ctx,(int16_t*)buf,&len2,&pkt); if(y<0){ MSG_V("lavc_audio: error\n");break; } if(y<x) { @@ -217,6 +224,6 @@ } MSG_DBG2("Decoded %d -> %d \n",y,len2); } - *pts=apts; + pts=apts; return len; } Modified: mplayerxp/libmpcodecs/ad_libdv.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-22 14:32:53 UTC (rev 599) +++ mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-25 14:21:19 UTC (rev 600) @@ -20,11 +20,19 @@ #include "osdep/bswap.h" #include "ad_internal.h" -struct ad_private_t { +struct libadv_private_t : public Opaque { + libadv_private_t(); + virtual ~libadv_private_t(); + dv_decoder_t* decoder; int16_t* audioBuffers[4]; sh_audio_t* sh; }; +libadv_private_t::libadv_private_t() {} +libadv_private_t::~libadv_private_t() { + unsigned i; + for (i=0; i < 4; i++) delete audioBuffers[i]; +} static const ad_info_t info = { "Raw DV Audio Decoder", @@ -55,20 +63,21 @@ // defined in vd_libdv.c: dv_decoder_t* init_global_rawdv_decoder(void); -static ad_private_t* preinit(const audio_probe_t* probe,sh_audio_t *sh_audio,audio_filter_info_t* afi) +static Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) { UNUSED(probe); UNUSED(afi); sh_audio->audio_out_minsize=4*DV_AUDIO_MAX_SAMPLES*2; - ad_private_t* priv = new(zeromem)... [truncated message content] |
From: <nic...@us...> - 2012-12-25 16:17:47
|
Revision: 601 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=601&view=rev Author: nickols_k Date: 2012-12-25 16:17:37 +0000 (Tue, 25 Dec 2012) Log Message: ----------- minor security patches Modified Paths: -------------- mplayerxp/libmpcodecs/ad_faad.cpp mplayerxp/libmpcodecs/ad_mp3.cpp mplayerxp/libmpcodecs/ad_real.cpp mplayerxp/libmpcodecs/codecs_ld.cpp mplayerxp/libmpcodecs/codecs_ld.h mplayerxp/libmpcodecs/vd_divx4.cpp mplayerxp/libmpcodecs/vd_libmpeg2.cpp mplayerxp/libmpcodecs/vd_real.cpp mplayerxp/libmpcodecs/vd_xanim.cpp mplayerxp/libmpcodecs/vd_xvid.cpp mplayerxp/nls/mpxp_help-en.h mplayerxp/nls/mpxp_help-ru.h Modified: mplayerxp/libmpcodecs/ad_faad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -35,17 +35,7 @@ LIBAD_EXTERN(faad) -struct faad_private_t : public Opaque { - faad_private_t(); - virtual ~faad_private_t(); - float pts; - sh_audio_t* sh; - audio_filter_info_t* afi; -}; -faad_private_t::faad_private_t() {} -faad_private_t::~faad_private_t() {} - static const audio_probe_t probes[] = { { "faad", "libfaad"SLIBSUFFIX, 0xFF, ACodecStatus_Working, {AFMT_FLOAT32, AFMT_S24_LE, AFMT_S16_LE} }, { "faad", "libfaad"SLIBSUFFIX, 0x4143, ACodecStatus_Working, {AFMT_FLOAT32, AFMT_S24_LE, AFMT_S16_LE} }, @@ -124,62 +114,64 @@ #endif #endif /* library output formats */ -#define FAAD_FMT_16BIT 1 -#define FAAD_FMT_24BIT 2 -#define FAAD_FMT_32BIT 3 -#define FAAD_FMT_FLOAT 4 -#define FAAD_FMT_FIXED FAAD_FMT_FLOAT -#define FAAD_FMT_DOUBLE 5 +enum { + FAAD_FMT_16BIT=1, + FAAD_FMT_24BIT=2, + FAAD_FMT_32BIT=3, + FAAD_FMT_FLOAT=4, + FAAD_FMT_FIXED=FAAD_FMT_FLOAT, + FAAD_FMT_DOUBLE=5 +}; +struct faad_private_t : public Opaque { + faad_private_t(); + virtual ~faad_private_t(); -static NeAACDecHandle (*NEAACDECAPI NeAACDecOpen_ptr)(unsigned); -#define NeAACDecOpen(a) (*NeAACDecOpen_ptr)(a) -static NeAACDecConfigurationPtr (*NEAACDECAPI NeAACDecGetCurrentConfiguration_ptr)(NeAACDecHandle hDecoder); -#define NeAACDecGetCurrentConfiguration(a) (*NeAACDecGetCurrentConfiguration_ptr)(a) -static unsigned char NEAACDECAPI (*NeAACDecSetConfiguration_ptr)(NeAACDecHandle hDecoder, + float pts; + sh_audio_t* sh; + audio_filter_info_t* afi; + any_t* dll_handle; + NeAACDecHandle (*NEAACDECAPI NeAACDecOpen_ptr)(unsigned); + NeAACDecConfigurationPtr (*NEAACDECAPI NeAACDecGetCurrentConfiguration_ptr)(NeAACDecHandle hDecoder); + unsigned char NEAACDECAPI (*NeAACDecSetConfiguration_ptr)(NeAACDecHandle hDecoder, NeAACDecConfigurationPtr config); -#define NeAACDecSetConfiguration(a,b) (*NeAACDecSetConfiguration_ptr)(a,b) -static long (*NEAACDECAPI NeAACDecInit_ptr)(NeAACDecHandle hDecoder, + long (*NEAACDECAPI NeAACDecInit_ptr)(NeAACDecHandle hDecoder, unsigned char *buffer, unsigned long buffer_size, unsigned long *samplerate, unsigned char *channels); -#define NeAACDecInit(a,b,c,d,e) (*NeAACDecInit_ptr)(a,b,c,d,e) -static char (*NEAACDECAPI NeAACDecInit2_ptr)(NeAACDecHandle hDecoder, unsigned char *pBuffer, + char (*NEAACDECAPI NeAACDecInit2_ptr)(NeAACDecHandle hDecoder, unsigned char *pBuffer, unsigned long SizeOfDecoderSpecificInfo, unsigned long *samplerate, unsigned char *channels); -#define NeAACDecInit2(a,b,c,d,e) (*NeAACDecInit2_ptr)(a,b,c,d,e) -static void (*NEAACDECAPI NeAACDecClose_ptr)(NeAACDecHandle hDecoder); -#define NeAACDecClose(a) (*NeAACDecClose_ptr)(a) -static any_t* (*NEAACDECAPI NeAACDecDecode_ptr)(NeAACDecHandle hDecoder, + void (*NEAACDECAPI NeAACDecClose_ptr)(NeAACDecHandle hDecoder); + any_t* (*NEAACDECAPI NeAACDecDecode_ptr)(NeAACDecHandle hDecoder, NeAACDecFrameInfo *hInfo, unsigned char *buffer, unsigned long buffer_size); -#define NeAACDecDecode(a,b,c,d) (*NeAACDecDecode_ptr)(a,b,c,d) -static char* (*NEAACDECAPI NeAACDecGetErrorMessage_ptr)(unsigned char errcode); -#define NeAACDecGetErrorMessage(a) (*NeAACDecGetErrorMessage_ptr)(a) + char* (*NEAACDECAPI NeAACDecGetErrorMessage_ptr)(unsigned char errcode); + NeAACDecHandle NeAAC_hdec; + NeAACDecFrameInfo NeAAC_finfo; +}; +faad_private_t::faad_private_t() {} +faad_private_t::~faad_private_t() { + (*NeAACDecClose_ptr)(NeAAC_hdec); +} -//#define AAC_DUMP_COMPRESSED - -static NeAACDecHandle NeAAC_hdec; -static NeAACDecFrameInfo NeAAC_finfo; - -static any_t*dll_handle; -static MPXP_Rc load_dll(const char *libname) +static MPXP_Rc load_dll(faad_private_t& priv,const char *libname) { - if(!(dll_handle=ld_codec(libname,mpcodecs_ad_faad.info->url))) return MPXP_False; - NeAACDecOpen_ptr = (any_t* (*)(unsigned))ld_sym(dll_handle,"NeAACDecOpen"); - NeAACDecGetCurrentConfiguration_ptr = (NeAACDecConfiguration* (*)(any_t*))ld_sym(dll_handle,"NeAACDecGetCurrentConfiguration"); - NeAACDecSetConfiguration_ptr = (unsigned char (*)(any_t*,NeAACDecConfiguration*))ld_sym(dll_handle,"NeAACDecSetConfiguration"); - NeAACDecInit_ptr = (long (*)(any_t*,unsigned char*,unsigned long,unsigned long*,unsigned char*))ld_sym(dll_handle,"NeAACDecInit"); - NeAACDecInit2_ptr = (char (*)(any_t*,unsigned char *,unsigned long,unsigned long*,unsigned char*))ld_sym(dll_handle,"NeAACDecInit2"); - NeAACDecClose_ptr = (void (*)(any_t*))ld_sym(dll_handle,"NeAACDecClose"); - NeAACDecDecode_ptr = (any_t* (*)(any_t*,NeAACDecFrameInfo*,unsigned char *,unsigned long))ld_sym(dll_handle,"NeAACDecDecode"); - NeAACDecGetErrorMessage_ptr = (char* (*)(unsigned char))ld_sym(dll_handle,"NeAACDecGetErrorMessage"); - return (NeAACDecOpen_ptr && NeAACDecGetCurrentConfiguration_ptr && - NeAACDecInit_ptr && NeAACDecInit2_ptr && NeAACDecGetCurrentConfiguration_ptr && - NeAACDecClose_ptr && NeAACDecDecode_ptr && NeAACDecGetErrorMessage_ptr)? + if(!(priv.dll_handle=ld_codec(libname,mpcodecs_ad_faad.info->url))) return MPXP_False; + priv.NeAACDecOpen_ptr = (any_t* (*)(unsigned))ld_sym(priv.dll_handle,"NeAACDecOpen"); + priv.NeAACDecGetCurrentConfiguration_ptr = (NeAACDecConfiguration* (*)(any_t*))ld_sym(priv.dll_handle,"NeAACDecGetCurrentConfiguration"); + priv.NeAACDecSetConfiguration_ptr = (unsigned char (*)(any_t*,NeAACDecConfiguration*))ld_sym(priv.dll_handle,"NeAACDecSetConfiguration"); + priv.NeAACDecInit_ptr = (long (*)(any_t*,unsigned char*,unsigned long,unsigned long*,unsigned char*))ld_sym(priv.dll_handle,"NeAACDecInit"); + priv.NeAACDecInit2_ptr = (char (*)(any_t*,unsigned char *,unsigned long,unsigned long*,unsigned char*))ld_sym(priv.dll_handle,"NeAACDecInit2"); + priv.NeAACDecClose_ptr = (void (*)(any_t*))ld_sym(priv.dll_handle,"NeAACDecClose"); + priv.NeAACDecDecode_ptr = (any_t* (*)(any_t*,NeAACDecFrameInfo*,unsigned char *,unsigned long))ld_sym(priv.dll_handle,"NeAACDecDecode"); + priv.NeAACDecGetErrorMessage_ptr = (char* (*)(unsigned char))ld_sym(priv.dll_handle,"NeAACDecGetErrorMessage"); + return (priv.NeAACDecOpen_ptr && priv.NeAACDecGetCurrentConfiguration_ptr && + priv.NeAACDecInit_ptr && priv.NeAACDecInit2_ptr && priv.NeAACDecGetCurrentConfiguration_ptr && + priv.NeAACDecClose_ptr && priv.NeAACDecDecode_ptr && priv.NeAACDecGetErrorMessage_ptr)? MPXP_Ok:MPXP_False; } @@ -191,7 +183,7 @@ faad_private_t* priv = new(zeromem) faad_private_t; priv->sh = sh; priv->afi = &afi; - if(load_dll(probe.codec_dll)!=MPXP_Ok) { + if(load_dll(*priv,probe.codec_dll)!=MPXP_Ok) { delete priv; return NULL; } @@ -207,7 +199,7 @@ float pts; int NeAAC_init; NeAACDecConfigurationPtr NeAAC_conf; - if(!(NeAAC_hdec = NeAACDecOpen(mpxp_context().mplayer_accel))) { + if(!(priv.NeAAC_hdec = (*priv.NeAACDecOpen_ptr)(mpxp_context().mplayer_accel))) { MSG_WARN("FAAD: Failed to open the decoder!\n"); // XXX: deal with cleanup! return MPXP_False; } @@ -217,7 +209,7 @@ sh->codecdata = (unsigned char*)(sh->wf+1); MSG_DBG2("FAAD: codecdata extracted from WAVEFORMATEX\n"); } - NeAAC_conf = NeAACDecGetCurrentConfiguration(NeAAC_hdec); + NeAAC_conf = (*priv.NeAACDecGetCurrentConfiguration_ptr)(priv.NeAAC_hdec); if(sh->rate) NeAAC_conf->defSampleRate = sh->rate; #ifdef WORDS_BIGENDIAN #define NeAAC_FMT32 AFMT_S32_BE @@ -240,28 +232,28 @@ NeAAC_conf->outputFormat=FAAD_FMT_16BIT; } /* Set the default object type and samplerate */ - NeAACDecSetConfiguration(NeAAC_hdec, NeAAC_conf); + (*priv.NeAACDecSetConfiguration_ptr)(priv.NeAAC_hdec, NeAAC_conf); if(!sh->codecdata_len) { sh->a_in_buffer_len = demux_read_data_r(*sh->ds, reinterpret_cast<unsigned char*>(sh->a_in_buffer), sh->a_in_buffer_size,pts); /* init the codec */ - NeAAC_init = NeAACDecInit(NeAAC_hdec, reinterpret_cast<unsigned char*>(sh->a_in_buffer), + NeAAC_init = (*priv.NeAACDecInit_ptr)(priv.NeAAC_hdec, reinterpret_cast<unsigned char*>(sh->a_in_buffer), sh->a_in_buffer_len, &NeAAC_samplerate, &NeAAC_channels); sh->a_in_buffer_len -= (NeAAC_init > 0)?NeAAC_init:0; // how many bytes init consumed // XXX FIXME: shouldn't we memcpy() here in a_in_buffer ?? --A'rpi } else { // We have ES DS in codecdata - NeAAC_init = NeAACDecInit2(NeAAC_hdec, sh->codecdata, + NeAAC_init = (*priv.NeAACDecInit2_ptr)(priv.NeAAC_hdec, sh->codecdata, sh->codecdata_len, &NeAAC_samplerate, &NeAAC_channels); } if(NeAAC_init < 0) { MSG_WARN("FAAD: Failed to initialize the decoder!\n"); // XXX: deal with cleanup! - NeAACDecClose(NeAAC_hdec); + (*priv.NeAACDecClose_ptr)(priv.NeAAC_hdec); // XXX: mp_free a_in_buffer here or in uninit? return MPXP_False; } else { - NeAAC_conf = NeAACDecGetCurrentConfiguration(NeAAC_hdec); + NeAAC_conf = (*priv.NeAACDecGetCurrentConfiguration_ptr)(priv.NeAAC_hdec); sh->nch = NeAAC_channels; sh->rate = NeAAC_samplerate; switch(NeAAC_conf->outputFormat){ @@ -282,12 +274,7 @@ return MPXP_Ok; } -static void uninit(Opaque& ctx) -{ - UNUSED(ctx); - MSG_V("FAAD: Closing decoder!\n"); - NeAACDecClose(NeAAC_hdec); -} +static void uninit(Opaque& ctx) { UNUSED(ctx); } static MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { @@ -328,20 +315,20 @@ if(!sh->codecdata_len){ // raw aac stream: do { - NeAAC_sample_buffer = NeAACDecDecode(NeAAC_hdec, &NeAAC_finfo, reinterpret_cast<unsigned char *>(sh->a_in_buffer+j), sh->a_in_buffer_len); + NeAAC_sample_buffer = (*priv.NeAACDecDecode_ptr)(priv.NeAAC_hdec, &priv.NeAAC_finfo, reinterpret_cast<unsigned char *>(sh->a_in_buffer+j), sh->a_in_buffer_len); /* update buffer index after NeAACDecDecode */ - if(NeAAC_finfo.bytesconsumed >= (unsigned)sh->a_in_buffer_len) { + if(priv.NeAAC_finfo.bytesconsumed >= (unsigned)sh->a_in_buffer_len) { sh->a_in_buffer_len=0; } else { - sh->a_in_buffer_len-=NeAAC_finfo.bytesconsumed; - memcpy(sh->a_in_buffer,&sh->a_in_buffer[NeAAC_finfo.bytesconsumed],sh->a_in_buffer_len); - priv.pts=FIX_APTS(sh,priv.pts,NeAAC_finfo.bytesconsumed); + sh->a_in_buffer_len-=priv.NeAAC_finfo.bytesconsumed; + memcpy(sh->a_in_buffer,&sh->a_in_buffer[priv.NeAAC_finfo.bytesconsumed],sh->a_in_buffer_len); + priv.pts=FIX_APTS(sh,priv.pts,priv.NeAAC_finfo.bytesconsumed); } - if(NeAAC_finfo.error > 0) { + if(priv.NeAAC_finfo.error > 0) { MSG_WARN("FAAD: error: %s, trying to resync!\n", - NeAACDecGetErrorMessage(NeAAC_finfo.error)); + (*priv.NeAACDecGetErrorMessage_ptr)(priv.NeAAC_finfo.error)); j++; } else break; @@ -351,21 +338,21 @@ unsigned char* bufptr=NULL; int buflen=ds_get_packet_r(*sh->ds, &bufptr,pts); if(buflen<=0) break; - NeAAC_sample_buffer = NeAACDecDecode(NeAAC_hdec, &NeAAC_finfo, bufptr, buflen); + NeAAC_sample_buffer = (*priv.NeAACDecDecode_ptr)(priv.NeAAC_hdec, &priv.NeAAC_finfo, bufptr, buflen); // printf("NeAAC decoded %d of %d (err: %d) \n",NeAAC_finfo.bytesconsumed,buflen,NeAAC_finfo.error); } - if(NeAAC_finfo.error > 0) { + if(priv.NeAAC_finfo.error > 0) { MSG_WARN("FAAD: Failed to decode frame: %s \n", - NeAACDecGetErrorMessage(NeAAC_finfo.error)); - } else if (NeAAC_finfo.samples == 0) { + (*priv.NeAACDecGetErrorMessage_ptr)(priv.NeAAC_finfo.error)); + } else if (priv.NeAAC_finfo.samples == 0) { MSG_DBG2("FAAD: Decoded zero samples!\n"); } else { /* XXX: samples already multiplied by channels! */ MSG_DBG2("FAAD: Successfully decoded frame (%d Bytes)!\n", - afmt2bps(sh->afmt)*NeAAC_finfo.samples); - memcpy(buf+len,NeAAC_sample_buffer, afmt2bps(sh->afmt)*NeAAC_finfo.samples); - len += afmt2bps(sh->afmt)*NeAAC_finfo.samples; + afmt2bps(sh->afmt)*priv.NeAAC_finfo.samples); + memcpy(buf+len,NeAAC_sample_buffer, afmt2bps(sh->afmt)*priv.NeAAC_finfo.samples); + len += afmt2bps(sh->afmt)*priv.NeAAC_finfo.samples; //printf("FAAD: buffer: %d bytes consumed: %d \n", k, NeAAC_finfo.bytesconsumed); } } Modified: mplayerxp/libmpcodecs/ad_mp3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -176,68 +176,7 @@ MPG123_LSEEK_FAILED /**< Low-level seek failed. */ }; -static void (*mpg123_init_ptr)(void); -#define mpg123_init() (*mpg123_init_ptr)() -static void (*mpg123_exit_ptr)(void); -#define mpg123_exit() (*mpg123_exit_ptr)() -static mpg123_handle * (*mpg123_new_ptr)(const char* decoder, int *error); -#define mpg123_new(a,b) (*mpg123_new_ptr)(a,b) -static void (*mpg123_delete_ptr)(mpg123_handle *mh); -#define mpg123_delete(a) (*mpg123_delete_ptr)(a) -static const char* (*mpg123_plain_strerror_ptr)(int errcode); -#define mpg123_plain_strerror(a) (*mpg123_plain_strerror_ptr)(a) -static int (*mpg123_open_feed_ptr)(mpg123_handle *mh); -#define mpg123_open_feed(a) (*mpg123_open_feed_ptr)(a) -static int (*mpg123_close_ptr)(mpg123_handle *mh); -#define mpg123_close(a) (*mpg123_close_ptr)(a) -static int (*mpg123_read_ptr)(mpg123_handle *mh, unsigned char *outmemory, size_t outmemsize, size_t *done); -#define mpg123_read(a,b,c,d) (*mpg123_read_ptr)(a,b,c,d) -static int (*mpg123_feed_ptr)(mpg123_handle *mh, const unsigned char *in, size_t size); -#define mpg123_feed(a,b,c) (*mpg123_feed_ptr)(a,b,c) -static int (*mpg123_decode_ptr)(mpg123_handle *mh, const unsigned char *inmemory, size_t inmemsize, - unsigned char *outmemory, size_t outmemsize, size_t *done); -#define mpg123_decode(a,b,c,d,e,f) (*mpg123_decode_ptr)(a,b,c,d,e,f) -static int (*mpg123_getformat_ptr)(mpg123_handle *mh, long *rate, int *channels, int *encoding); -#define mpg123_getformat(a,b,c,d) (*mpg123_getformat_ptr)(a,b,c,d) -static int (*mpg123_param_ptr)(mpg123_handle *mh, enum mpg123_parms type, long value, double fvalue); -#define mpg123_param(a,b,c,d) (*mpg123_param_ptr)(a,b,c,d) -static int (*mpg123_info_ptr)(mpg123_handle *mh, struct mpg123_frameinfo *mi); -#define mpg123_info(a,b) (*mpg123_info_ptr)(a,b) -static const char* (*mpg123_current_decoder_ptr)(mpg123_handle *mh); -#define mpg123_current_decoder(a) (*mpg123_current_decoder_ptr)(a) -static int (*mpg123_decode_frame_ptr)(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes); -#define mpg123_decode_frame(a,b,c,d) (*mpg123_decode_frame_ptr)(a,b,c,d) -static off_t (*mpg123_tell_stream_ptr)(mpg123_handle *mh); -#define mpg123_tell_stream(a) (*mpg123_tell_stream_ptr)(a) - -static any_t*dll_handle; -static MPXP_Rc load_dll(const char *libname) { - if(!(dll_handle=ld_codec(libname,mpcodecs_ad_mp3.info->url))) return MPXP_False; - mpg123_init_ptr = (void (*)())ld_aliased_sym(dll_handle,"mpg123_init","mpg123_init_64"); - mpg123_exit_ptr = (void (*)())ld_aliased_sym(dll_handle,"mpg123_exit","mpg123_exit_64"); - mpg123_new_ptr = (mpg123_handle* (*)(const char*,int*))ld_aliased_sym(dll_handle,"mpg123_new","mpg123_new_64"); - mpg123_delete_ptr = (void (*)(mpg123_handle*))ld_aliased_sym(dll_handle,"mpg123_delete","mpg123_delete_64"); - mpg123_plain_strerror_ptr = (const char* (*)(int))ld_aliased_sym(dll_handle,"mpg123_plain_strerror","mpg123_plain_strerror_64"); - mpg123_open_feed_ptr = (int (*)(mpg123_handle*))ld_aliased_sym(dll_handle,"mpg123_open_feed","mpg123_open_feed_64"); - mpg123_close_ptr = (int (*)(mpg123_handle*))ld_aliased_sym(dll_handle,"mpg123_close","mpg123_close_64"); - mpg123_getformat_ptr = (int (*)(mpg123_handle*,long*,int*,int*))ld_aliased_sym(dll_handle,"mpg123_getformat","mpg123_getformat_64"); - mpg123_param_ptr = (int (*)(mpg123_handle*,mpg123_parms,long,double))ld_aliased_sym(dll_handle,"mpg123_param","mpg123_param_64"); - mpg123_info_ptr = (int (*)(mpg123_handle*,mpg123_frameinfo*))ld_aliased_sym(dll_handle,"mpg123_info","mpg123_info_64"); - mpg123_current_decoder_ptr = (const char* (*)(mpg123_handle*))ld_aliased_sym(dll_handle,"mpg123_current_decoder","mpg123_current_decoder_64"); - mpg123_decode_ptr = (int (*)(mpg123_handle*,const unsigned char*,size_t,unsigned char*,size_t,size_t*))ld_aliased_sym(dll_handle,"mpg123_decode","mpg123_decode_64"); - mpg123_read_ptr = (int (*)(mpg123_handle*,unsigned char*,size_t,size_t*))ld_aliased_sym(dll_handle,"mpg123_read","mpg123_read_64"); - mpg123_feed_ptr = (int (*)(mpg123_handle*,const unsigned char*,size_t))ld_aliased_sym(dll_handle,"mpg123_feed","mpg123_feed_64"); - mpg123_tell_stream_ptr = (off_t (*)(mpg123_handle*))ld_aliased_sym(dll_handle,"mpg123_tell_stream","mpg123_tell_stream_64"); - mpg123_decode_frame_ptr = (int (*)(mpg123_handle*,off_t*,unsigned char**,size_t*))ld_aliased_sym(dll_handle,"mpg123_decode_frame","mpg123_decode_frame_64"); - return (mpg123_decode_ptr && mpg123_init_ptr && mpg123_exit_ptr && - mpg123_new_ptr && mpg123_delete_ptr && mpg123_plain_strerror_ptr && - mpg123_open_feed_ptr && mpg123_close_ptr && mpg123_getformat_ptr && - mpg123_param_ptr && mpg123_info_ptr && mpg123_current_decoder_ptr && - mpg123_read_ptr && mpg123_feed_ptr && mpg123_decode_frame_ptr && mpg123_tell_stream_ptr)? - MPXP_Ok:MPXP_False; -} - struct mp3_private_t : public Opaque { mp3_private_t(); virtual ~mp3_private_t(); @@ -246,16 +185,62 @@ off_t pos; float pts; sh_audio_t* sh; + any_t* dll_handle; + void (*mpg123_init_ptr)(void); + void (*mpg123_exit_ptr)(void); + mpg123_handle * (*mpg123_new_ptr)(const char* decoder, int *error); + void (*mpg123_delete_ptr)(mpg123_handle *mh); + + const char* (*mpg123_plain_strerror_ptr)(int errcode); + int (*mpg123_open_feed_ptr)(mpg123_handle *mh); + int (*mpg123_close_ptr)(mpg123_handle *mh); + int (*mpg123_read_ptr)(mpg123_handle *mh, unsigned char *outmemory, size_t outmemsize, size_t *done); + int (*mpg123_feed_ptr)(mpg123_handle *mh, const unsigned char *in, size_t size); + int (*mpg123_decode_ptr)(mpg123_handle *mh, const unsigned char *inmemory, size_t inmemsize, + unsigned char *outmemory, size_t outmemsize, size_t *done); + int (*mpg123_getformat_ptr)(mpg123_handle *mh, long *rate, int *channels, int *encoding); + int (*mpg123_param_ptr)(mpg123_handle *mh, enum mpg123_parms type, long value, double fvalue); + int (*mpg123_info_ptr)(mpg123_handle *mh, struct mpg123_frameinfo *mi); + const char* (*mpg123_current_decoder_ptr)(mpg123_handle *mh); + int (*mpg123_decode_frame_ptr)(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes); + off_t (*mpg123_tell_stream_ptr)(mpg123_handle *mh); }; mp3_private_t::mp3_private_t() {} mp3_private_t::~mp3_private_t() { if(mh) { - mpg123_close(mh); - mpg123_delete(mh); - mpg123_exit(); + (*mpg123_close_ptr)(mh); + (*mpg123_delete_ptr)(mh); + (*mpg123_exit_ptr)(); } + if(dll_handle) ::dlclose(dll_handle); } +static MPXP_Rc load_dll(mp3_private_t& priv,const char *libname) { + if(!(priv.dll_handle=ld_codec(libname,mpcodecs_ad_mp3.info->url))) return MPXP_False; + priv.mpg123_init_ptr = (void (*)())ld_aliased_sym(priv.dll_handle,"mpg123_init","mpg123_init_64"); + priv.mpg123_exit_ptr = (void (*)())ld_aliased_sym(priv.dll_handle,"mpg123_exit","mpg123_exit_64"); + priv.mpg123_new_ptr = (mpg123_handle* (*)(const char*,int*))ld_aliased_sym(priv.dll_handle,"mpg123_new","mpg123_new_64"); + priv.mpg123_delete_ptr = (void (*)(mpg123_handle*))ld_aliased_sym(priv.dll_handle,"mpg123_delete","mpg123_delete_64"); + priv.mpg123_plain_strerror_ptr = (const char* (*)(int))ld_aliased_sym(priv.dll_handle,"mpg123_plain_strerror","mpg123_plain_strerror_64"); + priv.mpg123_open_feed_ptr = (int (*)(mpg123_handle*))ld_aliased_sym(priv.dll_handle,"mpg123_open_feed","mpg123_open_feed_64"); + priv.mpg123_close_ptr = (int (*)(mpg123_handle*))ld_aliased_sym(priv.dll_handle,"mpg123_close","mpg123_close_64"); + priv.mpg123_getformat_ptr = (int (*)(mpg123_handle*,long*,int*,int*))ld_aliased_sym(priv.dll_handle,"mpg123_getformat","mpg123_getformat_64"); + priv.mpg123_param_ptr = (int (*)(mpg123_handle*,mpg123_parms,long,double))ld_aliased_sym(priv.dll_handle,"mpg123_param","mpg123_param_64"); + priv.mpg123_info_ptr = (int (*)(mpg123_handle*,mpg123_frameinfo*))ld_aliased_sym(priv.dll_handle,"mpg123_info","mpg123_info_64"); + priv.mpg123_current_decoder_ptr = (const char* (*)(mpg123_handle*))ld_aliased_sym(priv.dll_handle,"mpg123_current_decoder","mpg123_current_decoder_64"); + priv.mpg123_decode_ptr = (int (*)(mpg123_handle*,const unsigned char*,size_t,unsigned char*,size_t,size_t*))ld_aliased_sym(priv.dll_handle,"mpg123_decode","mpg123_decode_64"); + priv.mpg123_read_ptr = (int (*)(mpg123_handle*,unsigned char*,size_t,size_t*))ld_aliased_sym(priv.dll_handle,"mpg123_read","mpg123_read_64"); + priv.mpg123_feed_ptr = (int (*)(mpg123_handle*,const unsigned char*,size_t))ld_aliased_sym(priv.dll_handle,"mpg123_feed","mpg123_feed_64"); + priv.mpg123_tell_stream_ptr = (off_t (*)(mpg123_handle*))ld_aliased_sym(priv.dll_handle,"mpg123_tell_stream","mpg123_tell_stream_64"); + priv.mpg123_decode_frame_ptr = (int (*)(mpg123_handle*,off_t*,unsigned char**,size_t*))ld_aliased_sym(priv.dll_handle,"mpg123_decode_frame","mpg123_decode_frame_64"); + return (priv.mpg123_decode_ptr && priv.mpg123_init_ptr && priv.mpg123_exit_ptr && + priv.mpg123_new_ptr && priv.mpg123_delete_ptr && priv.mpg123_plain_strerror_ptr && + priv.mpg123_open_feed_ptr && priv.mpg123_close_ptr && priv.mpg123_getformat_ptr && + priv.mpg123_param_ptr && priv.mpg123_info_ptr && priv.mpg123_current_decoder_ptr && + priv.mpg123_read_ptr && priv.mpg123_feed_ptr && priv.mpg123_decode_frame_ptr && priv.mpg123_tell_stream_ptr)? + MPXP_Ok:MPXP_False; +} + static const audio_probe_t probes[] = { { "mp3lib", "libmpg123"SLIBSUFFIX, 0x50, ACodecStatus_Working, {AFMT_FLOAT32, AFMT_S16_LE} }, { "mp3lib", "libmpg123"SLIBSUFFIX, 0x55, ACodecStatus_Working, {AFMT_FLOAT32, AFMT_S16_LE} }, @@ -280,8 +265,8 @@ { UNUSED(afi); sh->audio_out_minsize=9216; - if(load_dll(probe.codec_dll)!=MPXP_Ok) return NULL; mp3_private_t* priv = new(zeromem) mp3_private_t; + if(load_dll(*priv,probe.codec_dll)!=MPXP_Ok) { delete priv; return NULL; } priv->sh = sh; return priv; } @@ -298,40 +283,40 @@ struct mpg123_frameinfo fi; sh_audio_t* sh = priv.sh; sh->afmt=AFMT_FLOAT32; - mpg123_init(); - priv.mh = mpg123_new(NULL,&err); + (*priv.mpg123_init_ptr)(); + priv.mh = (*priv.mpg123_new_ptr)(NULL,&err); if(err) { err_exit: - MSG_ERR("mpg123_init: %s\n",mpg123_plain_strerror(err)); - if(priv.mh) mpg123_delete(priv.mh); - mpg123_exit(); + MSG_ERR("mpg123_init: %s\n",(*priv.mpg123_plain_strerror_ptr)(err)); + if(priv.mh) (*priv.mpg123_delete_ptr)(priv.mh); + (*priv.mpg123_exit_ptr)(); return MPXP_False; } - if((err=mpg123_open_feed(priv.mh))!=0) goto err_exit; + if((err=(*priv.mpg123_open_feed_ptr)(priv.mh))!=0) goto err_exit; param = MPG123_FORCE_STEREO|MPG123_FORCE_FLOAT; if(!mp_conf.verbose) param|=MPG123_QUIET; - mpg123_param(priv.mh,MPG123_FLAGS,param,0); + (*priv.mpg123_param_ptr)(priv.mh,MPG123_FLAGS,param,0); // Decode first frame (to get header filled) err=MPG123_NEED_MORE; len=0; while(err==MPG123_NEED_MORE) { indata_size=ds_get_packet_r(*sh->ds,&indata,pts); - mpg123_feed(priv.mh,indata,indata_size); - err=mpg123_read(priv.mh,reinterpret_cast<unsigned char*>(sh->a_buffer),sh->a_buffer_size,&done); + (*priv.mpg123_feed_ptr)(priv.mh,indata,indata_size); + err=(*priv.mpg123_read_ptr)(priv.mh,reinterpret_cast<unsigned char*>(sh->a_buffer),sh->a_buffer_size,&done); len+=done; } sh->a_buffer_len=len; if(err!=MPG123_NEW_FORMAT) { - MSG_ERR("mpg123_init: within [%d] can't retrieve stream property: %s\n",indata_size,mpg123_plain_strerror(err)); - mpg123_close(priv.mh); - mpg123_delete(priv.mh); - mpg123_exit(); + MSG_ERR("mpg123_init: within [%d] can't retrieve stream property: %s\n",indata_size,(*priv.mpg123_plain_strerror_ptr)(err)); + (*priv.mpg123_close_ptr)(priv.mh); + (*priv.mpg123_delete_ptr)(priv.mh); + (*priv.mpg123_exit_ptr)(); return MPXP_False; } - mpg123_getformat(priv.mh, &rate, &nch, &enc); + (*priv.mpg123_getformat_ptr)(priv.mh, &rate, &nch, &enc); sh->rate = rate; sh->nch = nch; - mpg123_info(priv.mh,&fi); + (*priv.mpg123_info_ptr)(priv.mh,&fi); sh->i_bps=((fi.abr_rate?fi.abr_rate:fi.bitrate)/8)*1000; // Prints first frame header in ascii. static const char *modes[4] = { "Stereo", "Joint-Stereo", "Dual-Channel", "Mono" }; @@ -352,16 +337,11 @@ ,fi.flags&MPG123_ORIGINAL?"Yes":"No" ,fi.flags&MPG123_CRC?"Yes":"No" ,fi.flags&MPG123_PRIVATE?"Yes":"No" - ,fi.emphasis,mpg123_current_decoder(priv.mh)); + ,fi.emphasis,(*priv.mpg123_current_decoder_ptr)(priv.mh)); return MPXP_Ok; } -void uninit(Opaque& ctx) -{ - UNUSED(ctx); - if(dll_handle) dlclose(dll_handle); - dll_handle=NULL; -} +void uninit(Opaque& ctx) { UNUSED(ctx); } MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) { @@ -395,11 +375,11 @@ */ MSG_DBG2("mp3_decode start: pts=%f\n",pts); do { - cpos = mpg123_tell_stream(priv.mh); + cpos = (*priv.mpg123_tell_stream_ptr)(priv.mh); pts = priv.pts+((float)(cpos-priv.pos)/sh->i_bps); - err=mpg123_decode_frame(priv.mh,&offset,&outdata,&done); + err=(*priv.mpg123_decode_frame_ptr)(priv.mh,&offset,&outdata,&done); if(!((err==MPG123_OK)||(err==MPG123_NEED_MORE))) { - MSG_ERR("mpg123_read = %s done = %u minlen = %u\n",mpg123_plain_strerror(err),done,minlen); + MSG_ERR("mpg123_read = %s done = %u minlen = %u\n",(*priv.mpg123_plain_strerror_ptr)(err),done,minlen); } if(err==MPG123_OK) { MSG_DBG2("ad_mp3.decode: copy %u bytes from %p\n",done,outdata); @@ -409,9 +389,9 @@ float apts=0.; indata_size=ds_get_packet_r(*sh->ds,&indata,apts); if(indata_size<0) return 0; - priv.pos = mpg123_tell_stream(priv.mh); + priv.pos = (*priv.mpg123_tell_stream_ptr)(priv.mh); priv.pts = apts; - mpg123_feed(priv.mh,indata,indata_size); + (*priv.mpg123_feed_ptr)(priv.mh,indata,indata_size); } }while(err==MPG123_NEED_MORE); MSG_DBG2("mp3_decode: %i->%i [%i...%i] pts=%f\n",indata_size,done,minlen,maxlen,pts); Modified: mplayerxp/libmpcodecs/ad_real.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_real.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/ad_real.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -28,34 +28,6 @@ LIBAD_EXTERN(real) - -static any_t*handle=NULL; - -any_t*__builtin_new(unsigned long size) { - return mp_malloc(size); -} - -/* required for cook's uninit: */ -void __builtin_delete(any_t* ize) { - delete ize; -} - -#if defined(__FreeBSD__) || defined(__NetBSD__) -any_t* __ctype_b=NULL; -#endif - -static uint32_t (*raCloseCodec)(uint32_t); -static uint32_t (*raDecode)(any_t*,any_t*,uint32_t,any_t*,any_t*,uint32_t); -static uint32_t (*raFreeDecoder)(uint32_t); -static any_t* (*raGetFlavorProperty)(any_t*,uint32_t,uint32_t,any_t*); -//static uint32_t (*raGetNumberOfFlavors2)(void); -static uint32_t (*raInitDecoder)(any_t*,any_t*); -static uint32_t (*raOpenCodec2)(any_t*,any_t*); -static uint32_t (*raOpenCodec)(any_t*); -static uint32_t (*raSetFlavor)(any_t*,uint32_t); -static void (*raSetDLLAccessPath)(uint32_t); -static void (*raSetPwd)(char*,char*); - typedef struct { int samplerate; short bits; @@ -75,11 +47,23 @@ any_t*internal; float pts; sh_audio_t* sh; + any_t* handle; + uint32_t (*raCloseCodec)(uint32_t); + uint32_t (*raDecode)(any_t*,any_t*,uint32_t,any_t*,any_t*,uint32_t); + uint32_t (*raFreeDecoder)(uint32_t); + any_t* (*raGetFlavorProperty)(any_t*,uint32_t,uint32_t,any_t*); + uint32_t (*raInitDecoder)(any_t*,any_t*); + uint32_t (*raOpenCodec2)(any_t*,any_t*); + uint32_t (*raOpenCodec)(any_t*); + uint32_t (*raSetFlavor)(any_t*,uint32_t); + void (*raSetDLLAccessPath)(uint32_t); + void (*raSetPwd)(char*,char*); }; areal_private_t::areal_private_t() {} areal_private_t::~areal_private_t() { if (raFreeDecoder) raFreeDecoder(long(internal)); if (raCloseCodec) raCloseCodec(long(internal)); + if(handle) ::dlclose(handle); } static const audio_probe_t probes[] = { @@ -99,24 +83,24 @@ return NULL; } -static MPXP_Rc load_dll(const char* name) +static MPXP_Rc load_dll(areal_private_t& priv,const char* name) { - if(!(handle = dlopen (name, RTLD_LAZY))) return MPXP_False; + if(!(priv.handle = ::dlopen (name, RTLD_LAZY))) return MPXP_False; - raCloseCodec = (uint32_t (*)(uint32_t))ld_sym(handle, "RACloseCodec"); - raDecode = (uint32_t (*)(any_t*,any_t*,uint32_t,any_t*,any_t*,uint32_t))ld_sym(handle, "RADecode"); - raFreeDecoder = (uint32_t (*)(uint32_t))ld_sym(handle, "RAFreeDecoder"); - raGetFlavorProperty = (any_t* (*)(any_t*,uint32_t,uint32_t,any_t*))ld_sym(handle, "RAGetFlavorProperty"); - raOpenCodec = (uint32_t (*)(any_t*))ld_sym(handle, "RAOpenCodec"); - raOpenCodec2 = (uint32_t (*)(any_t*,any_t*))ld_sym(handle, "RAOpenCodec2"); - raInitDecoder = (uint32_t (*)(any_t*,any_t*))ld_sym(handle, "RAInitDecoder"); - raSetFlavor = (uint32_t (*)(any_t*,uint32_t))ld_sym(handle, "RASetFlavor"); - raSetDLLAccessPath = (void (*)(uint32_t))ld_sym(handle, "SetDLLAccessPath"); - raSetPwd = (void (*)(char*,char*))ld_sym(handle, "RASetPwd"); /* optional, used by SIPR */ + priv.raCloseCodec = (uint32_t (*)(uint32_t))ld_sym(priv.handle, "RACloseCodec"); + priv.raDecode = (uint32_t (*)(any_t*,any_t*,uint32_t,any_t*,any_t*,uint32_t))ld_sym(priv.handle, "RADecode"); + priv.raFreeDecoder = (uint32_t (*)(uint32_t))ld_sym(priv.handle, "RAFreeDecoder"); + priv.raGetFlavorProperty = (any_t* (*)(any_t*,uint32_t,uint32_t,any_t*))ld_sym(priv.handle, "RAGetFlavorProperty"); + priv.raOpenCodec = (uint32_t (*)(any_t*))ld_sym(priv.handle, "RAOpenCodec"); + priv.raOpenCodec2 = (uint32_t (*)(any_t*,any_t*))ld_sym(priv.handle, "RAOpenCodec2"); + priv.raInitDecoder = (uint32_t (*)(any_t*,any_t*))ld_sym(priv.handle, "RAInitDecoder"); + priv.raSetFlavor = (uint32_t (*)(any_t*,uint32_t))ld_sym(priv.handle, "RASetFlavor"); + priv.raSetDLLAccessPath = (void (*)(uint32_t))ld_sym(priv.handle, "SetDLLAccessPath"); + priv.raSetPwd = (void (*)(char*,char*))ld_sym(priv.handle, "RASetPwd"); /* optional, used by SIPR */ - return (raCloseCodec && raDecode && raFreeDecoder && - raGetFlavorProperty && (raOpenCodec2||raOpenCodec) && raSetFlavor && - raInitDecoder)?MPXP_Ok:MPXP_False; + return (priv.raCloseCodec && priv.raDecode && priv.raFreeDecoder && + priv.raGetFlavorProperty && (priv.raOpenCodec2||priv.raOpenCodec) && priv.raSetFlavor && + priv.raInitDecoder)?MPXP_Ok:MPXP_False; } static Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi){ @@ -128,9 +112,8 @@ any_t* prop; char path[4096]; char cpath[4096]; - areal_private_t *priv; - if(load_dll(probe.codec_dll)!=MPXP_Ok) return NULL; - priv=new(zeromem) areal_private_t; + areal_private_t *priv=new(zeromem) areal_private_t; + if(load_dll(*priv,probe.codec_dll)!=MPXP_Ok) { delete priv; return NULL; } priv->sh = sh; char *end; @@ -145,14 +128,14 @@ } path[strlen(path)+1]=0; - if(raSetDLLAccessPath) - raSetDLLAccessPath(long(path)); + if(priv->raSetDLLAccessPath) + (*priv->raSetDLLAccessPath)(long(path)); - if(raOpenCodec2) { + if(priv->raOpenCodec2) { strcat(cpath,"/"); - result=raOpenCodec2(&priv->internal,cpath); + result=(*priv->raOpenCodec2)(&priv->internal,cpath); } - else result=raOpenCodec(&priv->internal); + else result=(*priv->raOpenCodec)(&priv->internal); if(result){ MSG_WARN("Decoder open failed, error code: 0x%X\n",result); delete priv; @@ -173,35 +156,35 @@ ((short*)(sh->wf+1))[4], // codec data length ((char*)(sh->wf+1))+10 // extras }; - result=raInitDecoder(priv->internal,&init_data); + result=(*priv->raInitDecoder)(priv->internal,&init_data); if(result){ MSG_WARN("Decoder init failed, error code: 0x%X\n",result); delete priv; return NULL; } - if(raSetPwd){ + if(priv->raSetPwd){ // used by 'SIPR' - raSetPwd(reinterpret_cast<char*>(priv->internal),const_cast<char*>("Ardubancel Quazanga")); // set password... lol. + (*priv->raSetPwd)(reinterpret_cast<char*>(priv->internal),const_cast<char*>("Ardubancel Quazanga")); // set password... lol. } - result=raSetFlavor(priv->internal,((short*)(sh->wf+1))[2]); + result=(*priv->raSetFlavor)(priv->internal,((short*)(sh->wf+1))[2]); if(result){ MSG_WARN("Decoder flavor setup failed, error code: 0x%X\n",result); delete priv; return NULL; } - prop=raGetFlavorProperty(priv->internal,((short*)(sh->wf+1))[2],0,&len); + prop=(*priv->raGetFlavorProperty)(priv->internal,((short*)(sh->wf+1))[2],0,&len); MSG_INFO("Audio codec: [%d] %s\n",((short*)(sh->wf+1))[2],prop); - prop=raGetFlavorProperty(priv->internal,((short*)(sh->wf+1))[2],1,&len); + prop=(*priv->raGetFlavorProperty)(priv->internal,((short*)(sh->wf+1))[2],1,&len); if(prop){ sh->i_bps=((*((int*)prop))+4)/8; MSG_INFO("Audio bitrate: %5.3f kbit/s (%d bps) \n",(*((int*)prop))*0.001f,sh->i_bps); } else sh->i_bps=sh->wf->nAvgBytesPerSec; -// prop=raGetFlavorProperty(priv->internal,((short*)(sh->wf+1))[2],0x13,&len); +// prop=(*priv->raGetFlavorProperty)(priv->internal,((short*)(sh->wf+1))[2],0x13,&len); // MSG_INFO("Samples/block?: %d \n",(*((int*)prop))); sh->audio_out_minsize=128000; // no idea how to get... :( @@ -292,7 +275,7 @@ } else pts=priv.pts; - result=raDecode(priv.internal, sh->a_in_buffer+sh->a_in_buffer_size-sh->a_in_buffer_len, sh->wf->nBlockAlign, + result=(*priv.raDecode)(priv.internal, sh->a_in_buffer+sh->a_in_buffer_size-sh->a_in_buffer_len, sh->wf->nBlockAlign, buf, &len, -1); if((int)len<0) len=0; sh->a_in_buffer_len-=sh->wf->nBlockAlign; Modified: mplayerxp/libmpcodecs/codecs_ld.cpp =================================================================== --- mplayerxp/libmpcodecs/codecs_ld.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/codecs_ld.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -13,17 +13,17 @@ #include "mpxp_help.h" #include "global_msg.h" -any_t* ld_codec(const char *name,const char *url_hint) +namespace mpxp { +any_t* ld_codec(const std::string& name,const std::string& url_hint) { - any_t*dll_handle; - if(!(dll_handle=dlopen(name,RTLD_LAZY|RTLD_GLOBAL))) - { - MSG_FATAL(MSGTR_CODEC_CANT_LOAD_DLL,name,dlerror()); - if(url_hint) MSG_HINT(MSGTR_CODEC_DLL_HINT,url_hint); - return NULL; - } - MSG_V(MSGTR_CODEC_DLL_OK,name); - return dll_handle; + any_t*dll_handle; + if(!(dll_handle=::dlopen(name.c_str(),RTLD_LAZY|RTLD_GLOBAL))) { + mpxp_fatal<<"[codec_ld] "<<MSGTR_CODEC_CANT_LOAD_DLL<<":"<<name<<" {"<<dlerror()<<"}"<<std::endl; + if(!url_hint.empty()) mpxp_hint<<"[codec_ld] "<<MSGTR_CODEC_DLL_HINT<<":"<<url_hint<<std::endl; + return NULL; + } + mpxp_v<<"[codec_ld] "<<MSGTR_CODEC_DLL_OK<<":"<<name<<std::endl; + return dll_handle; } #if 0 @@ -37,29 +37,30 @@ } #endif -any_t* ld_sym(any_t*handle,const char *sym_name) +any_t* ld_sym(any_t*handle,const std::string& sym_name) { - any_t*rval; - if(!(rval=dlsym(handle,sym_name))) { - MSG_ERR(MSGTR_CODEC_DLL_SYM_ERR,sym_name); - } - return rval; + any_t*rval; + if(!(rval=::dlsym(handle,sym_name.c_str()))) { + mpxp_err<<"[codec_ld] "<<MSGTR_CODEC_DLL_SYM_ERR<<":"<<sym_name<<std::endl; + } + return rval; } -any_t* ld_aliased_sym(any_t*handle,const char *sym_name,...) +any_t* ld_aliased_sym(any_t*handle,const std::string& sym_name,...) { - any_t*rval=dlsym(handle,sym_name); - if(!rval) { - const char *alias; - va_list list; - va_start( list, sym_name ); - do { - alias = va_arg(list, const char *); - if(alias) rval = dlsym(handle,alias); - if(rval) break; - }while(alias); - va_end( list ); - } - if(!rval) MSG_ERR(MSGTR_CODEC_DLL_SYM_ERR,sym_name); - return rval; + any_t*rval=::dlsym(handle,sym_name.c_str()); + if(!rval) { + const char *alias; + va_list list; + va_start( list, sym_name ); + do { + alias = va_arg(list, const char *); + if(alias) rval = ::dlsym(handle,alias); + if(rval) break; + }while(alias); + va_end( list ); + } + if(!rval) mpxp_err<<"[codec_ld] "<<MSGTR_CODEC_DLL_SYM_ERR<<":"<<sym_name<<std::endl; + return rval; } +} // namespace mpxp Modified: mplayerxp/libmpcodecs/codecs_ld.h =================================================================== --- mplayerxp/libmpcodecs/codecs_ld.h 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/codecs_ld.h 2012-12-25 16:17:37 UTC (rev 601) @@ -1,18 +1,15 @@ /* codecs_ld - light interface to codec loader */ - #ifndef __CODECS_LD #define __CODECS_LD - #include "mpxp_config.h" +#include <string> -extern any_t* ld_codec(const char *name,const char *url_hint); -/*extern char * codec_name( const char *name );*/ - -extern any_t* ld_sym(any_t*handle,const char *sym_name); -extern any_t* ld_aliased_sym(any_t*handle,const char *sym_name,...); -#if defined(__OpenBSD__) && !defined(__ELF__) -#define dlsym(h,s) ld_sym(h, "_" s) +namespace mpxp { + extern any_t* ld_codec(const std::string& name,const std::string& url_hint); +/* extern char * codec_name( const char *name );*/ + extern any_t* ld_sym(any_t*handle,const std::string& sym_name); + extern any_t* ld_aliased_sym(any_t*handle,const std::string& sym_name,...); +} // namespace mpxp #endif -#endif Modified: mplayerxp/libmpcodecs/vd_divx4.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_divx4.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/vd_divx4.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -142,15 +142,15 @@ int resync; sh_video_t* sh; video_decoder_t* parent; + any_t* dll_handle; + LibQDecoreFunction* (*getDecore_ptr)(unsigned long format); }; divx4_private_t::divx4_private_t() {} divx4_private_t::~divx4_private_t() { - decoder(pHandle, DEC_OPT_RELEASE, 0, 0); + if(pHandle) decoder(pHandle, DEC_OPT_RELEASE, 0, 0); + if(dll_handle) ::dlclose(dll_handle); } -static LibQDecoreFunction* (*getDecore_ptr)(unsigned long format); -static any_t*dll_handle; - static const video_probe_t probes[] = { { "divx", "libdivx"SLIBSUFFIX,FOURCC_TAG('D','Y','U','V'), VCodecStatus_Working, {IMGFMT_YV12, IMGFMT_I420}, {VideoFlag_None, VideoFlag_None } }, { "divx", "libdivx"SLIBSUFFIX,FOURCC_TAG('D','I','V','3'), VCodecStatus_Working, {IMGFMT_YV12, IMGFMT_I420}, {VideoFlag_None, VideoFlag_None } }, @@ -174,7 +174,6 @@ // to set/get/query special features/parameters static MPXP_Rc control_vd(Opaque& ctx,int cmd,any_t* arg,...){ divx4_private_t& priv=static_cast<divx4_private_t&>(ctx); - sh_video_t* sh = priv.sh; switch(cmd){ case VDCTRL_QUERY_MAX_PP_LEVEL: *((unsigned*)arg)=100; @@ -215,17 +214,17 @@ } -static int load_lib( const char *libname ) +static int load_lib(divx4_private_t& priv, const char *libname ) { - if(!(dll_handle=ld_codec(libname,mpcodecs_vd_divx4.info->url))) return 0; - getDecore_ptr = (LibQDecoreFunction* (*)(unsigned long))ld_sym(dll_handle,"getDecore"); - return getDecore_ptr != NULL; + if(!(priv.dll_handle=ld_codec(libname,mpcodecs_vd_divx4.info->url))) return 0; + priv.getDecore_ptr = (LibQDecoreFunction* (*)(unsigned long))ld_sym(priv.dll_handle,"getDecore"); + return priv.getDecore_ptr != NULL; } static Opaque* preinit(const video_probe_t& probe,sh_video_t *sh,put_slice_info_t& psi){ UNUSED(psi); - if(!load_lib(probe.codec_dll)) return NULL; divx4_private_t* priv = new(zeromem) divx4_private_t; + if(!load_lib(*priv,probe.codec_dll)) { delete priv; return NULL; } priv->sh=sh; return priv; } @@ -246,7 +245,7 @@ MSG_ERR("Unsupported out_fmt: 0x%X\n",sh->codec->outfmt[sh->outfmtidx]); return MPXP_False; } - if(!(priv.decoder=getDecore_ptr(sh->fourcc))) { + if(!(priv.decoder=priv.getDecore_ptr(sh->fourcc))) { char *fcc=(char *)&(sh->fourcc); MSG_ERR("Can't find decoder for %c%c%c%c fourcc\n",fcc[0],fcc[1],fcc[2],fcc[3]); return MPXP_False; @@ -270,10 +269,7 @@ } // uninit driver -static void uninit(Opaque& ctx){ - UNUSED(ctx); - dlclose(dll_handle); -} +static void uninit(Opaque& ctx){ UNUSED(ctx); } // decode a frame static mp_image_t* decode(Opaque& ctx,const enc_frame_t& frame){ Modified: mplayerxp/libmpcodecs/vd_libmpeg2.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_libmpeg2.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/vd_libmpeg2.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -205,23 +205,6 @@ STATE_SEQUENCE_MODIFIED = 11 } mpeg2_state_t; -static mpeg2dec_t* (*mpeg2_init_ptr) (unsigned); -#define mpeg2_init(a) (*mpeg2_init_ptr)(a) -static void (*mpeg2_close_ptr) (mpeg2dec_t * mpeg2dec); -#define mpeg2_close(a) (*mpeg2_close_ptr)(a) -static const mpeg2_info_t * (*mpeg2_info_ptr) (mpeg2dec_t * mpeg2dec); -#define mpeg2_info(a) (*mpeg2_info_ptr)(a) -static int (*mpeg2_parse_ptr) (mpeg2dec_t * mpeg2dec); -#define mpeg2_parse(a) (*mpeg2_parse_ptr)(a) -static void (*mpeg2_buffer_ptr) (mpeg2dec_t * mpeg2dec, uint8_t * start, uint8_t * end); -#define mpeg2_buffer(a,b,c) (*mpeg2_buffer_ptr)(a,b,c) -static void (*mpeg2_set_buf_ptr) (mpeg2dec_t * mpeg2dec, uint8_t * buf[3], any_t* id); -#define mpeg2_set_buf(a,b,c) (*mpeg2_set_buf_ptr)(a,b,c) -static int (*mpeg2_stride_ptr) (mpeg2dec_t * mpeg2dec, int stride); -#define mpeg2_stride(a,b) (*mpeg2_stride_ptr)(a,b) -static void (*mpeg2_reset_ptr) (mpeg2dec_t * mpeg2dec, int full_reset); -#define mpeg2_reset(a,b) (*mpeg2_reset_ptr)(a,b) - struct libmpeg2_private_t : public Opaque { libmpeg2_private_t(); virtual ~libmpeg2_private_t(); @@ -229,27 +212,36 @@ sh_video_t* sh; video_decoder_t* parent; mpeg2dec_t* mpeg2dec; + any_t* dll_handle; + mpeg2dec_t* (*mpeg2_init_ptr) (unsigned); + void (*mpeg2_close_ptr) (mpeg2dec_t * mpeg2dec); + const mpeg2_info_t * (*mpeg2_info_ptr) (mpeg2dec_t * mpeg2dec); + int (*mpeg2_parse_ptr) (mpeg2dec_t * mpeg2dec); + void (*mpeg2_buffer_ptr) (mpeg2dec_t * mpeg2dec, uint8_t * start, uint8_t * end); + void (*mpeg2_set_buf_ptr) (mpeg2dec_t * mpeg2dec, uint8_t * buf[3], any_t* id); + int (*mpeg2_stride_ptr) (mpeg2dec_t * mpeg2dec, int stride); + void (*mpeg2_reset_ptr) (mpeg2dec_t * mpeg2dec, int full_reset); }; libmpeg2_private_t::libmpeg2_private_t() {} libmpeg2_private_t::~libmpeg2_private_t() { - if(mpeg2dec) mpeg2_close(mpeg2dec); + if(mpeg2dec) (*mpeg2_close_ptr)(mpeg2dec); + if(dll_handle) ::dlclose(dll_handle); } -static any_t*dll_handle; -static MPXP_Rc load_lib( const char *libname ) +static MPXP_Rc load_lib(libmpeg2_private_t& priv, const char *libname ) { - if(!(dll_handle=ld_codec(libname,mpcodecs_vd_libmpeg2.info->url))) return MPXP_False; - mpeg2_init_ptr = (mpeg2dec_t* (*)(unsigned int))ld_sym(dll_handle,"mpeg2_init"); - mpeg2_close_ptr = (void (*)(mpeg2dec_t*))ld_sym(dll_handle,"mpeg2_close"); - mpeg2_info_ptr = (const mpeg2_info_t* (*)(mpeg2dec_t*))ld_sym(dll_handle,"mpeg2_info"); - mpeg2_parse_ptr = (int (*)(mpeg2dec_t*))ld_sym(dll_handle,"mpeg2_parse"); - mpeg2_buffer_ptr = (void (*)(mpeg2dec_t*,uint8_t*,uint8_t*))ld_sym(dll_handle,"mpeg2_buffer"); - mpeg2_set_buf_ptr = (void (*)(mpeg2dec_t*,uint8_t**,any_t*))ld_sym(dll_handle,"mpeg2_set_buf"); - mpeg2_stride_ptr = (int (*)(mpeg2dec_t*,int))ld_sym(dll_handle,"mpeg2_stride"); - mpeg2_reset_ptr = (void (*)(mpeg2dec_t*,int))ld_sym(dll_handle,"mpeg2_reset"); - return (mpeg2_init_ptr && mpeg2_close_ptr && mpeg2_info_ptr && - mpeg2_parse_ptr && mpeg2_buffer_ptr && mpeg2_set_buf_ptr && - mpeg2_stride_ptr && mpeg2_reset_ptr)?MPXP_Ok:MPXP_False; + if(!(priv.dll_handle=ld_codec(libname,mpcodecs_vd_libmpeg2.info->url))) return MPXP_False; + priv.mpeg2_init_ptr = (mpeg2dec_t* (*)(unsigned int))ld_sym(priv.dll_handle,"mpeg2_init"); + priv.mpeg2_close_ptr = (void (*)(mpeg2dec_t*))ld_sym(priv.dll_handle,"mpeg2_close"); + priv.mpeg2_info_ptr = (const mpeg2_info_t* (*)(mpeg2dec_t*))ld_sym(priv.dll_handle,"mpeg2_info"); + priv.mpeg2_parse_ptr = (int (*)(mpeg2dec_t*))ld_sym(priv.dll_handle,"mpeg2_parse"); + priv.mpeg2_buffer_ptr = (void (*)(mpeg2dec_t*,uint8_t*,uint8_t*))ld_sym(priv.dll_handle,"mpeg2_buffer"); + priv.mpeg2_set_buf_ptr = (void (*)(mpeg2dec_t*,uint8_t**,any_t*))ld_sym(priv.dll_handle,"mpeg2_set_buf"); + priv.mpeg2_stride_ptr = (int (*)(mpeg2dec_t*,int))ld_sym(priv.dll_handle,"mpeg2_stride"); + priv.mpeg2_reset_ptr = (void (*)(mpeg2dec_t*,int))ld_sym(priv.dll_handle,"mpeg2_reset"); + return (priv.mpeg2_init_ptr && priv.mpeg2_close_ptr && priv.mpeg2_info_ptr && + priv.mpeg2_parse_ptr && priv.mpeg2_buffer_ptr && priv.mpeg2_set_buf_ptr && + priv.mpeg2_stride_ptr && priv.mpeg2_reset_ptr)?MPXP_Ok:MPXP_False; } // to set/get/query special features/parameters @@ -258,7 +250,7 @@ switch(cmd) { case VDCTRL_RESYNC_STREAM: /*lib starts looking for the next sequence header.*/ - mpeg2_reset(priv.mpeg2dec,1); + (*priv.mpeg2_reset_ptr)(priv.mpeg2dec,1); return MPXP_True; case VDCTRL_QUERY_FORMAT: if (*((int*)arg) == IMGFMT_YV12) @@ -271,8 +263,8 @@ static Opaque* preinit(const video_probe_t& probe,sh_video_t *sh,put_slice_info_t& psi){ UNUSED(psi); - if(!load_lib(probe.codec_dll)) return NULL; libmpeg2_private_t* priv = new(zeromem) libmpeg2_private_t; + if(!load_lib(*priv,probe.codec_dll)) { delete priv; return NULL; } priv->sh=sh; return priv; } @@ -281,17 +273,14 @@ libmpeg2_private_t& priv=static_cast<libmpeg2_private_t&>(ctx); sh_video_t* sh = priv.sh; priv.parent=&opaque; - if(!(priv.mpeg2dec=mpeg2_init(mpxp_context().mplayer_accel))) { + if(!(priv.mpeg2dec=(*priv.mpeg2_init_ptr)(mpxp_context().mplayer_accel))) { return MPXP_False; } return mpcodecs_config_vf(opaque,sh->src_w,sh->src_h); } // uninit driver -static void uninit(Opaque& ctx){ - UNUSED(ctx); - dlclose(dll_handle); -} +static void uninit(Opaque& ctx){ UNUSED(ctx); } static void draw_frame(mp_image_t *mpi,video_decoder_t& sh,unsigned w,const mpeg2_fbuf_t *src) { @@ -313,18 +302,18 @@ int state,buf; if(frame.len<=0) return NULL; // skipped null frame - _info=mpeg2_info(priv.mpeg2dec); + _info=(*priv.mpeg2_info_ptr)(priv.mpeg2dec); mpi=NULL; buf=0; MSG_DBG2("len=%u ***mpeg2_info***\n",frame.len); while(1) { - state=mpeg2_parse(priv.mpeg2dec); + state=(*priv.mpeg2_parse_ptr)(priv.mpeg2dec); MSG_DBG2("%i=mpeg2_parse\n",state); switch(state) { case STATE_BUFFER: - mpeg2_buffer(priv.mpeg2dec,reinterpret_cast<uint8_t*>(frame.data),reinterpret_cast<uint8_t*>(frame.data)+frame.len); + (*priv.mpeg2_buffer_ptr)(priv.mpeg2dec,reinterpret_cast<uint8_t*>(frame.data),reinterpret_cast<uint8_t*>(frame.data)+frame.len); buf++; if(buf>2) return NULL; /* parsing of the passed buffer finished, return. */ break; @@ -338,7 +327,7 @@ #endif mpi=mpcodecs_get_image(*priv.parent,MP_IMGTYPE_EXPORT, MP_IMGFLAG_ACCEPT_STRIDE|MP_IMGFLAG_DRAW_CALLBACK ,_info->sequence->width,_info->sequence->height); - mpeg2_stride(priv.mpeg2dec,mpi->stride[0]); + (*priv.mpeg2_stride_ptr)(priv.mpeg2dec,mpi->stride[0]); break; case STATE_SLICE: case STATE_END: @@ -347,7 +336,7 @@ MSG_DBG2("display=%X discard=%X current=%X mpi=%X\n",_info->display_fbuf,_info->discard_fbuf,_info->current_fbuf,mpi); /* Workaround for broken (badly demuxed) streams. Reset libmpeg2 to start decoding at the next picture. */ - if(state==STATE_END) mpeg2_reset(priv.mpeg2dec,0); + if(state==STATE_END) (*priv.mpeg2_reset_ptr)(priv.mpeg2dec,0); if (_info->display_fbuf && mpi) { mpi->pict_type=_info->current_picture->flags&PIC_MASK_CODING_TYPE; Modified: mplayerxp/libmpcodecs/vd_real.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_real.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/vd_real.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -72,12 +72,6 @@ uint32_t timestamp; }; -uint32_t (*rvyuv_custom_message)(cmsg_data_t*,any_t*); -uint32_t (*rvyuv_free)(any_t*); -uint32_t (*rvyuv_hive_message)(uint32_t,uint32_t); -uint32_t (*rvyuv_init)(any_t*,any_t*); -uint32_t (*rvyuv_transform)(char*, char*,transform_in_t*,unsigned int*,any_t*); - #if 0 any_t*__builtin_vec_new(unsigned long size) { return mp_malloc(size); @@ -101,11 +95,16 @@ sh_video_t* sh; video_decoder_t* parent; any_t* rv_handle; + uint32_t (*rvyuv_custom_message)(cmsg_data_t*,any_t*); + uint32_t (*rvyuv_free)(any_t*); + uint32_t (*rvyuv_hive_message)(uint32_t,uint32_t); + uint32_t (*rvyuv_init)(any_t*,any_t*); + uint32_t (*rvyuv_transform)(char*, char*,transform_in_t*,unsigned int*,any_t*); }; vreal_private_t::vreal_private_t() {} vreal_private_t::~vreal_private_t() { if(rvyuv_free) rvyuv_free(handle); - if(rv_handle) dlclose(rv_handle); + if(rv_handle) ::dlclose(rv_handle); } // to set/get/query special features/parameters @@ -132,34 +131,34 @@ any_t*handle; char *error; - priv.rv_handle = handle = dlopen (path, RTLD_LAZY); + priv.rv_handle = handle = ::dlopen (path, RTLD_LAZY); if (!handle) { MSG_ERR("DLError: %s\n",dlerror()); return 0; } - rvyuv_custom_message = (uint32_t (*)(cmsg_data_t*,any_t*))ld_sym(handle, "RV20toYUV420CustomMessage"); - if ((error = dlerror()) != NULL) { + priv.rvyuv_custom_message = (uint32_t (*)(cmsg_data_t*,any_t*))ld_sym(handle, "RV20toYUV420CustomMessage"); + if ((error = ::dlerror()) != NULL) { MSG_ERR( "ld_sym(rvyuvCustomMessage): %s\n", error); return 0; } - rvyuv_free = (uint32_t (*)(any_t*))ld_sym(handle, "RV20toYUV420Free"); - if ((error = dlerror()) != NULL) { + priv.rvyuv_free = (uint32_t (*)(any_t*))ld_sym(handle, "RV20toYUV420Free"); + if ((error = ::dlerror()) != NULL) { MSG_ERR( "ld_sym(rvyuvFree): %s\n", error); return 0; } - rvyuv_hive_message = (uint32_t (*)(uint32_t,uint32_t))ld_sym(handle, "RV20toYUV420HiveMessage"); - if ((error = dlerror()) != NULL) { + priv.rvyuv_hive_message = (uint32_t (*)(uint32_t,uint32_t))ld_sym(handle, "RV20toYUV420HiveMessage"); + if ((error = ::dlerror()) != NULL) { MSG_ERR( "ld_sym(rvyuvHiveMessage): %s\n", error); return 0; } - rvyuv_init = (uint32_t (*)(any_t*,any_t*))ld_sym(handle, "RV20toYUV420Init"); - if ((error = dlerror()) != NULL) { + priv.rvyuv_init = (uint32_t (*)(any_t*,any_t*))ld_sym(handle, "RV20toYUV420Init"); + if ((error = ::dlerror()) != NULL) { MSG_ERR( "ld_sym(rvyuvInit): %s\n", error); return 0; } - rvyuv_transform = (uint32_t (*)(char*,char*,transform_in_t*,unsigned int*,any_t*))ld_sym(handle, "RV20toYUV420Transform"); - if ((error = dlerror()) != NULL) { + priv.rvyuv_transform = (uint32_t (*)(char*,char*,transform_in_t*,unsigned int*,any_t*))ld_sym(handle, "RV20toYUV420Transform"); + if ((error = ::dlerror()) != NULL) { MSG_ERR( "ld_sym(rvyuvTransform): %s\n", error); return 0; } @@ -205,7 +204,7 @@ // only I420 supported if(!mpcodecs_config_vf(opaque,sh->src_w,sh->src_h)) return MPXP_False; // init codec: - result=(*rvyuv_init)(&init_data, &priv.handle); + result=(*priv.rvyuv_init)(&init_data, &priv.handle); if (result){ MSG_ERR("Couldn't open RealVideo codec, error code: 0x%X \n",result); return MPXP_False; @@ -215,7 +214,7 @@ uint32_t cmsg24[4]={sh->src_w,sh->src_h,sh->src_w,sh->src_h}; /* FIXME: Broken for 64-bit pointers */ cmsg_data_t cmsg_data={0x24,1+(extrahdr[1]&7), &cmsg24[0]}; - (*rvyuv_custom_message)(&cmsg_data,priv.handle); + (*priv.rvyuv_custom_message)(&cmsg_data,priv.handle); } MSG_V("INFO: RealVideo codec init OK!\n"); return MPXP_Ok; @@ -250,7 +249,7 @@ sh->src_w, sh->src_h); if(mpi->flags&MP_IMGFLAG_DIRECT) mpi->flags|=MP_IMGFLAG_RENDERED; - result=(*rvyuv_transform)(const_cast<char *>(dp_data), reinterpret_cast<char*>(mpi->planes[0]), &transform_in, + result=(*priv.rvyuv_transform)(const_cast<char *>(dp_data), reinterpret_cast<char*>(mpi->planes[0]), &transform_in, transform_out, priv.handle); return (result?NULL:mpi); Modified: mplayerxp/libmpcodecs/vd_xanim.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_xanim.cpp 2012-12-25 14:21:19 UTC (rev 600) +++ mplayerxp/libmpcodecs/vd_xanim.cpp 2012-12-25 16:17:37 UTC (rev 601) @@ -192,9 +192,8 @@ }; static const int XA_CLOSE_FUNCS=5; -int xa_close_func = 0; -typedef struct xacodec_driver { +struct xacodec_driver_t { XA_DEC_INFO* decinfo; any_t* file_handler; long (*iq_func)(XA_CODEC_HDR *codec_hdr); @@ -202,16 +201,16 @@ unsigned int dsize, XA_DEC_INFO *dec_info); any_t* close_func[XA_CLOSE_FUNCS]; xacodec_image_t image; -} xacodec_driver_t; +}; -xacodec_driver_t *xacodec_driver = NULL; - struct xa_private_t : public Opaque { xa_private_t(); virtual ~xa_private_t(); sh_video_t* sh; video_decoder_t* parent; + xacodec_driver_t* xacodec_driver; + int xa_close_func; }; xa_private_t::xa_private_t() {} xa_private_t::~xa_private_t() {} @@ -233,39 +232,39 @@ /* 0 is no debug (needed by 3ivX) */ long xa_debug = 0; -int xacodec_exit(void); -void TheEnd1(char *err_mess) +int xacodec_exit(xa_private_t&); +void TheEnd1(xa_private_t& priv,const char *err_mess) { XA_Print("error: %s - exiting\n", err_mess); - xacodec_exit(); + xacodec_exit(priv); return; } -void XA_Add_Func_To_Free_Chain(XA_ANIM_HDR *anim_hdr, void (*function)()) +void XA_Add_Func_To_Free_Chain(xa_private_t& priv,XA_ANIM_HDR *anim_hdr, void (*function)()) { // XA_Print("XA_Add_Func_To_Free_Chain('anim_hdr: %08x', 'function: %08x')", // anim_hdr, function); - xacodec_driver->close_func[xa_close_func] = (any_t*)function; - if (xa_close_func+1 < XA_CLOSE_FUNCS) - xa_close_func++; + priv.xacodec_driver->close_func[priv.xa_close_func] = (any_t*)function; + if (priv.xa_close_func+1 < XA_CLOSE_FUNCS) + priv.xa_close_func++; return; } /* end of crap */ /* load, init and query */ -int xacodec_init(char *filename, xacodec_driver_t *codec_driver) +int xacodec_init(const char *filename, xacodec_driver_t *codec_driver) { any_t*(*what_the)(); - char *error; + const char *error; XAVID_MOD_HDR *mod_hdr; XAVID_FUNC_HDR *func; unsigned int i; - codec_driver->file_handler = dlopen(filename, RTLD_NOW|RTLD_GLOBAL); + codec_driver->file_handler = ::dlopen(filename, RTLD_NOW|RTLD_GLOBAL); if (!codec_driver->file_handler) { - error = dlerror(); + error = ::dlerror(); if (error) MSG_FATAL( "xacodec: failed to dlopen %s while %s\n", filename, error); else @@ -274,7 +273,7 @@ } what_the = (any_t* (*)())ld_sym(codec_driver->file_handler, "What_The"); - if ((error = dlerror()) != NULL) { + if ((error = ::dlerror()) != NULL) { MSG_FATAL( "xacodec: failed to init %s while %s\n", filename, error); dlclose(codec_driver->file_handler); return 0; @@ -368,39 +367,40 @@ const char *xacodec_def_path = "/usr/lib/xanim/mods"; -int xacodec_init_video(sh_video_t *vidinfo, int out_format) +static int xacodec_init_video(xa_private_t& priv, int out_format) { char dll[1024]; XA_CODEC_HDR codec_hdr; int i; + sh_video_t* sh_video = priv.sh; - xacodec_driver = (xacodec_driver_t*)mp_realloc(xacodec_driver, sizeof(struct xacodec_driver)); - if (xacodec_driver == NULL) { + priv.xacodec_driver = (xacodec_driver_t*)mp_realloc(priv.xacodec_driver, sizeof(struct xacodec_driver_t)); + if (priv.xacodec_driver == NULL) { MSG_FATAL( "xacodec: memory allocation error: %s\n", strerror(errno)); return 0; } - xacodec_driver->iq_func = NULL; - xacodec_driver->dec_func = NULL; + priv.xacodec_driver->iq_func = NULL; + priv.xacodec_driver->dec_func = NULL; for (i=0; i < XA_CLOSE_FUNCS; i++) - xacodec_driver->close_func[i] = NULL; + priv.xacodec_driver->close_func[i] = NULL; if (getenv("XANIM_MOD_DIR")) - xacodec_def_path = getenv("XANIM_MOD_DIR"); + xacodec_def_path = ::getenv("XANIM_MOD_DIR"); - snprintf(dll, 1024, "%s/%s", xacodec_def_path, vidinfo->codec->dll_name); - if (xacodec_init(dll, xacodec_driver) == 0) + snprintf(dll, 1024, "%s/%s", xacodec_def_path, sh_video->codec->dll_name); + if (xacodec_init(dll, priv.xacodec_driver) == 0) return 0; codec_hdr.xapi_rev = XAVID_API_REV; codec_hdr.anim_hdr = mp_malloc(4096); - codec_hdr.description = vidinfo->codec->s_info; - codec_hdr.compression = bswap_32(vidinfo->bih->biCompression); + codec_hdr.description = sh_video->codec->s_info; + codec_hdr.compression = bswap_32(sh_video->bih->biCompression); codec_hdr.decoder = NULL; - codec_hdr.x = vidinfo->bih->biWidth; /* ->src_w */ - codec_hdr.y = vidinfo->bih->biHeight; /* ->src_h */ + codec_hdr.x = sh_video->bih->biWidth; /* ->src_w */ + codec_hdr.y = sh_video->bih->biHeight; /* ->src_h */ /* extra fields to store palette */ codec_hdr.avi_ctab_flag = 0; codec_hdr.avi_read_ext = NULL; @@ -450,38 +450,38 @@ MSG_INFO( "xacodec: querying for input %dx%d %dbit [fourcc: %4x] (%s)...\n", codec_hdr.x, codec_hdr.y, codec_hdr.depth, codec_hdr.compression, codec_hdr.description); - if (xacodec_query(xacodec_driver, &codec_hdr) == 0) + if (xacodec_query(priv.xacodec_driver, &codec_hdr) == 0) return 0; // delete codec_hdr.anim_hdr; - xacodec_driver->decinfo = new(zeromem) XA_DEC_INFO; - if (xacodec_driver->decinfo == NULL) { + priv.xacodec_driver->decinfo = new(zeromem) XA_DEC_INFO; + if (priv.xacodec_driver->decinfo == NULL) { MSG_FATAL( "xacodec: memory allocation error: %s\n", strerror(errno)); return 0; } - xacodec_driver->decinfo->cmd = 0; - xacodec_driver->decinfo->skip_flag = 0; - xacodec_driver->decinfo->imagex = xacodec_driver->decinfo->xe = codec_hdr.x; - xacodec_driver->decinfo->imagey = xacodec_driver->decinfo->ye = codec_hdr.y; - xacodec_driver->decinfo->imaged = codec_hdr.depth; - xacodec_driver->decinfo->chdr = NULL; - xacodec_driver->decinfo->map_flag = 0; /* xaFALSE */ - xacodec_driver->decinfo->map = NULL; - xacodec_driver->decinfo->xs = xacodec_driver->decinfo->ys = 0; - xacodec_driver->decinfo->special = 0; - xacodec_driver->decinfo->extra = codec_hdr.extra; + priv.xacodec_driver->decinfo->cmd = 0; + priv.xacodec_driver->decinfo->skip_flag = 0; + priv.xacodec_driver->decinfo->imagex = priv.xacodec_driver->decinfo->xe = codec_hdr.x; + priv.xacodec_driver->decinfo->imagey = priv.xacodec_driver->decinfo->ye = codec_hdr.y; + priv.xacodec_driver->decinfo->imaged = codec_hdr.depth; + priv.xacodec_driver->decinfo->chdr = NULL; + priv.xacodec_driver->decinfo->map_flag = 0; /* xaFALSE */ + priv.xacodec_driver->decinfo->map = NULL; + priv.xacodec_driver->decinfo... [truncated message content] |
From: <nic...@us...> - 2012-12-26 11:39:28
|
Revision: 602 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=602&view=rev Author: nickols_k Date: 2012-12-26 11:39:18 +0000 (Wed, 26 Dec 2012) Log Message: ----------- First attempt to remove illegal-patch! Note: gdb shows that malefactor(s) didn't stop destructive attacks on my project and substituted justly coded class. Well, according on sources this class doesn't work with mp_conf at all. Starting program: /Data/-SF.NET-/MPXP/mplayerxp/mplayerxp/ffmpeg -ao alsa:hw:1 -vo x11 M/l.avi -v -v -v -v ... Breakpoint 1, mpxp::MPlayerXP (argc=10, argv=0x7fffffffda88, envp= 0x7fffffffdae0) at mplayerxp.cpp:1699 1699 if(!mp_conf.xp) { (gdb) n 1704 if(mp_conf.test_av) { (gdb) print mp_conf.verbose $6 = 0 (gdb) n 1710 xp_num_cpu=get_number_cpu(); (gdb) n 1712 get_mmx_optimizations(); (gdb) n 1714 if(mp_conf.shuffle_playback) MPXPSys.playtree->flags|=PLAY_TREE_RND; (gdb) n 1715 else MPXPSys.playtree->flags&=~PLAY_TREE_RND; (gdb) n 1717 MPXPSys.playtree = play_tree_cleanup(MPXPSys.playtree); (gdb) print mp_conf.verbose $7 = 0 (gdb) n 1718 if(MPXPSys.playtree) { (gdb) print mp_conf.verbose $8 = 0 (gdb) n 1717 MPXPSys.playtree = play_tree_cleanup(MPXPSys.playtree); (gdb) print mp_conf.verbose $9 = 0 (gdb) n 1718 if(MPXPSys.playtree) { (gdb) print mp_conf.verbose $10 = 0 (gdb) n 1719 MPXPSys.playtree_iter = new _PlayTree_Iter(MPXPSys.playtree,m_config); (gdb) print mp_conf.verbose $11 = 0 (gdb) n 1720 if(MPXPSys.playtree_iter) { (gdb) print mp_conf.verbose $12 = 0 (gdb) n 1719 MPXPSys.playtree_iter = new _PlayTree_Iter(MPXPSys.playtree,m_config); (gdb) print mp_conf.verbose $13 = 0 (gdb) n 1720 if(MPXPSys.playtree_iter) { (gdb) print mp_conf.verbose $14 = 0 (gdb) print mp_conf.verbose $15 = 0 (gdb) n 1721 if(MPXPSys.playtree_iter->step(0,0) != PLAY_TREE_ITER_ENTRY) { (gdb) print mp_conf.verbose $16 = 0 (gdb) n 1725 filename = MPXPSys.playtree_iter->get_file(1); (gdb) print mp_conf.verbose $17 = 2 (gdb) print filename $18 = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1126058 <_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4+24> ""}} (gdb) n 1729 mpxp_context().engine().xp_core->num_a_buffs = vo_conf.xp_buffs; (gdb) print filename $19 = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x26770e8 "M/l.avi"}} (gdb) Modified Paths: -------------- mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/libmpconf/codec-cfg.cpp mplayerxp/libmpconf/subopt-helper.cpp mplayerxp/libmpsub/vobsub.cpp mplayerxp/libmpsub/vobsub.h mplayerxp/libplaytree/playtree.cpp mplayerxp/libplaytree/playtree.h mplayerxp/libplaytree/playtreeparser.cpp mplayerxp/mplayerxp.cpp mplayerxp/mplayerxp.h mplayerxp/postproc/libmenu/menu_pt.cpp Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-26 11:39:18 UTC (rev 602) @@ -19,18 +19,15 @@ #include <string.h> #include <errno.h> -#define COMMAND_LINE 0 -#define CONFIG_FILE 1 +enum { + COMMAND_LINE=0, + CONFIG_FILE=1, -#define CONFIG_GLOBAL (1<<0) -#define CONFIG_RUNNING (1<<1) + CONFIG_GLOBAL=(1<<0), + CONFIG_RUNNING=(1<<1), -#define MAX_RECURSION_DEPTH 8 - -#ifdef MP_DEBUG -#include <assert.h> -#endif - + MAX_RECURSION_DEPTH=8 +}; #include "mplayerxp.h" #include "cfgparser.h" #include "libplaytree/playtree.h" @@ -51,14 +48,6 @@ config_save_t* save; int sl=0; -#ifdef MP_DEBUG - assert(config != NULL); - assert(config.cs_level >= 0); - assert(conf != NULL); - assert(opt != NULL); - assert( ! (conf->flags & CONF_NOSAVE)); -#endif - switch(conf->type) { case CONF_TYPE_PRINT : case CONF_TYPE_SUBCONFIG : @@ -116,13 +105,6 @@ config_save_t* iter=NULL; int i=-1; -#ifdef MP_DEBUG - assert(config != NULL); - assert(config.cs_level >= 0); - assert(save != NULL); -#endif - - arg = save->opt_name ? save->opt_name : save->opt->name; MSG_DBG2("Reverting option %s\n",arg); @@ -176,11 +158,6 @@ void m_config_push(m_config_t& config) { -#ifdef MP_DEBUG - assert(config != NULL); - assert(config.cs_level >= 0); -#endif - config.cs_level++; config.config_stack = (config_save_t**)mp_realloc(config.config_stack ,sizeof(config_save_t*)*(config.cs_level+1)); if(config.config_stack == NULL) { @@ -196,11 +173,6 @@ int i,ret= 1; config_save_t* cs; -#ifdef MP_DEBUG - assert(config != NULL); - //assert(config.cs_level > 0); -#endif - if(config.config_stack[config.cs_level] != NULL) { cs = config.config_stack[config.cs_level]; for(i=0; cs[i].opt != NULL ; i++ ) { @@ -221,9 +193,6 @@ } m_config_t& m_config_new(play_tree_t* pt,libinput_t&libinput) { -#ifdef MP_DEBUG - assert(pt != NULL); -#endif m_config_t& config = *new(zeromem) m_config_t(libinput); config.config_stack = (config_save_t**)mp_calloc(1,sizeof(config_save_t*)); SET_GLOBAL(config); // We always start with global options @@ -240,9 +209,6 @@ void m_config_free(m_config_t* config) { unsigned i; -#ifdef MP_DEBUG - assert(config != NULL); -#endif for(i=0;i<config->dynasize;i++) delete config->dynamics[i]; delete config->dynamics; config->dynasize=0; @@ -254,16 +220,6 @@ static int init_conf(m_config_t& config, int mode) { -#ifdef MP_DEBUG - assert(config != NULL); - assert(config.pt != NULL); - assert(config.last_entry == NULL || config.last_entry->parent == config.pt); - - if (mode != COMMAND_LINE && mode != CONFIG_FILE) { - MSG_ERR( "init_conf: wrong mode!\n"); - return -1; - } -#endif config.parser_mode = mode; config.dynamics=NULL; config.dynasize=0; @@ -274,10 +230,6 @@ static int config_is_entry_option(m_config_t& config,const char *opt,const char *param) { play_tree_t* entry = NULL; -#ifdef MP_DEBUG - assert(config.pt != NULL); -#endif - if(strcasecmp(opt,"playlist") == 0) { // We handle playlist here if(!param) return ERR_MISSING_PARAM; @@ -316,11 +268,6 @@ char *endptr; const config_t* conf=NULL; -#ifdef MP_DEBUG - assert(config != NULL); - assert(conf_list != NULL); - assert(opt != NULL); -#endif MSG_DBG3( "read_option: conf=%p opt='%s' param='%s'\n", conf, opt, param); for(nconf = 0 ; conf_list[nconf] != NULL; nconf++) { @@ -496,67 +443,6 @@ } ret = 1; break; -#if 0 -// we have handled it in other function - case CONF_TYPE_SUBCONFIG: - { - char *subparam; - char *subopt; - int subconf_optnr; - config_t *subconf; - config_t *sublist[] = { NULL , NULL }; - char *token; - char *p; - - if (param == NULL) - goto err_missing_param; - - subparam = new char [strlen(param)+1]; - subopt = new char [strlen(param)+1]; - p = mp_strdup(param); // In case that param is a static string (cf man strtok) - - subconf = conf[i].p; - sublist[0] = subconf; - for (subconf_optnr = 0; subconf[subconf_optnr].name != NULL; subconf_optnr++) - /* NOTHING */; - config.sub_conf = opt; - token = strtok(p, (char *)&(":")); - while(token) - { - int sscanf_ret; - /* clear out */ - subopt[0] = subparam[0] = 0; - - sscanf_ret = sscanf(token, "%[^=]=%s", subopt, subparam); - - MSG_DBG3( "token: '%s', i=%d, subopt='%s', subparam='%s' (ret: %d)\n", token, i, subopt, subparam, sscanf_ret); - switch(sscanf_ret) - { - case 1: - subparam[0] = 0; - case 2: - if ((ret = config_read_option(config,sublist, subopt, subparam)) < 0) - { - MSG_ERR( "Subconfig parsing returned error: %d in token: %s\n", - ret, token); - goto out; - } - break; - default: - MSG_ERR( "Invalid subconfig argument! ('%s')\n", token); - ret = ERR_NOT_AN_OPTION; - goto out; - } - token = strtok(NULL, (char *)&(":")); - } - config.sub_conf = NULL; - delete subparam; - delete subopt; - delete p; - ret = 1; - break; - } -#endif case CONF_TYPE_PRINT: MSG_INFO("%s", (char *) conf[i].p); exit(1); @@ -568,9 +454,6 @@ if(ret >= 0 && ! IS_RUNNING(config) && ! IS_GLOBAL(config) && ! (conf[i].flags & CONF_GLOBAL) && conf[i].type != CONF_TYPE_SUBCONFIG ) { play_tree_t* dest = config.last_entry ? config.last_entry : config.last_parent; char* o; -#ifdef MP_DEBUG - assert(dest != NULL); -#endif if(config.sub_conf) { o = new char [(strlen(config.sub_conf) + 1 + strlen(opt) + 1)]; sprintf(o,"%s:%s",config.sub_conf,opt); @@ -596,14 +479,9 @@ int m_config_set_option(m_config_t& config,const char *opt,const char *param) { const char *e; const config_t**clist=config.opt_list; -#ifdef MP_DEBUG - assert(config != NULL); - assert(config.opt_list != NULL); - assert(opt != NULL); -#endif MSG_DBG2( "Setting option %s=%s\n",opt,param); clist = config.opt_list; -#if 1 + if(strchr(opt,'.')) { int flg,ret; const config_t *subconf=NULL; @@ -633,7 +511,7 @@ config.flags=flg; return ret; } -#endif + e = strchr(opt,':'); if(e && e[1] != '\0') { int ret; @@ -658,12 +536,12 @@ return config_read_option(config,config.opt_list,opt,param); } +static void PRINT_LINENUM(const std::string& conffile,int line_num) { mpxp_err<<conffile<<"("<<line_num<<")"<<std::endl; } +static const int MAX_LINE_LEN=1000; +static const int MAX_OPT_LEN=100; +static const int MAX_PARAM_LEN=100; MPXP_Rc m_config_parse_config_file(m_config_t& config,const char *conffile) { -#define PRINT_LINENUM MSG_ERR("%s(%d): ", conffile, line_num) -#define MAX_LINE_LEN 1000 -#define MAX_OPT_LEN 100 -#define MAX_PARAM_LEN 100 FILE *fp; char *line; char opt[MAX_OPT_LEN + 1]; @@ -677,10 +555,6 @@ MPXP_Rc ret = MPXP_Ok; int errors = 0; -#ifdef MP_DEBUG - assert(config != NULL); - // assert(conf_list != NULL); -#endif if (++config.recursion_depth > 1) MSG_INFO("Reading config file: %s", conffile); if (config.recursion_depth > MAX_RECURSION_DEPTH) { @@ -730,34 +604,29 @@ line[line_pos] != '='; /* NOTHING */) { opt[opt_pos++] = line[line_pos++]; if (opt_pos >= MAX_OPT_LEN) { - PRINT_LINENUM; - MSG_ERR("too long option\n"); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<"too long option"<<std::endl; errors++; ret = MPXP_False; goto nextline; } } if (opt_pos == 0) { - PRINT_LINENUM; - MSG_ERR("parse error\n"); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<"parse error"<<std::endl; ret = MPXP_False; errors++; continue; } opt[opt_pos] = '\0'; -#ifdef MP_DEBUG - PRINT_LINENUM; - MSG_DBG2("option: %s\n", opt); -#endif - /* skip whitespaces */ while (isspace(line[line_pos])) ++line_pos; /* check '=' */ if (line[line_pos++] != '=') { - PRINT_LINENUM; - MSG_ERR("option without parameter\n"); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<"option without parameter"<<std::endl; ret = MPXP_False; errors++; continue; @@ -773,8 +642,8 @@ for (param_pos = 0; line[line_pos] != c; /* NOTHING */) { param[param_pos++] = line[line_pos++]; if (param_pos >= MAX_PARAM_LEN) { - PRINT_LINENUM; - MSG_ERR("too long parameter\n"); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<"too long parameter"<<std::endl; ret = MPXP_False; errors++; goto nextline; @@ -786,8 +655,8 @@ && line[line_pos] != '#'; /* NOTHING */) { param[param_pos++] = line[line_pos++]; if (param_pos >= MAX_PARAM_LEN) { - PRINT_LINENUM; - MSG_ERR("too long parameter\n"); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<"too long parameter"<<std::endl; ret = MPXP_False; errors++; goto nextline; @@ -798,26 +667,21 @@ /* did we read a parameter? */ if (param_pos == 0) { - PRINT_LINENUM; - MSG_ERR("option without parameter\n"); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<"option without parameter"<<std::endl; ret = MPXP_False; errors++; continue; } -#ifdef MP_DEBUG - PRINT_LINENUM; - MSG_DBG2("parameter: %s\n", param); -#endif - /* now, check if we have some more chars on the line */ /* whitespace... */ while (isspace(line[line_pos])) ++line_pos; /* EOL / comment */ if (line[line_pos] != '\0' && line[line_pos] != '#') { - PRINT_LINENUM; - MSG_ERR("extra characters on line: %s\n", line+line_pos); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<"extra characters on line: "<<line+line_pos<<std::endl; ret = MPXP_False; } @@ -828,8 +692,8 @@ case ERR_OUT_OF_RANGE: case ERR_NO_SUBCONF: case ERR_FUNC_ERR: - PRINT_LINENUM; - MSG_ERR("%s\n", opt); + PRINT_LINENUM(conffile,line_num); + mpxp_err<<opt<<std::endl; ret = MPXP_False; errors++; continue; @@ -846,7 +710,8 @@ return ret; } -MPXP_Rc m_config_parse_command_line(m_config_t& config, int argc, char **argv, char **envp) +namespace mpxp { +MPXP_Rc mpxp_parse_command_line(m_config_t& config, int argc, char **argv, char **envp) { int i; int tmp; @@ -854,14 +719,6 @@ int no_more_opts = 0; UNUSED(envp); -#ifdef MP_DEBUG - assert(config != NULL); - assert(config.pt != NULL); - assert(argv != NULL); - assert(envp != NULL); - assert(argc >= 1); -#endif - if (init_conf(config, COMMAND_LINE) == -1) return MPXP_False; if(config.last_parent == NULL) config.last_parent = config.pt; /* in order to work recursion detection properly in parse_config_file */ @@ -972,25 +829,17 @@ UNSET_GLOBAL(config); SET_RUNNING(config); return MPXP_Ok; -#if 0 -err_out_mem: - MSG_ERR( "can't allocate memory for filenames (%s)\n", strerror(errno)); -#endif err_out: --config.recursion_depth; MSG_ERR( "command line: %s\n", argv[i]); return MPXP_False; } +} // namespace mpxp int m_config_register_options(m_config_t& config,const config_t *args) { int list_len = 0; const config_t** conf_list = config.opt_list; -#ifdef MP_DEBUG - assert(config != NULL); - assert(args != NULL); -#endif - if(conf_list) { for ( ; conf_list[list_len] != NULL; list_len++) /* NOTHING */; @@ -1029,11 +878,6 @@ const config_t **conf_list; const config_t* cl[] = { NULL, NULL }; -#ifdef MP_DEBUG - assert(config != NULL); - assert(arg != NULL); -#endif - e = strchr(arg,':'); if(e) { @@ -1052,11 +896,6 @@ any_t* m_config_get_option_ptr(const m_config_t& config,const char* arg) { const config_t* conf; -#ifdef MP_DEBUG - assert(config != NULL); - assert(arg != NULL); -#endif - conf = m_config_get_option(config,arg); if(!conf) return NULL; return conf->p; @@ -1065,11 +904,6 @@ int m_config_get_int (const m_config_t& config,const char* arg,int* err_ret) { int *ret; -#ifdef MP_DEBUG - assert(config != NULL); - assert(arg != NULL); -#endif - ret = (int*)m_config_get_option_ptr(config,arg); if(err_ret) *err_ret = 0; @@ -1084,11 +918,6 @@ float m_config_get_float (const m_config_t& config,const char* arg,int* err_ret) { float *ret; -#ifdef MP_DEBUG - assert(config != NULL); - assert(arg != NULL); -#endif - ret = (float*)m_config_get_option_ptr(config,arg); if(err_ret) *err_ret = 0; @@ -1106,11 +935,6 @@ int m_config_set_int(m_config_t& config,const char* arg,int val) { const config_t* opt; -#ifdef MP_DEBUG - assert(config != NULL); - assert(arg != NULL); -#endif - opt = m_config_get_option(config,arg); if(!opt || opt->type != CONF_TYPE_INT) @@ -1130,11 +954,6 @@ int m_config_set_float(m_config_t& config,const char* arg,float val) { const config_t* opt; -#ifdef MP_DEBUG - assert(config != NULL); - assert(arg != NULL); -#endif - opt = m_config_get_option(config,arg); if(!opt || opt->type != CONF_TYPE_FLOAT) @@ -1155,11 +974,6 @@ int m_config_switch_flag(m_config_t& config,const char* opt) { const config_t *conf; -#ifdef MP_DEBUG - assert(config != NULL); - assert(opt != NULL); -#endif - conf = m_config_get_option(config,opt); if(!conf || conf->type != CONF_TYPE_FLAG) return 0; if( AS_INT(conf) == conf->min) AS_INT(conf,conf->max); @@ -1172,11 +986,6 @@ int m_config_set_flag(m_config_t& config,const char* opt, int state) { const config_t *conf; -#ifdef MP_DEBUG - assert(config != NULL); - assert(opt != NULL); -#endif - conf = m_config_get_option(config,opt); if(!conf || conf->type != CONF_TYPE_FLAG) return 0; if(state) AS_INT(conf,conf->max); @@ -1186,11 +995,6 @@ int m_config_get_flag(const m_config_t& config,const char* opt) { -#ifdef MP_DEBUG - assert(config != NULL); - assert(opt != NULL); -#endif - const config_t* conf = m_config_get_option(config,opt); if(!conf || conf->type != CONF_TYPE_FLAG) return -1; if(AS_INT(conf) == conf->max) return 1; @@ -1203,11 +1007,6 @@ config_save_t* save; int l,i; -#ifdef MP_DEBUG - assert(config != NULL); - assert(arg != NULL); -#endif - opt = m_config_get_option(config,arg); if(!opt) @@ -1325,5 +1124,3 @@ j++; }; } - -#undef AS_INT Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-26 11:39:18 UTC (rev 602) @@ -89,7 +89,9 @@ * -1 on error (invalid option...) * 1 otherwise */ -MPXP_Rc m_config_parse_command_line(m_config_t& config, int argc, char **argv, char **envp); +namespace mpxp { + MPXP_Rc mpxp_parse_command_line(m_config_t& config, int argc, char **argv, char **envp); +} m_config_t& m_config_new(play_tree_t* pt,libinput_t&libinput); Modified: mplayerxp/libmpconf/codec-cfg.cpp =================================================================== --- mplayerxp/libmpconf/codec-cfg.cpp 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libmpconf/codec-cfg.cpp 2012-12-26 11:39:18 UTC (rev 602) @@ -18,7 +18,6 @@ #include <unistd.h> #include <errno.h> #include <ctype.h> -#include <assert.h> #include <string.h> // for mmioFOURCC: Modified: mplayerxp/libmpconf/subopt-helper.cpp =================================================================== --- mplayerxp/libmpconf/subopt-helper.cpp 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libmpconf/subopt-helper.cpp 2012-12-26 11:39:18 UTC (rev 602) @@ -22,15 +22,10 @@ #include <stdlib.h> #include <string.h> #include <limits.h> -#include <assert.h> #include "subopt-helper.h" #include "global_msg.h" -#ifndef MP_DEBUG - #define NDEBUG -#endif - /* prototypes for argument parsing */ static char const * parse_int( char const * const str, int * const valp ); static char const * parse_str( char const * const str, strarg_t * const valp ); @@ -99,8 +94,6 @@ /* option was found */ next = 1; - assert( opts[idx].valp && "Need a pointer to store the arg!" ); - /* type specific code */ if ( opts[idx].type == OPT_ARG_BOOL ) { @@ -164,7 +157,6 @@ (float *)opts[idx].valp ); break; default: - assert( 0 && "Arg type of suboption doesn't exist!" ); last = NULL; // break parsing! } @@ -238,8 +230,6 @@ { char * endp; - assert( str && "parse_int(): str == NULL" ); - *valp = (int)strtol( str, &endp, 0 ); /* nothing was converted */ @@ -252,8 +242,6 @@ { char * endp; - assert( str && "parse_float(): str == NULL" ); - *valp = strtod( str, &endp ); /* nothing was converted */ @@ -262,7 +250,7 @@ return endp; } -#define QUOTE_CHAR '%' +static const char QUOTE_CHAR='%'; static char const * parse_str( char const * str, strarg_t * const valp ) { char const * match = strchr( str, ':' ); Modified: mplayerxp/libmpsub/vobsub.cpp =================================================================== --- mplayerxp/libmpsub/vobsub.cpp 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libmpsub/vobsub.cpp 2012-12-26 11:39:18 UTC (rev 602) @@ -82,7 +82,7 @@ int fd; }; -static mpeg_t * __FASTCALL__ mpeg_open(const char *filename) +static mpeg_t * __FASTCALL__ mpeg_open(const std::string& filename) { mpeg_t *res = new(zeromem) mpeg_t; int err = res == NULL; @@ -93,7 +93,7 @@ res->packet = NULL; res->packet_size = 0; res->packet_reserve = 0; - fd = open(filename, O_RDONLY); + fd = ::open(filename.c_str(), O_RDONLY); err = fd < 0; if (!err) { res->stream = new(zeromem) Stream(Stream::Type_Seekable); @@ -297,7 +297,7 @@ }; struct packet_queue_t { - char *id; + std::string id; packet_t *packets; unsigned int packets_reserve; unsigned int packets_size; @@ -320,7 +320,7 @@ static void __FASTCALL__ packet_queue_construct(packet_queue_t *queue) { - queue->id = NULL; + queue->id = ""; queue->packets = NULL; queue->packets_reserve = 0; queue->packets_size = 0; @@ -439,25 +439,16 @@ return 0; } -static int __FASTCALL__ vobsub_add_id(vobsub_t *vob, const char *id, size_t idlen, const unsigned int _index) +static int __FASTCALL__ vobsub_add_id(vobsub_t *vob, const std::string& id, const unsigned int _index) { if (vobsub_ensure_spu_stream(vob, _index) < 0) return -1; - if (id && idlen) { - if (vob->spu_streams[_index].id) - delete vob->spu_streams[_index].id; - vob->spu_streams[_index].id = new char [idlen + 1]; - if (vob->spu_streams[_index].id == NULL) { - MSG_ERR("vobsub_add_id: mp_malloc failure"); - return -1; - } - vob->spu_streams[_index].id[idlen] = 0; - memcpy(vob->spu_streams[_index].id, id, idlen); + if (!id.empty()) { + vob->spu_streams[_index].id=id; } vob->spu_streams_current = _index; if (mp_conf.verbose) - MSG_ERR( "[vobsub] subtitle (vobsubid): %d language %s\n", - _index, vob->spu_streams[_index].id); + mpxp_err<<"[vobsub] subtitle (vobsubid): "<<_index<<" language "<<vob->spu_streams[_index].id<<std::endl; return 0; } @@ -503,7 +494,7 @@ ++q; if (!isdigit(*q)) return -1; - return vobsub_add_id(vob, p, idlen, atoi(q)); + return vobsub_add_id(vob, p, atoi(q)); } static int __FASTCALL__ vobsub_parse_timestamp(vobsub_t *vob, const char *line) @@ -778,23 +769,23 @@ return res; } -int __FASTCALL__ vobsub_parse_ifo(any_t* _vob, const char *const name, unsigned int *palette, unsigned int *width, unsigned int *height, int force, int sid, char *langid) +int __FASTCALL__ vobsub_parse_ifo(any_t* _vob, const std::string& name, unsigned int *palette, unsigned int *width, unsigned int *height, int force, int sid, std::string& langid) { vobsub_t *vob = (vobsub_t*)_vob; int res = -1; - FILE *fd = fopen(name, "rb"); + FILE *fd = ::fopen(name.c_str(), "rb"); if (fd == NULL) { if (force) - MSG_WARN("VobSub: Can't open IFO file\n"); + mpxp_warn<<"VobSub: Can't open IFO file"<<std::endl; } else { // parse IFO header unsigned char block[0x800]; const char *const ifo_magic = "DVDVIDEO-VTS"; if (fread(block, sizeof(block), 1, fd) != 1) { if (force) - MSG_ERR("VobSub: Can't read IFO header\n"); + mpxp_err<<"VobSub: Can't read IFO header"<<std::endl; } else if (memcmp(block, ifo_magic, strlen(ifo_magic) + 1)) - MSG_ERR("VobSub: Bad magic in IFO header\n"); + mpxp_err<<"VobSub: Bad magic in IFO header"<<std::endl; else { unsigned long pgci_sector = block[0xcc] << 24 | block[0xcd] << 16 | block[0xce] << 8 | block[0xcf]; @@ -817,17 +808,15 @@ *height /= 2; break; default: - MSG_WARN("Vobsub: Unknown resolution %d \n", resolution); + mpxp_warn<<"Vobsub: Unknown resolution "<<resolution<<std::endl; } - if (langid && 0 <= sid && sid < 32) { - unsigned char *tmp = block + 0x256 + sid * 6 + 2; - langid[0] = tmp[0]; - langid[1] = tmp[1]; - langid[2] = 0; + if (!langid.empty() && 0 <= sid && sid < 32) { + char *tmp = (char *)block + 0x256 + sid * 6 + 2; + langid.assign(tmp,2); } if (fseek(fd, pgci_sector * sizeof(block), SEEK_SET) || fread(block, sizeof(block), 1, fd) != 1) - MSG_ERR("VobSub: Can't read IFO PGCI\n"); + mpxp_err<<"VobSub: Can't read IFO PGCI"<<std::endl; else { unsigned long idx; unsigned long pgc_offset = block[0xc] << 24 | block[0xd] << 16 @@ -846,13 +835,12 @@ return res; } -any_t* __FASTCALL__ vobsub_open(const char *const name,const char *const ifo,const int force,any_t** spu) +any_t* __FASTCALL__ vobsub_open(const std::string& name,const char *const ifo,const int force,any_t** spu) { vobsub_t *vob = new(zeromem) vobsub_t; if(spu) *spu = NULL; if (vob) { - char *buf; vob->custom = 0; vob->have_palette = 0; vob->orig_frame_width = 0; @@ -862,107 +850,95 @@ vob->spu_streams_current = 0; vob->delay = 0; vob->forced_subs=0; - buf = new char [strlen(name) + 5]; - if (buf) { - FILE *fd; - mpeg_t *mpg; - /* read in the info file */ - if(!ifo) { - strcpy(buf, name); - strcat(buf, ".ifo"); - vobsub_parse_ifo(vob,buf, vob->palette, &vob->orig_frame_width, &vob->orig_frame_height, force, -1, NULL); - } else - vobsub_parse_ifo(vob,ifo, vob->palette, &vob->orig_frame_width, &vob->orig_frame_height, force, -1, NULL); - /* read in the index */ - strcpy(buf, name); - strcat(buf, ".idx"); - fd = fopen(buf, "rb"); - if (fd == NULL) { - if(force) - MSG_ERR("VobSub: Can't open IDX file\n"); - else { - delete buf; - delete vob; - return NULL; - } - } else { - while (vobsub_parse_one_line(vob, fd) >= 0) - /* NOOP */ ; - fclose(fd); + std::string buf; + FILE *fd; + mpeg_t *mpg; + /* read in the info file */ + std::string stmp=""; + if(!ifo) { + buf=name+".ifo"; + vobsub_parse_ifo(vob,buf, vob->palette, &vob->orig_frame_width, &vob->orig_frame_height, force, -1, stmp); + } else + vobsub_parse_ifo(vob,ifo, vob->palette, &vob->orig_frame_width, &vob->orig_frame_height, force, -1, stmp); + /* read in the index */ + buf=name+".idx"; + fd = ::fopen(buf.c_str(), "rb"); + if (fd == NULL) { + if(force) + mpxp_err<<"VobSub: Can't open IDX file"<<std::endl; + else { + delete vob; + return NULL; } - /* if no palette in .idx then use custom colors */ - if ((vob->custom == 0)&&(vob->have_palette!=1)) - vob->custom = 1; - if (spu && vob->orig_frame_width && vob->orig_frame_height) - *spu = spudec_new_scaled_vobsub(vob->palette, vob->cuspal, vob->custom, vob->orig_frame_width, vob->orig_frame_height); + } else { + while (vobsub_parse_one_line(vob, fd) >= 0) /* NOOP */ ; + ::fclose(fd); + } + /* if no palette in .idx then use custom colors */ + if ((vob->custom == 0)&&(vob->have_palette!=1)) + vob->custom = 1; + if (spu && vob->orig_frame_width && vob->orig_frame_height) + *spu = spudec_new_scaled_vobsub(vob->palette, vob->cuspal, vob->custom, vob->orig_frame_width, vob->orig_frame_height); - /* read the indexed mpeg_stream */ - strcpy(buf, name); - strcat(buf, ".sub"); - mpg = mpeg_open(buf); - if (mpg == NULL) { - if(force) - MSG_ERR("VobSub: Can't open SUB file\n"); - else { - - delete buf; + /* read the indexed mpeg_stream */ + buf=name+".sub"; + mpg = mpeg_open(buf); + if (mpg == NULL) { + if(force) mpxp_err<<"VobSub: Can't open SUB file"<<std::endl; + else { delete vob; return NULL; - } - } else { - long last_pts_diff = 0; - while (!mpeg_eof(mpg)) { - off_t pos = mpeg_tell(mpg); - if (mpeg_run(mpg) < 0) { - if (!mpeg_eof(mpg)) - MSG_ERR("VobSub: mpeg_run error\n"); - break; - } - if (mpg->packet_size) { - if ((mpg->aid & 0xe0) == 0x20) { - unsigned int sid = mpg->aid & 0x1f; - if (vobsub_ensure_spu_stream(vob, sid) >= 0) { - packet_queue_t *queue = vob->spu_streams + sid; - /* get the packet to fill */ - if (queue->packets_size == 0 && packet_queue_grow(queue) < 0) - abort(); - while (queue->current_index + 1 < queue->packets_size - && queue->packets[queue->current_index + 1].filepos <= pos) - ++queue->current_index; - if (queue->current_index < queue->packets_size) { - packet_t *pkt; - if (queue->packets[queue->current_index].data) { - /* insert a new packet and fix the PTS ! */ - packet_queue_insert(queue); - queue->packets[queue->current_index].pts100 = - mpg->pts + last_pts_diff; - } - pkt = queue->packets + queue->current_index; - if (pkt->pts100 != UINT_MAX) { - if (queue->packets_size > 1) - last_pts_diff = pkt->pts100 - mpg->pts; - else - pkt->pts100 = mpg->pts; - /* FIXME: should not use mpg_sub internal informations, make a copy */ - pkt->data = mpg->packet; - pkt->size = mpg->packet_size; - mpg->packet = NULL; - mpg->packet_reserve = 0; - mpg->packet_size = 0; - } + } + } else { + long last_pts_diff = 0; + while (!mpeg_eof(mpg)) { + off_t pos = mpeg_tell(mpg); + if (mpeg_run(mpg) < 0) { + if (!mpeg_eof(mpg)) mpxp_err<<"VobSub: mpeg_run error"<<std::endl; + break; + } + if (mpg->packet_size) { + if ((mpg->aid & 0xe0) == 0x20) { + unsigned int sid = mpg->aid & 0x1f; + if (vobsub_ensure_spu_stream(vob, sid) >= 0) { + packet_queue_t *queue = vob->spu_streams + sid; + /* get the packet to fill */ + if (queue->packets_size == 0 && packet_queue_grow(queue) < 0) + abort(); + while (queue->current_index + 1 < queue->packets_size + && queue->packets[queue->current_index + 1].filepos <= pos) + ++queue->current_index; + if (queue->current_index < queue->packets_size) { + packet_t *pkt; + if (queue->packets[queue->current_index].data) { + /* insert a new packet and fix the PTS ! */ + packet_queue_insert(queue); + queue->packets[queue->current_index].pts100 = + mpg->pts + last_pts_diff; } + pkt = queue->packets + queue->current_index; + if (pkt->pts100 != UINT_MAX) { + if (queue->packets_size > 1) + last_pts_diff = pkt->pts100 - mpg->pts; + else + pkt->pts100 = mpg->pts; + /* FIXME: should not use mpg_sub internal informations, make a copy */ + pkt->data = mpg->packet; + pkt->size = mpg->packet_size; + mpg->packet = NULL; + mpg->packet_reserve = 0; + mpg->packet_size = 0; + } } - else - MSG_WARN("don't know what to do with subtitle #%u\n", sid); } + else mpxp_warn<<"don't know what to do with subtitle #"<<sid<<std::endl; } } - vob->spu_streams_current = vob->spu_streams_size; - while (vob->spu_streams_current-- > 0) - vob->spu_streams[vob->spu_streams_current].current_index = 0; - mpeg_free(mpg); } - delete buf; + vob->spu_streams_current = vob->spu_streams_size; + while (vob->spu_streams_current-- > 0) + vob->spu_streams[vob->spu_streams_current].current_index = 0; + mpeg_free(mpg); } } return vob; @@ -989,10 +965,10 @@ } } -char * __FASTCALL__ vobsub_get_id(any_t*vobhandle, unsigned int _index) +std::string __FASTCALL__ vobsub_get_id(any_t*vobhandle, unsigned int _index) { vobsub_t *vob = (vobsub_t *) vobhandle; - return (_index < vob->spu_streams_size) ? vob->spu_streams[_index].id : NULL; + return (_index < vob->spu_streams_size) ? vob->spu_streams[_index].id : ""; } unsigned int __FASTCALL__ vobsub_get_forced_subs_flag(void const * const vobhandle) @@ -1003,21 +979,22 @@ return 0; } -int __FASTCALL__ vobsub_set_from_lang(any_t*vobhandle,const char * lang) +int __FASTCALL__ vobsub_set_from_lang(any_t*vobhandle,const std::string& lang) { unsigned i; + size_t pos=0; vobsub_t *vob= (vobsub_t *) vobhandle; - while(lang && strlen(lang) >= 2){ + while(!lang.empty() && lang.length() >= 2){ for(i=0; i < vob->spu_streams_size; i++) - if (vob->spu_streams[i].id) - if ((strncmp(vob->spu_streams[i].id, lang, 2)==0)){ + if (!vob->spu_streams[i].id.empty()) + if (vob->spu_streams[i].id==lang.substr(pos,2)){ mp_conf.vobsub_id=i; - MSG_INFO("Selected VOBSUB language: %d language: %s\n", i, vob->spu_streams[i].id); + mpxp_info<<"Selected VOBSUB language: "<<i<<" language: "<<vob->spu_streams[i].id<<std::endl; return 0; } - lang+=2;while (lang[0]==',' || lang[0]==' ') ++lang; + pos+=2;while (lang[pos]==',' || lang[pos]==' ') ++pos; } - MSG_WARN("No matching VOBSUB language found!\n"); + mpxp_warn<<"No matching VOBSUB language found!"<<std::endl; return -1; } @@ -1035,7 +1012,7 @@ } if (vob->spu_streams && 0 <= mp_conf.vobsub_id && (unsigned) mp_conf.vobsub_id < vob->spu_streams_size) { /* do not seek if we don't know the id */ - if (vobsub_get_id(vob, mp_conf.vobsub_id) == NULL) return; + if (vobsub_get_id(vob, mp_conf.vobsub_id).empty()) return; queue = vob->spu_streams + mp_conf.vobsub_id; queue->current_index = 0; while (queue->current_index < queue->packets_size Modified: mplayerxp/libmpsub/vobsub.h =================================================================== --- mplayerxp/libmpsub/vobsub.h 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libmpsub/vobsub.h 2012-12-26 11:39:18 UTC (rev 602) @@ -3,13 +3,13 @@ #include "libmpdemux/demuxer.h" // for seek_args_t -extern any_t* __FASTCALL__ vobsub_open(const char *subname, const char *const ifo, const int force, any_t** spu); +extern any_t* __FASTCALL__ vobsub_open(const std::string& subname, const char *const ifo, const int force, any_t** spu); extern void __FASTCALL__ vobsub_close(any_t*__self); extern void __FASTCALL__ vobsub_reset(any_t*vob); extern int __FASTCALL__ vobsub_get_packet(any_t*vobhandle, float pts,any_t** data, int* timestamp); -extern int __FASTCALL__ vobsub_parse_ifo(any_t* vob, const char *const name, unsigned int *palette, unsigned int *width, unsigned int *height, int force, int sid, char *langid); -extern char * __FASTCALL__ vobsub_get_id(any_t* vob, unsigned int index); -extern int __FASTCALL__ vobsub_set_from_lang(any_t*vobhandle,const char * lang); +extern int __FASTCALL__ vobsub_parse_ifo(any_t* vob, const std::string& name, unsigned int *palette, unsigned int *width, unsigned int *height, int force, int sid, std::string& langid); +extern std::string __FASTCALL__ vobsub_get_id(any_t* vob, unsigned int index); +extern int __FASTCALL__ vobsub_set_from_lang(any_t*vobhandle,const std::string& lang); extern unsigned int __FASTCALL__ vobsub_get_forced_subs_flag(void const * const vobhandle); extern void __FASTCALL__ vobsub_seek(any_t* vob,const seek_args_t* seek); /// Convert palette value in idx file to yuv. Modified: mplayerxp/libplaytree/playtree.cpp =================================================================== --- mplayerxp/libplaytree/playtree.cpp 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libplaytree/playtree.cpp 2012-12-26 11:39:18 UTC (rev 602) @@ -8,9 +8,6 @@ #include <unistd.h> #include <errno.h> #include <time.h> -#ifdef MP_DEBUG -#include <assert.h> -#endif #include "libmpstream2/stream.h" #include "playtree.h" #include "playtree_msg.h" @@ -31,10 +28,6 @@ play_tree_free(play_tree_t* pt, int childs) { play_tree_t* iter; -#ifdef MP_DEBUG - assert(pt != NULL); -#endif - if(childs) { for(iter = pt->child; iter != NULL; ) { play_tree_t* nxt=iter->next; @@ -64,10 +57,6 @@ play_tree_free_list(play_tree_t* pt, int childs) { play_tree_t* iter; -#ifdef MP_DEBUG - assert(pt != NULL); -#endif - for(iter = pt ; iter->prev != NULL ; iter = iter->prev) /* NOTHING */; @@ -83,11 +72,6 @@ play_tree_append_entry(play_tree_t* pt, play_tree_t* entry) { play_tree_t* iter; -#ifdef MP_DEBUG - assert(pt != NULL); - assert(entry != NULL); -#endif - if(pt == entry) return; @@ -104,11 +88,6 @@ play_tree_prepend_entry(play_tree_t* pt, play_tree_t* entry) { play_tree_t* iter; -#ifdef MP_DEBUG - assert(pt != NULL); - assert(entry != NULL); -#endif - for(iter = pt ; iter->prev != NULL; iter = iter->prev) /* NOTHING */; @@ -118,9 +97,6 @@ iter->prev = entry; if(entry->parent) { -#ifdef MP_DEBUG - assert(entry->parent->child == iter); -#endif entry->parent->child = entry; } } @@ -128,17 +104,9 @@ void play_tree_insert_entry(play_tree_t* pt, play_tree_t* entry) { -#ifdef MP_DEBUG - assert(pt != NULL); - assert(entry != NULL); -#endif - entry->parent = pt->parent; entry->prev = pt; if(pt->next) { -#ifdef MP_DEBUG - assert(pt->next->prev == pt); -#endif entry->next = pt->next; entry->next->prev = entry; } else @@ -150,41 +118,21 @@ void play_tree_remove(play_tree_t* pt, int free_it,int with_childs) { -#ifdef MP_DEBUG - assert(pt != NULL); -#endif - // Middle of list if(pt->prev && pt->next) { -#ifdef MP_DEBUG - assert(pt->prev->next == pt); - assert(pt->next->prev == pt); -#endif pt->prev->next = pt->next; pt->next->prev = pt->prev; } // End of list else if(pt->prev) { -#ifdef MP_DEBUG - assert(pt->prev->next == pt); -#endif pt->prev->next = NULL; } // Begining of list else if(pt->next) { -#ifdef MP_DEBUG - assert(pt->next->prev == pt); -#endif pt->next->prev = NULL; if(pt->parent) { -#ifdef MP_DEBUG - assert(pt->parent->child == pt); -#endif pt->parent->child = pt->next; } } // The only one else if(pt->parent) { -#ifdef MP_DEBUG - assert(pt->parent->child == pt); -#endif pt->parent->child = NULL; } @@ -198,11 +146,6 @@ play_tree_set_child(play_tree_t* pt, play_tree_t* child) { play_tree_t* iter; -#ifdef MP_DEBUG - assert(pt != NULL); - assert(pt->entry_type == PLAY_TREE_ENTRY_NODE); -#endif - for(iter = pt->child ; iter != NULL ; iter = iter->next) iter->parent = NULL; @@ -221,10 +164,6 @@ play_tree_set_parent(play_tree_t* pt, play_tree_t* parent) { play_tree_t* iter; -#ifdef MP_DEBUG - assert(pt != NULL); -#endif - if(pt->parent) pt->parent->child = NULL; @@ -247,12 +186,6 @@ int n = 0; char* e; -#ifdef MP_DEBUG - assert(pt != NULL); - assert(pt->child == NULL); - assert(file != NULL); -#endif - if(pt->entry_type != PLAY_TREE_ENTRY_NODE && pt->entry_type != PLAY_TREE_ENTRY_FILE) return; @@ -261,7 +194,7 @@ for(n = 0 ; pt->files[n] != NULL ; n++) /* NOTHING */; } - pt->files = (char**)mp_realloc(pt->files,(n+2)*sizeof(char*)); + pt->files = (char**)mp_realloc((any_t*)pt->files,(n+2)*sizeof(char*)); if(pt->files ==NULL) { MSG_ERR("Can't allocate %d bytes of memory\n",(n+2)*sizeof(char*)); return; @@ -288,12 +221,6 @@ play_tree_remove_file(play_tree_t* pt,const char* file) { int n,f = -1; -#ifdef MP_DEBUG - assert(pt != NULL); - assert(file != NULL); - assert(pt->entry_type != PLAY_TREE_ENTRY_NODE); -#endif - for(n=0 ; pt->files[n] != NULL ; n++) { if(strcmp(file,pt->files[n]) == 0) f = n; @@ -302,15 +229,11 @@ if(f < 0) // Not found return 0; -#ifdef MP_DEBUG - assert(n > f); -#endif - delete pt->files[f]; if(n > 1) { memmove(&pt->files[f],&pt->files[f+1],(n-f)*sizeof(char*)); - pt->files = (char**)mp_realloc(pt->files,n*sizeof(char*)); + pt->files = (char**)mp_realloc((any_t*)pt->files,n*sizeof(char*)); if(pt->files == NULL) { MSG_ERR("Can't allocate %d bytes of memory\n",(n+2)*sizeof(char*)); return -1; @@ -326,11 +249,6 @@ void play_tree_set_param(play_tree_t* pt,const char* name,const char* val) { int n = 0,ni = -1; -#ifdef MP_DEBUG - assert(pt != NULL); - assert(name != NULL); -#endif - if(pt->params) { for( ; pt->params[n].name != NULL ; n++) { if(strcasecmp(pt->params[n].name,name) == 0) @@ -360,12 +278,6 @@ int play_tree_unset_param(play_tree_t* pt,const char* name) { int n,ni = -1; -#ifdef MP_DEBUG - assert(pt != NULL); - assert(name != NULL); - assert(pt->params != NULL); -#endif - for(n = 0 ; pt->params[n].name != NULL ; n++) { if(strcasecmp(pt->params[n].name,name) == 0) ni = n; @@ -395,11 +307,6 @@ void play_tree_set_params_from(play_tree_t* dest,const play_tree_t* src) { int i; -#ifdef MP_DEBUG - assert(dest != NULL); - assert(src != NULL); -#endif - if(!src->params) return; @@ -435,80 +342,6 @@ } } -static void -play_tree_iter_push_params(play_tree_iter_t* iter) { - int n; - play_tree_t* pt; -#ifdef MP_DEBUG - assert(iter != NULL); - assert(*iter->config != NULL); - assert(iter->tree != NULL); -#endif - - pt = iter->tree; - - // We always push a config because we can set some option - // while playing - m_config_push(*iter->config); - - if(pt->params == NULL) - return; - - - for(n = 0; pt->params[n].name != NULL ; n++) { - int e; - if((e = m_config_set_option(*iter->config,pt->params[n].name,pt->params[n].value)) < 0) { - MSG_ERR("Error %d while setting option '%s' with value '%s'\n",e, - pt->params[n].name,pt->params[n].value); - } - } - - if(!pt->child) - iter->entry_pushed = 1; - return; -} - -play_tree_iter_t* -play_tree_iter_new(play_tree_t* pt,m_config_t& config) { - play_tree_iter_t* iter; - -#ifdef MP_DEBUG - assert(pt != NULL); - assert(config != NULL); -#endif - - if( ! play_tree_is_valid(pt)) - return NULL; - - iter = (play_tree_iter_t*)mp_calloc(1,sizeof(play_tree_iter_t)); - if(! iter) return NULL; - iter->root = pt; - iter->tree = NULL; - iter->config = &config; - - if(pt->parent) - iter->loop = pt->parent->loop; - - return iter; -} - -void -play_tree_iter_free(play_tree_iter_t* iter) { - -#ifdef MP_DEBUG - assert(iter != NULL); -#endif - - if(iter->status_stack) { -#ifdef MP_DEBUG - assert(iter->stack_size > 0); -#endif - delete iter->status_stack; - } - - delete iter; -} - static play_tree_t* play_tree_rnd_step(play_tree_t* pt) { int count = 0; @@ -545,300 +378,232 @@ return NULL; } -int -play_tree_iter_step(play_tree_iter_t* iter, int d,int with_nodes) { - play_tree_t* pt; - int rnd; -#ifdef MP_DEBUG - assert(iter != NULL); - assert(iter->root != NULL); -#endif +namespace mpxp { +_PlayTree_Iter::_PlayTree_Iter(play_tree_t* pt,m_config_t& _config) + :root(pt), + tree(NULL), + config(_config) { + if(pt->parent) loop = pt->parent->loop; +} - if(iter->tree == NULL) { - iter->tree = iter->root; - return play_tree_iter_step(iter,0,with_nodes); - } +_PlayTree_Iter::_PlayTree_Iter(const _PlayTree_Iter& old) + :root(old.root), + tree(old.tree), + config(old.config), + loop(old.loop), + file(old.file), + num_files(old.num_files), + mode(old.mode) {} - if(iter->config && iter->entry_pushed > 0) { - iter->entry_pushed = 0; - m_config_pop(*iter->config); - } +_PlayTree_Iter::~_PlayTree_Iter() {} - if(iter->tree->parent && (iter->tree->parent->flags & PLAY_TREE_RND)) - rnd=iter->mode = PLAY_TREE_ITER_RND; - else - rnd=iter->mode = PLAY_TREE_ITER_NORMAL; +void _PlayTree_Iter::push_params() { + int n; + play_tree_t* pt; - iter->file = -1; - if(iter->mode == PLAY_TREE_ITER_RND) - pt = play_tree_rnd_step(iter->tree); - else if( d > 0 ) { - int i; - pt = iter->tree; - for(i = d ; i > 0 && pt ; i--) - pt = pt->next; - d = i ? i : 1; - } else if(d < 0) { - int i; - pt = iter->tree; - for(i = d ; i < 0 && pt ; i++) - pt = pt->prev; - d = i ? i : -1; - } else - pt = iter->tree; + pt = tree; - if(pt == NULL) { // No next - // Must we loop? - if (iter->mode == PLAY_TREE_ITER_RND) { - if (iter->root->loop == 0) - return PLAY_TREE_ITER_END; - play_tree_unset_flag(iter->root, PLAY_TREE_RND_PLAYED, -1); - if (iter->root->loop > 0) iter->root->loop--; - // try again - return play_tree_iter_step(iter, 0, with_nodes); - } else - if(iter->tree->parent && iter->tree->parent->loop != 0 && ((d > 0 && iter->loop != 0) || ( d < 0 && (iter->loop < 0 || iter->loop < iter->tree->parent->loop) ) ) ) { - if(d > 0) { // Go back to the first one - for(pt = iter->tree ; pt->prev != NULL; pt = pt->prev) - /* NOTHNG */; - if(iter->loop > 0) iter->loop--; - } else if( d < 0 ) { // Or the last one - for(pt = iter->tree ; pt->next != NULL; pt = pt->next) - /* NOTHNG */; - if(iter->loop >= 0 && iter->loop < iter->tree->parent->loop) iter->loop++; - } - iter->tree = pt; - return play_tree_iter_step(iter,0,with_nodes); - } - // Go up one level - return play_tree_iter_up_step(iter,d,with_nodes); + // We always push a config because we can set some option + // while playing + m_config_push(config); - } + if(pt->params == NULL) return; - // Is there any valid child? - if(pt->child && play_tree_is_valid(pt->child)) { - iter->tree = pt; - if(with_nodes) { // Stop on the node - return PLAY_TREE_ITER_NODE; - } else // Or follow it - return play_tree_iter_down_step(iter,d,with_nodes); - } + for(n = 0; pt->params[n].name != NULL ; n++) { + int e; + if((e = m_config_set_option(config,pt->params[n].name,pt->params[n].value)) < 0) + mpxp_err<<"Error "<<e<<" while setting option '"<<pt->params[n].name<<"' with value '"<<pt->params[n].value<<"'"<<std::endl; + } - // Is it a valid entry? - if(! play_tree_is_valid(pt)) { - if(d == 0 && rnd==PLAY_TREE_ITER_NORMAL) { // Can this happen ? FF: Yes! - MSG_ERR("What to do now ???? Infinite loop if we continue\n"); - return PLAY_TREE_ITER_ERROR; - } // Not a valid entry : go to next one - return play_tree_iter_step(iter,d,with_nodes); - } - -#ifdef MP_DEBUG - assert(pt->files != NULL); -#endif - - iter->tree = pt; - - for(d = 0 ; iter->tree->files[d] != NULL ; d++) - /* NOTHING */; - iter->num_files = d; - - if(iter->config) { - play_tree_iter_push_params(iter); - iter->entry_pushed = 1; - if(iter->mode == PLAY_TREE_ITER_RND) - pt->flags |= PLAY_TREE_RND_PLAYED; - } - - return PLAY_TREE_ITER_ENTRY; - + if(!pt->child) entry_pushed = 1; + return; } -static int -play_tree_is_valid(play_tree_t* pt) { - play_tree_t* iter; +int _PlayTree_Iter::step(int d,int with_nodes) { + play_tree_t* pt; + int rnd; -#ifdef MP_DEBUG - assert(pt != NULL); -#endif + if(tree == NULL) { + tree = root; + return step(0,with_nodes); + } - if(pt->entry_type != PLAY_TREE_ENTRY_NODE) { -#ifdef MP_DEBUG - assert(pt->child == NULL); -#endif - return 1; - } - else if (pt->child != NULL) { - for(iter = pt->child ; iter != NULL ; iter = iter->next) { - if(play_tree_is_valid(iter)) - return 1; + if(entry_pushed > 0) { + entry_pushed = 0; + m_config_pop(config); } - } - return 0; -} -int -play_tree_iter_up_step(play_tree_iter_t* iter, int d,int with_nodes) { + if(tree->parent && (tree->parent->flags & PLAY_TREE_RND)) + rnd=mode = PLAY_TREE_ITER_RND; + else + rnd=mode = PLAY_TREE_ITER_NORMAL; -#ifdef MP_DEBUG - assert(iter != NULL); - assert(iter->tree != NULL); -#endif + file = -1; + if(mode == PLAY_TREE_ITER_RND) pt = play_tree_rnd_step(tree); + else if( d > 0 ) { + int i; + pt = tree; + for(i = d ; i > 0 && pt ; i--) pt = pt->next; + d = i ? i : 1; + } else if(d < 0) { + int i; + pt = tree; + for(i = d ; i < 0 && pt ; i++) pt = pt->prev; + d = i ? i : -1; + } else pt = tree; - iter->file = -1; - if(iter->tree->parent == iter->root->parent) - return PLAY_TREE_ITER_END; + if(pt == NULL) { // No next + // Must we loop? + if (mode == PLAY_TREE_ITER_RND) { + if (root->loop == 0) return PLAY_TREE_ITER_END; + play_tree_unset_flag(root, PLAY_TREE_RND_PLAYED, -1); + if (root->loop > 0) root->loop--; + // try again + return step(0, with_nodes); + } else if(tree->parent && tree->parent->loop != 0 && ((d > 0 && loop != 0) || ( d < 0 && (loop < 0 || loop < tree->parent->loop)))) { + if(d > 0) { // Go back to the first one + for(pt = tree ; pt->prev != NULL; pt = pt->prev) /* NOTHNG */; + if(loop > 0) loop--; + } else if( d < 0 ) { // Or the last one + for(pt = tree ; pt->next != NULL; pt = pt->next) /* NOTHNG */; + if(loop >= 0 && loop < tree->parent->loop) loop++; + } + tree = pt; + return step(0,with_nodes); + } + // Go up one level + return up_step(d,with_nodes); + } + // Is there any valid child? + if(pt->child && play_tree_is_valid(pt->child)) { + tree = pt; + if(with_nodes) { // Stop on the node + return PLAY_TREE_ITER_NODE; + } else // Or follow it + return down_step(d,with_nodes); + } + // Is it a valid entry? + if(! play_tree_is_valid(pt)) { + if(d == 0 && rnd==PLAY_TREE_ITER_NORMAL) { // Can this happen ? FF: Yes! + mpxp_err<<"What to do now ???? Infinite loop if we continue"<<std::endl; + return PLAY_TREE_ITER_ERROR; + } // Not a valid entry : go to next one + return step(d,with_nodes); + } -#ifdef MP_DEBUG - assert(iter->tree->parent != NULL); - assert(iter->stack_size > 0); - assert(iter->status_stack != NULL); -#endif + tree = pt; - iter->stack_size--; - iter->loop = iter->status_stack[iter->stack_size]; - if(iter->stack_size > 0) - iter->status_stack = (int*)mp_realloc(iter->status_stack,iter->stack_size*sizeof(int)); - else { - delete iter->status_stack; - iter->status_stack = NULL; - } - if(iter->stack_size > 0 && iter->status_stack == NULL) { - MSG_ERR("Can't allocate %d bytes of memory\n",iter->stack_size*sizeof(char*)); - return PLAY_TREE_ITER_ERROR; - } - iter->tree = iter->tree->parent; + for(d = 0 ; tree->files[d] != NULL ; d++) /* NOTHING */; + num_files = d; - // Pop subtree params - if(iter->config) { - m_config_pop(*iter->config); - if(iter->mode == PLAY_TREE_ITER_RND) - iter->tree->flags |= PLAY_TREE_RND_PLAYED; - } + push_params(); + entry_pushed = 1; + if(mode == PLAY_TREE_ITER_RND) pt->flags |= PLAY_TREE_RND_PLAYED; - return play_tree_iter_step(iter,d,with_nodes); + return PLAY_TREE_ITER_ENTRY; } -int -play_tree_iter_down_step(play_tree_iter_t* iter, int d,int with_nodes) { +int _PlayTree_Iter::up_step(int d,int with_nodes) { + file = -1; + if(tree->parent == root->parent) return PLAY_TREE_ITER_END; -#ifdef MP_DEBUG - assert(iter->tree->files == NULL); - assert(iter->tree->child != NULL); - assert(iter->tree->child->parent == iter->tree); -#endif + loop = status_stack.top(); status_stack.pop(); + tree = tree->parent; - iter->file = -1; + // Pop subtree params + m_config_pop(config); + if(mode == PLAY_TREE_ITER_RND) tree->flags |= PLAY_TREE_RND_PLAYED; + return step(d,with_nodes); +} - // Push subtree params - if(iter->config) - play_tree_iter_push_params(iter); +int _PlayTree_Iter::down_step(int d,int with_nodes) { + file = -1; - iter->stack_size++; - iter->status_stack = (int*)mp_realloc(iter->status_stack,iter->stack_size*sizeof(int)); - if(iter->status_stack == NULL) { - MSG_ERR("Can't allocate %d bytes of memory\n",iter->stack_size*sizeof(int)); - return PLAY_TREE_ITER_ERROR; - } - iter->status_stack[iter->stack_size-1] = iter->loop; - // Set new status - iter->loop = iter->tree->loop-1; - if(d >= 0) - iter->tree = iter->tree->child; - else { - play_tree_t* pt; - for(pt = iter->tree->child ; pt->next != NULL ; pt = pt->next) - /*NOTING*/; - iter->tree = pt; - } + // Push subtree params + push_params(); - return play_tree_iter_step(iter,0,with_nodes); + status_stack.push(loop); + // Set new status + loop = tree->loop-1; + if(d >= 0) tree = tree->child; + else { + play_tree_t* pt; + for(pt = tree->child ; pt->next != NULL ; pt = pt->next) /*NOTING*/; + tree = pt; + } + return step(0,with_nodes); } -// This is used as a file name for vcd/tv/dvd -char playtree_ret_filename[256]; +std::string _PlayTree_Iter::get_file(int d) { + const char* entry; -const char* -play_tree_iter_get_file(play_tree_iter_t* iter, int d) { - const char* entry; -#ifdef MP_DEBUG - assert(iter != NULL); - assert(iter->tree->child == NULL); -#endif + if(tree->files == NULL) return ""; + if(file >= num_files-1 || file < -1) return ""; + if(d > 0) { + if(file >= num_files - 1) file = 0; + else file++; + } else if(d < 0) { + if(file <= 0) file = num_files - 1; + else file--; + } + entry = tree->files[file]; - if(iter->tree->files == NULL) - return NULL; + switch(tree->entry_type) { + case PLAY_TREE_ENTRY_DVD : + if(strlen(entry) == 0) entry = "1"; + m_config_set_option(config,"dvd",entry); + return std::string("DVD title ")+entry; + case PLAY_TREE_ENTRY_VCD : + if(strlen(entry) == 0) entry = "1"; + m_config_set_option(config,"vcd",entry); + return std::string("vcd://")+entry; + case PLAY_TREE_ENTRY_TV: { + if(strlen(entry) != 0) { + char *val = new char [strlen(entry) + 11 + 1]; + const char* e; + std::string rs; + sprintf(val,"on:channel=%s",entry); + m_config_set_option(config,"tv",val); + rs="TV channel "; + e = strchr(entry,':'); + if(!e) rs+=std::string(entry).substr(0,255-11); + else { + if(entry-e > 255) e = entry+255; + rs+=std::string(entry).substr(0,val-e); + } + delete val; + return rs; + } else m_config_set_option(config,"tv","on"); + return "TV"; + } + default: break; + } + return entry; +} -#ifdef MP_DEBUG - assert(iter->num_files > 0); -#endif +} // namespace mpxp - if(iter->file >= iter->num_files-1 || iter->file < -1) - return NULL; - if(d > 0) { - if(iter->file >= iter->num_files - 1) - iter->file = 0; - else - iter->file++; - } else if(d < 0) { - if(iter->file <= 0) - iter->file = iter->num_files - 1; - else - iter->file--; - } - entry = iter->tree->files[iter->file]; +static int +play_tree_is_valid(play_tree_t* pt) { + play_tree_t* iter; - switch(iter->tree->entry_type) { - case PLAY_TREE_ENTRY_DVD : - if(strlen(entry) == 0) entry = "1"; - if(iter->config) - m_config_set_option(*iter->config,"dvd",entry); - snprintf(playtree_ret_filename,255,"DVD title %s",entry); - return playtree_ret_filename; - case PLAY_TREE_ENTRY_VCD : - if(strlen(entry) == 0) entry = "1"; - if(iter->config) - m_config_set_option(*iter->config,"vcd",entry); - snprintf(playtree_ret_filename,255,"vcd://%s",entry); - return playtree_ret_filename; - case PLAY_TREE_ENTRY_TV : - { - if(strlen(entry) != 0) { - char *s,*val = (char*)mp_malloc(strlen(entry) + 11 + 1); - const char* e; - sprintf(val,"on:channel=%s",entry); - if(iter->config) - m_config_set_option(*iter->config,"tv",val); - s = playtree_ret_filename + sprintf(playtree_ret_filename,"TV channel "); - e = strchr(entry,':'); - if(!e) strncpy(s,entry,255-11); - else { - if(entry-e > 255) e = entry+255; - strncpy(s,entry,val-e); - s[val-e] = '\0'; - } - delete val; - return playtree_ret_filename; - } else { - if(iter->config) - m_config_set_option(*iter->config,"tv","on"); - return "TV"; - } + if(pt->entry_type != PLAY_TREE_ENTRY_NODE) { + return 1; + } + else if (pt->child != NULL) { + for(iter = pt->child ; iter != NULL ; iter = iter->next) { + if(play_tree_is_valid(iter)) + return 1; } } - - return entry; + return 0; } play_tree_t* play_tree_cleanup(play_tree_t* pt) { play_tree_t* iter, *tmp, *first; -#ifdef MP_DEBUG - assert(pt != NULL); -#endif - if( ! play_tree_is_valid(pt)) { play_tree_remove(pt,1,1); return NULL; @@ -865,50 +630,19 @@ } -play_tree_iter_t* play_tree_iter_new_copy(play_tree_iter_t const* old) { - play_tree_iter_t* iter; - -#ifdef MP_DEBUG - assert(old != NULL); -#endif - - iter = (play_tree_iter_t*)mp_malloc(sizeof(play_tree_iter_t)); - if(iter == NULL) { - MSG_ERR("Can't allocate %d bytes of memory\n",sizeof(play_tree_iter_t)); - return NULL; - } - - memcpy(iter,old,sizeof(play_tree_iter_t)); - if(old->status_stack) { - iter->status_stack = (int*)mp_malloc(old->stack_size * sizeof(int)); - if(iter->status_stack == NULL) { - MSG_ERR("Can't allocate %d bytes of memory\n",old->stack_size * sizeof(int)); - delete iter; - return NULL; - } - memcpy(iter->status_stack,old->status_stack,iter->stack_size*sizeof(int)); - } - iter->config = NULL; - - return iter; -} - // HIGH Level API, by Fabian Franz (mp...@fa...) // -play_tree_iter_t* pt_iter_create(play_tree_t** ppt, m_config_t& config) +_PlayTree_Iter* pt_iter_create(play_tree_t** ppt, m_config_t& config) { - play_tree_iter_t* r=NULL; -#ifdef MP_DEBUG - assert(*ppt!=NULL); -#endif + _PlayTree_Iter* r=NULL; *ppt=play_tree_cleanup(*ppt); if(*ppt) { - r = play_tree_iter_new(*ppt,config); - if (r && play_tree_iter_step(r,0,0) != PLAY_TREE_ITER_ENTRY) + r = new _PlayTree_Iter(*ppt,config); + if (r && r->step(0,0) != PLAY_TREE_ITER_ENTRY) { - play_tree_iter_free(r); + delete r; r = NULL; } } @@ -916,7 +650,7 @@ return r; } -void pt_iter_destroy(play_tree_iter_t** iter) +void pt_iter_destroy(_PlayTree_Iter** iter) { if (iter && *iter) { @@ -925,56 +659,47 @@ } } -const char* pt_iter_get_file(play_tree_iter_t* iter, int d) +std::string pt_iter_get_file(_PlayTree_Iter* iter, int d) { int i=0; - const char* r; + std::string r; if (iter==NULL) return NULL; - r = play_tree_iter_get_file(iter,d); + r = iter->get_file(d); - while (!r && d!=0) + while (r.empty() && d!=0) { - if (play_tree_iter_step(iter,d,0) != PLAY_TREE_ITER_ENTRY) - break; - r=play_tree_iter_get_file(iter,d); + if (iter->step(d,0) != PLAY_TREE_ITER_ENTRY) break; + r=iter->get_file(d); i++; } return r; } -void pt_iter_insert_entry(play_tree_iter_t* iter, play_tree_t* entry) +void pt_iter_insert_entry(_PlayTree_Iter* iter, play_tree_t* entry) { - play_tree_t *pt = iter->tree; -#ifdef MP_DEBUG - assert(pt!=NULL); - assert(entry!=NULL); - assert(entry!=pt); -#endif + play_tree_t *pt = iter->get_tree(); play_tree_insert_entry(pt, entry); play_tree_set_params_from(entry,pt); } -void pt_iter_replace_entry(play_tree_iter_t* iter, play_tree_t* entry) +void pt_iter_replace_entry(_PlayTree_Iter* iter, play_tree_t* entry) { - play_tree_t *pt = iter->tree; + play_tree_t *pt = iter->get_tree(); pt_iter_insert_entry(iter, entry); play_tree_remove(pt, 1, 1); - iter->tree=entry; + iter->set_tree(entry); } //Add a new file as a new entry void pt_add_file(play_tree_t** ppt,const char* filename) { play_tree_t *pt = *ppt, *entry = play_tree_new(); -#ifdef MP_DEBUG - assert(entry!=NULL); -#endif play_tree_add_file(entry, filename); if (pt) @@ -1001,8 +726,8 @@ } } -void pt_iter_goto_head(play_tree_iter_t* iter) +void pt_iter_goto_head(_PlayTree_Iter* iter) { - iter->tree=iter->root; - play_tree_iter_step(iter, 0, 0); + iter->reset_tree(); + iter->step(0, 0); } Modified: mplayerxp/libplaytree/playtree.h =================================================================== --- mplayerxp/libplaytree/playtree.h 2012-12-25 16:17:37 UTC (rev 601) +++ mplayerxp/libplaytree/playtree.h 2012-12-26 11:39:18 UTC (rev 602) @@ -1,6 +1,9 @@ #ifndef __PLAYTREE_H #define __PLAYTREE_H +#include "osdep/mplib.h" +#include <stack> + struct m_config_t; namespace mpxp { struct Stream; @@ -40,38 +43,66 @@ ///@{ struct play_tree_param_t { - char* name; - char* value; + const char* name; + const char* value; }; struct play_tree_t { - play_tree_t* parent; - play_tree_t* child; - play_tree_t* next; - play_tree_t* prev; + play_tree_t* parent; + play_tree_t* child; + play_tree_t* next; + play_tree_t* prev; //play_tree_info_t info; - play_tree_param_t* params; - int loop; - char** files; - int entry_type; - int flags; + play_tree_param_t* params; + int loop; + char** files; + int entry_type; + int flags; }; -struct play_tree_iter_t { - play_tree_t* root; // Iter root tree - play_tree_t* tree; // Current tree - m_config_t* config; - int loop; // Looping status - int file; - int num_files; - int entry_pushed; - int mode; +namespace mpxp { + struct _PlayTree_Iter : public Opaque { + public: + _PlayTree_Iter(play_tree... [truncated message content] |
From: <nic...@us...> - 2012-12-26 17:16:50
|
Revision: 603 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=603&view=rev Author: nickols_k Date: 2012-12-26 17:16:39 +0000 (Wed, 26 Dec 2012) Log Message: ----------- more classes Modified Paths: -------------- mplayerxp/input2/input.cpp mplayerxp/input2/input.h mplayerxp/libmpcodecs/ad.cpp mplayerxp/libmpcodecs/vd.cpp mplayerxp/libmpcodecs/vd_divx4.cpp mplayerxp/libmpcodecs/vd_lavc.cpp mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/libplaytree/asxparser.cpp mplayerxp/libplaytree/playtree.cpp mplayerxp/libplaytree/playtree.h mplayerxp/libplaytree/playtree_msg.h mplayerxp/libplaytree/playtreeparser.cpp mplayerxp/mplayerxp.cpp mplayerxp/mpxp_msg.h mplayerxp/postproc/libmenu/menu.cpp mplayerxp/postproc/libmenu/menu.h mplayerxp/postproc/libmenu/menu_cmdlist.cpp mplayerxp/postproc/libmenu/menu_console.cpp mplayerxp/postproc/libmenu/menu_filesel.cpp mplayerxp/postproc/libmenu/menu_list.h mplayerxp/postproc/libmenu/menu_param.cpp mplayerxp/postproc/libmenu/menu_pt.cpp mplayerxp/postproc/libmenu/menu_txt.cpp Modified: mplayerxp/input2/input.cpp =================================================================== --- mplayerxp/input2/input.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/input2/input.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -523,12 +523,12 @@ return MPXP_Ok; } -mp_cmd_t* mp_input_parse_cmd(const char* _str) { +mp_cmd_t* mp_input_parse_cmd(const std::string& _str) { int i,l; char *ptr,*e; mp_cmd_t *cmd; const mp_cmd_t *cmd_def; - char *str=mp_strdup(_str); + char *str=mp_strdup(_str.c_str()); #ifdef MP_DEBUG assert(str != NULL); @@ -776,7 +776,7 @@ mp_cmd_t* ret; if(priv.cmd_binds) cmd = mp_input_find_bind_for_key(priv.cmd_binds,n,keys); - if(cmd == NULL) cmd = mp_input_find_bind_for_key(def_cmd_binds,n,keys); + if(cmd == NULL) cmd = mp_input_find_bind_for_key(def_cmd_binds,n,keys); if(cmd == NULL) { mpxp_warn<<"No bind found for key: "<<mp_input_get_key_name(priv,keys[0]); if(n > 1) { @@ -943,7 +943,7 @@ else if(r == MP_INPUT_DEAD) priv.cmd_fds[i].flags |= MP_FD_DEAD; continue; } - ret = mp_input_parse_cmd(cmd); + ret = mp_input_parse_cmd(cmd?cmd:""); delete cmd; if(!ret) continue; last_loop = i; Modified: mplayerxp/input2/input.h =================================================================== --- mplayerxp/input2/input.h 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/input2/input.h 2012-12-26 17:16:39 UTC (rev 603) @@ -145,7 +145,7 @@ // If pause is true, the next input will always return a pause command. extern mp_cmd_t* mp_input_get_cmd(libinput_t& handle,int time, int paused, int peek_only); - extern mp_cmd_t* mp_input_parse_cmd(const char* str); + extern mp_cmd_t* mp_input_parse_cmd(const std::string& str); /// These filter allow you to process the command before mplayer /// If a filter return a true value mp_input_get_cmd will return NULL Modified: mplayerxp/libmpcodecs/ad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libmpcodecs/ad.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -91,16 +91,17 @@ unsigned i; const audio_probe_t* probe; for (i=0; mpcodecs_ad_drivers[i] != &mpcodecs_ad_null; i++) { - MSG_V("Probing: %s\n",mpcodecs_ad_drivers[i]->info->driver_name); + mpxp_v<<"Probing: "<<mpcodecs_ad_drivers[i]->info->driver_name<<std::endl; if((probe=mpcodecs_ad_drivers[i]->probe(sh->wtag))!=NULL) { Opaque* priv=mpcodecs_ad_drivers[i]->preinit(*probe,sh,afi); - MSG_V("Driver: %s supports these outfmt for 0x%X wtag:\n" - ,mpcodecs_ad_drivers[i]->info->driver_name,sh->wtag); + mpxp_v<<"Driver: "<<mpcodecs_ad_drivers[i]->info->driver_name<<" supports these outfmt for "; + fourcc(mpxp_v,sh->wtag); + mpxp_v<<std::endl; for(i=0;i<Audio_MaxOutSample;i++) { - MSG_V("%X ",probe->sample_fmt[i]); + mpxp_v<<std::hex<<probe->sample_fmt[i]<<" "; if(probe->sample_fmt[i]==-1||probe->sample_fmt[i]==0) break; } - MSG_V("\n"); + mpxp_v<<std::endl; mpcodecs_ad_drivers[i]->uninit(*priv); delete priv; return probe; @@ -111,11 +112,11 @@ void afm_help(void) { unsigned i; - MSG_INFO("Available audio codec families/drivers:\n"); + mpxp_info<<"Available audio codec families/drivers:"<<std::endl; for(i=0;i<nddrivers;i++) { if(mpcodecs_ad_drivers[i]) if(mpcodecs_ad_drivers[i]->options) - MSG_INFO("\t%-10s %s\n",mpcodecs_ad_drivers[i]->info->driver_name,mpcodecs_ad_drivers[i]->info->descr); + mpxp_info<<"\t"<<std::left<<std::setw(10)<<mpcodecs_ad_drivers[i]->info->driver_name<<" "<<mpcodecs_ad_drivers[i]->info->descr<<std::endl; } - MSG_INFO("\n"); + mpxp_info<<std::endl; } Modified: mplayerxp/libmpcodecs/vd.cpp =================================================================== --- mplayerxp/libmpcodecs/vd.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libmpcodecs/vd.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -97,20 +97,19 @@ unsigned i; const video_probe_t* probe; for (i=0; mpcodecs_vd_drivers[i] != &mpcodecs_vd_null; i++) { - MSG_V("Probing: %s\n",mpcodecs_vd_drivers[i]->info->driver_name); + mpxp_v<<"Probing: "<<mpcodecs_vd_drivers[i]->info->driver_name<<std::endl; if((probe=mpcodecs_vd_drivers[i]->probe(sh->fourcc))!=NULL) { Opaque* priv=mpcodecs_vd_drivers[i]->preinit(*probe,sh,psi); if(priv) { - const char* pfcc = reinterpret_cast<const char*>(&sh->fourcc); - MSG_V("Driver: %s supports these outfmt for %c%c%c%c fourcc:\n" - ,mpcodecs_vd_drivers[i]->info->driver_name - ,pfcc[0],pfcc[1],pfcc[2],pfcc[3],probe->flags[i]); + mpxp_v<<"Driver: "<<mpcodecs_vd_drivers[i]->info->driver_name<<" supports these outfmt for "; + fourcc(mpxp_v,sh->fourcc); + mpxp_v<<" fourcc:"<<std::endl; for(i=0;i<Video_MaxOutFmt;i++) { - pfcc = reinterpret_cast<const char*>(&probe->pix_fmt[i]); - MSG_V("%c%c%c%c (flg=%X) ",pfcc[0],pfcc[1],pfcc[2],pfcc[3],probe->flags[i]); + fourcc(mpxp_v,probe->pix_fmt[i]); + mpxp_v<<" (flg="<<probe->flags[i]<<")"<<std::endl; if(probe->pix_fmt[i]==0||probe->pix_fmt[i]==-1) break; } - MSG_V("\n"); + mpxp_v<<std::endl; mpcodecs_vd_drivers[i]->uninit(*priv); delete priv; return probe; @@ -122,11 +121,11 @@ void vfm_help(void) { unsigned i; - MSG_INFO("Available video codec families/drivers:\n"); + mpxp_info<<"Available video codec families/drivers:"<<std::endl; for(i=0;i<nddrivers;i++) { if(mpcodecs_vd_drivers[i]) if(mpcodecs_vd_drivers[i]->options) - MSG_INFO("\t%-10s %s\n",mpcodecs_vd_drivers[i]->info->driver_name,mpcodecs_vd_drivers[i]->info->descr); + mpxp_info<<"\t"<<std::setw(10)<<std::left<<mpcodecs_vd_drivers[i]->info->driver_name<<" "<<mpcodecs_vd_drivers[i]->info->descr<<std::endl; } - MSG_INFO("\n"); + mpxp_info<<std::endl; } Modified: mplayerxp/libmpcodecs/vd_divx4.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_divx4.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libmpcodecs/vd_divx4.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -242,12 +242,13 @@ case IMGFMT_I420: case IMGFMT_IYUV: break; default: - MSG_ERR("Unsupported out_fmt: 0x%X\n",sh->codec->outfmt[sh->outfmtidx]); + mpxp_err<<"Unsupported out_fmt: "; fourcc(mpxp_err,sh->codec->outfmt[sh->outfmtidx]); + mpxp_err<<std::endl; return MPXP_False; } if(!(priv.decoder=priv.getDecore_ptr(sh->fourcc))) { - char *fcc=(char *)&(sh->fourcc); - MSG_ERR("Can't find decoder for %c%c%c%c fourcc\n",fcc[0],fcc[1],fcc[2],fcc[3]); + mpxp_err<<"Can't find decoder for "; fourcc(mpxp_err,sh->fourcc); + mpxp_err<<" fourcc"<<std::endl; return MPXP_False; } dinit.formatOut.fourCC=sh->codec->outfmt[sh->outfmtidx]; @@ -260,8 +261,8 @@ dinit.formatIn.fourCC=sh->fourcc; dinit.formatIn.framePeriod=sh->fps; if(priv.decoder(NULL, DEC_OPT_INIT, (any_t*) &priv.pHandle, &dinit)!=DEC_OK) { - char *fcc=(char *)&(dinit.formatOut); - MSG_ERR("Can't find decoder for %c%c%c%c fourcc\n",fcc[0],fcc[1],fcc[2],fcc[3]); + mpxp_err<<"Can't find decoder for "; fourcc(mpxp_err,dinit.formatOut.fourCC); + mpxp_err<<" fourcc"<<std::endl; } MSG_V("INFO: DivX4Linux (libdivx.so) video codec init OK!\n"); fflush(stdout); Modified: mplayerxp/libmpcodecs/vd_lavc.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_lavc.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libmpcodecs/vd_lavc.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -443,10 +443,8 @@ default: { const char *fmt; fmt = (const char *)&sh->codec->outfmt[sh->outfmtidx]; - MSG_WARN("Can't apply postprocessing for"); - if(isprint(fmt[0]) && isprint(fmt[1]) && isprint(fmt[2]) && isprint(fmt[3])) - MSG_WARN(" '%c%c%c%c'!\n",fmt[0],fmt[1],fmt[2],fmt[3]); - else MSG_ERR(" 0x%08X!\n",sh->codec->outfmt[sh->outfmtidx]); + mpxp_warn<<"Can't apply postprocessing for"; + fourcc(mpxp_warn,sh->codec->outfmt[sh->outfmtidx]); break; } } Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -8,9 +8,8 @@ * * subconfig support by alex */ +#include <algorithm> -//#define DEBUG - #include <stdlib.h> #include <stdio.h> #include <ctype.h> @@ -39,12 +38,12 @@ inline void SET_RUNNING(m_config_t& c) { c.flags |= CONFIG_RUNNING; } inline int IS_RUNNING(const m_config_t& c) { return c.flags & CONFIG_RUNNING; } -typedef int (*cfg_func_arg_param_t)(const config_t *,const char *,const char *); -typedef int (*cfg_func_param_t)(const config_t *,const char *); +typedef int (*cfg_func_arg_param_t)(const config_t *,const std::string& ,const std::string& ); +typedef int (*cfg_func_param_t)(const config_t *,const std::string& ); typedef int (*cfg_func_t)(const config_t *); static void -m_config_save_option(m_config_t& config,const config_t* conf,const char* opt,const char *param) { +m_config_save_option(m_config_t& config,const config_t* conf,const std::string& opt,const std::string& param) { config_save_t* save; int sl=0; @@ -56,14 +55,16 @@ ; } - MSG_DBG2("Saving option %s\n",opt); + mpxp_dbg2<<"Saving option "<<opt<<std::endl; save = config.config_stack[config.cs_level]; if(save) { + std::string lopt=opt; + std::transform(lopt.begin(),lopt.end(),lopt.begin(), ::tolower); for(sl = 0; save[sl].opt != NULL; sl++){ // Check to not save the same arg two times - if(save[sl].opt == conf && (save[sl].opt_name == NULL || strcasecmp(save[sl].opt_name,opt) == 0)) + if(save[sl].opt == conf && (save[sl].opt_name == NULL || lopt==save[sl].opt_name)) break; } if(save[sl].opt) @@ -72,7 +73,7 @@ save = (config_save_t*)mp_realloc(save,(sl+2)*sizeof(config_save_t)); if(save == NULL) { - MSG_ERR( "Can't allocate %d bytes of memory : %s\n",(sl+2)*sizeof(config_save_t),strerror(errno)); + mpxp_err<<"Can't allocate "<<((sl+2)*sizeof(config_save_t))<<" bytes of memory : "<<strerror(errno)<<std::endl; return; } memset(&save[sl],0,2*sizeof(config_save_t)); @@ -91,10 +92,10 @@ save[sl].param.as_pointer = *((char**)conf->p); break; case CONF_TYPE_INCLUDE : - if(param) - save->param.as_pointer = mp_strdup(param); + if(!param.empty()) + save->param.as_pointer = mp_strdup(param.c_str()); default : - MSG_ERR("Should never append in m_config_save_option : conf->type=%d\n",conf->type); + mpxp_err<<"Should never append in m_config_save_option : conf->type="<<conf->type<<std::endl; } config.config_stack[config.cs_level] = save; @@ -106,7 +107,7 @@ int i=-1; arg = save->opt_name ? save->opt_name : save->opt->name; - MSG_DBG2("Reverting option %s\n",arg); + mpxp_dbg2<<"Reverting option: "<<arg<<std::endl; switch(save->opt->type) { case CONF_TYPE_FLAG: @@ -141,7 +142,7 @@ switch(iter->opt->type) { case CONF_TYPE_INCLUDE : if (iter->param.as_pointer == NULL) { - MSG_ERR("We lost param for option %s?\n",iter->opt->name); + mpxp_err<<"We lost param for option "<<iter->opt->name<<"?"<<std::endl; return -1; } if ((((cfg_func_param_t) iter->opt->p)(iter->opt, (char*)iter->param.as_pointer)) < 0) @@ -150,7 +151,7 @@ } break; default : - MSG_ERR("Why do we reverse this : name=%s type=%d ?\n",save->opt->name,save->opt->type); + mpxp_err<<"Why do we reverse this : name="<<save->opt->name<<" type="<<save->opt->type<<" ?"<<std::endl; } return 1; @@ -161,12 +162,12 @@ config.cs_level++; config.config_stack = (config_save_t**)mp_realloc(config.config_stack ,sizeof(config_save_t*)*(config.cs_level+1)); if(config.config_stack == NULL) { - MSG_ERR( "Can't allocate %d bytes of memory : %s\n",sizeof(config_save_t*)*(config.cs_level+1),strerror(errno)); + mpxp_err<<"Can't allocate "<<(sizeof(config_save_t*)*(config.cs_level+1))<<" bytes of memory : "<<strerror(errno)<<std::endl; config.cs_level = -1; return; } config.config_stack[config.cs_level] = NULL; - MSG_DBG2("Config pushed level=%d\n",config.cs_level); + mpxp_dbg2<<"Config pushed level="<<config.cs_level<<std::endl; } int m_config_pop(m_config_t& config) { @@ -184,11 +185,11 @@ config.config_stack = (config_save_t**)mp_realloc(config.config_stack ,sizeof(config_save_t*)*config.cs_level); config.cs_level--; if(config.cs_level > 0 && config.config_stack == NULL) { - MSG_ERR( "Can't allocate %d bytes of memory : %s\n",sizeof(config_save_t*)*config.cs_level,strerror(errno)); + mpxp_err<<"Can't allocate memory"<<std::endl; config.cs_level = -1; return -1; } - MSG_DBG2("Config poped level=%d\n",config.cs_level); + mpxp_dbg2<<"Config poped level="<<config.cs_level<<std::endl; return ret; } @@ -227,39 +228,37 @@ return 1; } -static int config_is_entry_option(m_config_t& config,const char *opt,const char *param) { - play_tree_t* entry = NULL; +static int config_is_entry_option(m_config_t& config,const std::string& opt,const std::string& param) { + play_tree_t* entry = NULL; - if(strcasecmp(opt,"playlist") == 0) { // We handle playlist here - if(!param) - return ERR_MISSING_PARAM; - entry = parse_playlist_file(config.libinput,param); - if(!entry) { - MSG_ERR( "Playlist parsing failed: %s\n",param); - return 1; + std::string lopt=opt; + std::transform(lopt.begin(),lopt.end(),lopt.begin(), ::tolower); + if(lopt=="playlist") { // We handle playlist here + if(param.empty()) return ERR_MISSING_PARAM; + entry = parse_playlist_file(config.libinput,param); + if(!entry) { + mpxp_err<<"Playlist parsing failed: "<<param<<std::endl; + return 1; + } } - } - if(entry) { - if(config.last_entry) - play_tree_append_entry(config.last_entry,entry); - else - play_tree_set_child(config.pt,entry); - config.last_entry = entry; - if(config.parser_mode == COMMAND_LINE) - UNSET_GLOBAL(config); - return 1; - } else + if(entry) { + if(config.last_entry) play_tree_append_entry(config.last_entry,entry); + else play_tree_set_child(config.pt,entry); + config.last_entry = entry; + if(config.parser_mode == COMMAND_LINE) UNSET_GLOBAL(config); + return 1; + } return 0; } -static MPXP_Rc cfg_include(m_config_t& conf,const char *filename){ +static MPXP_Rc cfg_include(m_config_t& conf,const std::string& filename){ return m_config_parse_config_file(conf, filename); } static int cfg_inc_int(int value){ return ++value; } -static int config_read_option(m_config_t& config,const config_t** conf_list,const char *opt,const char *param) +static int config_read_option(m_config_t& config,const config_t** conf_list,const std::string& opt,const std::string& param) { int i=0,nconf = 0; long tmp_int; @@ -268,36 +267,36 @@ char *endptr; const config_t* conf=NULL; - MSG_DBG3( "read_option: conf=%p opt='%s' param='%s'\n", - conf, opt, param); + mpxp_dbg3<<"read_option: opt='"<<opt<<"' param='"<<param<<"'"<<std::endl; + std::string lopt=opt; + std::transform(lopt.begin(),lopt.end(),lopt.begin(), ::tolower); for(nconf = 0 ; conf_list[nconf] != NULL; nconf++) { conf = conf_list[nconf]; for (i = 0; conf[i].name != NULL; i++) { + std::string lname=conf[i].name; + std::transform(lname.begin(),lname.end(),lname.begin(), ::tolower); int namelength; /* allow 'aa*' in config.name */ -// MSG_DBG3( "cmp_option: conf=%s opt='%s'\n",conf[i].name,opt); namelength=strlen(conf[i].name); if ( (conf[i].name[namelength-1]=='*') && - !memcmp(opt, conf[i].name, namelength-1)) + !memcmp(opt.c_str(), conf[i].name, namelength-1)) goto option_found; - if (!strcasecmp(opt, conf[i].name)) - goto option_found; + if (lopt==lname) goto option_found; } } - MSG_ERR( "invalid option: %s\n",opt); + mpxp_err<<"invalid option: "<<opt<<std::endl; ret = ERR_NOT_AN_OPTION; goto out; option_found : - MSG_DBG3( "read_option: name='%s' p=%p type=%d\n", - conf[i].name, conf[i].p, conf[i].type); + mpxp_dbg3<<"read_option: name='"<<conf[i].name<<"' type="<<conf[i].type<<std::endl; if (conf[i].flags & CONF_NOCFG && config.parser_mode == CONFIG_FILE) { - MSG_ERR( "this option can only be used on command line:\n", opt); + mpxp_err<<"this option can only be used on command line:"<<opt<<std::endl; ret = ERR_NOT_AN_OPTION; goto out; } if (conf[i].flags & CONF_NOCMD && config.parser_mode == COMMAND_LINE) { - MSG_ERR( "this option can only be used in config file:\n", opt); + mpxp_err<<"this option can only be used in config file:"<<opt<<std::endl; ret = ERR_NOT_AN_OPTION; goto out; } @@ -315,119 +314,118 @@ case CONF_TYPE_FLAG: /* flags need a parameter in config file */ if (config.parser_mode == CONFIG_FILE) { - if (!strcasecmp(param, "yes") || /* any other language? */ - !strcasecmp(param, "ja") || - !strcasecmp(param, "si") || - !strcasecmp(param, "igen") || - !strcasecmp(param, "y") || - !strcasecmp(param, "j") || - !strcasecmp(param, "i") || - !strcmp(param, "1")) + std::string lparm=param; + std::transform(lparm.begin(),lparm.end(),lparm.begin(), ::tolower); + if (lparm=="yes" || /* any other language? */ + lparm=="ja" || + lparm=="si" || + lparm=="igen" || + lparm=="y" || + lparm=="j" || + lparm=="i" || + lparm=="1") *((int *) conf[i].p) = conf[i].max; - else if (!strcasecmp(param, "no") || - !strcasecmp(param, "nein") || - !strcasecmp(param, "nicht") || - !strcasecmp(param, "nem") || - !strcasecmp(param, "n") || - !strcmp(param, "0")) + else if (lparm=="no" || + lparm=="nein" || + lparm=="nicht" || + lparm=="nem" || + lparm=="n" || + lparm=="0") *((int *) conf[i].p) = conf[i].min; else { - MSG_ERR( "invalid parameter for flag: %s\n", param); + mpxp_err<<"invalid parameter for flag: "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } ret = 1; } else { /* parser_mode == COMMAND_LINE */ *((int *) conf[i].p) = conf[i].max; - MSG_DBG3("assigning %s=%i as flag value\n",conf[i].name,conf[i].max); + mpxp_dbg3<<"assigning "<<conf[i].name<<"="<<conf[i].max<<" as flag value"<<std::endl; ret = 0; } break; case CONF_TYPE_INT: - if (param == NULL) + if (param.empty()) goto err_missing_param; - tmp_int = strtol(param, &endptr, 0); + tmp_int = ::strtol(param.c_str(), &endptr, 0); if (*endptr) { - MSG_ERR( "parameter must be an integer: %s\n", param); + mpxp_err<<"parameter must be an integer: "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MIN) if (tmp_int < conf[i].min) { - MSG_ERR( "parameter must be >= %d: %s\n", (int) conf[i].min, param); + mpxp_err<<"parameter must be >= "<<(int) conf[i].min<<": "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MAX) if (tmp_int > conf[i].max) { - MSG_ERR( "parameter must be <= %d: %s\n", (int) conf[i].max, param); + mpxp_err<<"parameter must be <= "<<(int) conf[i].max<<": "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } *((int *) conf[i].p) = tmp_int; - MSG_DBG3("assigning %s=%i as int value\n",conf[i].name,tmp_int); + mpxp_dbg3<<"assigning "<<conf[i].name<<"="<<tmp_int<<" as int value"<<std::endl; ret = 1; break; case CONF_TYPE_FLOAT: - if (param == NULL) + if (param.empty()) goto err_missing_param; - tmp_float = strtod(param, &endptr); + tmp_float = ::strtod(param.c_str(), &endptr); if ((*endptr == ':') || (*endptr == '/')) - tmp_float /= strtod(endptr+1, &endptr); + tmp_float /= ::strtod(endptr+1, &endptr); if (*endptr) { - MSG_ERR( "parameter must be a floating point number" - " or a ratio (numerator[:/]denominator): %s\n", param); + mpxp_err<<"parameter must be a floating point number or a ratio (numerator[:/]denominator): "<<param<<std::endl; ret = ERR_MISSING_PARAM; goto out; } if (conf[i].flags & CONF_MIN) if (tmp_float < conf[i].min) { - MSG_ERR( "parameter must be >= %f: %s\n", conf[i].min, param); + mpxp_err<<"parameter must be >= "<<(float)conf[i].min<<": "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MAX) if (tmp_float > conf[i].max) { - MSG_ERR( "parameter must be <= %f: %s\n", conf[i].max, param); + mpxp_err<<"parameter must be <= "<<(float)conf[i].max<<": "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } *((float *) conf[i].p) = tmp_float; - MSG_DBG3("assigning %s=%f as float value\n",conf[i].name,tmp_float); + mpxp_dbg3<<"assigning "<<conf[i].name<<"="<<tmp_float<<" as float value"<<std::endl; ret = 1; break; case CONF_TYPE_STRING: - if (param == NULL) + if (param.empty()) goto err_missing_param; if (conf[i].flags & CONF_MIN) - if (strlen(param) < conf[i].min) { - MSG_ERR( "parameter must be >= %d chars: %s\n", - (int) conf[i].min, param); + if (param.length() < conf[i].min) { + mpxp_err<<"parameter must be >= "<<(int) conf[i].min<<" chars: "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MAX) - if (strlen(param) > conf[i].max) { - MSG_ERR( "parameter must be <= %d chars: %s\n", - (int) conf[i].max, param); + if (param.length() > conf[i].max) { + mpxp_err<<"parameter must be <= "<<(int) conf[i].max<<" chars: "<<param<<std::endl; ret = ERR_OUT_OF_RANGE; goto out; } - *((char **) conf[i].p) = mp_strdup(param); + *((char **) conf[i].p) = mp_strdup(param.c_str()); m_config_add_dynamic(config,*((char **) conf[i].p)); - MSG_DBG3("assigning %s=%s as string value\n",conf[i].name,param); + mpxp_dbg3<<"assigning "<<conf[i].name<<"="<<param<<" as string value"<<std::endl; ret = 1; break; case CONF_TYPE_INC: @@ -435,7 +433,7 @@ ret = 1; break; case CONF_TYPE_INCLUDE: - if (param == NULL) + if (param.empty()) goto err_missing_param; if (cfg_include(config, param) < 0) { ret = ERR_FUNC_ERR; @@ -444,103 +442,89 @@ ret = 1; break; case CONF_TYPE_PRINT: - MSG_INFO("%s", (char *) conf[i].p); + mpxp_info<<(char *)conf[i].p; exit(1); default: - MSG_ERR( "Unknown config type specified in conf-mplayerxp.h!\n"); + mpxp_err<<"Unknown config type specified in conf-mplayerxp.h!"<<std::endl; break; } out: if(ret >= 0 && ! IS_RUNNING(config) && ! IS_GLOBAL(config) && ! (conf[i].flags & CONF_GLOBAL) && conf[i].type != CONF_TYPE_SUBCONFIG ) { play_tree_t* dest = config.last_entry ? config.last_entry : config.last_parent; - char* o; - if(config.sub_conf) { - o = new char [(strlen(config.sub_conf) + 1 + strlen(opt) + 1)]; - sprintf(o,"%s:%s",config.sub_conf,opt); - } else - o =mp_strdup(opt); + std::string o; + if(config.sub_conf) o=std::string(config.sub_conf)+":"+opt; + else o=opt; if(ret == 0) - play_tree_set_param(dest,o,NULL); + play_tree_set_param(dest,o,""); else if(ret > 0) play_tree_set_param(dest,o,param); - delete o; m_config_pop(config); } return ret; err_missing_param: - MSG_ERR( "missing parameter for option: %s\n", opt); + mpxp_err<<"missing parameter for option: "<<opt<<std::endl; ret = ERR_MISSING_PARAM; goto out; } -static const config_t* m_config_find_option(const config_t**list,const char *name); +static const config_t* m_config_find_option(const config_t**list,const std::string& name); -int m_config_set_option(m_config_t& config,const char *opt,const char *param) { - const char *e; - const config_t**clist=config.opt_list; - MSG_DBG2( "Setting option %s=%s\n",opt,param); - clist = config.opt_list; +int m_config_set_option(m_config_t& config,const std::string& _opt,const std::string& param) { + size_t e; + const config_t**clist=config.opt_list; + std::string opt=_opt; + std::string s; + mpxp_dbg2<<"Setting option "<<opt<<"="<<param<<std::endl; + clist = config.opt_list; - if(strchr(opt,'.')) { - int flg,ret; - const config_t *subconf=NULL; - const config_t* olist[] = { NULL, NULL }; - MSG_DBG2("Parsing %s as subconfig\n",opt); - do { - if(!(e = strchr(opt,'.'))) break; - if((e-opt)>0) { - char* s = new char [e-opt+1]; - strncpy(s,opt,e-opt); - s[e-opt] = '\0'; - MSG_DBG2("Treat %s as subconfig name\n",s); + e=opt.find('.'); + if(e!=std::string::npos) { + int flg,ret; + const config_t *subconf=NULL; + const config_t* olist[] = { NULL, NULL }; + mpxp_dbg2<<"Parsing "<<opt<<" as subconfig"<<std::endl; + do { + if((e = opt.find('.'))==std::string::npos) break; + s=opt.substr(0,e); + mpxp_dbg2<<"Treat "<<s<<" as subconfig name"<<std::endl; subconf = m_config_find_option(clist?clist:olist,s); clist=NULL; - delete s; - MSG_DBG2("returned %p as subconfig name\n",subconf); if(!subconf) return ERR_NO_SUBCONF; if(subconf->type!=CONF_TYPE_SUBCONFIG) return ERR_NO_SUBCONF; olist[0] = reinterpret_cast<const config_t*>(subconf->p); - opt = e+1; - MSG_DBG2("switching next subconf=%s\n",subconf->name); - } - }while(1); - flg=config.flags; - config.flags|=CONFIG_GLOBAL; - ret=config_read_option(config,olist,opt,param); - config.flags=flg; - return ret; - } - - e = strchr(opt,':'); - if(e && e[1] != '\0') { - int ret; - const config_t* opt_list[] = { NULL, NULL }; - char* s = new char [e-opt+1]; - strncpy(s,opt,e-opt); - s[e-opt] = '\0'; - opt_list[0] = (const config_t*)m_config_get_option_ptr(config,s); - if(!opt_list[0]) { - MSG_ERR("m_config_set_option %s=%s : no %s subconfig\n",opt,param,s); - delete s; - return ERR_NOT_AN_OPTION; + opt = opt.substr(e+1); + mpxp_dbg2<<"switching next subconf="<<subconf->name<<std::endl; + }while(1); + flg=config.flags; + config.flags|=CONFIG_GLOBAL; + ret=config_read_option(config,olist,opt,param); + config.flags=flg; + return ret; } - e++; - s = (char*)mp_realloc(s,strlen(e) + 1); - strcpy(s,e); - ret = config_read_option(config,opt_list,s,param); - delete s; - return ret; - } - return config_read_option(config,config.opt_list,opt,param); + e = opt.find(':'); + if(e!=std::string::npos && e<(opt.length()-1)) { + int ret; + const config_t* opt_list[] = { NULL, NULL }; + s=opt.substr(0,e); + opt_list[0] = (const config_t*)m_config_get_option_ptr(config,s); + if(!opt_list[0]) { + mpxp_err<<"m_config_set_option "<<opt<<"="<<param<<" : no "<<s<<" subconfig"<<std::endl; + return ERR_NOT_AN_OPTION; + } + s=opt.substr(e+1); + ret = config_read_option(config,opt_list,s,param); + return ret; + } + return config_read_option(config,config.opt_list,opt,param); } static void PRINT_LINENUM(const std::string& conffile,int line_num) { mpxp_err<<conffile<<"("<<line_num<<")"<<std::endl; } static const int MAX_LINE_LEN=1000; static const int MAX_OPT_LEN=100; static const int MAX_PARAM_LEN=100; -MPXP_Rc m_config_parse_config_file(m_config_t& config,const char *conffile) +MPXP_Rc m_config_parse_config_file(m_config_t& config,const std::string& conffile) { FILE *fp; char *line; @@ -555,10 +539,10 @@ MPXP_Rc ret = MPXP_Ok; int errors = 0; - if (++config.recursion_depth > 1) MSG_INFO("Reading config file: %s", conffile); + if (++config.recursion_depth > 1) mpxp_info<<"Reading config file: "<<conffile<<std::endl; if (config.recursion_depth > MAX_RECURSION_DEPTH) { - MSG_FATAL(": too deep 'include'. check your configfiles\n"); + mpxp_fatal<<": too deep 'include'. check your configfiles"<<std::endl; ret = MPXP_False; goto out; } @@ -569,22 +553,22 @@ } if ((line = new char [MAX_LINE_LEN + 1]) == NULL) { - MSG_FATAL("\ncan't get memory for 'line': %s", strerror(errno)); + mpxp_fatal<<"can't get memory for 'line': "<<strerror(errno)<<std::endl; ret = MPXP_False; goto out; } - if ((fp = fopen(conffile, "r")) == NULL) { - if (config.recursion_depth > 1) MSG_ERR(": %s\n", strerror(errno)); + if ((fp = ::fopen(conffile.c_str(), "r")) == NULL) { + if (config.recursion_depth > 1) mpxp_err<<": "<<strerror(errno)<<std::endl; delete line; ret = MPXP_Ok; goto out; } - if (config.recursion_depth > 1) MSG_FATAL("\n"); + if (config.recursion_depth > 1) mpxp_fatal<<std::endl; while (fgets(line, MAX_LINE_LEN, fp)) { if (errors >= 16) { - MSG_FATAL("too many errors\n"); + mpxp_fatal<<"too many errors"<<std::endl; goto out; } @@ -739,7 +723,7 @@ if ((*opt == '-') && (*(opt+1) == '-')) { no_more_opts = 1; if (i+1 >= argc) { - MSG_ERR( "You added '--' but no filenames presented!\n"); + mpxp_err<<"You added '--' but no filenames presented!"<<std::endl; goto err_out; } continue; @@ -759,7 +743,7 @@ if((opt[0] == '}') && (opt[1] == '\0')) { if( ! config.last_parent || ! config.last_parent->parent) { - MSG_ERR( "too much }-\n"); + mpxp_err<<"too much }-"<<std::endl; goto err_out; } config.last_entry = config.last_parent; @@ -773,7 +757,7 @@ unsigned sz; opt++; - MSG_DBG2( "this_option: %s\n", opt); + mpxp_dbg2<<"this_option: "<<opt<<std::endl; parm = argv[i+1]; item=opt; assign = strchr(opt,'='); @@ -784,8 +768,8 @@ item[sz]='\0'; parm = mp_strdup(assign+1); } - tmp = m_config_set_option(config, item, parm); - if(!tmp && assign) MSG_ERR("Option '%s' doesn't require arguments\n",item); + tmp = m_config_set_option(config, std::string(item?item:""), std::string(parm?parm:"")); + if(!tmp && assign) mpxp_err<<"Option '"<<item<<"' doesn't require arguments"<<std::endl; if(assign) { delete item; delete parm; @@ -798,13 +782,12 @@ case ERR_OUT_OF_RANGE: case ERR_NO_SUBCONF: case ERR_FUNC_ERR: - MSG_ERR( "Error '%s' while parsing option: '%s'!\n" - ,tmp==ERR_NOT_AN_OPTION?"no-option": + mpxp_err<<"Error '"<< + (tmp==ERR_NOT_AN_OPTION?"no-option": tmp==ERR_MISSING_PARAM?"missing-param": tmp==ERR_OUT_OF_RANGE?"out-of-range": - tmp==ERR_NO_SUBCONF?"no-subconfig": - "func-error" - ,opt); + tmp==ERR_NO_SUBCONF?"no-subconfig":"func-error") + <<"' while parsing option: '"<<opt<<"'"<<std::endl; goto err_out; default: i += tmp; @@ -813,7 +796,7 @@ } } else /* filename */ { play_tree_t* entry = play_tree_new(); - MSG_DBG2("Adding file %s\n",argv[i]); + mpxp_dbg2<<"Adding file "<<argv[i]<<std::endl; play_tree_add_file(entry,argv[i]); if(strcasecmp(argv[i],"-") == 0) m_config_set_option(config,"use-stdin",NULL); /* opt is not an option -> treat it as a filename */ @@ -825,13 +808,13 @@ } --config.recursion_depth; - if(config.last_parent != config.pt) MSG_ERR("Missing }- ?\n"); + if(config.last_parent != config.pt) mpxp_err<<"Missing }- ?"<<std::endl; UNSET_GLOBAL(config); SET_RUNNING(config); return MPXP_Ok; err_out: --config.recursion_depth; - MSG_ERR( "command line: %s\n", argv[i]); + mpxp_err<<"command line: "<<argv[i]<<std::endl; return MPXP_False; } } // namespace mpxp @@ -847,7 +830,7 @@ conf_list = (const config_t**)mp_realloc(conf_list,sizeof(struct conf*)*(list_len+2)); if(conf_list == NULL) { - MSG_ERR( "Can't allocate %d bytes of memory : %s\n",sizeof(struct conf*)*(list_len+2),strerror(errno)); + mpxp_err<<"Can't allocate memory"<<std::endl; return 0; } conf_list[list_len] = args; @@ -858,42 +841,41 @@ return 1; } -static const config_t* m_config_find_option(const config_t **list,const char *name) { - unsigned i,j; - const config_t *conf; - if(list) { - for(j = 0; list[j] != NULL ; j++) { - conf = list[j]; - for(i=0; conf[i].name != NULL; i++) { - if(strcasecmp(conf[i].name,name) == 0) - return &conf[i]; - } +static const config_t* m_config_find_option(const config_t **list,const std::string& name) { + unsigned i,j; + const config_t *conf; + if(list) { + std::string ln=name; + std::transform(ln.begin(),ln.end(),ln.begin(), ::tolower); + for(j = 0; list[j] != NULL ; j++) { + conf = list[j]; + for(i=0; conf[i].name != NULL; i++) { + std::string lcn=conf[i].name; + std::transform(lcn.begin(),lcn.end(),lcn.begin(), ::tolower); + if(lcn==ln) return &conf[i]; + } + } } - } - return NULL; + return NULL; } -const config_t* m_config_get_option(const m_config_t& config,const char* arg) { - const char *e; - const config_t **conf_list; - const config_t* cl[] = { NULL, NULL }; +const config_t* m_config_get_option(const m_config_t& config,const std::string& arg) { + size_t e; + const config_t **conf_list; + const config_t* cl[] = { NULL, NULL }; - e = strchr(arg,':'); + e = arg.find(':'); - if(e) { - char *s; - s = new char [e-arg+1]; - strncpy(s,arg,e-arg); - s[e-arg] = '\0'; - cl[0] = m_config_get_option(config,s); - conf_list = cl; - delete s; - } else - conf_list = config.opt_list; - return m_config_find_option(conf_list,arg); + if(e!=std::string::npos) { + std::string s; + s=arg.substr(0,e); + cl[0] = m_config_get_option(config,s); + conf_list = cl; + } else conf_list = config.opt_list; + return m_config_find_option(conf_list,arg); } -any_t* m_config_get_option_ptr(const m_config_t& config,const char* arg) { +any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg) { const config_t* conf; conf = m_config_get_option(config,arg); @@ -901,38 +883,34 @@ return conf->p; } -int m_config_get_int (const m_config_t& config,const char* arg,int* err_ret) { - int *ret; +int m_config_get_int (const m_config_t& config,const std::string& arg,int& err_ret) { + int *ret; - ret = (int*)m_config_get_option_ptr(config,arg); - if(err_ret) - *err_ret = 0; - if(!ret) { - if(err_ret) - *err_ret = 1; - return -1; - } else - return (*ret); + ret = (int*)m_config_get_option_ptr(config,arg); + err_ret = 0; + if(!ret) { + err_ret = 1; + return -1; + } + return *ret; } -float m_config_get_float (const m_config_t& config,const char* arg,int* err_ret) { - float *ret; +float m_config_get_float (const m_config_t& config,const std::string& arg,int& err_ret) { + float *ret; - ret = (float*)m_config_get_option_ptr(config,arg); - if(err_ret) - *err_ret = 0; - if(!ret) { - if(err_ret) - *err_ret = 1; - return -1; - } else - return (*ret); + ret = (float*)m_config_get_option_ptr(config,arg); + err_ret = 0; + if(!ret) { + err_ret = 1; + return -1; + } + return *ret; } inline int AS_INT(const config_t* c) { return *((int*)c->p); } inline void AS_INT(const config_t* c,int val) { *((int*)c->p)=val; } -int m_config_set_int(m_config_t& config,const char* arg,int val) { +int m_config_set_int(m_config_t& config,const std::string& arg,int val) { const config_t* opt; opt = m_config_get_option(config,arg); @@ -951,7 +929,7 @@ return 1; } -int m_config_set_float(m_config_t& config,const char* arg,float val) { +int m_config_set_float(m_config_t& config,const std::string& arg,float val) { const config_t* opt; opt = m_config_get_option(config,arg); @@ -971,7 +949,7 @@ } -int m_config_switch_flag(m_config_t& config,const char* opt) { +int m_config_switch_flag(m_config_t& config,const std::string& opt) { const config_t *conf; conf = m_config_get_option(config,opt); @@ -983,7 +961,7 @@ return 1; } -int m_config_set_flag(m_config_t& config,const char* opt, int state) { +int m_config_set_flag(m_config_t& config,const std::string& opt, int state) { const config_t *conf; conf = m_config_get_option(config,opt); @@ -993,7 +971,7 @@ return 1; } -int m_config_get_flag(const m_config_t& config,const char* opt) { +int m_config_get_flag(const m_config_t& config,const std::string& opt) { const config_t* conf = m_config_get_option(config,opt); if(!conf || conf->type != CONF_TYPE_FLAG) return -1; @@ -1002,7 +980,7 @@ return -1; } -int m_config_is_option_set(const m_config_t& config,const char* arg) { +int m_config_is_option_set(const m_config_t& config,const std::string& arg) { const config_t* opt; config_save_t* save; int l,i; @@ -1025,90 +1003,88 @@ return 0; } -static void __m_config_show_options(unsigned ntabs,const char *pfx,const config_t *opts) { +static void __m_config_show_options(unsigned ntabs,const std::string& pfx,const config_t* opts) { unsigned i,n; i=0; while(opts[i].name) { if(opts[i].type==CONF_TYPE_SUBCONFIG && opts[i].p) { - char *newpfx; + std::string newpfx; unsigned pfxlen; - for(n=0;n<ntabs;n++) MSG_INFO(" "); - MSG_INFO("%s:\n",opts[i].help); + for(n=0;n<ntabs;n++) mpxp_info<<" "; + mpxp_info<<opts[i].help<<":"<<std::endl; pfxlen=strlen(opts[i].name)+1; - if(pfx) pfxlen+=strlen(pfx); - newpfx=new char [pfxlen+1]; - if(pfx) strcpy(newpfx,pfx); - else newpfx[0]='\0'; - strcat(newpfx,opts[i].name); - strcat(newpfx,"."); + if(!pfx.empty()) pfxlen+=pfx.length(); + if(!pfx.empty()) newpfx=pfx; + else newpfx=""; + newpfx+=opts[i].name; + newpfx+="."; __m_config_show_options(ntabs+2,newpfx,(const config_t *)opts[i].p); - delete newpfx; } else if(opts[i].type<=CONF_TYPE_PRINT) { - for(n=0;n<ntabs;n++) MSG_INFO(" "); - if(pfx) MSG_INFO("-%-s",pfx); - else MSG_INFO("-"); - MSG_INFO("%-11s %s" - ,opts[i].name - ,(opts[i].type==CONF_TYPE_PRINT && strcmp(opts[i].help,"show help")!=0)?opts[i].p:opts[i].help); + for(n=0;n<ntabs;n++) mpxp_info<<" "; + if(!pfx.empty()) mpxp_info<<std::left<<pfx<<std::endl; + else mpxp_info<<"-"<<std::endl; + mpxp_info<<std::left<<opts[i].name<<" " + <<((opts[i].type==CONF_TYPE_PRINT && strcmp(opts[i].help,"show help")!=0)?opts[i].p:opts[i].help) + <<std::endl; if((opts[i].flags&CONF_NOCFG)==0) { - MSG_INFO(" {%s=", - opts[i].type==CONF_TYPE_FLAG?"flg": + mpxp_info<<" {"<< + (opts[i].type==CONF_TYPE_FLAG?"flg": opts[i].type==CONF_TYPE_INT?"int": opts[i].type==CONF_TYPE_FLOAT?"flt": - opts[i].type==CONF_TYPE_STRING?"str":""); + opts[i].type==CONF_TYPE_STRING?"str":"")<<"="; switch(opts[i].type) { case CONF_TYPE_FLAG: { int defv = (*((int*)(opts[i].p)))?1:0; int max = opts[i].max ? 1:0; int res = !(defv^max); - MSG_INFO("%s",res?"ON":"OFF"); + mpxp_info<<(res?"ON":"OFF"); } break; case CONF_TYPE_STRING: { const char **defv = (const char**)(opts[i].p); - if(defv) MSG_INFO("\"%s\"",*defv); + if(defv) mpxp_info<<"\""<<*defv<<"\""; } break; case CONF_TYPE_INT: { int defv = *((int*)(opts[i].p)); - MSG_INFO("%i",defv); + mpxp_info<<defv; if((opts[i].flags&CONF_RANGE)==CONF_RANGE) { - MSG_INFO(" [%i...%i]",(int)opts[i].min,(int)opts[i].max); + mpxp_info<<" ["<<(int)opts[i].min<<"..."<<(int)opts[i].max<<"]"; } else if((opts[i].flags&CONF_MIN)==CONF_MIN) { - MSG_INFO(" <min=%i>",(int)opts[i].min); + mpxp_info<<" <min="<<(int)opts[i].min<<">"; } else if((opts[i].flags&CONF_MAX)==CONF_MAX) { - MSG_INFO(" <max=%i>",(int)opts[i].max); + mpxp_info<<" <max="<<(int)opts[i].max<<">"; } } break; case CONF_TYPE_FLOAT: { float defv = *((float*)(opts[i].p)); - MSG_INFO("%f",defv); + mpxp_info<<defv; if((opts[i].flags&CONF_RANGE)==CONF_RANGE) { - MSG_INFO(" [%f...%f]",(float)opts[i].min,(float)opts[i].max); + mpxp_info<<" ["<<(float)opts[i].min<<"..."<<(float)opts[i].max<<"]"; } else if((opts[i].flags&CONF_MIN)==CONF_MIN) { - MSG_INFO(" <min=%f>",(float)opts[i].min); + mpxp_info<<" <min="<<(float)opts[i].min<<">"; } else if((opts[i].flags&CONF_MAX)==CONF_MAX) { - MSG_INFO(" <max=%f>",(float)opts[i].max); + mpxp_info<<" <max="<<(float)opts[i].max<<">"; } } break; default: break; } - MSG_INFO("}"); + mpxp_info<<"}"; } - MSG_INFO("\n"); + mpxp_info<<std::endl; } i++; }; @@ -1118,7 +1094,7 @@ unsigned j; const config_t *opts; j=0; - MSG_INFO("List of available command-line options:\n"); + mpxp_info<<"List of available command-line options:"<<std::endl; while((opts=args.opt_list[j])!=NULL) { __m_config_show_options(2,NULL,opts); j++; Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-26 17:16:39 UTC (rev 603) @@ -46,10 +46,10 @@ float min,max; const char *help; }; -typedef void (*cfg_default_func_t)(config_t*,const char*); +typedef void (*cfg_default_func_t)(config_t*,const std::string&); struct config_save_t; -struct m_config_t { +struct m_config_t : public Opaque { m_config_t(libinput_t& _libinput):libinput(_libinput) {} ~m_config_t() {} @@ -83,7 +83,7 @@ * 0 if can't open configfile * 1 on success */ -MPXP_Rc m_config_parse_config_file(m_config_t& config,const char *conffile); +MPXP_Rc m_config_parse_config_file(m_config_t& config,const std::string& conffile); /* parse_command_line returns: * -1 on error (invalid option...) @@ -119,55 +119,55 @@ /** Return 1 on sucess 0 on failure **/ -int m_config_set_option(m_config_t& config,const char *opt,const char *param); +int m_config_set_option(m_config_t& config,const std::string& opt,const std::string& param); /** Get the config struct defining an option * @return NULL on error **/ -const config_t* m_config_get_option(const m_config_t& config,const char* arg); +const config_t* m_config_get_option(const m_config_t& config,const std::string& arg); /** Get the p field of the struct defining an option * @return NULL on error **/ -any_t* m_config_get_option_ptr(const m_config_t& config,const char* arg); +any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg); /** Tell is an option is alredy set or not * @return -1 one error (requested option arg exist) otherwise 0 or 1 **/ -int m_config_is_option_set(const m_config_t& config,const char* arg); +int m_config_is_option_set(const m_config_t& config,const std::string& arg); /** Return 0 on error 1 on success **/ -int m_config_switch_flag(m_config_t& config,const char* opt); +int m_config_switch_flag(m_config_t& config,const std::string& opt); /** Return 0 on error 1 on success **/ -int m_config_set_flag(m_config_t& config,const char* opt, int max); +int m_config_set_flag(m_config_t& config,const std::string& opt, int max); /** Return the value of a flag (O or 1) and -1 on error **/ -int m_config_get_flag(const m_config_t& config,const char* opt); +int m_config_get_flag(const m_config_t& config,const std::string& opt); /** Set the value of an int option * @return 0 on error 1 on success **/ -int m_config_set_int(m_config_t& config,const char* arg,int val); +int m_config_set_int(m_config_t& config,const std::string& arg,int val); /** Get the value of an int option * @param err_ret If it is not NULL it's set to 1 on error * @return the option value or -1 on error **/ -int m_config_get_int (const m_config_t&,const char* arg,int* err_ret); +int m_config_get_int (const m_config_t&,const std::string& arg,int& err_ret); /** Set the value of a float option * @return 0 on error 1 on success **/ -int m_config_set_float(m_config_t& config,const char* arg,float val); +int m_config_set_float(m_config_t& config,const std::string& arg,float val); /** Get the value of a float option * @param err_ret If it is not NULL it's set to 1 on error * @return the option value or -1 on error **/ -float m_config_get_float (const m_config_t&,const char* arg,int* err_ret); +float m_config_get_float (const m_config_t&,const std::string& arg,int& err_ret); #endif /* __CONFIG_H */ Modified: mplayerxp/libplaytree/asxparser.cpp =================================================================== --- mplayerxp/libplaytree/asxparser.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libplaytree/asxparser.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -1,6 +1,8 @@ #include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; +#include <algorithm> + #include <ctype.h> #include <stdlib.h> #include <stdio.h> @@ -302,13 +304,13 @@ return; } val = cattribs.get("VALUE"); - if(m_config_get_option(*mpxp_context().mconfig,name.c_str()) == NULL) { + if(m_config_get_option(*mpxp_context().mconfig,name) == NULL) { mpxp_warn<<"Found unknow param in asx: "<<name<<std::endl; if(!val.empty())mpxp_warn<<"="<<val<<std::endl; else mpxp_warn<<std::endl; return; } - play_tree_set_param(pt,mp_strdup(name.c_str()),mp_strdup(val.c_str())); + play_tree_set_param(pt,name,val); } void ASX_Parser::ref(ASX_Attrib& cattribs, play_tree_t* pt) const { @@ -323,7 +325,7 @@ if (href.substr(0,7)=="http://") { href = "mms"+href; } - play_tree_add_file(pt,mp_strdup(href.c_str())); + play_tree_add_file(pt,href); mpxp_v<<"Adding file "<<href<<" to element entry"<<std::endl; } @@ -375,7 +377,9 @@ warning_body_parse_error("ENTRY"); return NULL; } else if (r == 0) break; // No more element - if(strcasecmp(element.name().c_str(),"REF") == 0) { + std::string uname=element.name(); + std::transform(uname.begin(),uname.end(),uname.begin(), ::toupper); + if(uname=="REF") { ref(element.attribs(),pt_ref); mpxp_dbg2<<"Adding element "<<element.name()<<" to entry"<<std::endl; nref++; @@ -412,28 +416,30 @@ warning_body_parse_error("REPEAT"); return NULL; } else if (r == 0) break; // No more element - if(strcasecmp(element.name().c_str(),"ENTRY") == 0) { + std::string uname=element.name(); + std::transform(uname.begin(),uname.end(),uname.begin(), ::toupper); + if(uname=="ENTRY") { pt_entry = entry(element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; else play_tree_append_entry(list,pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to repeat"<<std::endl; } - } else if(strcasecmp(element.name().c_str(),"ENTRYREF") == 0) { + } else if(uname=="ENTRYREF") { pt_entry = entryref(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; else play_tree_append_entry(list,pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to repeat"<<std::endl; } - } else if(strcasecmp(element.name().c_str(),"REPEAT") == 0) { + } else if(uname=="REPEAT") { pt_entry = repeat(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; else play_tree_append_entry(list,pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to repeat"<<std::endl; } - } else if(strcasecmp(element.name().c_str(),"PARAM") == 0) { + } else if(uname=="PARAM") { param(element.attribs(),pt_repeat); } else mpxp_dbg2<<"Ignoring element "<<element.name()<<std::endl; } @@ -466,7 +472,9 @@ return NULL; } - if(strcasecmp(element.name().c_str(),"ASX") != 0) { + std::string uname=element.name(); + std::transform(uname.begin(),uname.end(),uname.begin(), ::toupper); + if(uname=="ASX") { mpxp_err<<"first element isn't ASX, it's "<<element.name()<<std::endl; delete &parser; return NULL; @@ -487,21 +495,23 @@ delete &parser; return NULL; } else if (r == 0) break; // No more element - if(strcasecmp(element.name().c_str(),"ENTRY") == 0) { + uname=element.name(); + std::transform(uname.begin(),uname.end(),uname.begin(), ::toupper); + if(uname=="ENTRY") { pt_entry = parser.entry(element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; else play_tree_append_entry(list,pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to asx"<<std::endl; } - } else if(strcasecmp(element.name().c_str(),"ENTRYREF") == 0) { + } else if(uname=="ENTRYREF") { pt_entry = parser.entryref(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; else play_tree_append_entry(list,pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to asx"<<std::endl; } - } else if(strcasecmp(element.name().c_str(),"REPEAT") == 0) { + } else if(uname=="REPEAT") { pt_entry = parser.repeat(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; Modified: mplayerxp/libplaytree/playtree.cpp =================================================================== --- mplayerxp/libplaytree/playtree.cpp 2012-12-26 11:39:18 UTC (rev 602) +++ mplayerxp/libplaytree/playtree.cpp 2012-12-26 17:16:39 UTC (rev 603) @@ -1,6 +1,7 @@ #include "mpxp_config.h" #include "osdep/mplib.h" using namespace mpxp; +#include <algorithm> #include <stdlib.h> #include <string.h> @@ -19,7 +20,7 @@ play_tree_new(void) { play_tree_t* r = (play_tree_t*)mp_calloc(1,sizeof(play_tree_t)); if(r == NULL) - MSG_ERR("Can't allocate %d bytes of memory\n",sizeof(play_tree_t)); + mpxp_err<<"Can't allocate memory"<<std::endl; r->entry_type = PLAY_TREE_ENTRY_NODE; return r; } @@ -42,14 +43,6 @@ for(iter = pt->child ; iter != NULL ; iter = iter->next) iter->parent = NULL; - //if(pt->params) delete pt->params; - if(pt->files) { - int i; - for(i = 0 ; pt->files[i] != NULL ; i++) - delete pt->files[i]; - delete pt->files; - } - delete pt; } @@ -177,144 +170,101 @@ parent->child = iter; } else parent->child = pt; - } +void play_tree_add_file(play_tree_t* pt,const std::string& file) { + if(pt->entry_type != PLAY_TREE_ENTRY_NODE && + pt->entry_type != PLAY_TREE_ENTRY_FILE) + return; -void -play_tree_add_file(play_tree_t* pt,const char* file) { - int n = 0; - char* e; + size_t pos; + std::string tail,lf=file; + std::transform(lf.begin(),lf.end(),lf.begin(), ::tolower); - if(pt->entry_type != PLAY_TREE_ENTRY_NODE && - pt->entry_type != PLAY_TREE_ENTRY_FILE) - return; - - if(pt->files) { - for(n = 0 ; pt->files[n] != NULL ; n++) - /* NOTHING */; - } - pt->files = (char**)mp_realloc((any_t*)pt->files,(n+2)*sizeof(char*)); - if(pt->files ==NULL) { - MSG_ERR("Can't allocate %d bytes of memory\n",(n+2)*sizeof(char*)); - return; - } - - e = pt->files[n] = mp_strdup(file); - pt->files[n+1] = NULL; - - if(strncasecmp(e,"vcd://",6) == 0) { - pt->entry_type = PLAY_TREE_ENTRY_VCD; - memmove(e,e + 6,strlen(&e[6])+1); - } else if(strncasecmp(e,"dvd://",6) == 0) { - pt->entry_type = PLAY_TREE_ENTRY_DVD; - memmove(e,&e[6],strlen(&e[6])+1); - } else if(strncasecmp(e,"tv://",5) == 0) { - pt->entry_type = PLAY_TREE_ENTRY_TV; - memmove(e,&e[5],strlen(&e[5])+1); - } else - pt->entry_type = PLAY_TREE_ENTRY_FILE; - + if(lf.substr(0,6)=="vcd://") { + pt->entry_type = PLAY_TREE_ENTRY_VCD; + pos=6; + } else if(lf.substr(0,6)=="dvd://") { + pt->entry_type = PLAY_TREE_ENTRY_DVD; + pos=6; + } else if(lf.substr(0,5)=="tv://") { + pt->entry_type = PLAY_TREE_ENTRY_TV; + pos=5; + } else { + pt->entry_type = PLAY_TREE_ENTRY_FILE; + pos=0; + } + tail=file.substr(pos); + pt->files.push_back(tail); } -int -play_tree_remove_file(play_tree_t* pt,const char* file) { - int n,f = -1; +MPXP_Rc play_tree_remove_file(play_tree_t* pt,const std::string& file) { + int f = -1; + size_t n,sz=pt->files.size(); - for(n=0 ; pt->files[n] != NULL ; n++) { - if(strcmp(file,pt->files[n]) == 0) - f = n; - } + for(n=0; n<sz; n++) if(file==pt->files[n]) f = n; - if(f < 0) // Not found - return 0; + if(f < 0) return MPXP_False; // Not found - delete pt->files[f]; + pt->files.erase(pt->files.begin()+f); - if(n > 1) { - memmove(&pt->files[f],&pt->files[f+1],(n-f)*sizeof(char*)); - pt->files = (char**)mp_realloc((any_t*)pt->files,n*sizeof(char*)); - if(pt->files == NULL) { - MSG_ERR("Can't allocate %d bytes of memory\n",(n+2)*sizeof(char*)); - return -1; - } - } else { - delete pt->files; - pt->files = NULL; - } - - return 1; + return MPXP_Ok; } -void play_tree_set_param(play_tree_t* pt,const char* name,const char* val) { - int n = 0,ni = -1; +void play_tree_set_param(play_tree_t* pt,const std::string& name,const std::string& val) { + int ni = -1; + size_t n,sz=pt->params.size(); - if(pt->params) { - for( ; pt->params[n].name != NULL ; n++) { - if(strcasecmp(pt->params[n].name,name) == 0) - ni = n; + std::string lname=name; + std::transform(lname.begin(),lname.end(),lname.begin(), ::tolower); + if(!pt->params.empty()) { + for(n=0; n<sz; n++) { + std::string lparm=pt->params[n].name; + std::transform(lparm.begin(),lparm.end(),lparm.begin(), ::tolower); + if(lname==lparm) ni = n; + } } - } - if(ni > 0) { - if(pt->params[n].value != NULL) delete pt->params[n].value; - pt->params[n].value = val != NULL ? mp_strdup(val) : NULL; - return; - } + if(ni > 0) { + pt->params[n].value = val; + return; + } - pt->params = (play_tree_param_t*)mp_realloc(pt->params,(n+2)*sizeof(play_tree_param_t)); - if(pt->params == NULL) - { - MSG_FATAL("Can't mp_realloc params\n"); - return; - } - pt->params[n].name = mp_strdup(name); - pt->params[n].value = val != NULL ? mp_strdup(val) : NULL; - memset(&pt->params[n+1],0,sizeof(play_tree_param_t)); - - return; + play_tree_param_t param; + param.name=name; + param.value=val; + pt->params.push_back(param); } -int play_tree_unset_param(play_tree_t* pt,const char* name) { - int n,ni = -1; +MPXP_Rc play_tree_unset_param(play_tree_t* pt,const std::string& name) { + int ni = -1; + size_t n,sz=pt->params.size(); - for(n = 0 ; pt->params[n].name != NULL ; n++) { - if(strcasecmp(pt->params[n].name,name) == 0) - ni = n; - } + std::string lname=name; + std::transform(lname.begin(),lname.end(),lname.begin(), ::tolower); + for(n=0;n<sz;n++) { + std::string lparm=pt->params[n].name; + std::transform(lparm.begin(),lparm.end(),lparm.begin(), ::tolower); + if(lname==lparm) ni = n; + } - if(ni < 0) - return 0; + if(ni < 0) return MPXP_False; - if(pt->params[ni].name) delete pt->params[ni].name; - if(pt->params[ni].value) delete pt->params[ni].value; + if(n > 1) pt->params.erase(pt->params.begin()+ni); + else pt->params.clear(); - if(n > 1) { - memmove(&pt->params[ni],&pt->params[ni+1],(n-ni)*sizeof(play_tree_param_t)); - pt->params = (play_tree_param_t*)mp_realloc(pt->params,n*sizeof(play_tree_param_t)); - if(pt->params == NULL) { - MSG_ERR("Can't allocate %d bytes of memory\n",n*sizeof(play_tree_param_t)); - return -1; - } - } else { - delete pt->params; - pt->params = NULL; - } - - return 1; + return MPXP_Ok; } void play_tree_set_params_from(play_tree_t* dest,const play_tree_t* src) { - int i; + size_t i,sz=src->params.size(); - if(!src->params) - return; + if(src->params.empty()) return; - for(i = 0; src->params[i].name != NULL ; i++) - play_tree_set_param(dest,src->params[i].name,src->params[i].value); - if(src->flags & PLAY_TREE_RND) // pass the random flag too - dest->flags |= PLAY_TREE_RND; - + for(i=0;i<sz; i++) + play_tree_set_param(dest,src->params[i].name,src->params[i].value); + if(src->flags & PLAY_TREE_RND) // pass the random flag too + dest->flags |= PLAY_TREE_RND; } // all children if deep < 0 @@ -374,7 +324,7 @@ if(!(i->flags & PLAY_TREE_RND_PLAYED)) return i; } - MSG_ERR("Random stepping error r=%i\n",rnd); + mpxp_err<<"Random stepping error r="<<rnd<<std::endl; return NULL; } @@ -398,7 +348,6 @@ _PlayTree_Iter::~_PlayTree_Iter() {} void _PlayTree_Iter::push_params() { - int n; play_tree_t* pt; pt = tree; @@ -407,9 +356,10 @@ // while playing m_config_push(config); - if(pt->params == NULL) return; + if(pt->params.empty()) return; + size_t n,sz=pt->params.size(); - for(n = 0; pt->params[n].name != NULL ; n++) { + for(n=0; n<sz; n++) { int e; if((e = m_config_set_option(config,pt->params[n].name,pt->params[n].value)) < 0) mpxp_err<<"Error "<<e<<" while setting option '"<<pt->params[n].name<<"' with value '"<<pt->params[n].value<<"'"<<std::endl; @@ -493,8 +443,7 @@ tree = pt; - for(d = 0 ; tree->files[d] != NULL ; d++) /* NOTHING */; - num_files = d; + num_files = tree->files.size(); push_params(); entry_pushed = 1; @@ -535,9 +484,9 @@ } std::string _PlayTree_Iter::get_file(int d) { - const char* entry; + std::string entry; - if(tree->files == NULL) return ""; + if(tree->files.empty()) return ""; if(file >= num_files-1 || file < -1) return ""; if(d > 0) { if(file >= num_files - 1) file = 0; @@ -550,28 +499,27 @@ switch(tree->entry_type) { case PLAY_TREE_ENTRY_DVD : - if(strlen(entry) == 0) entry = "1"; + if(entry.length() == 0) entry = "1"; m_config_set_option(config,"dvd",entry); return std::string("DVD title ")+entry; case PLAY_TREE_ENTRY_VCD : - if(strlen(entry) == 0) entry = "1"; + if(entry.length() == 0) entry = "1"; m_config_set_option(config,"vcd",entry); return std::string("vcd://")+entry; case PLAY_TREE_ENTRY_TV: { - if(strlen(entry) != 0) { - char *val = new char [strlen(entry) + 11 + 1]; - const char* e; + if(entry.length() != 0) { + std::string val; + size_t e; std::string rs; - sprintf(val,"on:channel=%s",entry); + val="on:channel="+entry; m_config_set_option(config,"tv",val); rs="TV channel "; - e = strchr(entry,':'); - if(!e) rs+=std::string(entry).substr(0,255-11); + e = entry.find(':'); + if(e==std::string::npos) rs+=entry.substr(0,255-11); else { - if(entry-e > 255) e = entry+255; - rs+=std::string(entry).substr(0,val-e); + if(e > 255) e = 255; + rs+=entry.substr(0,e); } - delete val; return rs; } else m_config_set_option(config,"tv","on"); return "TV"; @@ -697,7 +645,7 @@ } //Add a new file as a new entry -void pt_add_file(play_tree_t** ppt,const char* filename) +void pt_add_file(play_tree_t** ppt,const std::string& filename) { play_tree_t *pt = *ppt, *entry = play_tree_new(); @@ -712,18 +660,12 @@ play_tree_set_params_from(entry,pt); } -void pt_add_gui_file(play_tree_t** ppt,const char* path,const char* file) +void pt_add_gui_file(play_tree_t** ppt,const std::string& path,const std::string& file) { - char* wholename = new char [strlen(path)+strlen(file)+... [truncated message content] |
From: <nic...@us...> - 2012-12-27 08:38:31
|
Revision: 604 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=604&view=rev Author: nickols_k Date: 2012-12-27 08:38:19 +0000 (Thu, 27 Dec 2012) Log Message: ----------- anti-illegal patch commit: limit malefactor(s) by list of officially known command line arguments and don't pass envp into illegal-patch Modified Paths: -------------- mplayerxp/libao3/audio_out.cpp mplayerxp/libao3/audio_out.h mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/libplaytree/playtree.cpp mplayerxp/mplayerxp.cpp mplayerxp/osdep/mp_malloc.cpp mplayerxp/osdep/mplib.h Modified: mplayerxp/libao3/audio_out.cpp =================================================================== --- mplayerxp/libao3/audio_out.cpp 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/libao3/audio_out.cpp 2012-12-27 08:38:19 UTC (rev 604) @@ -205,23 +205,23 @@ mpxp_info<<std::endl; } -MPXP_Rc Audio_Output::_register(const char *driver_name,unsigned flags) const { +MPXP_Rc Audio_Output::_register(const std::string& driver_name,unsigned flags) const { priv_t& priv=static_cast<priv_t&>(opaque); unsigned i; - if(!driver_name) { + if(driver_name.empty()) { priv.info=audio_out_drivers[0]; priv.driver=audio_out_drivers[0]->query_interface(subdevice?subdevice:""); } else for (i=0; audio_out_drivers[i] != &audio_out_null; i++) { const ao_info_t *info = audio_out_drivers[i]; - if(strcmp(info->short_name,driver_name) == 0){ + if(info->short_name==driver_name){ priv.info = audio_out_drivers[i]; priv.driver = audio_out_drivers[i]->query_interface(subdevice?subdevice:""); break; } } - if(priv.driver->open(flags)==MPXP_Ok) return MPXP_Ok; + if(priv.driver) { if(priv.driver->open(flags)==MPXP_Ok) return MPXP_Ok; } return MPXP_False; } Modified: mplayerxp/libao3/audio_out.h =================================================================== --- mplayerxp/libao3/audio_out.h 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/libao3/audio_out.h 2012-12-27 08:38:19 UTC (rev 604) @@ -34,7 +34,7 @@ virtual ~Audio_Output(); static void print_help(); - virtual MPXP_Rc _register(const char *driver_name,unsigned flags) const; + virtual MPXP_Rc _register(const std::string& driver_name,unsigned flags) const; virtual const ao_info_t* get_info() const; virtual MPXP_Rc configure(unsigned rate,unsigned channels,unsigned format) const; virtual unsigned buffersize() const; Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-27 08:38:19 UTC (rev 604) @@ -695,40 +695,39 @@ } namespace mpxp { -MPXP_Rc mpxp_parse_command_line(m_config_t& config, int argc, char **argv, char **envp) +MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv) { - int i; + size_t i,siz=argv.size(); int tmp; - char *opt; + std::string opt; int no_more_opts = 0; - UNUSED(envp); if (init_conf(config, COMMAND_LINE) == -1) return MPXP_False; if(config.last_parent == NULL) config.last_parent = config.pt; /* in order to work recursion detection properly in parse_config_file */ ++config.recursion_depth; - for (i = 1; i < argc; i++) { + for (i = 1; i < siz; i++) { //next: opt = argv[i]; - if(strcmp(opt,"--help")==0) { + if(opt=="--help") { show_help(); exit(0); } - if(strcmp(opt,"--long-help")==0) { + if(opt=="--long-help") { show_long_help(); exit(0); } /* check for -- (no more options id.) except --help! */ - if ((*opt == '-') && (*(opt+1) == '-')) { + if (opt[0] == '-' && opt[1] == '-') { no_more_opts = 1; - if (i+1 >= argc) { + if (i+1 >= siz) { mpxp_err<<"You added '--' but no filenames presented!"<<std::endl; goto err_out; } continue; } - if((opt[0] == '{') && (opt[1] == '\0')) { + if(opt[0] == '{' && opt[1] == '\0') { play_tree_t* entry = play_tree_new(); UNSET_GLOBAL(config); if(config.last_entry == NULL) { @@ -741,7 +740,7 @@ continue; } - if((opt[0] == '}') && (opt[1] == '\0')) { + if(opt[0] == '}' && opt[1] == '\0') { if( ! config.last_parent || ! config.last_parent->parent) { mpxp_err<<"too much }-"<<std::endl; goto err_out; @@ -751,30 +750,25 @@ continue; } - if ((no_more_opts == 0) && (*opt == '-') && (*(opt+1) != 0)) /* option */ { + if (no_more_opts == 0 && opt[0] == '-' && opt.length()>1) /* option */ { /* remove leading '-' */ - char *assign,*item,*parm; - unsigned sz; - opt++; + size_t pos; + std::string item,parm; + pos=1; mpxp_dbg2<<"this_option: "<<opt<<std::endl; parm = argv[i+1]; - item=opt; - assign = strchr(opt,'='); - if(assign) { - sz=assign-opt; - item = new char [sz+1]; - memcpy(item,opt,sz); - item[sz]='\0'; - parm = mp_strdup(assign+1); + item=opt.substr(pos); + pos = item.find('='); + if(pos!=std::string::npos) { + parm=item.substr(pos+1); + item=item.substr(0,pos); } - tmp = m_config_set_option(config, std::string(item?item:""), std::string(parm?parm:"")); - if(!tmp && assign) mpxp_err<<"Option '"<<item<<"' doesn't require arguments"<<std::endl; - if(assign) { - delete item; - delete parm; + tmp = m_config_set_option(config, item, parm); + if(!tmp && pos!=std::string::npos) { + mpxp_err<<"Option '"<<item<<"' doesn't require arguments"<<std::endl; + goto err_out; } - if(!tmp && assign) goto err_out; switch (tmp) { case ERR_NOT_AN_OPTION: @@ -790,15 +784,14 @@ <<"' while parsing option: '"<<opt<<"'"<<std::endl; goto err_out; default: - i += tmp; - if(assign) i--; + if(pos==std::string::npos) i++; break; } } else /* filename */ { play_tree_t* entry = play_tree_new(); mpxp_dbg2<<"Adding file "<<argv[i]<<std::endl; play_tree_add_file(entry,argv[i]); - if(strcasecmp(argv[i],"-") == 0) m_config_set_option(config,"use-stdin",NULL); + if(argv[i]=="-") m_config_set_option(config,"use-stdin",NULL); /* opt is not an option -> treat it as a filename */ UNSET_GLOBAL(config); // We start entry specific options if(config.last_entry == NULL) play_tree_set_child(config.last_parent,entry); Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-27 08:38:19 UTC (rev 604) @@ -4,6 +4,8 @@ #ifndef __CFG_PARSER_H #define __CFG_PARSER_H 1 #include "xmpcore/xmp_enums.h" +#include <vector> +#include <string> namespace mpxp { struct libinput_t; @@ -90,7 +92,7 @@ * 1 otherwise */ namespace mpxp { - MPXP_Rc mpxp_parse_command_line(m_config_t& config, int argc, char **argv, char **envp); + MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv); } m_config_t& m_config_new(play_tree_t* pt,libinput_t&libinput); Modified: mplayerxp/libplaytree/playtree.cpp =================================================================== --- mplayerxp/libplaytree/playtree.cpp 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/libplaytree/playtree.cpp 2012-12-27 08:38:19 UTC (rev 604) @@ -226,7 +226,7 @@ } if(ni > 0) { - pt->params[n].value = val; + pt->params[ni].value = val; return; } Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/mplayerxp.cpp 2012-12-27 08:38:19 UTC (rev 604) @@ -395,7 +395,7 @@ if(mpxp_context().mconfig) m_config_free(mpxp_context().mconfig); mpxp_print_uninit(); mpxp_uninit_structs(); - if(!why.empty()) exit(0); + if(!why.empty()) ::exit(0); return; /* Still try coredump!!!*/ } @@ -1598,16 +1598,17 @@ return eof; } -static void mpxp_config_malloc(int argc,char *argv[]) +static void mpxp_config_malloc(const std::vector<std::string>& argv) { - int i; + size_t i,sz=argv.size(); mp_conf.malloc_debug=0; mp_malloc_e flg=MPA_FLG_RANDOMIZER; - for(i=0;i<argc;i++) { - if(strncmp(argv[i],"-core.malloc-debug",18)==0) { - char *p; - if((p=strchr(argv[i],'='))!=NULL) { - mp_conf.malloc_debug=atoi(p+1); + for(i=0;i<sz;i++) { + std::string s=argv[i]; + if(s.substr(0,18)=="-core.malloc-debug") { + size_t pos; + if((pos=s.find('='))!=std::string::npos) { + mp_conf.malloc_debug=::atoi(s.substr(pos+1).c_str()); } switch(mp_conf.malloc_debug) { default: @@ -1626,7 +1627,7 @@ /******************************************\ * MAIN MPLAYERXP FUNCTION !!! * \******************************************/ -int MPlayerXP(int argc,char* argv[], char *envp[]){ +int MPlayerXP(const std::vector<std::string>& argv){ mpxp_init_antiviral_protection(1); // mpxp_test_backtrace(); int i; @@ -1643,7 +1644,7 @@ int forced_subs_only=0; seek_args_t seek_args = { 0, DEMUX_SEEK_CUR|DEMUX_SEEK_SECONDS }; - mpxp_config_malloc(argc,argv); + mpxp_config_malloc(argv); // Yes, it really must be placed in stack or in very secret place PointerProtector<MPXPSecureKeys> ptr_protector; @@ -1674,7 +1675,7 @@ mp_register_options(m_config); parse_cfgfiles(m_config); - if(mpxp_parse_command_line(m_config, argc, argv, envp)!=MPXP_Ok) + if(mpxp_parse_command_line(m_config, argv)!=MPXP_Ok) exit_player("Error parse command line"); // error parsing cmdline if(!mp_conf.xp) { @@ -1718,8 +1719,9 @@ // Many users forget to include command line in bugreports... if(mp_conf.verbose){ + size_t sz=argv.size(); mpxp_info<<"CommandLine:"; - for(i=1;i<argc;i++) mpxp_info<<" '"<<argv[i]<<"'"; + for(i=1;i<sz;i++) mpxp_info<<" '"<<argv[i]<<"'"; mpxp_info<<std::endl; } @@ -2128,10 +2130,19 @@ } } // namespace mpxp -int main(int argc,char* argv[], char *envp[]) +int main(int argc,char* args[], char *envp[]) { + UNUSED(envp); try { - return MPlayerXP(argc,argv,envp); + std::vector<std::string> argv; + std::string str; + for(int i=0;i<argc;i++) { + str=args[i]; + argv.push_back(str); + } + return MPlayerXP(argv); + } catch(const std::string& what) { + std::cout<<"Exception '"<<what<<"'caught in module: MPlayerXP"<<std::endl; } catch(...) { std::cout<<"Exception caught in module: MPlayerXP"<<std::endl; } Modified: mplayerxp/osdep/mp_malloc.cpp =================================================================== --- mplayerxp/osdep/mp_malloc.cpp 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/osdep/mp_malloc.cpp 2012-12-27 08:38:19 UTC (rev 604) @@ -19,20 +19,20 @@ enum { Max_BackTraces=13 }; -typedef struct mp_slot_s { +struct mp_slot_t { any_t* page_ptr; size_t size; size_t ncalls; any_t* calls[Max_BackTraces]; -}mp_slot_t; +}; -typedef struct mp_slot_container_s { +struct mp_slot_container_t { mp_slot_t* slots; size_t nslots; size_t size; -}mp_slot_container_t; +}; -typedef struct priv_s { +struct priv_t { const char* argv0; unsigned rnd_limit; unsigned every_nth_call; @@ -43,7 +43,7 @@ mp_slot_container_t mallocs;/* not freed mallocs */ mp_slot_container_t reallocs; /* suspect reallocs */ mp_slot_container_t frees; /* suspect free */ -}priv_t; +}; static priv_t* priv=NULL; static any_t* prot_page_align(any_t *ptr) { return (any_t*)(((unsigned long)ptr)&(~(__VM_PAGE_SIZE__-1))); } @@ -403,12 +403,12 @@ } } /* ================== HEAD FUNCTIONS ======================= */ -void mp_init_malloc(const char *argv0,unsigned rnd_limit,unsigned every_nth_call,enum mp_malloc_e flags) +void mp_init_malloc(const std::string& argv0,unsigned rnd_limit,unsigned every_nth_call,enum mp_malloc_e flags) { ::srand(::time(0)); if(!priv) priv=(priv_t*)::malloc(sizeof(priv_t)); ::memset(priv,0,sizeof(priv_t)); - priv->argv0=argv0; + priv->argv0=::strdup(argv0.c_str()); priv->rnd_limit=rnd_limit; priv->every_nth_call=every_nth_call; priv->flags=flags; @@ -450,6 +450,7 @@ } if(done) mpxp_hint<<std::endl<<"For source lines you may also print in (gdb): list *0xADDRESS"<<std::endl; uninit_bt_cache(cache); + if(priv->argv0) ::free((void*)priv->argv0); ::free(priv); priv=NULL; } @@ -457,7 +458,7 @@ any_t* mp_malloc(size_t __size) { any_t* rb,*rnd_buff=NULL; - if(!priv) mp_init_malloc(NULL,1000,10,MPA_FLG_RANDOMIZER); + if(!priv) mp_init_malloc("",1000,10,MPA_FLG_RANDOMIZER); if(priv->every_nth_call && priv->rnd_limit && !priv->flags) { if(priv->total_calls%priv->every_nth_call==0) { rnd_buff=::malloc(::rand()%priv->rnd_limit); @@ -475,7 +476,7 @@ any_t* __FASTCALL__ mp_memalign (size_t boundary, size_t __size) { any_t* rb; - if(!priv) mp_init_malloc(NULL,1000,10,MPA_FLG_RANDOMIZER); + if(!priv) mp_init_malloc("",1000,10,MPA_FLG_RANDOMIZER); if(priv->flags&(MPA_FLG_BOUNDS_CHECK|MPA_FLG_BEFORE_CHECK)) rb=prot_memalign(boundary,__size); else if(priv->flags&MPA_FLG_BACKTRACE) rb=bt_memalign(boundary,__size); else rb=memalign(boundary,__size); @@ -492,15 +493,18 @@ void mp_free(any_t*__ptr) { - if(!priv) mp_init_malloc(NULL,1000,10,MPA_FLG_RANDOMIZER); - if(__ptr) { - if(priv->flags&(MPA_FLG_BOUNDS_CHECK|MPA_FLG_BEFORE_CHECK)) - prot_free(__ptr); - else if(priv->flags&MPA_FLG_BACKTRACE) - bt_free(__ptr); - else - ::free(__ptr); - } + // we really may have some number of pointers malloced before mp_init_malloc() + // example: global constructors with using of overloaded operator new() + if(priv) { + if(__ptr) { + if(priv->flags&(MPA_FLG_BOUNDS_CHECK|MPA_FLG_BEFORE_CHECK)) + prot_free(__ptr); + else if(priv->flags&MPA_FLG_BACKTRACE) + bt_free(__ptr); + else + ::free(__ptr); + } + } else ::free(__ptr); } /* ================ APPENDIX ==================== */ Modified: mplayerxp/osdep/mplib.h =================================================================== --- mplayerxp/osdep/mplib.h 2012-12-26 17:16:39 UTC (rev 603) +++ mplayerxp/osdep/mplib.h 2012-12-27 08:38:19 UTC (rev 604) @@ -46,7 +46,7 @@ MPA_FLG_BEFORE_CHECK = 0x00000002, MPA_FLG_BACKTRACE = 0x00000004 }; - void __FASTCALL__ mp_init_malloc(const char *argv0,unsigned rnd_limit,unsigned every_nth_call,enum mp_malloc_e flags); + void __FASTCALL__ mp_init_malloc(const std::string& argv0,unsigned rnd_limit,unsigned every_nth_call,enum mp_malloc_e flags); void __FASTCALL__ mp_uninit_malloc(int verbose); any_t* __FASTCALL__ mp_malloc(size_t __size); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-27 09:50:39
|
Revision: 606 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=606&view=rev Author: nickols_k Date: 2012-12-27 09:50:31 +0000 (Thu, 27 Dec 2012) Log Message: ----------- use std::map as environment source. Note about illegal patch: i cannot find records like: 'get_path' in output of mplayerxp. It seems that malefactor(s) hacked namespace mpxp {}. Well, i'll think about renameing this namespace on configure stage. Most probably illegal-patch contains own version of this function or malefactor(s) already have hacked new mpxp_ostream system. Gdb shows that illegal-patch still continue substitutions of mpxp::mpxp_parse_command_line and _PlayTree_Iter::get_file(int) methods. I have doubts that malefactor(s) in addition substitute every #define within of this project. Btw, with new changes illegal-patch decreases verbosity level upto 1: $gdb --args ./ffmpeg -ao alsa:hw:1 -vo x11 M/l.avi -vf menu=main -v -v -v -v GNU gdb (GDB) 7.5 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-unknown-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /Data/-SF.NET-/MPXP/mplayerxp/mplayerxp/ffmpeg...done. (gdb) break mplayerxp.cpp:1693 Breakpoint 1 at 0x455bad: file mplayerxp.cpp, line 1693. (gdb) run Starting program: /Data/-SF.NET-/MPXP/mplayerxp/mplayerxp/ffmpeg -ao alsa:hw:1 -vo x11 M/l.avi -vf menu=main -v -v -v -v warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". *** Antiviral protection was inited ***!!! MPlayerXP svn.598 2002 Nickols_K 2000-2002 Arpad Gereoffy (?\209?\129?\208?\188. DOCS!) Can't open input config file /root/.ffmpeg/input.conf : No such file or directory Can't open input config file /usr/local/share/mplayerxp/input.conf : No such file or directory Falling back on default (hardcoded) input config Opening joystick device:/dev/input/js0 Can't open joystick device: /dev/input/js0 : No such file or directory Can't init input joystick with using: /dev/input/js0 ?\208?\163?\209?\129?\209?\130?\208?\176?\208?\189?\208?\190?\208?\178?\208?\186?\208?\176 ?\208?\191?\208?\190?\208?\180?\208?\180?\208?\181?\209?\128?\208?\182?\208?\186?\208?\184 lirc... mplayer: could not connect to socket mplayer: No such file or directory ?\208?\157?\208?\181?\209?\131?\208?\180?\208?\176?\209?\135?\208?\189?\208?\190?\208?\181 ?\208?\190?\209?\130?\208?\186?\209?\128?\209?\139?\209?\130?\208?\184?\208?\181 ?\208?\191?\208?\190?\208?\180?\208?\180?\208?\181?\209?\128?\208?\182?\208?\186?\208?\184 lirc! ?\208?\146?\209?\139 ?\208?\189?\208?\181 ?\209?\129?\208?\188?\208?\190?\208?\182?\208?\181?\209?\130?\208?\181 ?\208?\184?\209?\129?\208?\191?\208?\190?\208?\187?\209?\140?\208?\183?\208?\190?\208?\178?\208?\176?\209?\130?\209?\140 ?\208?\146?\208?\176?\209?\136?\208?\181 ?\209?\131?\208?\180?\208?\176?\208?\187?\209?\145?\208?\189?\208?\189?\208?\190?\208?\181 ?\209?\131?\208?\191?\209?\128?\208?\176?\208?\178?\208?\187?\208?\181?\208?\189?\208?\184?\208?\181 Breakpoint 1, mpxp::MPlayerXP (argv=..., envm=...) at mplayerxp.cpp:1693 1693 if(mpxp_parse_command_line(m_config, argv,envm)!=MPXP_Ok) (gdb) print mp_conf $1 = {has_video = 1, has_audio = 1, has_dvdsub = 1, msg_filter = 4294967295, test_av = 0, malloc_debug = 0, max_trace = 10, xp = 4, gomp = 0, stream_dump = 0x0, s_cache_size = 0, autoq = 0, verbose = 0, benchmark = 0, playbackspeed_factor = 1, frame_dropping = 0, av_sync_pts = -1, av_force_pts_fix = 0, av_force_pts_fix2 = -1, frame_reorder = 1, force_fps = 0, softsleep = 0, nortc = 0, audio_id = -1, video_id = -1, dvdsub_id = -1, vobsub_id = -1, audio_lang = 0xe2f42a "ru", dvdsub_lang = 0xe2f42a "ru", spudec_ifo = 0x0, force_srate = 0, seek_to_sec = 0x0, seek_to_byte = 0, loop_times = -1, shuffle_playback = 0, play_n_frames = -1, audio_codec = 0x0, video_codec = 0x0, audio_family = 0x0, video_family = 0x0, video_driver = 0x0, audio_driver = 0x0, osd_level = 2, font_name = 0x0, font_factor = 0.75, sub_name = 0x0, sub_fps = 0, sub_auto = 1, vobsub_name = 0x0, subcc_enabled = 0, npp_options = 0x0, ao_channels = 2, z_compression = 0, monitor_pixel_aspect = 1, x86 = {simd = -1, mmx = -1, mmx2 = -1, _3dnow = -1, _3dnow2 = -1, sse = -1, sse2 = -1, sse3 = -1, ssse3 = -1, sse41 = -1, sse42 = -1, aes = -1, avx = -1, fma = -1}} (gdb) n 1696 if(!mp_conf.xp) { (gdb) print mp_conf.verbose $2 = 0 (gdb) n 1701 if(mp_conf.test_av) { (gdb) n 1707 xp_num_cpu=get_number_cpu(); (gdb) n 1709 get_mmx_optimizations(); (gdb) n 1707 xp_num_cpu=get_number_cpu(); (gdb) n 1709 get_mmx_optimizations(); (gdb) print mp_conf.verbose $3 = 0 (gdb) n 1711 if(mp_conf.shuffle_playback) MPXPSys.playtree->flags|=PLAY_TREE_RND; (gdb) n 1712 else MPXPSys.playtree->flags&=~PLAY_TREE_RND; (gdb) n 1714 MPXPSys.playtree = play_tree_cleanup(MPXPSys.playtree); (gdb) n 1715 if(MPXPSys.playtree) { (gdb) print mp_conf.verbose $4 = 0 (gdb) n 1714 MPXPSys.playtree = play_tree_cleanup(MPXPSys.playtree); (gdb) n 1715 if(MPXPSys.playtree) { (gdb) n 1716 MPXPSys.playtree_iter = new _PlayTree_Iter(MPXPSys.playtree,m_config); (gdb) n 1717 if(MPXPSys.playtree_iter) { (gdb) n 1716 MPXPSys.playtree_iter = new _PlayTree_Iter(MPXPSys.playtree,m_config); (gdb) n 1717 if(MPXPSys.playtree_iter) { (gdb) n 1718 if(MPXPSys.playtree_iter->step(0,0) != PLAY_TREE_ITER_ENTRY) { (gdb) n 1722 filename = MPXPSys.playtree_iter->get_file(1); (gdb) n 1726 mpxp_context().engine().xp_core->num_a_buffs = vo_conf.xp_buffs; (gdb) print mp_conf.verbose $5 = 1 More or less typical output of this project: *** Antiviral protection was inited ***!!! MPlayerXP svn.598 2002 Nickols_K 2000-2002 Arpad Gereoffy (?\209?\129?\208?\188. DOCS!) Can't open input config file /root/.ffmpeg/input.conf : No such file or directory Can't open input config file /usr/local/share/mplayerxp/input.conf : No such file or directory Falling back on default (hardcoded) input config Opening joystick device:/dev/input/js0 Can't open joystick device: /dev/input/js0 : No such file or directory Can't init input joystick with using: /dev/input/js0 ?\208?\163?\209?\129?\209?\130?\208?\176?\208?\189?\208?\190?\208?\178?\208?\186?\208?\176 ?\208?\191?\208?\190?\208?\180?\208?\180?\208?\181?\209?\128?\208?\182?\208?\186?\208?\184 lirc... mplayer: could not connect to socket mplayer: No such file or directory ?\208?\157?\208?\181?\209?\131?\208?\180?\208?\176?\209?\135?\208?\189?\208?\190?\208?\181 ?\208?\190?\209?\130?\208?\186?\209?\128?\209?\139?\209?\130?\208?\184?\208?\181 ?\208?\191?\208?\190?\208?\180?\208?\180?\208?\181?\209?\128?\208?\182?\208?\186?\208?\184 lirc! ?\208?\146?\209?\139 ?\208?\189?\208?\181 ?\209?\129?\208?\188?\208?\190?\208?\182?\208?\181?\209?\130?\208?\181 ?\208?\184?\209?\129?\208?\191?\208?\190?\208?\187?\209?\140?\208?\183?\208?\190?\208?\178?\208?\176?\209?\130?\209?\140 ?\208?\146?\208?\176?\209?\136?\208?\181 ?\209?\131?\208?\180?\208?\176?\208?\187?\209?\145?\208?\189?\208?\189?\208?\190?\208?\181 ?\209?\131?\208?\191?\209?\128?\208?\176?\208?\178?\208?\187?\208?\181?\208?\189?\208?\184?\208?\181 Environment: BROWSER => /usr/bin/www-browser COLORTERM => DBUS_SESSION_BUS_ADDRESS => unix:abstract=/root/tmp/dbus-46t91eE7b8,guid=42beb05839d357dbdb063dfc0000002f DESKTOP_SESSION => 03WindowMaker DISPLAY => :0.0 ENV => /root/.bashrc GCONF_TMPDIR => /tmp GDMSESSION => 03WindowMaker GDM_LANG => ru_RU.UTF8 GDM_XSERVER_LOCATION => local G_FILENAME_ENCODING => @locale HISTCONTROL => ignorespace HISTSIZE => 1000 HOME => /root HOSTNAME => kas-wifi.ap INPUTRC => /etc/inputrc KONSOLE_DCOP => DCOPRef(konsole-7511,konsole) KONSOLE_DCOP_SESSION => DCOPRef(konsole-7511,session-1) LANG => ru_RU.UTF-8 LC_SOURCED => 1 LD_LIBRARY_PATH => /usr/X11/lib:/usr/X11/lib64:/opt/qt4/lib:/usr/X11/lib:/usr/X11/lib64:/opt/qt4/lib LESS => -MM LESSCHARSET => utf-8 LESSKEY => /etc/.less LESSOPEN => |/usr/bin/lesspipe.sh %s LIBGL_DRIVERS_PATH => /usr/lib/dri:/usr/lib64/dri:/usr/X11/lib/dri:/usr/X11/lib64/dri:/usr/X11/lib/dri:/usr/X11/lib64/dri:/usr/X11/lib/dri:/usr/X11/lib64/dri:/usr/X11/lib/dri:/usr/X11/lib64/dri:/usr/X11/lib/dri:/usr/X11/lib64/dri LOGNAME => guru LS_COLORS => no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.lzma=01;31:*.tlz=01;31:*.deb=01;31:*.rpm=01;31:*.cpio=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.iso=01;31:*.jpg=01;35:*.jpeg=01;35:*.JPG=01;35:*.JPEG=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.divx=01;35:*.xvid=01;35:*.asf=01;35:*.wmv=01;35:*.mp4=01;35:*.3gp=01;35:*.flv=01;35:*.ico=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.mp2=00;36:*.mod=00;36:*.xm=00;36:*.s3m=00;36:*.it=00;36:*.wma=00;36:*~=47;30:*.bak=47;30:*.swp=47;30:*.bck=47;30:*.bk=47;30:*.old=47;30:*.tmp=47;30:*.save=47;30:*.rpmsave=47;30:*.rpmnew=47;30: MAIL => /var/spool/mail/guru MC_SID => 11047 MC_TMPDIR => /root/tmp/mc-root MDV_MENU_STYLE => mandriva META_CLASS => powerpack OLDPWD => /Data/-SF.NET-/MPXP/mplayerxp/mplayerxp/libmpconf PATH => /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/X11/bin:/opt/qt4/bin:/opt/kde4/bin:/opt/kde3/bin:/opt/qt4//bin:/opt/real/RealPlayer PKG32_CONFIG_PATH => /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig:/opt/qt4/lib/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig PKG64_CONFIG_PATH => /usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/X11/lib64/pkgconfig:/opt/qt4/lib64/pkgconfig:/opt/kde4/lib/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig PKG_CONFIG_PATH => /usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig:/usr/lib/qt4/lib64/pkgconfig PWD => /Data/-SF.NET-/MPXP/mplayerxp/mplayerxp PYTHONPATH => :/usr/lib/ooo-2.1/program:/usr/lib/ooo-2.1/program:/usr/lib/ooo-2.1/program:/usr/lib/ooo-2.1/program:/usr/lib/ooo-2.1/program PYTHONSTARTUP => /etc/pythonrc.py QT4DOCDIR => /usr/share/doc/qt4/doc QTDIR => /opt/qt4/ QTINC => /opt/qt3/include QTLIB => /opt/qt3/lib SCREENDIR => /home/guru/tmp SECURE_LEVEL => 3 SHELL => /bin/bash SHLVL => 4 SSH_AGENT_PID => 5974 SSH_ASKPASS => /usr/lib64/ssh/ssh-askpass SSH_AUTH_SOCK => /tmp/ssh-tJygbg5939/agent.5939 TERM => xterm TMP => /root/tmp TMPDIR => /root/tmp TZ => Europe/Moscow USER => guru USERNAME => root WINDOWID => 44040324 WINDOWPATH => 7 WMAKER_BIN_NAME => /usr/X11/bin/wmaker WRASTER_COLOR_RESOLUTION0 => 4 XAUTHORITY => /root/.xauthKLw4Xe XCURSOR_DITHER => diffuse XCURSOR_PATH => /usr/X11R6/share:/usr/X11R6/share/icons XCURSOR_SIZE => 48 XCURSOR_THEME => Gold XDG_DATA_DIRS => /usr/local/share/:/usr/share/:/usr/share/gdm/ XDG_SESSION_COOKIE => 4bfa5d308775c9aba49e220048fa837c-1356596574.689001-222484848 XMODIFIERS => @im=none _ => ./ffmpeg CommandLine: '-ao' 'alsa:hw:1' '-vo' 'x11' 'M/l.avi' '-vf' 'menu=main' '-v' '-v' '-v' '-v' font: can't open file: /root/.ffmpeg/font/font.desc font: Reading section: [info] font: Reading section: [files] RAW: /usr/local/share/mplayerxp/font//koi8-r-a.raw 4216 x 30, 256 colors RAW: /usr/local/share/mplayerxp/font//koi8-r-b.raw 4216 x 30, 256 colors font: Reading section: [characters] font: Reading section: [files] RAW: /usr/local/share/mplayerxp/font//osd-mplayer-a.raw 544 x 38, 256 colors RAW: /usr/local/share/mplayerxp/font//osd-mplayer-b.raw 544 x 38, 256 colors font: Reading section: [characters] font: resampling alpha by factor 0.75 (192) DONE! font: resampling alpha by factor 0.75 (192) DONE! Font /usr/local/share/mplayerxp/font/font.desc loaded successfully! (205 chars) At line 61 : value of attribute ptr isn't finished At line 87 : value of attribute ptr isn't finished Menu initialized: /root/.ffmpeg/menu.conf X11 opening display: :0.0 X11_System: color mask: ffffff (R:ff0000 G:ff00 B:ff) X11_System: running 1400x1050 with depth 32 bits/pixel (":0.0" => local display) Disabling DPMS stat: 1 ?\208?\146?\208?\190?\209?\129?\208?\191?\209?\128?\208?\190?\208?\184?\208?\183?\208?\178?\208?\181?\208?\180?\208?\181?\208?\189?\208?\184?\208?\181 M/l.avi Filename for url is now M/l.avi Not an URL! [Stream]: Opening *:// ... False [Demuxer]: Probing RAW audio parser ...:False [Demuxer]: Probing RAW video parser ...:False [Demuxer]: Probing AVI - Audio Video Interleaved parser ...:Ok CHUNK 'avih' len=56 ======= AVI Header ======= us/frame: 40000 (fps=25.000) max bytes/sec: 0 padding: 0 MainAVIHeader.dwFlags: (272) HAS_INDEX IS_INTERLEAVED frames total: 6056 initial: 0 streams: 2 Suggested BufferSize: 0 Size: 720 x 432 CHUNK 'strh' len=56 [Demuxer]: ==> Found video stream: 0 [Demuxer]: ID_VIDEO_ID=0 ======= STREAM Header ======= Type: vids FCC: xvid (64697678) Flags: 0 Priority: 0 Language: 0 InitialFrames: 0 Rate: 25/1 = 25.000 Start: 0 Len: 6056 Suggested BufferSize: 84858 Quality 10000 Sample size: 0 CHUNK 'strf' len=40 found 'bih', 40 bytes of 40 ======= VIDEO Format (chunk size: 40 )====== biSize 40 biWidth 720 biHeight 432 biPlanes 1 biBitCount 12 biCompression 44495658='XVID' biSizeImage 1866240 biXPelPerMeter 0 biYPelPerMeter 0 biClrUsed 0 biClrIpmortant 0 ======= End of Video Format ======= Regenerating keyframe table for DIVX 4 video CHUNK 'JUNK' len=4120 CHUNK 'strh' len=56 avi: Found audio stream Demuxer: ==> Found audio stream: 1 Demuxer: ID_AUDIO_ID=1 ======= STREAM Header ======= Type: auds FCC: (0) Flags: 0 Priority: 0 Language: 0 InitialFrames: 1 Rate: 48000/1152 = 41.667 Start: 0 Len: 10093 Suggested BufferSize: 960 Quality -1 Sample size: 0 CHUNK 'strf' len=30 found 'wf', 30 bytes of 18 ======= WAVE Format (chunk size: 30 )======= Format Tag: 85 (0x55) Channels: 2 Samplerate: 48000 avg byte/sec: 14907 Block align: 1152 bits/sample: 0 cbSize: 12 mp3.wID=1 mp3.fdwFlags=0x0 mp3.nBlockSize=358 mp3.nFramesPerBlock=1 mp3.nCodecDelay=0 ======= End of WAVE Format ======= CHUNK 'JUNK' len=4120 CHUNK 'dmlh' len=248 Found ODML header 248 frames 6056 CHUNK 'ISFT' len=43 Software : VirtualDubMod 1.5.4.1 (build 2178/release) CHUNK 'JUNK' len=1318 Broken chunk? chunksize=0 (id=JUNK) CHUNK 'JUNK' len=1318 Found movie at 0x280C - 0x65C9BBE CHUNK 'idx1' len=258384 Reading INDEX block, 16149 chunks for 6056 frames CHUNK 'JUNK' len=738 AVI index offset: 0x2808 (movi=0x280C idx0=0x4 idx1=0x18C) Auto-selected AVI audio ID = 1 Auto-selected AVI video ID = 0 AVI: Searching for audio stream (id:1) AVI video size=102978663 (6056) audio size=3611280 (10093) VIDEO: [XVID] 720x432 12bpp 25.00 fps [Demuxer]: Using: AVI - Audio Video Interleaved parser [Stream]:Video=XVID Audio=00000055 Probing: mp3lib [codec_ld] ?\208?\145?\208?\184?\208?\177?\208?\187?\208?\184?\208?\190?\209?\130?\208?\181?\208?\186?\208?\176 ?\208?\183?\208?\176?\208?\179?\209?\128?\209?\131?\208?\182?\208?\181?\208?\189?\208?\176 ?\209?\131?\209?\129?\208?\191?\208?\181?\209?\136?\208?\189?\208?\190:libmpg123.so Driver: mp3lib supports these outfmt for 00000055 100000 10 0 Using SSE2 optimized memcpy [codec_ld] ?\208?\145?\208?\184?\208?\177?\208?\187?\208?\184?\208?\190?\209?\130?\208?\181?\208?\186?\208?\176 ?\208?\183?\208?\176?\208?\179?\209?\128?\209?\131?\208?\182?\208?\181?\208?\189?\208?\176 ?\209?\131?\209?\129?\208?\191?\208?\181?\209?\136?\208?\189?\208?\190:libmpg123.so dec_audio: Allocating 8192 + 65536 = 73728 bytes for output buffer mpg123_init: MPEG-1.0 [Layer:III (ABR)], Hz=48000 128-kbit Joint-Stereo, BPF=96 Out=32-bit mpg123_init: Copyrght=No Orig=Yes CRC=No Priv=No Emphas=0 Optimiz=x86-64 [AC] Selecting decoder: [libmpg123.so] drv:mp3lib.libmpg123.so ratio 16000->384000 alsa-init: compiled for ALSA-1.0.26 alsa-init: soundcard set to hw:1 alsa-init: Testing & bugs are welcome. Found 1 cards, use: hw:1 alsa-init: pcm opend in block-mode Attach filter menu menu(NULL, vo2) vo2(menu, NULL) Probing: raw Probing: nuv Probing: mpeg2 Probing: xvid [codec_ld] ?\208?\145?\208?\184?\208?\177?\208?\187?\208?\184?\208?\190?\209?\130?\208?\181?\208?\186?\208?\176 ?\208?\183?\208?\176?\208?\179?\209?\128?\209?\131?\208?\182?\208?\181?\208?\189?\208?\176 ?\209?\131?\209?\129?\208?\191?\208?\181?\209?\136?\208?\189?\208?\190:libxvidcore.so Driver: xvid supports these outfmt for XVID fourcc: YV12 (flg=0) I420 (flg=0) YUY2 (flg=0) UYVY (flg=0) YVYU (flg=0) RGB (flg=0) 42475218 (flg=0) 4247520f (flg=0) 42475210 (flg=0) 00000000 (flg=0) [codec_ld] ?\208?\145?\208?\184?\208?\177?\208?\187?\208?\184?\208?\190?\209?\130?\208?\181?\208?\186?\208?\176 ?\208?\183?\208?\176?\208?\179?\209?\128?\209?\131?\208?\182?\208?\181?\208?\189?\208?\176 ?\209?\131?\209?\129?\208?\191?\208?\181?\209?\136?\208?\189?\208?\190:libxvidcore.so [XVID] using library version 1.3.2 (build xvid-1.3.2) [XVID] using 4 cpus/threads. Flags: 000001FF VDec: vo config request - 720 x 432 dri_vo: request for Planar YV12 fourcc: 0 dri_vo: request for Planar I420 fourcc: 0 dri_vo: request for Packed YUY2 fourcc: 0 dri_vo: request for Packed UYVY fourcc: 0 dri_vo: request for Packed YVYU fourcc: 0 dri_vo: request for BGRA fourcc: 0 dri_vo: request for BGR 24-bit fourcc: 0 dri_vo: request for BGR 15-bit fourcc: 0 dri_vo: request for BGR 16-bit fourcc: 0 Can't find colorspace for: 'Planar YV12' 'Planar I420' 'Packed YUY2' 'Packed UYVY' 'Packed YVYU' 'BGRA' 'BGR 24-bit' 'BGR 15-bit' 'BGR 16-bit' Trying -vf fmtcvt Open video filter: [fmtcvt] <720x432 Planar YV12> SwScale params: -1 x -1 (-1=no scaling) dri_vo: request for Planar 444P 16-bit little-endian fourcc: 0 dri_vo: request for Planar 444P 16-bit big-endian fourcc: 0 dri_vo: request for Planar 422P 16-bit little-endian fourcc: 0 dri_vo: request for Planar 422P 16-bit big-endian fourcc: 0 dri_vo: request for Planar 420P 16-bit little-endian fourcc: 0 dri_vo: request for Planar 420P 16-bit big-endian fourcc: 0 dri_vo: request for Planar YV12 with alpha fourcc: 0 dri_vo: request for Planar 444P fourcc: 0 dri_vo: request for Planar 422P fourcc: 0 dri_vo: request for Planar YV12 fourcc: 0 dri_vo: request for Planar I420 fourcc: 0 dri_vo: request for Planar IYUV fourcc: 0 dri_vo: request for Planar YVU9 fourcc: 0 dri_vo: request for Planar IF09 fourcc: 0 dri_vo: request for Planar 411P fourcc: 0 dri_vo: request for Packed YUY2 fourcc: 0 dri_vo: request for Packed UYVY fourcc: 0 dri_vo: request for RGB 48-bit fourcc: 0 dri_vo: request for BGR 48-bit fourcc: 0 dri_vo: request for BGRA fourcc: 0 dri_vo: request for RGBA fourcc: 1 dri_vo: request for BGR 24-bit fourcc: 0 dri_vo: request for RGB 24-bit fourcc: 1 dri_vo: request for BGR 16-bit fourcc: 0 dri_vo: request for RGB 16-bit fourcc: 1 dri_vo: request for BGR 15-bit fourcc: 0 dri_vo: request for RGB 15-bit fourcc: 1 dri_vo: request for Planar Y800 fourcc: 0 dri_vo: request for Planar Y8 fourcc: 0 dri_vo: request for BGR 8-bit fourcc: 0 dri_vo: request for RGB 8-bit fourcc: 0 dri_vo: request for BGR 4-bit fourcc: 0 dri_vo: request for RGB 4-bit fourcc: 1 dri_vo: request for BGR 4-bit per byte fourcc: 0 dri_vo: request for RGB 4-bit per byte fourcc: 1 dri_vo: request for BGR 1-bit fourcc: 0 dri_vo: request for RGB 1-bit fourcc: 0 dri_vo: request for RGBA fourcc: 1 dri_vo: request for RGBA fourcc: 1 dri_vo: request for RGBA fourcc: 1 dri_vo: request for RGBA fourcc: 1 dri_vo: request for RGBA fourcc: 1 dri_vo: request for RGBA fourcc: 1 dri_vo: request for RGBA fourcc: 1 dri_vo: request for RGBA fourcc: 1 Movie-Aspect is undefined - no prescaling applied. vf->config(720x432->720x432,flags=0x0,'MPlayerXP',Planar YV12) dri_vo: request for RGBA fourcc: 1 [swscaler @ 0x2fbc660] using unscaled yuv420p -> bgra special converter dri_vo: request for RGBA fourcc: 1 REQ: flags=0x401 req=0x0 [libvf] Using video filters chain: [vf_fmtcvt]: video[720x432] in[Planar YV12] -> out[RGBA] [vf_menu] Internal filter for libmenu [720x432,Unknown XVID] VO-CONF: [x11] 0x0 => 0x0 Unknown 0x0000 VO: Description: X11 ( XImage/Shm ) (with x11:vidix subdevice) VO: Author: Aaron Holtzman <aho...@es...> dri_vo: request for RGBA fourcc: 1 REQ: flags=0x401 req=0x0 [libvf] Using video filters chain: [vf_menu] Internal filter for libmenu [720x432,Unknown XVID] VO-CONF: [x11] 0x0 => 0x0 Unknown 0x0000 VO: Description: X11 ( XImage/Shm ) (with x11:vidix subdevice) VO: Author: Aaron Holtzman <aho...@es...> dri_vo: request for RGBA fourcc: 1 priv.video_out->config(720,432,720,432, 0x0,'MPlayerXP',RGBA) Sharing memory. [stream: vf_reinit_vo]: 0x2fbbac0 Call vf_reinit_vo <fmtcvt: 720x432@Planar YV12> -> <vo: 720x432@BGRA> vf->first: 720x432@Planar YV12 [720x432@Planar YV12](NULL<-fmtcvt->menu) [720x432@Unknown XVID](fmtcvt<-menu->vo2) [720x432@RGBA](menu<-vo2->NULL) Using(menu) 720x432@Unknown XVID vf_reinit->config_vf 720 432 Unknown XVID=> 720 432 BGRA Open video filter: [fmtcvt] <720x432 Planar YV12> SwScale params: -1 x -1 (-1=no scaling) dri_vo: request for Planar 444P 16-bit little-endian fourcc: 0 dri_vo: request for Planar 444P 16-bit big-endian fourcc: 0 dri_vo: request for Planar 422P 16-bit little-endian fourcc: 0 dri_vo: request for Planar 422P 16-bit big-endian fourcc: 0 dri_vo: request for Planar 420P 16-bit little-endian fourcc: 0 dri_vo: request for Planar 420P 16-bit big-endian fourcc: 0 dri_vo: request for Planar YV12 with alpha fourcc: 0 dri_vo: request for Planar 444P fourcc: 0 dri_vo: request for Planar 422P fourcc: 0 dri_vo: request for Planar YV12 fourcc: 0 dri_vo: request for Planar I420 fourcc: 0 dri_vo: request for Planar IYUV fourcc: 0 dri_vo: request for Planar YVU9 fourcc: 0 dri_vo: request for Planar IF09 fourcc: 0 dri_vo: request for Planar 411P fourcc: 0 dri_vo: request for Packed YUY2 fourcc: 0 dri_vo: request for Packed UYVY fourcc: 0 dri_vo: request for RGB 48-bit fourcc: 0 dri_vo: request for BGR 48-bit fourcc: 0 dri_vo: request for BGRA fourcc: 0 dri_vo: request for RGBA fourcc: 1 dri_vo: request for BGR 24-bit fourcc: 0 dri_vo: request for RGB 24-bit fourcc: 1 dri_vo: request for BGR 16-bit fourcc: 0 dri_vo: request for RGB 16-bit fourcc: 1 dri_vo: request for BGR 15-bit fourcc: 0 dri_vo: request for RGB 15-bit fourcc: 1 dri_vo: request for Planar Y800 fourcc: 0 dri_vo: request for Planar Y8 fourcc: 0 dri_vo: request for BGR 8-bit fourcc: 0 dri_vo: request for RGB 8-bit fourcc: 0 dri_vo: request for BGR 4-bit fourcc: 0 dri_vo: request for RGB 4-bit fourcc: 1 dri_vo: request for BGR 4-bit per byte fourcc: 0 dri_vo: request for RGB 4-bit per byte fourcc: 1 dri_vo: request for BGR 1-bit fourcc: 0 dri_vo: request for RGB 1-bit fourcc: 0 dri_vo: request for RGBA fourcc: 1 [swscaler @ 0x2fd5e80] (null) is not supported as input pixel format Couldn't init SwScaler for this setup (nil) FATAL: ?\208?\157?\208?\181 ?\208?\188?\208?\190?\208?\179?\209?\131 ?\208?\191?\209?\128?\208?\190?\208?\184?\208?\189?\208?\184?\209?\134?\208?\184?\208?\176?\208?\187?\208?\184?\208?\183?\208?\184?\209?\128?\208?\190?\208?\178?\208?\176?\209?\130?\209?\140 ?\208?\178?\208?\184?\208?\180?\208?\181?\208?\190 ?\208?\180?\209?\128?\208?\176?\208?\185?\208?\178?\208?\181?\209?\128! vf->first: 720x432@Planar YV12 [720x432@Planar YV12](NULL<-fmtcvt->menu) [720x432@Unknown XVID](fmtcvt<-menu->vo2) [720x432@RGBA](fmtcvt<-vo2->NULL) dri_vo_caps: driver does support DRI dri_vo_caps: caps=00000000 fourcc=42475220(BGRA) x,y,w,h(0 0 2d0 1b0) dri_vo_caps: width,height(2d0,1b0) strides(b40000) priv.dri.bpp=20 dri_vo_src: w,h(2d0,1b0) d_w,d_h(2d0,1b0 dri_vo_src: flags=00000000 fourcc=52474220(RGBA) [libvf] Using video filters chain: [vf_fmtcvt]: video[720x432] in[Planar YV12] -> out[RGBA] [vf_menu] Internal filter for libmenu [720x432,Unknown XVID] VO-CONF: [x11] 720x432 => 720x432 RGBA VO: Description: X11 ( XImage/Shm ) (with x11:vidix subdevice) VO: Author: Aaron Holtzman <aho...@es...> [VC] Selected decoder: [libxvidcore.so] drv:xvid.libxvidcore.so (720x432 (aspect 0) 25.00fps Checking audio filter chain for 48000Hz/2ch/32bit... [libaf] Adding filter ao3 [libaf] Adding filter resample [libaf] Adding filter format AF_pre: af format: 2 ch, 44100 hz, S32LE af_bps=352800 alsa-conf: requested format: 44100 Hz, 2 channels, Signed 32-bit (Little-Endian) alsa-init: buffer_time: 500045, period_time :124988 alsa-conf: got buffersize=176416 alsa-conf: bits per sample (bps)=32, bits per frame (bpf)=64, chunk_bytes=0 alsa-conf: 44100 Hz/2 channels/8 bpf/176416 bytes buffer/Signed 32 bit Little Endian Building audio filter chain for 48000Hz/2ch/32bit (Float32) -> 44100Hz/2ch/32bit (Signed 32-bit (Little-Endian))... AF_init: af format: 2 ch, 44100 hz, S32LE af_bps=352800 [libaf] Using audio filters chain: [af_resample] New filter designed (48000 -> 44100 Hz) [af_format] Changing sample format FLOAT32LE -> S32LE AO-CONF: [alsa] 44100Hz nch=2 S32LE (2822.4-kbit) Using Linux's hardware RTC timing (1024Hz) CLIP INFO (M/l.avi): Encoder: VirtualDubMod 1.5.4.1 (build 2178/release) Using audio buffer 911368 bytes (min reserve = 8200, indices 210) XXX initial v_pts=0.000 a_pos=2448 (0.164) Using SSE2 optimized agpcpy Using generic optimized agpcpy Using DECODING AHEAD mplayer's core with 64 video buffers alsa-space: mp_free space = 176416, status=2, 1 -- alsa-space: mp_free space = 176416, status=2, 1 -- Using SSE3 Optimized OnScreenDisplay Using the next 5 threads: [0] main (id=13837 pth_id=140640945727488) [1] audio decoder (id=13837 pth_id=140640713684736) [2] video decoder (id=13837 pth_id=140640703194880) [3] audio player (id=13837 pth_id=140640692705024) [4] video player (id=13837 pth_id=140640682215168) ?\208?\146?\208?\190?\209?\129?\208?\191?\209?\128?\208?\190?\208?\184?\208?\183?\208?\178?\208?\181?\208?\180?\208?\181?\208?\189?\208?\184?\208?\181... X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) X11_common: event_type = 2 (KeyPress) X11_common: event_type = 4d (Unknown) X11_common: event_type = 4d (Unknown) *** stop thread: [1] audio decoder *** stop thread: [2] video decoder *** stop thread: [3] audio player *** stop thread: [4] video player uninit video ... Successfully enabled DPMS Uninit audio filters... [libaf] Removing filter resample [libaf] Removing filter format [libaf] Removing filter ao3 uninit audio: ... alsa-uninit: pcm closed [Demuxer]: freeing demuxer at 0x2ee7ea0 DEMUXER: freeing sh_audio at 0x2eeec20 DEMUXER: freeing sh_video at 0x2eee430 *** free_stream(drv:file://) called [errno: Inappropriate ioctl for device]*** ?\208?\146?\209?\139?\209?\133?\208?\190?\208?\180?\208?\184?\208?\188...(?\208?\146?\209?\139?\209?\133?\208?\190?\208?\180) Modified Paths: -------------- mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/mplayerxp.cpp mplayerxp/mplayerxp.h mplayerxp/postproc/af_export.cpp mplayerxp/postproc/af_internal.h Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-27 09:50:00 UTC (rev 605) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-27 09:50:31 UTC (rev 606) @@ -695,7 +695,7 @@ } namespace mpxp { -MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv) +MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm) { size_t i,siz=argv.size(); int tmp; @@ -715,7 +715,7 @@ exit(0); } if(opt=="--long-help") { - show_long_help(); + show_long_help(envm); exit(0); } /* check for -- (no more options id.) except --help! */ Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-27 09:50:00 UTC (rev 605) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-27 09:50:31 UTC (rev 606) @@ -6,6 +6,7 @@ #include "xmpcore/xmp_enums.h" #include <vector> #include <string> +#include <map> namespace mpxp { struct libinput_t; @@ -92,7 +93,7 @@ * 1 otherwise */ namespace mpxp { - MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv); + MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm); } m_config_t& m_config_new(play_tree_t* pt,libinput_t&libinput); Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-27 09:50:00 UTC (rev 605) +++ mplayerxp/mplayerxp.cpp 2012-12-27 09:50:31 UTC (rev 606) @@ -5,6 +5,7 @@ #include <algorithm> #include <iostream> #include <iomanip> +#include <map> #include <ctype.h> #include <stdio.h> @@ -134,12 +135,12 @@ void print_stream_formats() const; void print_audio_status() const; void read_video_properties() const; - void read_subtitles(const std::string& filename,int forced_subs_only,int stream_dump_type); + void read_subtitles(const std::map<std::string,std::string>& envm,const std::string& filename,int forced_subs_only,int stream_dump_type); - void find_acodec(const char *ao_subdevice); + void find_acodec(const std::map<std::string,std::string>& envm,const char *ao_subdevice); int configure_audio(); - MPXP_Rc find_vcodec(); + MPXP_Rc find_vcodec(const std::map<std::string,std::string>& envm); void run_ahead_engine(); @@ -199,6 +200,21 @@ } MP_Config mp_conf; +__always_inline std::string get_path(const std::map<std::string,std::string>& envm,const std::string& filename="") { + std::map<std::string,std::string>::const_iterator it; + it = envm.find("HOME"); + const std::string homedir = (*it).second; + std::string rs; + std::string config_dir = std::string("/.")+PROGNAME; + + if (homedir.empty()) throw "No 'HOME' environment found"; + rs=homedir+config_dir; + if (!filename.empty()) rs+="/"+filename; + mpxp_v<<"get_path('"<<homedir<<":"<<filename<<"') -> "<<rs<<std::endl; + return rs; +} + + MPXPContext::MPXPContext() :_engine(new(zeromem) mpxp_engine_t), _audio(new(zeromem) audio_processing_t), @@ -426,15 +442,15 @@ //"nosound=nein" "\n"; -void parse_cfgfiles( m_config_t& conf ) +void parse_cfgfiles(const std::map<std::string,std::string>& envm, m_config_t& conf ) { std::string conffile; int conffile_fd; - conffile = get_path(); + conffile = get_path(envm); if (conffile.empty()) mpxp_warn<<MSGTR_NoHomeDir<<std::endl; else { ::mkdir(conffile.c_str(), 0777); - conffile = get_path("config"); + conffile = get_path(envm,"config"); if (conffile.empty()) { mpxp_err<<MSGTR_GetpathProblem<<std::endl; conffile="config"; @@ -532,7 +548,7 @@ #endif -static void init_player( void ) +static void init_player(const std::map<std::string,std::string>& envm) { if(mp_conf.video_driver && strcmp(mp_conf.video_driver,"help")==0) { mpxp_context().video().output->print_help(); @@ -567,7 +583,7 @@ #ifdef ENABLE_WIN32LOADER /* check codec.conf*/ - if(!parse_codec_cfg(get_path("win32codecs.conf").c_str())) { + if(!parse_codec_cfg(get_path(envm,"win32codecs.conf").c_str())) { if(!parse_codec_cfg(CONFDIR"/win32codecs.conf")) { mpxp_hint<<MSGTR_CopyCodecsConf<<std::endl; mpxp_uninit_structs(); @@ -600,7 +616,7 @@ mpxp_info<<"Use --long-help option for full help"<<std::endl; } -void show_long_help(void) { +void show_long_help(const std::map<std::string,std::string>& envm) { MPXPSystem& MPXPSys=*mpxp_context().engine().MPXPSys; m_config_show_options(*mpxp_context().mconfig); mp_input_print_binds(MPXPSys.libinput()); @@ -613,7 +629,7 @@ afm_help(); #ifdef ENABLE_WIN32LOADER /* check codec.conf*/ - if(!parse_codec_cfg(get_path("win32codecs.conf").c_str())){ + if(!parse_codec_cfg(get_path(envm,"win32codecs.conf").c_str())){ if(!parse_codec_cfg(CONFDIR"/win32codecs.conf")){ mpxp_hint<<MSGTR_CopyCodecsConf<<std::endl; mpxp_uninit_structs(); @@ -829,7 +845,7 @@ } -static void mpxp_init_osd(void) { +static void mpxp_init_osd(const std::map<std::string,std::string>& envm) { // check font #ifdef USE_OSD if(mp_conf.font_name){ @@ -838,7 +854,7 @@ mpxp_err<<MSGTR_CantLoadFont<<": "<<mp_conf.font_name<<std::endl; } else { // try default: - mpxp_context().video().output->font=read_font_desc(get_path("font/font.desc").c_str(),mp_conf.font_factor,mp_conf.verbose>1); + mpxp_context().video().output->font=read_font_desc(get_path(envm,"font/font.desc").c_str(),mp_conf.font_factor,mp_conf.verbose>1); if(!mpxp_context().video().output->font) mpxp_context().video().output->font=read_font_desc(DATADIR"/font/font.desc",mp_conf.font_factor,mp_conf.verbose>1); } @@ -846,7 +862,7 @@ /* Configure menu here */ { std::string menu_cfg; - menu_cfg = get_path("menu.conf"); + menu_cfg = get_path(envm,"menu.conf"); if(menu_init(NULL, menu_cfg.c_str())) mpxp_info<<"Menu initialized: "<<menu_cfg<<std::endl; else { @@ -1021,7 +1037,7 @@ } } -void MPXPSystem::read_subtitles(const std::string& filename,int forced_subs_only,int stream_dump_type) { +void MPXPSystem::read_subtitles(const std::map<std::string,std::string>& envm,const std::string& filename,int forced_subs_only,int stream_dump_type) { sh_video_t* sh_video=reinterpret_cast<sh_video_t*>(_demuxer->video->sh); Stream* stream=static_cast<Stream*>(_demuxer->stream); if (mp_conf.spudec_ifo) { @@ -1060,7 +1076,7 @@ mpxp_context().subtitles=sub_read_file(mp_conf.sub_name, sh_video->fps); if(!mpxp_context().subtitles) mpxp_err<<MSGTR_CantLoadSub<<": "<<mp_conf.sub_name<<std::endl; } else if(mp_conf.sub_auto) { // auto load sub file ... - mpxp_context().subtitles=sub_read_file( !filename.empty() ? sub_filename(get_path("sub/").c_str(), filename.c_str() ) + mpxp_context().subtitles=sub_read_file( !filename.empty() ? sub_filename(get_path(envm,"sub/").c_str(), filename.c_str() ) : "default.sub", sh_video->fps ); } if(mpxp_context().subtitles) { @@ -1070,7 +1086,7 @@ #endif } -void MPXPSystem::find_acodec(const char *ao_subdevice) { +void MPXPSystem::find_acodec(const std::map<std::string,std::string>& envm,const char *ao_subdevice) { int found=0; audio_decoder_t* mpca=0; sh_audio_t* sh_audio=reinterpret_cast<sh_audio_t*>(_demuxer->audio->sh); @@ -1113,7 +1129,7 @@ if(!found) { mpxp_err<<MSGTR_CantFindAudioCodec<<std::endl; fourcc(mpxp_err,sh_audio->wtag); - mpxp_hint<<get_path("win32codecs.conf")<<":"<<MSGTR_TryUpgradeCodecsConfOrRTFM<<std::endl; + mpxp_hint<<get_path(envm,"win32codecs.conf")<<":"<<MSGTR_TryUpgradeCodecsConfOrRTFM<<std::endl; d_audio->sh=NULL; sh_audio=reinterpret_cast<sh_audio_t*>(d_audio->sh); } else { @@ -1131,7 +1147,7 @@ } } -MPXP_Rc MPXPSystem::find_vcodec(void) { +MPXP_Rc MPXPSystem::find_vcodec(const std::map<std::string,std::string>& envm) { Demuxer_Stream *d_video=_demuxer->video; sh_video_t* sh_video=reinterpret_cast<sh_video_t*>(_demuxer->video->sh); MPXP_Rc rc=MPXP_Ok; @@ -1170,7 +1186,7 @@ if(!sh_video->inited) { mpxp_err<<MSGTR_CantFindVideoCodec<<std::endl; fourcc(mpxp_err,sh_video->fourcc); - mpxp_hint<<get_path("win32codecs.conf")<<":"<<MSGTR_TryUpgradeCodecsConfOrRTFM<<std::endl; + mpxp_hint<<get_path(envm,"win32codecs.conf")<<":"<<MSGTR_TryUpgradeCodecsConfOrRTFM<<std::endl; d_video->sh = NULL; sh_video = reinterpret_cast<sh_video_t*>(d_video->sh); rc=MPXP_False; @@ -1627,10 +1643,9 @@ /******************************************\ * MAIN MPLAYERXP FUNCTION !!! * \******************************************/ -int MPlayerXP(const std::vector<std::string>& argv){ +int MPlayerXP(const std::vector<std::string>& argv, const std::map<std::string,std::string>& envm){ mpxp_init_antiviral_protection(1); // mpxp_test_backtrace(); - int i; Stream* stream=NULL; int stream_dump_type=0; input_state_t input_state = { 0, 0, 0 }; @@ -1673,9 +1688,9 @@ m_config_register_options(m_config,mplayer_opts); // TODO : add something to let modules register their options mp_register_options(m_config); - parse_cfgfiles(m_config); + parse_cfgfiles(envm,m_config); - if(mpxp_parse_command_line(m_config, argv)!=MPXP_Ok) + if(mpxp_parse_command_line(m_config, argv,envm)!=MPXP_Ok) exit_player("Error parse command line"); // error parsing cmdline if(!mp_conf.xp) { @@ -1710,7 +1725,7 @@ mpxp_context().engine().xp_core->num_a_buffs = vo_conf.xp_buffs; - init_player(); + init_player(envm); if(filename.empty()){ show_help(); @@ -1719,14 +1734,18 @@ // Many users forget to include command line in bugreports... if(mp_conf.verbose){ - size_t sz=argv.size(); + std::map<std::string,std::string>::const_iterator it; + mpxp_info<<"Environment:"<<std::endl; + for(it=envm.begin();it!=envm.end();it++) + mpxp_info<<(*it).first<<" => "<<(*it).second<<std::endl; + size_t i,sz=argv.size(); mpxp_info<<"CommandLine:"; for(i=1;i<sz;i++) mpxp_info<<" '"<<argv[i]<<"'"; mpxp_info<<std::endl; } //------ load global data first ------ - mpxp_init_osd(); + mpxp_init_osd(envm); // ========== Init keyboard FIFO (connection to libvo) ============ MP_UNIT(NULL); @@ -1829,12 +1848,12 @@ } //================== Read SUBTITLES (DVD & TEXT) ========================== - if(sh_video) MPXPSys.read_subtitles(filename,forced_subs_only,stream_dump_type); + if(sh_video) MPXPSys.read_subtitles(envm,filename,forced_subs_only,stream_dump_type); //================== Init AUDIO (codec) ========================== MP_UNIT("init_audio_codec"); - if(sh_audio) MPXPSys.find_acodec(ao_subdevice); + if(sh_audio) MPXPSys.find_acodec(envm,ao_subdevice); sh_audio=reinterpret_cast<sh_audio_t*>(MPXPSys.demuxer()->audio->sh); if(stream_dump_type>1) { @@ -1871,7 +1890,7 @@ /*================== Init VIDEO (codec & libvo) ==========================*/ if(!sh_video) goto main; - if((MPXPSys.find_vcodec())!=MPXP_Ok) { + if((MPXPSys.find_vcodec(envm))!=MPXP_Ok) { sh_video=reinterpret_cast<sh_video_t*>(MPXPSys.demuxer()->video->sh); if(!sh_audio) goto goto_next_file; goto main; @@ -2132,15 +2151,25 @@ int main(int argc,char* args[], char *envp[]) { - UNUSED(envp); try { std::vector<std::string> argv; - std::string str; + std::string str,stmp; for(int i=0;i<argc;i++) { str=args[i]; argv.push_back(str); } - return MPlayerXP(argv); + std::map<std::string,std::string> envm; + unsigned j=0; + size_t pos; + while(envp[j]) { + str=envp[j++]; + pos=str.find('='); + if(pos==std::string::npos) throw "Broken environment variable: "+str; + stmp=str.substr(pos+1); + str=str.substr(0,pos); + envm[str]=stmp; + } + return MPlayerXP(argv,envm); } catch(const std::string& what) { std::cout<<"Exception '"<<what<<"'caught in module: MPlayerXP"<<std::endl; } catch(...) { Modified: mplayerxp/mplayerxp.h =================================================================== --- mplayerxp/mplayerxp.h 2012-12-27 09:50:00 UTC (rev 605) +++ mplayerxp/mplayerxp.h 2012-12-27 09:50:31 UTC (rev 606) @@ -197,7 +197,7 @@ unsigned get_number_cpu(void); void show_help(void); - void show_long_help(void); + void show_long_help(const std::map<std::string,std::string>& envm); void update_osd( float v_pts ); Modified: mplayerxp/postproc/af_export.cpp =================================================================== --- mplayerxp/postproc/af_export.cpp 2012-12-27 09:50:00 UTC (rev 605) +++ mplayerxp/postproc/af_export.cpp 2012-12-27 09:50:31 UTC (rev 606) @@ -30,12 +30,10 @@ #include "osdep/get_path.h" #include "pp_msg.h" -#define DEF_SZ 512 // default buffer size (in samples) -#define SHARED_FILE "mplayer-af_export" /* default file name - (relative to ~/.mplayer/ */ +static const int DEF_SZ=512; // default buffer size (in samples) +static const char* SHARED_FILE="mplayer-af_export"; /* default file name (relative to ~/.mplayer/ */ +static const int SIZE_HEADER=(2 * sizeof(int) + sizeof(unsigned long long)); -#define SIZE_HEADER (2 * sizeof(int) + sizeof(unsigned long long)) - // Data for specific instances of this filter struct af_export_t { Modified: mplayerxp/postproc/af_internal.h =================================================================== --- mplayerxp/postproc/af_internal.h 2012-12-27 09:50:00 UTC (rev 605) +++ mplayerxp/postproc/af_internal.h 2012-12-27 09:50:31 UTC (rev 606) @@ -18,5 +18,5 @@ double delay; // Delay caused by the filter [ms] frac_t mul; /* length multiplier: how much does this instance change the length of the buffer. */ -}__attribute__ ((packed)); +}; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-27 14:05:41
|
Revision: 607 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=607&view=rev Author: nickols_k Date: 2012-12-27 14:05:33 +0000 (Thu, 27 Dec 2012) Log Message: ----------- segfaults--: when i perform stepping or breakpoint into functions with using of gdb then i'm able to catch segfaults and fix meeted logic errors. Well, it seems that context substitution doesn't exist when gdb does stepping or breakpoint Modified Paths: -------------- mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/mplayerxp.cpp mplayerxp/xmpcore/xmp_context.cpp mplayerxp/xmpcore/xmp_context.h Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-27 09:50:31 UTC (rev 606) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-27 14:05:33 UTC (rev 607) @@ -213,7 +213,6 @@ for(i=0;i<config->dynasize;i++) delete config->dynamics[i]; delete config->dynamics; config->dynasize=0; - delete config->opt_list; delete config->config_stack; delete config; } @@ -258,7 +257,7 @@ static int cfg_inc_int(int value){ return ++value; } -static int config_read_option(m_config_t& config,const config_t** conf_list,const std::string& opt,const std::string& param) +static int config_read_option(m_config_t& config,const std::vector<const config_t*>& conf_list,const std::string& opt,const std::string& param) { int i=0,nconf = 0; long tmp_int; @@ -430,7 +429,7 @@ break; case CONF_TYPE_INC: *((int *) conf[i].p) = cfg_inc_int(*((int *) conf[i].p)); - ret = 1; + ret = 0; break; case CONF_TYPE_INCLUDE: if (param.empty()) @@ -468,11 +467,11 @@ goto out; } -static const config_t* m_config_find_option(const config_t**list,const std::string& name); +static const config_t* m_config_find_option(const std::vector<const config_t*>& list,const std::string& name); int m_config_set_option(m_config_t& config,const std::string& _opt,const std::string& param) { size_t e; - const config_t**clist=config.opt_list; + std::vector<const config_t*> clist=config.opt_list; std::string opt=_opt; std::string s; mpxp_dbg2<<"Setting option "<<opt<<"="<<param<<std::endl; @@ -482,23 +481,22 @@ if(e!=std::string::npos) { int flg,ret; const config_t *subconf=NULL; - const config_t* olist[] = { NULL, NULL }; mpxp_dbg2<<"Parsing "<<opt<<" as subconfig"<<std::endl; do { if((e = opt.find('.'))==std::string::npos) break; s=opt.substr(0,e); mpxp_dbg2<<"Treat "<<s<<" as subconfig name"<<std::endl; - subconf = m_config_find_option(clist?clist:olist,s); - clist=NULL; + subconf = m_config_find_option(clist,s); + clist.clear(); if(!subconf) return ERR_NO_SUBCONF; if(subconf->type!=CONF_TYPE_SUBCONFIG) return ERR_NO_SUBCONF; - olist[0] = reinterpret_cast<const config_t*>(subconf->p); + clist.push_back(reinterpret_cast<const config_t*>(subconf->p)); opt = opt.substr(e+1); mpxp_dbg2<<"switching next subconf="<<subconf->name<<std::endl; }while(1); flg=config.flags; config.flags|=CONFIG_GLOBAL; - ret=config_read_option(config,olist,opt,param); + ret=config_read_option(config,clist,opt,param); config.flags=flg; return ret; } @@ -506,13 +504,15 @@ e = opt.find(':'); if(e!=std::string::npos && e<(opt.length()-1)) { int ret; - const config_t* opt_list[] = { NULL, NULL }; + const config_t* m_opt; + std::vector<const config_t*> opt_list; s=opt.substr(0,e); - opt_list[0] = (const config_t*)m_config_get_option_ptr(config,s); - if(!opt_list[0]) { + m_opt=(const config_t*)m_config_get_option_ptr(config,s); + if(!m_opt) { mpxp_err<<"m_config_set_option "<<opt<<"="<<param<<" : no "<<s<<" subconfig"<<std::endl; return ERR_NOT_AN_OPTION; } + opt_list.push_back(m_opt); s=opt.substr(e+1); ret = config_read_option(config,opt_list,s,param); return ret; @@ -757,7 +757,7 @@ pos=1; mpxp_dbg2<<"this_option: "<<opt<<std::endl; - parm = argv[i+1]; + parm = ((i+1)<siz)?argv[i+1]:""; item=opt.substr(pos); pos = item.find('='); if(pos!=std::string::npos) { @@ -784,7 +784,7 @@ <<"' while parsing option: '"<<opt<<"'"<<std::endl; goto err_out; default: - if(pos==std::string::npos) i++; + if(tmp) i++; break; } } else /* filename */ { @@ -813,31 +813,16 @@ } // namespace mpxp int m_config_register_options(m_config_t& config,const config_t *args) { - int list_len = 0; - const config_t** conf_list = config.opt_list; + std::vector<const config_t*>& conf_list = config.opt_list; + conf_list.push_back(args); - if(conf_list) { - for ( ; conf_list[list_len] != NULL; list_len++) - /* NOTHING */; - } - - conf_list = (const config_t**)mp_realloc(conf_list,sizeof(struct conf*)*(list_len+2)); - if(conf_list == NULL) { - mpxp_err<<"Can't allocate memory"<<std::endl; - return 0; - } - conf_list[list_len] = args; - conf_list[list_len+1] = NULL; - - config.opt_list = conf_list; - return 1; } -static const config_t* m_config_find_option(const config_t **list,const std::string& name) { +static const config_t* m_config_find_option(const std::vector<const config_t*>& list,const std::string& name) { unsigned i,j; const config_t *conf; - if(list) { + if(!list.empty()) { std::string ln=name; std::transform(ln.begin(),ln.end(),ln.begin(), ::tolower); for(j = 0; list[j] != NULL ; j++) { @@ -854,18 +839,18 @@ const config_t* m_config_get_option(const m_config_t& config,const std::string& arg) { size_t e; - const config_t **conf_list; - const config_t* cl[] = { NULL, NULL }; e = arg.find(':'); - if(e!=std::string::npos) { + std::vector<const config_t*> cl; + const config_t* opt; std::string s; s=arg.substr(0,e); - cl[0] = m_config_get_option(config,s); - conf_list = cl; - } else conf_list = config.opt_list; - return m_config_find_option(conf_list,arg); + opt = m_config_get_option(config,s); + cl.push_back(opt); + return m_config_find_option(cl,arg); + } + return m_config_find_option(config.opt_list,arg); } any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg) { Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-27 09:50:31 UTC (rev 606) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-27 14:05:33 UTC (rev 607) @@ -56,7 +56,7 @@ m_config_t(libinput_t& _libinput):libinput(_libinput) {} ~m_config_t() {} - const config_t** opt_list; + std::vector<const config_t*> opt_list; config_save_t** config_stack; any_t**dynamics; unsigned dynasize; Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-27 09:50:31 UTC (rev 606) +++ mplayerxp/mplayerxp.cpp 2012-12-27 14:05:33 UTC (rev 607) @@ -1685,7 +1685,7 @@ m_config_t& m_config=m_config_new(MPXPSys.playtree,MPXPSys.libinput()); mpxp_context().mconfig = &m_config; - m_config_register_options(m_config,mplayer_opts); + m_config_register_options(m_config,mplayerxp_opts); // TODO : add something to let modules register their options mp_register_options(m_config); parse_cfgfiles(envm,m_config); Modified: mplayerxp/xmpcore/xmp_context.cpp =================================================================== --- mplayerxp/xmpcore/xmp_context.cpp 2012-12-27 09:50:31 UTC (rev 606) +++ mplayerxp/xmpcore/xmp_context.cpp 2012-12-27 14:05:33 UTC (rev 607) @@ -232,7 +232,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL}, }; -static const config_t mplayer_options[]={ +static const config_t mplayerxp_options[]={ /* name, pointer, type, flags, min, max, help */ {"include", NULL, CONF_TYPE_INCLUDE, CONF_NOSAVE, 0, 0, ""}, /* this don't need anymore to be the first!!! */ @@ -269,7 +269,7 @@ // ------------------------- codec/pp options -------------------- {NULL, NULL, 0, 0, 0, 0, NULL} }; -const config_t* mplayer_opts=mplayer_options; +const config_t* mplayerxp_opts=mplayerxp_options; } // namespace mpxp extern void libmpcodecs_ad_register_options(m_config_t& cfg); Modified: mplayerxp/xmpcore/xmp_context.h =================================================================== --- mplayerxp/xmpcore/xmp_context.h 2012-12-27 09:50:31 UTC (rev 606) +++ mplayerxp/xmpcore/xmp_context.h 2012-12-27 14:05:33 UTC (rev 607) @@ -3,7 +3,7 @@ struct config_t; namespace mpxp { - extern const config_t* mplayer_opts; + extern const config_t* mplayerxp_opts; } #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-27 16:37:35
|
Revision: 608 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=608&view=rev Author: nickols_k Date: 2012-12-27 16:37:25 +0000 (Thu, 27 Dec 2012) Log Message: ----------- convert struct play_tree_t into class PlayTree Modified Paths: -------------- TODO mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/libplaytree/asxparser.cpp mplayerxp/libplaytree/asxparser.h mplayerxp/libplaytree/playtree.cpp mplayerxp/libplaytree/playtree.h mplayerxp/libplaytree/playtreeparser.cpp mplayerxp/libplaytree/playtreeparser.h mplayerxp/mplayerxp.cpp mplayerxp/postproc/libmenu/menu_pt.cpp Modified: TODO =================================================================== --- TODO 2012-12-27 14:05:33 UTC (rev 607) +++ TODO 2012-12-27 16:37:25 UTC (rev 608) @@ -1,5 +1,6 @@ TODO for mplayerxp: +- remove m_config_t from libplaytree: implement config independed container - Implement libmpdemux3: class Demuxer_Driver { Demuxer_Driver(Demuxer& parent); Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-27 16:37:25 UTC (rev 608) @@ -193,7 +193,7 @@ return ret; } -m_config_t& m_config_new(play_tree_t* pt,libinput_t&libinput) { +m_config_t& m_config_new(PlayTree* pt,libinput_t&libinput) { m_config_t& config = *new(zeromem) m_config_t(libinput); config.config_stack = (config_save_t**)mp_calloc(1,sizeof(config_save_t*)); SET_GLOBAL(config); // We always start with global options @@ -228,13 +228,13 @@ } static int config_is_entry_option(m_config_t& config,const std::string& opt,const std::string& param) { - play_tree_t* entry = NULL; + PlayTree* entry = NULL; std::string lopt=opt; std::transform(lopt.begin(),lopt.end(),lopt.begin(), ::tolower); if(lopt=="playlist") { // We handle playlist here if(param.empty()) return ERR_MISSING_PARAM; - entry = parse_playlist_file(config.libinput,param); + entry = PlayTree::parse_playlist_file(config.libinput,param); if(!entry) { mpxp_err<<"Playlist parsing failed: "<<param<<std::endl; return 1; @@ -242,8 +242,8 @@ } if(entry) { - if(config.last_entry) play_tree_append_entry(config.last_entry,entry); - else play_tree_set_child(config.pt,entry); + if(config.last_entry) config.last_entry->append_entry(entry); + else config.pt->set_child(entry); config.last_entry = entry; if(config.parser_mode == COMMAND_LINE) UNSET_GLOBAL(config); return 1; @@ -449,15 +449,15 @@ } out: if(ret >= 0 && ! IS_RUNNING(config) && ! IS_GLOBAL(config) && ! (conf[i].flags & CONF_GLOBAL) && conf[i].type != CONF_TYPE_SUBCONFIG ) { - play_tree_t* dest = config.last_entry ? config.last_entry : config.last_parent; + PlayTree* dest = config.last_entry ? config.last_entry : config.last_parent; std::string o; if(config.sub_conf) o=std::string(config.sub_conf)+":"+opt; else o=opt; if(ret == 0) - play_tree_set_param(dest,o,""); + dest->set_param(o,""); else if(ret > 0) - play_tree_set_param(dest,o,param); + dest->set_param(o,param); m_config_pop(config); } return ret; @@ -728,12 +728,12 @@ continue; } if(opt[0] == '{' && opt[1] == '\0') { - play_tree_t* entry = play_tree_new(); + PlayTree* entry = new(zeromem) PlayTree; UNSET_GLOBAL(config); if(config.last_entry == NULL) { - play_tree_set_child(config.last_parent,entry); + config.last_parent->set_child(entry); } else { - play_tree_append_entry(config.last_entry,entry); + config.last_entry->append_entry(entry); config.last_entry = NULL; } config.last_parent = entry; @@ -741,12 +741,12 @@ } if(opt[0] == '}' && opt[1] == '\0') { - if( ! config.last_parent || ! config.last_parent->parent) { + if( ! config.last_parent || ! config.last_parent->get_parent()) { mpxp_err<<"too much }-"<<std::endl; goto err_out; } config.last_entry = config.last_parent; - config.last_parent = config.last_entry->parent; + config.last_parent = config.last_entry->get_parent(); continue; } @@ -788,14 +788,14 @@ break; } } else /* filename */ { - play_tree_t* entry = play_tree_new(); + PlayTree* entry = new(zeromem) PlayTree; mpxp_dbg2<<"Adding file "<<argv[i]<<std::endl; - play_tree_add_file(entry,argv[i]); + entry->add_file(argv[i]); if(argv[i]=="-") m_config_set_option(config,"use-stdin",NULL); /* opt is not an option -> treat it as a filename */ UNSET_GLOBAL(config); // We start entry specific options - if(config.last_entry == NULL) play_tree_set_child(config.last_parent,entry); - else play_tree_append_entry(config.last_entry,entry); + if(config.last_entry == NULL) config.last_parent->set_child(entry); + else config.last_entry->append_entry(entry); config.last_entry = entry; } } Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-27 16:37:25 UTC (rev 608) @@ -10,8 +10,8 @@ namespace mpxp { struct libinput_t; + struct PlayTree; } -struct play_tree_t; /* config types */ enum { CONF_TYPE_FLAG =0, @@ -64,9 +64,9 @@ int parser_mode; /* COMMAND_LINE or CONFIG_FILE */ int flags; const char* sub_conf; // When we save a subconfig - play_tree_t* pt; // play tree we use for playlist option, etc - play_tree_t* last_entry; // last added entry - play_tree_t* last_parent; // if last_entry is NULL we must create child of this + PlayTree* pt; // play tree we use for playlist option, etc + PlayTree* last_entry; // last added entry + PlayTree* last_parent; // if last_entry is NULL we must create child of this int recursion_depth; libinput_t& libinput; }; @@ -96,7 +96,7 @@ MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm); } -m_config_t& m_config_new(play_tree_t* pt,libinput_t&libinput); +m_config_t& m_config_new(PlayTree* pt,libinput_t&libinput); void m_config_free(m_config_t* config); Modified: mplayerxp/libplaytree/asxparser.cpp =================================================================== --- mplayerxp/libplaytree/asxparser.cpp 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libplaytree/asxparser.cpp 2012-12-27 16:37:25 UTC (rev 608) @@ -295,7 +295,7 @@ return 1; } -void ASX_Parser::param(ASX_Attrib& cattribs, play_tree_t* pt) const { +void ASX_Parser::param(ASX_Attrib& cattribs, PlayTree* pt) const { std::string name,val; name = cattribs.get("NAME"); @@ -310,10 +310,10 @@ else mpxp_warn<<std::endl; return; } - play_tree_set_param(pt,name,val); + pt->set_param(name,val); } -void ASX_Parser::ref(ASX_Attrib& cattribs, play_tree_t* pt) const { +void ASX_Parser::ref(ASX_Attrib& cattribs, PlayTree* pt) const { std::string href; href = cattribs.get("HREF"); @@ -325,12 +325,12 @@ if (href.substr(0,7)=="http://") { href = "mms"+href; } - play_tree_add_file(pt,href); + pt->add_file(href); mpxp_v<<"Adding file "<<href<<" to element entry"<<std::endl; } -play_tree_t* ASX_Parser::entryref(libinput_t& libinput,const char* buffer,ASX_Attrib& _attribs) const { - play_tree_t* pt; +PlayTree* ASX_Parser::entryref(libinput_t& libinput,const char* buffer,ASX_Attrib& _attribs) const { + PlayTree* pt; std::string href; Stream* stream; play_tree_parser_t* ptp; @@ -363,13 +363,13 @@ return pt; } -play_tree_t* ASX_Parser::entry(const char* buffer,ASX_Attrib& _attribs) { +PlayTree* ASX_Parser::entry(const char* buffer,ASX_Attrib& _attribs) { ASX_Element element; int r,nref=0; - play_tree_t *pt_ref; + PlayTree *pt_ref; UNUSED(_attribs); - pt_ref = play_tree_new(); + pt_ref = new(zeromem) PlayTree; while(buffer && buffer[0] != '\0') { r = get_element(&buffer,element); @@ -386,28 +386,29 @@ } else mpxp_dbg2<<"Ignoring element "<<element.name()<<std::endl; } if(nref <= 0) { - play_tree_free(pt_ref,1); + pt_ref->free(1); + delete pt_ref; return NULL; } return pt_ref; } -play_tree_t* ASX_Parser::repeat(libinput_t&libinput,const char* buffer,ASX_Attrib& _attribs) { +PlayTree* ASX_Parser::repeat(libinput_t&libinput,const char* buffer,ASX_Attrib& _attribs) { ASX_Element element; - play_tree_t *pt_repeat, *list=NULL, *pt_entry; + PlayTree *pt_repeat, *list=NULL, *pt_entry; std::string count; int r; - pt_repeat = play_tree_new(); + pt_repeat = new(zeromem) PlayTree; count = _attribs.get("COUNT"); if(count.empty()) { mpxp_dbg2<<"Setting element repeat loop to infinit"<<std::endl; - pt_repeat->loop = -1; // Infinit + pt_repeat->set_loop(-1); // Infinit } else { - pt_repeat->loop = ::atoi(count.c_str()); - if(pt_repeat->loop == 0) pt_repeat->loop = 1; - mpxp_dbg2<<"Setting element repeat loop to "<<pt_repeat->loop<<std::endl; + pt_repeat->set_loop(::atoi(count.c_str())); + if(pt_repeat->get_loop() == 0) pt_repeat->set_loop(1); + mpxp_dbg2<<"Setting element repeat loop to "<<pt_repeat->get_loop()<<std::endl; } while(buffer && buffer[0] != '\0') { @@ -422,21 +423,21 @@ pt_entry = entry(element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; - else play_tree_append_entry(list,pt_entry); + else list->append_entry(pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to repeat"<<std::endl; } } else if(uname=="ENTRYREF") { pt_entry = entryref(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; - else play_tree_append_entry(list,pt_entry); + else list->append_entry(pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to repeat"<<std::endl; } } else if(uname=="REPEAT") { pt_entry = repeat(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; - else play_tree_append_entry(list,pt_entry); + else list->append_entry(pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to repeat"<<std::endl; } } else if(uname=="PARAM") { @@ -445,17 +446,18 @@ } if(!list) { - play_tree_free(pt_repeat,1); + pt_repeat->free(1); + delete pt_repeat; return NULL; } - play_tree_set_child(pt_repeat,list); + pt_repeat->set_child(list); return pt_repeat; } -play_tree_t* ASX_Parser::build_tree(libinput_t&libinput,const char* buffer,int deep) { +PlayTree* ASX_Parser::build_tree(libinput_t&libinput,const char* buffer,int deep) { ASX_Element asx_element,element; int r; - play_tree_t *asx,*pt_entry,*list = NULL; + PlayTree *asx,*pt_entry,*list = NULL; ASX_Parser& parser = *new(zeromem) ASX_Parser; parser.line = 1; @@ -486,7 +488,7 @@ return NULL; } - asx = play_tree_new(); + asx = new(zeromem) PlayTree; buffer = asx_element.body().c_str(); while(buffer && buffer[0] != '\0') { r = parser.get_element(&buffer,element); @@ -501,21 +503,21 @@ pt_entry = parser.entry(element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; - else play_tree_append_entry(list,pt_entry); + else list->append_entry(pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to asx"<<std::endl; } } else if(uname=="ENTRYREF") { pt_entry = parser.entryref(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; - else play_tree_append_entry(list,pt_entry); + else list->append_entry(pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to asx"<<std::endl; } } else if(uname=="REPEAT") { pt_entry = parser.repeat(libinput,element.body().c_str(),element.attribs()); if(pt_entry) { if(!list) list = pt_entry; - else play_tree_append_entry(list,pt_entry); + else list->append_entry(pt_entry); mpxp_dbg2<<"Adding element "<<element.name()<<" to asx"<<std::endl; } } else mpxp_dbg2<<"Ignoring element "<<element.name()<<std::endl; @@ -524,10 +526,11 @@ delete &parser; if(!list) { - play_tree_free(asx,1); + asx->free(1); + delete asx; return NULL; } - play_tree_set_child(asx,list); + asx->set_child(list); return asx; } } // namespace mpxp Modified: mplayerxp/libplaytree/asxparser.h =================================================================== --- mplayerxp/libplaytree/asxparser.h 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libplaytree/asxparser.h 2012-12-27 16:37:25 UTC (rev 608) @@ -51,7 +51,7 @@ ASX_Parser(); virtual ~ASX_Parser(); - static play_tree_t* build_tree(libinput_t& libinput,const char* buffer, int ref); + static PlayTree* build_tree(libinput_t& libinput,const char* buffer, int ref); virtual int parse_attribs(const char* buffer,ASX_Attrib& _attribs) const; /* @@ -60,13 +60,13 @@ virtual int get_element(const char** _buffer,ASX_Element& _attribs); int get_line() const { return line; } private: - play_tree_t* repeat(libinput_t&libinput,const char* buffer,ASX_Attrib& _attribs); + PlayTree* repeat(libinput_t&libinput,const char* buffer,ASX_Attrib& _attribs); void warning_attrib_required(const char *elem, const char *attr) const; void warning_body_parse_error(const char *elem) const; - void param(ASX_Attrib& attribs, play_tree_t* pt) const; - void ref(ASX_Attrib& attribs, play_tree_t* pt) const; - play_tree_t* entryref(libinput_t& libinput,const char* buffer,ASX_Attrib& _attribs) const; - play_tree_t* entry(const char* buffer,ASX_Attrib& _attribs); + void param(ASX_Attrib& attribs, PlayTree* pt) const; + void ref(ASX_Attrib& attribs, PlayTree* pt) const; + PlayTree* entryref(libinput_t& libinput,const char* buffer,ASX_Attrib& _attribs) const; + PlayTree* entry(const char* buffer,ASX_Attrib& _attribs); int line; // Curent line ASX_LineSave_t* ret_stack; Modified: mplayerxp/libplaytree/playtree.cpp =================================================================== --- mplayerxp/libplaytree/playtree.cpp 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libplaytree/playtree.cpp 2012-12-27 16:37:25 UTC (rev 608) @@ -13,168 +13,133 @@ #include "playtree.h" #include "playtree_msg.h" -static int -play_tree_is_valid(play_tree_t* pt); +namespace mpxp { -play_tree_t* -play_tree_new(void) { - play_tree_t* r = (play_tree_t*)mp_calloc(1,sizeof(play_tree_t)); - if(r == NULL) - mpxp_err<<"Can't allocate memory"<<std::endl; - r->entry_type = PLAY_TREE_ENTRY_NODE; - return r; -} +PlayTree::PlayTree() + :entry_type(PLAY_TREE_ENTRY_NODE) {} +PlayTree::~PlayTree() {} -void -play_tree_free(play_tree_t* pt, int childs) { - play_tree_t* iter; +void PlayTree::free(int childs) { + PlayTree* iter; - if(childs) { - for(iter = pt->child; iter != NULL; ) { - play_tree_t* nxt=iter->next; - play_tree_free(iter,1); - iter = nxt; + if(childs) { + for(iter = child; iter != NULL; ) { + PlayTree* nxt=iter->next; + iter->free(1); + delete iter; + iter = nxt; + } + child = NULL; } - pt->child = NULL; - } + remove(0,0); + for(iter = child ; iter != NULL ; iter = iter->next) iter->parent = NULL; +} - play_tree_remove(pt,0,0); +void PlayTree::free_list(int childs) { + PlayTree* iter; - for(iter = pt->child ; iter != NULL ; iter = iter->next) - iter->parent = NULL; - - delete pt; + for(iter = this ; iter->prev != NULL ; iter = iter->prev) /* NOTHING */; + while(iter) { + PlayTree* nxt = iter->next; + iter->free(childs); + delete iter; + iter = nxt; + } } -void -play_tree_free_list(play_tree_t* pt, int childs) { - play_tree_t* iter; +MPXP_Rc PlayTree::is_valid() const { + PlayTree* iter; - for(iter = pt ; iter->prev != NULL ; iter = iter->prev) - /* NOTHING */; - - while(iter) { - play_tree_t* nxt = iter->next; - play_tree_free(iter, childs); - iter = nxt; - } - + if(entry_type != PLAY_TREE_ENTRY_NODE) return MPXP_Ok; + else if (child != NULL) { + for(iter = child ; iter != NULL ; iter = iter->next) { + if(iter->is_valid()) return MPXP_Ok; + } + } + return MPXP_False; } -void -play_tree_append_entry(play_tree_t* pt, play_tree_t* entry) { - play_tree_t* iter; +void PlayTree::append_entry(PlayTree* entry) { + PlayTree* iter; - if(pt == entry) - return; + if(this == entry) return; - for(iter = pt ; iter->next != NULL ; iter = iter->next) - /* NOTHING */; + for(iter = this; iter->next != NULL ; iter = iter->next) /* NOTHING */; - entry->parent = iter->parent; - entry->prev = iter; - entry->next = NULL; - iter->next = entry; + entry->parent = iter->parent; + entry->prev = iter; + entry->next = NULL; + iter->next = entry; } -void -play_tree_prepend_entry(play_tree_t* pt, play_tree_t* entry) { - play_tree_t* iter; +void PlayTree::prepend_entry(PlayTree* entry) { + PlayTree* iter; - for(iter = pt ; iter->prev != NULL; iter = iter->prev) - /* NOTHING */; + for(iter = this ; iter->prev != NULL; iter = iter->prev) /* NOTHING */; - entry->prev = NULL; - entry->next = iter; - entry->parent = iter->parent; + entry->prev = NULL; + entry->next = iter; + entry->parent = iter->parent; - iter->prev = entry; - if(entry->parent) { - entry->parent->child = entry; - } + iter->prev = entry; + if(entry->parent) entry->parent->child = entry; } -void -play_tree_insert_entry(play_tree_t* pt, play_tree_t* entry) { - - entry->parent = pt->parent; - entry->prev = pt; - if(pt->next) { - entry->next = pt->next; - entry->next->prev = entry; - } else - entry->next = NULL; - pt->next = entry; - +void PlayTree::insert_entry(PlayTree* entry) { + entry->parent = parent; + entry->prev = this; + if(next) { + entry->next = next; + entry->next->prev = entry; + } else entry->next = NULL; + next = entry; } -void -play_tree_remove(play_tree_t* pt, int free_it,int with_childs) { - - // Middle of list - if(pt->prev && pt->next) { - pt->prev->next = pt->next; - pt->next->prev = pt->prev; - } // End of list - else if(pt->prev) { - pt->prev->next = NULL; - } // Begining of list - else if(pt->next) { - pt->next->prev = NULL; - if(pt->parent) { - pt->parent->child = pt->next; +void PlayTree::remove(int free_it,int with_childs) { + // Middle of list + if(prev && next) { + prev->next = next; + next->prev = prev; + } // End of list + else if(prev) { + prev->next = NULL; + } // Begining of list + else if(next) { + next->prev = NULL; + if(parent) parent->child = next; + } // The only one + else if(parent) { + parent->child = NULL; } - } // The only one - else if(pt->parent) { - pt->parent->child = NULL; - } - - pt->prev = pt->next = pt->parent = NULL; - if(free_it) - play_tree_free(pt,with_childs); - + prev = next = parent = NULL; + if(free_it) free(with_childs); } -void -play_tree_set_child(play_tree_t* pt, play_tree_t* child) { - play_tree_t* iter; +void PlayTree::set_child(PlayTree* _child) { + PlayTree* iter; - for(iter = pt->child ; iter != NULL ; iter = iter->next) - iter->parent = NULL; - - // Go back to first one - for(iter = child ; iter->prev != NULL ; iter = iter->prev) - /* NOTHING */; - - pt->child = iter; - - for( ; iter != NULL ; iter= iter->next) - iter->parent = pt; - + for(iter = _child ; iter != NULL ; iter = iter->next) iter->parent = NULL; + // Go back to first one + for(iter = _child ; iter->prev != NULL ; iter = iter->prev) /* NOTHING */; + child = iter; + for( ; iter != NULL ; iter= iter->next) iter->parent = this; } -void -play_tree_set_parent(play_tree_t* pt, play_tree_t* parent) { - play_tree_t* iter; +void PlayTree::set_parent(PlayTree* _parent) { + PlayTree* iter; - if(pt->parent) - pt->parent->child = NULL; - - for(iter = pt ; iter != NULL ; iter = iter->next) - iter->parent = parent; - - if(pt->prev) { - for(iter = pt->prev ; iter->prev != NULL ; iter = iter->prev) - iter->parent = parent; - iter->parent = parent; - parent->child = iter; - } else - parent->child = pt; + if(_parent) _parent->child = NULL; + for(iter = this ; iter != NULL ; iter = iter->next) iter->parent = _parent; + if(prev) { + for(iter = prev ; iter->prev != NULL ; iter = iter->prev) iter->parent = _parent; + iter->parent=_parent; + _parent->child=iter; + } else _parent->child = this; } -void play_tree_add_file(play_tree_t* pt,const std::string& file) { - if(pt->entry_type != PLAY_TREE_ENTRY_NODE && - pt->entry_type != PLAY_TREE_ENTRY_FILE) +void PlayTree::add_file(const std::string& file) { + if(entry_type != PLAY_TREE_ENTRY_NODE && + entry_type != PLAY_TREE_ENTRY_FILE) return; size_t pos; @@ -182,131 +147,156 @@ std::transform(lf.begin(),lf.end(),lf.begin(), ::tolower); if(lf.substr(0,6)=="vcd://") { - pt->entry_type = PLAY_TREE_ENTRY_VCD; + entry_type = PLAY_TREE_ENTRY_VCD; pos=6; } else if(lf.substr(0,6)=="dvd://") { - pt->entry_type = PLAY_TREE_ENTRY_DVD; + entry_type = PLAY_TREE_ENTRY_DVD; pos=6; } else if(lf.substr(0,5)=="tv://") { - pt->entry_type = PLAY_TREE_ENTRY_TV; + entry_type = PLAY_TREE_ENTRY_TV; pos=5; } else { - pt->entry_type = PLAY_TREE_ENTRY_FILE; + entry_type = PLAY_TREE_ENTRY_FILE; pos=0; } tail=file.substr(pos); - pt->files.push_back(tail); + files.push_back(tail); } -MPXP_Rc play_tree_remove_file(play_tree_t* pt,const std::string& file) { +MPXP_Rc PlayTree::remove_file(const std::string& file) { int f = -1; - size_t n,sz=pt->files.size(); + size_t n,sz=files.size(); - for(n=0; n<sz; n++) if(file==pt->files[n]) f = n; + for(n=0; n<sz; n++) if(file==files[n]) f = n; if(f < 0) return MPXP_False; // Not found - pt->files.erase(pt->files.begin()+f); + files.erase(files.begin()+f); return MPXP_Ok; } -void play_tree_set_param(play_tree_t* pt,const std::string& name,const std::string& val) { +void PlayTree::set_param(const std::string& name,const std::string& val) { int ni = -1; - size_t n,sz=pt->params.size(); + size_t n,sz=params.size(); std::string lname=name; std::transform(lname.begin(),lname.end(),lname.begin(), ::tolower); - if(!pt->params.empty()) { + if(!params.empty()) { for(n=0; n<sz; n++) { - std::string lparm=pt->params[n].name; + std::string lparm=params[n].name; std::transform(lparm.begin(),lparm.end(),lparm.begin(), ::tolower); if(lname==lparm) ni = n; } } if(ni > 0) { - pt->params[ni].value = val; + params[ni].value = val; return; } play_tree_param_t param; param.name=name; param.value=val; - pt->params.push_back(param); + params.push_back(param); } -MPXP_Rc play_tree_unset_param(play_tree_t* pt,const std::string& name) { +MPXP_Rc PlayTree::unset_param(const std::string& name) { int ni = -1; - size_t n,sz=pt->params.size(); + size_t n,sz=params.size(); std::string lname=name; std::transform(lname.begin(),lname.end(),lname.begin(), ::tolower); for(n=0;n<sz;n++) { - std::string lparm=pt->params[n].name; + std::string lparm=params[n].name; std::transform(lparm.begin(),lparm.end(),lparm.begin(), ::tolower); if(lname==lparm) ni = n; } if(ni < 0) return MPXP_False; - if(n > 1) pt->params.erase(pt->params.begin()+ni); - else pt->params.clear(); + if(n > 1) params.erase(params.begin()+ni); + else params.clear(); return MPXP_Ok; } -void play_tree_set_params_from(play_tree_t* dest,const play_tree_t* src) { - size_t i,sz=src->params.size(); +void PlayTree::set_params_from(const PlayTree& src) { + size_t i,sz=src.params.size(); - if(src->params.empty()) return; + if(src.params.empty()) return; for(i=0;i<sz; i++) - play_tree_set_param(dest,src->params[i].name,src->params[i].value); - if(src->flags & PLAY_TREE_RND) // pass the random flag too - dest->flags |= PLAY_TREE_RND; + set_param(src.params[i].name,src.params[i].value); + if(src.flags & PLAY_TREE_RND) // pass the random flag too + flags |= PLAY_TREE_RND; } // all children if deep < 0 -void play_tree_set_flag(play_tree_t* pt, int flags , int deep) { - play_tree_t* i; +void PlayTree::set_flag(int _flags, int deep) { + PlayTree* i; - pt->flags |= flags; + flags |= _flags; - if(deep && pt->child) { - if(deep > 0) deep--; - for(i = pt->child ; i ; i = i->next) - play_tree_set_flag(i,flags,deep); - } + if(deep && child) { + if(deep > 0) deep--; + for(i = child ; i ; i = i->get_next()) i->set_flag(_flags,deep); + } } -void play_tree_unset_flag(play_tree_t* pt, int flags , int deep) { - play_tree_t* i; +void PlayTree::unset_flag(int _flags, int deep) { + PlayTree* i; - pt->flags &= ~flags; + flags &= ~_flags; - if(deep && pt->child) { - if(deep > 0) deep--; - for(i = pt->child ; i ; i = i->next) - play_tree_unset_flag(i,flags,deep); - } + if(deep && child) { + if(deep > 0) deep--; + for(i = child ; i ; i = i->get_next()) i->unset_flag(_flags,deep); + } } -static play_tree_t* -play_tree_rnd_step(play_tree_t* pt) { +MPXP_Rc PlayTree::cleanup() { + PlayTree* iter, *tmp, *first; + + if( ! is_valid()) { + remove(1,1); + return MPXP_False; + } + + first = child; + + for(iter = child ; iter != NULL ; ) { + tmp = iter; + iter = iter->next; + if(! tmp->is_valid()) { + tmp->remove(1,1); + if(tmp == first) first = iter; + } + } + + for(iter = first ; iter != NULL ; ) { + tmp = iter; + iter = iter->next; + tmp->cleanup(); + } + return MPXP_Ok; +} + +static PlayTree* +play_tree_rnd_step(PlayTree* pt) { int count = 0; int r,rnd; time_t tim; - play_tree_t *i,*head; + PlayTree *i,*head; // Count how many mp_free choice we have - for(i = pt ; i->prev ; i = i->prev) - if(!(i->flags & PLAY_TREE_RND_PLAYED)) count++; + for(i = pt ; i->get_prev() ; i = i->get_prev()) + if(!(i->get_flags() & PLAY_TREE_RND_PLAYED)) count++; head = i; - if(!(i->flags & PLAY_TREE_RND_PLAYED)) count++; - if(pt->next) - for(i = pt->next ; i ; i = i->next) - if(!(i->flags & PLAY_TREE_RND_PLAYED)) count++; + if(!(i->get_flags() & PLAY_TREE_RND_PLAYED)) count++; + if(pt->get_next()) + for(i = pt->get_next() ; i ; i = i->get_next()) + if(!(i->get_flags() & PLAY_TREE_RND_PLAYED)) count++; if(!count) return NULL; /* make it time depended */ @@ -316,24 +306,23 @@ r = (int)(((float)(count) * rnd) / (RAND_MAX + 1.0)); if(r) rnd = r = count - (tim%r); - for(i = head ; i ; i=i->next) { - if(!(i->flags & PLAY_TREE_RND_PLAYED)) r--; + for(i = head ; i ; i=i->get_next()) { + if(!(i->get_flags() & PLAY_TREE_RND_PLAYED)) r--; if(r < 0) return i; } - for(i = head ; i ; i=i->next) { - if(!(i->flags & PLAY_TREE_RND_PLAYED)) return i; + for(i = head ; i ; i=i->get_next()) { + if(!(i->get_flags() & PLAY_TREE_RND_PLAYED)) return i; } mpxp_err<<"Random stepping error r="<<rnd<<std::endl; return NULL; } -namespace mpxp { -_PlayTree_Iter::_PlayTree_Iter(play_tree_t* pt,m_config_t& _config) +_PlayTree_Iter::_PlayTree_Iter(PlayTree* pt,m_config_t& _config) :root(pt), tree(NULL), config(_config) { - if(pt->parent) loop = pt->parent->loop; + if(pt->get_parent()) loop = pt->get_parent()->get_loop(); } _PlayTree_Iter::_PlayTree_Iter(const _PlayTree_Iter& old) @@ -348,7 +337,7 @@ _PlayTree_Iter::~_PlayTree_Iter() {} void _PlayTree_Iter::push_params() { - play_tree_t* pt; + PlayTree* pt; pt = tree; @@ -356,21 +345,21 @@ // while playing m_config_push(config); - if(pt->params.empty()) return; - size_t n,sz=pt->params.size(); + if(pt->get_params().empty()) return; + size_t n,sz=pt->get_params().size(); for(n=0; n<sz; n++) { int e; - if((e = m_config_set_option(config,pt->params[n].name,pt->params[n].value)) < 0) - mpxp_err<<"Error "<<e<<" while setting option '"<<pt->params[n].name<<"' with value '"<<pt->params[n].value<<"'"<<std::endl; + if((e = m_config_set_option(config,pt->get_param(n).name,pt->get_param(n).value)) < 0) + mpxp_err<<"Error "<<e<<" while setting option '"<<pt->get_param(n).name<<"' with value '"<<pt->get_param(n).value<<"'"<<std::endl; } - if(!pt->child) entry_pushed = 1; + if(!pt->get_child()) entry_pushed = 1; return; } int _PlayTree_Iter::step(int d,int with_nodes) { - play_tree_t* pt; + PlayTree* pt; int rnd; if(tree == NULL) { @@ -383,7 +372,7 @@ m_config_pop(config); } - if(tree->parent && (tree->parent->flags & PLAY_TREE_RND)) + if(tree->get_parent() && (tree->get_parent()->get_flags() & PLAY_TREE_RND)) rnd=mode = PLAY_TREE_ITER_RND; else rnd=mode = PLAY_TREE_ITER_NORMAL; @@ -393,30 +382,30 @@ else if( d > 0 ) { int i; pt = tree; - for(i = d ; i > 0 && pt ; i--) pt = pt->next; + for(i = d ; i > 0 && pt ; i--) pt = pt->get_next(); d = i ? i : 1; } else if(d < 0) { int i; pt = tree; - for(i = d ; i < 0 && pt ; i++) pt = pt->prev; + for(i = d ; i < 0 && pt ; i++) pt = pt->get_prev(); d = i ? i : -1; } else pt = tree; if(pt == NULL) { // No next // Must we loop? if (mode == PLAY_TREE_ITER_RND) { - if (root->loop == 0) return PLAY_TREE_ITER_END; - play_tree_unset_flag(root, PLAY_TREE_RND_PLAYED, -1); - if (root->loop > 0) root->loop--; + if (root->get_loop() == 0) return PLAY_TREE_ITER_END; + root->unset_flag(PLAY_TREE_RND_PLAYED, -1); + if (root->get_loop() > 0) root->set_loop(root->get_loop()-1); // try again return step(0, with_nodes); - } else if(tree->parent && tree->parent->loop != 0 && ((d > 0 && loop != 0) || ( d < 0 && (loop < 0 || loop < tree->parent->loop)))) { + } else if(tree->get_parent() && tree->get_parent()->get_loop() != 0 && ((d > 0 && loop != 0) || ( d < 0 && (loop < 0 || loop < tree->get_parent()->get_loop())))) { if(d > 0) { // Go back to the first one - for(pt = tree ; pt->prev != NULL; pt = pt->prev) /* NOTHNG */; + for(pt = tree ; pt->get_prev() != NULL; pt = pt->get_prev()) /* NOTHNG */; if(loop > 0) loop--; } else if( d < 0 ) { // Or the last one - for(pt = tree ; pt->next != NULL; pt = pt->next) /* NOTHNG */; - if(loop >= 0 && loop < tree->parent->loop) loop++; + for(pt = tree ; pt->get_next() != NULL; pt = pt->get_next()) /* NOTHNG */; + if(loop >= 0 && loop < tree->get_parent()->get_loop()) loop++; } tree = pt; return step(0,with_nodes); @@ -425,7 +414,7 @@ return up_step(d,with_nodes); } // Is there any valid child? - if(pt->child && play_tree_is_valid(pt->child)) { + if(pt->get_child() && pt->get_child()->is_valid()) { tree = pt; if(with_nodes) { // Stop on the node return PLAY_TREE_ITER_NODE; @@ -433,7 +422,7 @@ return down_step(d,with_nodes); } // Is it a valid entry? - if(! play_tree_is_valid(pt)) { + if(! pt->is_valid()) { if(d == 0 && rnd==PLAY_TREE_ITER_NORMAL) { // Can this happen ? FF: Yes! mpxp_err<<"What to do now ???? Infinite loop if we continue"<<std::endl; return PLAY_TREE_ITER_ERROR; @@ -443,25 +432,25 @@ tree = pt; - num_files = tree->files.size(); + num_files = tree->get_files().size(); push_params(); entry_pushed = 1; - if(mode == PLAY_TREE_ITER_RND) pt->flags |= PLAY_TREE_RND_PLAYED; + if(mode == PLAY_TREE_ITER_RND) pt->set_flags(pt->get_flags()|PLAY_TREE_RND_PLAYED); return PLAY_TREE_ITER_ENTRY; } int _PlayTree_Iter::up_step(int d,int with_nodes) { file = -1; - if(tree->parent == root->parent) return PLAY_TREE_ITER_END; + if(tree->get_parent() == root->get_parent()) return PLAY_TREE_ITER_END; loop = status_stack.top(); status_stack.pop(); - tree = tree->parent; + tree = tree->get_parent(); // Pop subtree params m_config_pop(config); - if(mode == PLAY_TREE_ITER_RND) tree->flags |= PLAY_TREE_RND_PLAYED; + if(mode == PLAY_TREE_ITER_RND) tree->set_flags(tree->get_flags()|PLAY_TREE_RND_PLAYED); return step(d,with_nodes); } @@ -473,11 +462,11 @@ status_stack.push(loop); // Set new status - loop = tree->loop-1; - if(d >= 0) tree = tree->child; + loop = tree->get_loop()-1; + if(d >= 0) tree = tree->get_child(); else { - play_tree_t* pt; - for(pt = tree->child ; pt->next != NULL ; pt = pt->next) /*NOTING*/; + PlayTree* pt; + for(pt = tree->get_child() ; pt->get_next() != NULL ; pt = pt->get_next()) /*NOTING*/; tree = pt; } return step(0,with_nodes); @@ -486,7 +475,7 @@ std::string _PlayTree_Iter::get_file(int d) { std::string entry; - if(tree->files.empty()) return ""; + if(tree->get_files().empty()) return ""; if(file >= num_files-1 || file < -1) return ""; if(d > 0) { if(file >= num_files - 1) file = 0; @@ -495,9 +484,9 @@ if(file <= 0) file = num_files - 1; else file--; } - entry = tree->files[file]; + entry = tree->get_file(file); - switch(tree->entry_type) { + switch(tree->get_entry_type()) { case PLAY_TREE_ENTRY_DVD : if(entry.length() == 0) entry = "1"; m_config_set_option(config,"dvd",entry); @@ -531,73 +520,6 @@ } // namespace mpxp - -static int -play_tree_is_valid(play_tree_t* pt) { - play_tree_t* iter; - - if(pt->entry_type != PLAY_TREE_ENTRY_NODE) { - return 1; - } - else if (pt->child != NULL) { - for(iter = pt->child ; iter != NULL ; iter = iter->next) { - if(play_tree_is_valid(iter)) - return 1; - } - } - return 0; -} - -play_tree_t* -play_tree_cleanup(play_tree_t* pt) { - play_tree_t* iter, *tmp, *first; - - if( ! play_tree_is_valid(pt)) { - play_tree_remove(pt,1,1); - return NULL; - } - - first = pt->child; - - for(iter = pt->child ; iter != NULL ; ) { - tmp = iter; - iter = iter->next; - if(! play_tree_is_valid(tmp)) { - play_tree_remove(tmp,1,1); - if(tmp == first) first = iter; - } - } - - for(iter = first ; iter != NULL ; ) { - tmp = iter; - iter = iter->next; - play_tree_cleanup(tmp); - } - - return pt; - -} - -// HIGH Level API, by Fabian Franz (mp...@fa...) -// -_PlayTree_Iter* pt_iter_create(play_tree_t** ppt, m_config_t& config) -{ - _PlayTree_Iter* r=NULL; - - *ppt=play_tree_cleanup(*ppt); - - if(*ppt) { - r = new _PlayTree_Iter(*ppt,config); - if (r && r->step(0,0) != PLAY_TREE_ITER_ENTRY) - { - delete r; - r = NULL; - } - } - - return r; -} - void pt_iter_destroy(_PlayTree_Iter** iter) { if (iter && *iter) @@ -627,40 +549,40 @@ return r; } -void pt_iter_insert_entry(_PlayTree_Iter* iter, play_tree_t* entry) +void pt_iter_insert_entry(_PlayTree_Iter* iter, PlayTree* entry) { - play_tree_t *pt = iter->get_tree(); + PlayTree *pt = iter->get_tree(); - play_tree_insert_entry(pt, entry); - play_tree_set_params_from(entry,pt); + pt->insert_entry(entry); + entry->set_params_from(*pt); } -void pt_iter_replace_entry(_PlayTree_Iter* iter, play_tree_t* entry) +void pt_iter_replace_entry(_PlayTree_Iter* iter, PlayTree* entry) { - play_tree_t *pt = iter->get_tree(); + PlayTree *pt = iter->get_tree(); pt_iter_insert_entry(iter, entry); - play_tree_remove(pt, 1, 1); + pt->remove(1, 1); iter->set_tree(entry); } //Add a new file as a new entry -void pt_add_file(play_tree_t** ppt,const std::string& filename) +void pt_add_file(PlayTree** ppt,const std::string& filename) { - play_tree_t *pt = *ppt, *entry = play_tree_new(); + PlayTree *pt = *ppt, *entry = new(zeromem) PlayTree; - play_tree_add_file(entry, filename); + entry->add_file(filename); if (pt) - play_tree_append_entry(pt, entry); + pt->append_entry(entry); else { pt=entry; *ppt=pt; } - play_tree_set_params_from(entry,pt); + entry->set_params_from(*pt); } -void pt_add_gui_file(play_tree_t** ppt,const std::string& path,const std::string& file) +void pt_add_gui_file(PlayTree** ppt,const std::string& path,const std::string& file) { std::string wholename; Modified: mplayerxp/libplaytree/playtree.h =================================================================== --- mplayerxp/libplaytree/playtree.h 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libplaytree/playtree.h 2012-12-27 16:37:25 UTC (rev 608) @@ -44,29 +44,75 @@ /// \defgroup Playtree ///@{ -struct play_tree_param_t { - std::string name; - std::string value; -}; +namespace mpxp { + struct play_tree_param_t { + std::string name; + std::string value; + }; -struct play_tree_t { - play_tree_t* parent; - play_tree_t* child; - play_tree_t* next; - play_tree_t* prev; + class PlayTree : public Opaque { + public: + PlayTree(); + virtual ~PlayTree(); - //play_tree_info_t info; - std::vector<play_tree_param_t> params; - int loop; - std::vector<std::string> files; - int entry_type; - int flags; -}; + static PlayTree* parse_playtree(libinput_t& libinput,Stream* stream); + static PlayTree* parse_playlist_file(libinput_t&libinput,const std::string& file); + virtual MPXP_Rc cleanup(); + // If childs is true mp_free also the childs + virtual void free(int childs); + virtual void free_list(int childs); -namespace mpxp { + virtual void set_child(PlayTree* child); + virtual void set_parent(PlayTree* parent); + // Add at end + virtual void append_entry(PlayTree* entry); + // And on begining + virtual void prepend_entry(PlayTree* entry); + // Insert after + virtual void insert_entry(PlayTree* entry); + // Detach from the tree + virtual void remove(int free_it,int with_childs); + virtual void add_file(const std::string& file); + virtual MPXP_Rc remove_file(const std::string& file); + virtual void set_param(const std::string& name,const std::string& val); + virtual MPXP_Rc unset_param(const std::string& name); + /// Copy the config parameters from one item to another. + virtual void set_params_from(const PlayTree& src); + virtual void set_flag(int flags, int deep); + virtual void unset_flag(int flags, int deep); + virtual MPXP_Rc is_valid() const; + + PlayTree* get_parent() const { return parent; } + PlayTree* get_child() const { return child; } + PlayTree* get_prev() const { return prev; } + PlayTree* get_next() const { return next; } + void set_prev(PlayTree* p) { prev=p; } + void set_next(PlayTree* p) { next=p; } + const std::string& get_file(size_t idx) const { return files[idx]; } + const std::vector<std::string>& get_files() const { return files; } + const play_tree_param_t& get_param(size_t idx) const { return params[idx]; } + const std::vector<play_tree_param_t>&get_params() const { return params; } + int get_entry_type() const { return entry_type; } + int get_loop() const { return loop; } + void set_loop(int l) { loop=l; } + int get_flags() const { return flags; } + void set_flags(int f) { flags=f; } + private: + PlayTree* parent; + PlayTree* child; + PlayTree* next; + PlayTree* prev; + + std::vector<play_tree_param_t> params; + int loop; + std::vector<std::string> files; + int entry_type; + int flags; + }; + struct _PlayTree_Iter : public Opaque { public: - _PlayTree_Iter(play_tree_t* parent,m_config_t& config); + _PlayTree_Iter(PlayTree* parent,m_config_t& config); _PlayTree_Iter(const _PlayTree_Iter& old); virtual ~_PlayTree_Iter(); @@ -79,16 +125,16 @@ virtual int down_step(int d,int with_nodes); virtual std::string get_file(int d); - play_tree_t* get_root() const { return root; } - play_tree_t* get_tree() const { return tree; } - void set_tree(play_tree_t* _tree) { tree=_tree; } + PlayTree* get_root() const { return root; } + PlayTree* get_tree() const { return tree; } + void set_tree(PlayTree* _tree) { tree=_tree; } void reset_tree() { tree=root; } int get_file() const { return file; } int get_num_files() const { return num_files; } private: void push_params(); - play_tree_t* root; // Iter root tree - play_tree_t* tree; // Current tree + PlayTree* root; // Iter root tree + PlayTree* tree; // Current tree m_config_t& config; int loop; // Looping status int file; @@ -99,72 +145,13 @@ std::stack<int> status_stack; }; } // namespace mpxp -play_tree_t* parse_playtree(libinput_t& libinput,Stream* stream); -play_tree_t* play_tree_cleanup(play_tree_t* pt); - -play_tree_t* parse_playlist_file(libinput_t&libinput,const std::string& file); - -play_tree_t* play_tree_new(void); - -// If childs is true mp_free also the childs -void -play_tree_free(play_tree_t* pt, int childs); - - -void -play_tree_free_list(play_tree_t* pt, int childs); - - -// Childs -void -play_tree_set_child(play_tree_t* pt, play_tree_t* child); -// Or parent -void -play_tree_set_parent(play_tree_t* pt, play_tree_t* parent); - - -// Add at end -void -play_tree_append_entry(play_tree_t* pt, play_tree_t* entry); - -// And on begining -void -play_tree_prepend_entry(play_tree_t* pt, play_tree_t* entry); - -// Insert after -void -play_tree_insert_entry(play_tree_t* pt, play_tree_t* entry); - -// Detach from the tree -void -play_tree_remove(play_tree_t* pt, int free_it,int with_childs); - - -void -play_tree_add_file(play_tree_t* pt,const std::string& file); - -MPXP_Rc play_tree_remove_file(play_tree_t* pt,const std::string& file); - -// Val can be NULL -void -play_tree_set_param(play_tree_t* pt,const std::string& name,const std::string& val); - -MPXP_Rc play_tree_unset_param(play_tree_t* pt,const std::string& name); -/// Copy the config parameters from one item to another. -void -play_tree_set_params_from(play_tree_t* dest,const play_tree_t* src); - - /// \defgroup PtAPI Playtree highlevel API /// \ingroup Playtree /// Highlevel API with pt-suffix to different from low-level API /// by Fabian Franz (mp...@fa...). ///@{ -// Cleans up pt and creates a new iter. -_PlayTree_Iter* pt_iter_create(play_tree_t** pt, struct m_config* config); - /// Frees the iter. void pt_iter_destroy(_PlayTree_Iter** iter); @@ -176,21 +163,21 @@ static inline std::string pt_iter_get_prev_file(_PlayTree_Iter* iter) { return pt_iter_get_file(iter, -1); } /// Inserts entry into the playtree. -void pt_iter_insert_entry(_PlayTree_Iter* iter, play_tree_t* entry); +void pt_iter_insert_entry(_PlayTree_Iter* iter, PlayTree* entry); /// Replaces current entry in playtree with entry by doing insert and remove. -void pt_iter_replace_entry(_PlayTree_Iter* iter, play_tree_t* entry); +void pt_iter_replace_entry(_PlayTree_Iter* iter, PlayTree* entry); /// Adds a new file to the playtree, if it is not valid it is created. -void pt_add_file(play_tree_t** ppt,const std::string& filename); +void pt_add_file(PlayTree** ppt,const std::string& filename); /// \brief Performs a convert to playtree-syntax, by concat path/file /// and performs pt_add_file -void pt_add_gui_file(play_tree_t** ppt,const std::string& path,const std::string& file); +void pt_add_gui_file(PlayTree** ppt,const std::string& path,const std::string& file); // Two macros to use only the iter and not the other things. -static inline void pt_iter_add_file(_PlayTree_Iter* iter, const std::string& filename) { play_tree_t* tree=iter->get_tree(); pt_add_file(&tree, filename); } -static inline void pt_iter_add_gui_file(_PlayTree_Iter* iter,const std::string& path,const std::string& name) { play_tree_t* tree=iter->get_tree(); pt_add_gui_file(&tree, path, name); } +static inline void pt_iter_add_file(_PlayTree_Iter* iter, const std::string& filename) { PlayTree* tree=iter->get_tree(); pt_add_file(&tree, filename); } +static inline void pt_iter_add_gui_file(_PlayTree_Iter* iter,const std::string& path,const std::string& name) { PlayTree* tree=iter->get_tree(); pt_add_gui_file(&tree, path, name); } /// Resets the iter and goes back to head. void pt_iter_goto_head(_PlayTree_Iter* iter); Modified: mplayerxp/libplaytree/playtreeparser.cpp =================================================================== --- mplayerxp/libplaytree/playtreeparser.cpp 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libplaytree/playtreeparser.cpp 2012-12-27 16:37:25 UTC (rev 608) @@ -116,7 +116,7 @@ } -static play_tree_t* parse_asx(libinput_t& libinput,play_tree_parser_t* p) { +static PlayTree* parse_asx(libinput_t& libinput,play_tree_parser_t* p) { int comments = 0,get_line = 1; char* line = NULL; @@ -224,12 +224,12 @@ } -play_tree_t* +PlayTree* parse_pls(play_tree_parser_t* p) { char *line,*v; pls_entry_t* entries = NULL; int n_entries = 0,max_entry=0,num; - play_tree_t *list = NULL, *entry = NULL; + PlayTree *list = NULL, *entry = NULL; mpxp_v<<"Trying winamp playlist..."<<std::endl; line = play_tree_parser_get_line(p); @@ -286,11 +286,11 @@ mpxp_err<<"Entry "<<(num+1)<<" don't have a file !!!!"<<std::endl; else { mpxp_dbg2<<"Adding entry "<<entries[num].file<<std::endl; - entry = play_tree_new(); - play_tree_add_file(entry,entries[num].file); + entry = new(zeromem) PlayTree; + entry->add_file(entries[num].file); delete entries[num].file; if(list) - play_tree_append_entry(list,entry); + list->append_entry(entry); else list = entry; } @@ -306,15 +306,15 @@ delete entries; - entry = play_tree_new(); - play_tree_set_child(entry,list); + entry = new(zeromem) PlayTree; + entry->set_child(list); return entry; } -play_tree_t* +PlayTree* parse_textplain(play_tree_parser_t* p) { char* line; - play_tree_t *list = NULL, *entry = NULL; + PlayTree *list = NULL, *entry = NULL; mpxp_v<<"Trying plaintext..."<<std::endl; play_tree_parser_stop_keeping(p); @@ -323,23 +323,24 @@ strstrip(line); if(line[0] == '\0') continue; - entry = play_tree_new(); - play_tree_add_file(entry,line); + entry = new(zeromem) PlayTree; + entry->add_file(line); if(!list) list = entry; else - play_tree_append_entry(list,entry); + list->append_entry(entry); } if(!list) return NULL; - entry = play_tree_new(); - play_tree_set_child(entry,list); + entry = new(zeromem) PlayTree; + entry->set_child(list); return entry; } -play_tree_t* parse_playtree(libinput_t&libinput,Stream* stream) { +namespace mpxp { +PlayTree* PlayTree::parse_playtree(libinput_t&libinput,Stream* stream) { play_tree_parser_t* p; - play_tree_t* ret; + PlayTree* ret; p = play_tree_parser_new(stream,0); if(!p) @@ -351,9 +352,9 @@ return ret; } -play_tree_t* parse_playlist_file(libinput_t&libinput,const std::string& file) { +PlayTree* PlayTree::parse_playlist_file(libinput_t&libinput,const std::string& file) { Stream *stream; - play_tree_t* ret; + PlayTree* ret; int ff; mpxp_v<<"Parsing playlist file "<<file<<"..."<<std::endl; @@ -361,12 +362,12 @@ stream = new(zeromem) Stream; stream->open(libinput,file,&ff); stream->type(Stream::Type_Text); - ret = parse_playtree(libinput,stream); + ret = PlayTree::parse_playtree(libinput,stream); delete stream; return ret; - } +} // namespace mpxp play_tree_parser_t* play_tree_parser_new(Stream* stream,int deep) { play_tree_parser_t* p; @@ -390,9 +391,9 @@ delete p; } -play_tree_t* +PlayTree* play_tree_parser_get_play_tree(libinput_t& libinput,play_tree_parser_t* p) { - play_tree_t* tree = NULL; + PlayTree* tree = NULL; while(play_tree_parser_get_line(p) != NULL) { play_tree_parser_reset(p); @@ -415,10 +416,7 @@ mpxp_v<<"Playlist succefully parsed"<<std::endl; else mpxp_err<<"Error while parsing playlist"<<std::endl; - if(tree) - tree = play_tree_cleanup(tree); + if(tree->cleanup()!=MPXP_Ok) mpxp_warn<<"Warning empty playlist"<<std::endl; - if(!tree) mpxp_warn<<"Warning empty playlist"<<std::endl; - return tree; } Modified: mplayerxp/libplaytree/playtreeparser.h =================================================================== --- mplayerxp/libplaytree/playtreeparser.h 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/libplaytree/playtreeparser.h 2012-12-27 16:37:25 UTC (rev 608) @@ -14,6 +14,6 @@ void play_tree_parser_free(play_tree_parser_t* p); -play_tree_t* play_tree_parser_get_play_tree(libinput_t&libinput,play_tree_parser_t* p); +PlayTree* play_tree_parser_get_play_tree(libinput_t&libinput,play_tree_parser_t* p); #endif Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/mplayerxp.cpp 2012-12-27 16:37:25 UTC (rev 608) @@ -154,7 +154,7 @@ MPXP_Rc ao_inited; int osd_show_framedrop; int osd_function; - play_tree_t* playtree; + PlayTree* playtree; // for multifile support: _PlayTree_Iter* playtree_iter; private: @@ -935,11 +935,11 @@ int MPXPSystem::handle_playlist(const std::string& filename) const { Stream* stream=static_cast<Stream*>(_demuxer->stream); int eof=0; - play_tree_t* entry; + PlayTree* entry; // Handle playlist MP_UNIT("handle_playlist"); mpxp_v<<"Parsing playlist "<<filename<<"..."<<std::endl; - entry = parse_playtree(_libinput,stream); + entry = PlayTree::parse_playtree(_libinput,stream); if(!entry) { entry = playtree_iter->get_tree(); if(playtree_iter->step(1,0) != PLAY_TREE_ITER_ENTRY) { @@ -952,17 +952,17 @@ return eof; } } - play_tree_remove(entry,1,1); + entry->remove(1,1); eof = PT_NEXT_SRC; return eof; } - play_tree_insert_entry(playtree_iter->get_tree(),entry); + playtree_iter->get_tree()->insert_entry(entry); entry = playtree_iter->get_tree(); if(playtree_iter->step(1,0) != PLAY_TREE_ITER_ENTRY) { eof = PT_NEXT_ENTRY; return eof; } - play_tree_remove(entry,1,1); + entry->remove(1,1); eof = PT_NEXT_SRC; return eof; } @@ -1681,7 +1681,7 @@ MPXPSystem& MPXPSys=*mpxp_context().engine().MPXPSys; MPXPSys.init_keyboard_fifo(); - MPXPSys.playtree = play_tree_new(); + MPXPSys.playtree = new(zeromem) PlayTree; m_config_t& m_config=m_config_new(MPXPSys.playtree,MPXPSys.libinput()); mpxp_context().mconfig = &m_config; @@ -1708,10 +1708,10 @@ #if defined( ARCH_X86 ) || defined(ARCH_X86_64) get_mmx_optimizations(); #endif - if(mp_conf.shuffle_playback) MPXPSys.playtree->flags|=PLAY_TREE_RND; - else MPXPSys.playtree->flags&=~PLAY_TREE_RND; + if(mp_conf.shuffle_playback) MPXPSys.playtree->set_flags(MPXPSys.playtree->get_flags()|PLAY_TREE_RND); + else MPXPSys.playtree->set_flags(MPXPSys.playtree->get_flags()&~PLAY_TREE_RND); - MPXPSys.playtree = play_tree_cleanup(MPXPSys.playtree); +// MPXPSys.playtree = play_tree_cleanup(MPXPSys.playtree); if(MPXPSys.playtree) { MPXPSys.playtree_iter = new _PlayTree_Iter(MPXPSys.playtree,m_config); if(MPXPSys.playtree_iter) { Modified: mplayerxp/postproc/libmenu/menu_pt.cpp =================================================================== --- mplayerxp/postproc/libmenu/menu_pt.cpp 2012-12-27 14:05:33 UTC (rev 607) +++ mplayerxp/postproc/libmenu/menu_pt.cpp 2012-12-27 16:37:25 UTC (rev 608) @@ -27,7 +27,7 @@ struct list_entry_s { struct list_entry p; - play_tree_t* pt; + PlayTree* pt; }; @@ -57,24 +57,24 @@ case MENU_CMD_OK: { int d = 1; char str[15]; - play_tree_t* i; + PlayTree* i; mp_cmd_t* c; _PlayTree_Iter* _playtree_iter =mpxp_get_playtree_iter(); if(_playtree_iter->get_tree() == mpriv->p.current->pt) break; - if(_playtree_iter->get_tree()->parent && mpriv->p.current->pt == _playtree_iter->get_tree()->parent) + if(_playtree_iter->get_tree()->get_parent() && mpriv->p.current->pt == _playtree_iter->get_tree()->get_parent()) snprintf(str,15,"pt_up_step 1"); else { - for(i = _playtree_iter->get_tree()->next; i != NULL ; i = i->next) { + for(i = _playtree_iter->get_tree()->get_next(); i != NULL ; i = i->get_next()) { if(i == mpriv->p.current->pt) break; d++; } if(i == NULL) { d = -1; - for(i = _playtree_iter->get_tree()->prev; i != NULL ; i = i->prev) { + for(i = _playtree_iter->get_tree()->get_prev(); i != NULL ; i = i->get_prev()) { if(i == mpriv->p.current->pt) break; d--; @@ -106,7 +106,7 @@ } static int op(menu_t* menu,const char* args) { - play_tree_t* i; + PlayTree* i; list_entry_t* e; _PlayTree_Iter* _playtree_iter = mpxp_get_playtree_iter(); @@ -121,19 +121,19 @@ mpriv->p.title = mpriv->title; - if(_playtree_iter->get_tree()->parent != _playtree_iter->get_root()) { + if(_playtree_iter->get_tree()->get_parent() != _playtree_iter->get_root()) { e = new(zeromem) list_entry_t; e->p.txt = ".."; - e->pt = _playtree_iter->get_tree()->parent; + e->pt = _playtree_iter->get_tree()->get_parent(); menu_list_add_entry(menu,e); } - for(i = _playtree_iter->get_tree() ; i->prev != NULL ; i = i->prev) + for(i = _playtree_iter->get_tree() ; i->get_prev() != NULL ; i = i->get_prev()) /* NOP */; - for( ; i != NULL ; i = i->next ) { + for( ; i != NULL ; i = i->get_next() ) { e = new(zeromem) list_entry_t; - if(!i->files.empty()) - e->p.txt = mp_basename(i->files[0]); + if(!i->get_files().empty()) + e->p.txt = mp_basename(i->get_file(0)); else e->p.txt = "Group ..."; e->pt = i; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-27 17:51:51
|
Revision: 610 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=610&view=rev Author: nickols_k Date: 2012-12-27 17:51:43 +0000 (Thu, 27 Dec 2012) Log Message: ----------- use forward declaration instead of #include Modified Paths: -------------- mplayerxp/libplaytree/playtree.cpp mplayerxp/mplayerxp.h Modified: mplayerxp/libplaytree/playtree.cpp =================================================================== --- mplayerxp/libplaytree/playtree.cpp 2012-12-27 17:43:45 UTC (rev 609) +++ mplayerxp/libplaytree/playtree.cpp 2012-12-27 17:51:43 UTC (rev 610) @@ -10,6 +10,7 @@ #include <errno.h> #include <time.h> #include "libmpstream2/stream.h" +#include "libmpconf/cfgparser.h" #include "playtree.h" #include "playtree_msg.h" Modified: mplayerxp/mplayerxp.h =================================================================== --- mplayerxp/mplayerxp.h 2012-12-27 17:43:45 UTC (rev 609) +++ mplayerxp/mplayerxp.h 2012-12-27 17:51:43 UTC (rev 610) @@ -2,6 +2,7 @@ #define __MPLAYERXP_MAIN 1 #include <string> +#include <map> #include <pthread.h> #include <stdint.h> @@ -10,13 +11,13 @@ #include "mpxp_config.h" #include "osdep/mplib.h" #include "xmpcore/xmp_enums.h" -#include "libmpconf/cfgparser.h" #include "libmpsub/subreader.h" #include "libao3/audio_out.h" #include "libvo2/video_out.h" struct audio_decoder_t; struct video_decoder_t; +struct m_config_t; namespace mpxp { struct _PlayTree_Iter; /* List of all modules which require protection by pin-code */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-28 06:24:34
|
Revision: 612 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=612&view=rev Author: nickols_k Date: 2012-12-28 06:24:26 +0000 (Fri, 28 Dec 2012) Log Message: ----------- rename loader -> win32loader (TRANSACTION BEGIN) Added Paths: ----------- mplayerxp/win32loader/ Removed Paths: ------------- mplayerxp/loader/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-28 06:34:09
|
Revision: 613 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=613&view=rev Author: nickols_k Date: 2012-12-28 06:34:01 +0000 (Fri, 28 Dec 2012) Log Message: ----------- rename loader -> win32loader (TRANSACTION END) Modified Paths: -------------- mplayerxp/Makefile mplayerxp/libmpcodecs/ad_acm.cpp mplayerxp/libmpcodecs/ad_dmo.cpp mplayerxp/libmpcodecs/ad_dshow.cpp mplayerxp/libmpcodecs/ad_internal.h mplayerxp/libmpcodecs/ad_qtaudio.cpp mplayerxp/libmpcodecs/ad_twin.cpp mplayerxp/libmpcodecs/vd_dmo.cpp mplayerxp/libmpcodecs/vd_dshow.cpp mplayerxp/libmpcodecs/vd_qtvideo.cpp mplayerxp/libmpcodecs/vd_vfw.cpp mplayerxp/libmpconf/codec-cfg.cpp mplayerxp/libmpdemux/asf.h mplayerxp/libmpdemux/aviprint.h mplayerxp/libmpdemux/demux_mkv.cpp mplayerxp/libmpdemux/demux_mov.cpp mplayerxp/libmpdemux/demux_mpxp64.cpp mplayerxp/libmpdemux/mux_mpxp64.cpp mplayerxp/libmpdemux/mux_raw.cpp mplayerxp/libmpdemux/muxer.cpp mplayerxp/libmpdemux/stheader.h mplayerxp/libmpstream2/s_oss.cpp mplayerxp/postproc/af_format.cpp mplayerxp/win32loader/Makefile mplayerxp/win32loader/wine/avifmt.h mplayerxp/xmpcore/xmp_aframe.cpp Modified: mplayerxp/Makefile =================================================================== --- mplayerxp/Makefile 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/Makefile 2012-12-28 06:34:01 UTC (rev 613) @@ -13,7 +13,7 @@ # these subdirectories required installation due binaries within them SUBDIRS = libmpdemux libmpstream2 libmpsub libplaytree libmpcodecs libmpconf libao3 osdep postproc input2 nls libvo2 xmpcore ifeq ($(ENABLE_WIN32LOADER),yes) -SUBDIRS+=loader +SUBDIRS+=win32loader endif DO_MAKE = @ for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit; done DO_MAKE_ALL = @ for i in $(SUBDIRS); do $(MAKE) -C $$i all || exit; done @@ -46,7 +46,7 @@ libmpconf/libmpconf.a \ xmpcore/libxmpcore.a ifeq ($(ENABLE_WIN32LOADER),yes) - MP_LIBS += loader/libloader.a + MP_LIBS += win32loader/libwin32loader.a endif LIBS+= $(MP_LIBS) $(LAVC_LIBS) $(EXTRALIBS) -lm Modified: mplayerxp/libmpcodecs/ad_acm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -8,7 +8,7 @@ #define __AD_ACM #include "ad_internal.h" #include "codecs_ld.h" -#include "loader/wineacm.h" +#include "win32loader/wineacm.h" #include "libmpdemux/aviprint.h" #include "libao3/afmt.h" #include "mpxp_help.h" Modified: mplayerxp/libmpcodecs/ad_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -26,7 +26,7 @@ LIBAD_EXTERN(dmo) -#include "loader/dmo/DMO_AudioDecoder.h" +#include "win32loader/dmo/DMO_AudioDecoder.h" struct admo_private_t : public Opaque { admo_private_t(); Modified: mplayerxp/libmpcodecs/ad_dshow.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -7,7 +7,7 @@ #include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ #include "ad_internal.h" #include "mpxp_help.h" -#include "loader/dshow/DS_AudioDecoder.h" +#include "win32loader/dshow/DS_AudioDecoder.h" #include "codecs_ld.h" static const ad_info_t info = { Modified: mplayerxp/libmpcodecs/ad_internal.h =================================================================== --- mplayerxp/libmpcodecs/ad_internal.h 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/ad_internal.h 2012-12-28 06:34:01 UTC (rev 613) @@ -1,5 +1,5 @@ #ifdef __AD_ACM /* simply ugly hack */ -#include "loader/wine/msacm.h" +#include "win32loader/wine/msacm.h" #endif #include "libmpconf/codec-cfg.h" #include "libmpdemux/demuxer_r.h" Modified: mplayerxp/libmpcodecs/ad_qtaudio.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -13,7 +13,7 @@ #include "mplayerxp.h" #include "libao3/afmt.h" #ifdef WIN32_LOADER -#include "loader/ldt_keeper.h" +#include "win32loader/ldt_keeper.h" #endif #ifdef MACOSX Modified: mplayerxp/libmpcodecs/ad_twin.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -7,8 +7,8 @@ #include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ #include "ad_internal.h" #include "codecs_ld.h" -#include "loader/ldt_keeper.h" -#include "loader/wine/windef.h" +#include "win32loader/ldt_keeper.h" +#include "win32loader/wine/windef.h" #include "libao3/afmt.h" #include "libmpdemux/aviprint.h" #include "mpxp_help.h" Modified: mplayerxp/libmpcodecs/vd_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_dmo.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/vd_dmo.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -11,7 +11,7 @@ #include "vd_internal.h" #include "codecs_ld.h" -#include "loader/dmo/DMO_VideoDecoder.h" +#include "win32loader/dmo/DMO_VideoDecoder.h" #include "vd_msg.h" static const vd_info_t info = { Modified: mplayerxp/libmpcodecs/vd_dshow.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_dshow.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/vd_dshow.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -12,7 +12,7 @@ #include "vd_internal.h" -#include "loader/dshow/DS_VideoDecoder.h" +#include "win32loader/dshow/DS_VideoDecoder.h" #include "codecs_ld.h" #include "osdep/bswap.h" Modified: mplayerxp/libmpcodecs/vd_qtvideo.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_qtvideo.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/vd_qtvideo.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -13,7 +13,7 @@ #include "codecs_ld.h" #ifdef WIN32_LOADER -#include "loader/ldt_keeper.h" +#include "win32loader/ldt_keeper.h" #endif #include "codecs_ld.h" #include "vd_msg.h" @@ -38,7 +38,7 @@ #include <QuickTime/ImageCodec.h> #define dump_ImageDescription(x) #else -#include "loader/qtx/qtxsdk/components.h" +#include "win32loader/qtx/qtxsdk/components.h" #endif //#include "wine/windef.h" Modified: mplayerxp/libmpcodecs/vd_vfw.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_vfw.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpcodecs/vd_vfw.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -11,8 +11,8 @@ #include "vd_internal.h" #include "codecs_ld.h" -#include "loader/wine/vfw.h" -#include "loader/wine/driver.h" +#include "win32loader/wine/vfw.h" +#include "win32loader/wine/driver.h" #include "libmpdemux/aviprint.h" static const vd_info_t info_vfw = { Modified: mplayerxp/libmpconf/codec-cfg.cpp =================================================================== --- mplayerxp/libmpconf/codec-cfg.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpconf/codec-cfg.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -21,7 +21,7 @@ #include <string.h> // for mmioFOURCC: -#include "loader/wine/avifmt.h" +#include "win32loader/wine/avifmt.h" #include "libvo2/img_format.h" #include "codec-cfg.h" #include "parser_msg.h" Modified: mplayerxp/libmpdemux/asf.h =================================================================== --- mplayerxp/libmpdemux/asf.h 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/asf.h 2012-12-28 06:34:01 UTC (rev 613) @@ -3,9 +3,9 @@ //#include "cp_config.h" /* for WORDS_BIGENDIAN */ #include <inttypes.h> -#include "loader/wine/mmreg.h" -#include "loader/wine/avifmt.h" -#include "loader/wine/vfw.h" +#include "win32loader/wine/mmreg.h" +#include "win32loader/wine/avifmt.h" +#include "win32loader/wine/vfw.h" #include "osdep/bswap.h" #ifndef MIN Modified: mplayerxp/libmpdemux/aviprint.h =================================================================== --- mplayerxp/libmpdemux/aviprint.h 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/aviprint.h 2012-12-28 06:34:01 UTC (rev 613) @@ -1,9 +1,9 @@ #ifndef MPXP_AVIPRINT_H #define MPXP_AVIPRINT_H 1 -#include "loader/wine/mmreg.h" -#include "loader/wine/avifmt.h" -#include "loader/wine/vfw.h" +#include "win32loader/wine/mmreg.h" +#include "win32loader/wine/avifmt.h" +#include "win32loader/wine/vfw.h" extern void print_avih_flags(MainAVIHeader *h); extern void print_avih(MainAVIHeader *h); Modified: mplayerxp/libmpdemux/demux_mkv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mkv.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/demux_mkv.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -41,7 +41,7 @@ #include "libao3/afmt.h" #include "demux_msg.h" -#include "loader/qtx/qtxsdk/components.h" +#include "win32loader/qtx/qtxsdk/components.h" #include "demux_msg.h" enum { Modified: mplayerxp/libmpdemux/demux_mov.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mov.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/demux_mov.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -39,7 +39,7 @@ #include "qtpalette.h" #include "parse_mp4.h" // .MP4 specific stuff -#include "loader/qtx/qtxsdk/components.h" +#include "win32loader/qtx/qtxsdk/components.h" #include "demux_msg.h" #include "libao3/afmt.h" Modified: mplayerxp/libmpdemux/demux_mpxp64.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/demux_mpxp64.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -17,7 +17,7 @@ #include "demuxer.h" #include "demuxer_internal.h" #include "stheader.h" -#include "loader/qtx/qtxsdk/components.h" +#include "win32loader/qtx/qtxsdk/components.h" #include "nls/nls.h" #include "libmpsub/subreader.h" Modified: mplayerxp/libmpdemux/mux_mpxp64.cpp =================================================================== --- mplayerxp/libmpdemux/mux_mpxp64.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/mux_mpxp64.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -18,10 +18,10 @@ #include "nls/nls.h" -#include "loader/wine/mmreg.h" -#include "loader/wine/avifmt.h" -#include "loader/wine/vfw.h" -#include "loader/qtx/qtxsdk/components.h" +#include "win32loader/wine/mmreg.h" +#include "win32loader/wine/avifmt.h" +#include "win32loader/wine/vfw.h" +#include "win32loader/qtx/qtxsdk/components.h" #include "osdep/bswap.h" #include "libmpstream2/stream.h" Modified: mplayerxp/libmpdemux/mux_raw.cpp =================================================================== --- mplayerxp/libmpdemux/mux_raw.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/mux_raw.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -10,9 +10,9 @@ #include "version.h" -#include "loader/wine/mmreg.h" -#include "loader/wine/avifmt.h" -#include "loader/wine/vfw.h" +#include "win32loader/wine/mmreg.h" +#include "win32loader/wine/avifmt.h" +#include "win32loader/wine/vfw.h" #include "osdep/bswap.h" #include "muxer.h" #include "aviheader.h" Modified: mplayerxp/libmpdemux/muxer.cpp =================================================================== --- mplayerxp/libmpdemux/muxer.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/muxer.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -10,9 +10,9 @@ #include "version.h" -#include "loader/wine/mmreg.h" -#include "loader/wine/avifmt.h" -#include "loader/wine/vfw.h" +#include "win32loader/wine/mmreg.h" +#include "win32loader/wine/avifmt.h" +#include "win32loader/wine/vfw.h" #include "muxer.h" muxer_packet_t* new_muxer_packet(float pts,any_t*data,unsigned length,unsigned flags) Modified: mplayerxp/libmpdemux/stheader.h =================================================================== --- mplayerxp/libmpdemux/stheader.h 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpdemux/stheader.h 2012-12-28 06:34:01 UTC (rev 613) @@ -5,9 +5,9 @@ #ifdef __cplusplus extern "C" { #endif -#include "loader/wine/mmreg.h" -#include "loader/wine/avifmt.h" -#include "loader/wine/vfw.h" +#include "win32loader/wine/mmreg.h" +#include "win32loader/wine/avifmt.h" +#include "win32loader/wine/vfw.h" #ifdef __cplusplus } #endif Modified: mplayerxp/libmpstream2/s_oss.cpp =================================================================== --- mplayerxp/libmpstream2/s_oss.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/libmpstream2/s_oss.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -21,7 +21,7 @@ #include "postproc/af.h" #include "libao3/afmt.h" #include "libao3/audio_out.h" -#include "loader/wine/mmreg.h" +#include "win32loader/wine/mmreg.h" #include "stream.h" #include "stream_internal.h" #include "mrl.h" Modified: mplayerxp/postproc/af_format.cpp =================================================================== --- mplayerxp/postproc/af_format.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/postproc/af_format.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -18,7 +18,7 @@ #include "af_internal.h" #include "osdep/bswap.h" #include "aflib.h" -#include "loader/wine/mmreg.h" +#include "win32loader/wine/mmreg.h" #include "pp_msg.h" // Integer to float conversion through lrintf() Modified: mplayerxp/win32loader/Makefile =================================================================== --- mplayerxp/win32loader/Makefile 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/win32loader/Makefile 2012-12-28 06:34:01 UTC (rev 613) @@ -1,7 +1,7 @@ include ../mpxp_config.mak ifeq ($(ENABLE_WIN32LOADER),yes) -LIBNAME=libloader.a +LIBNAME=libwin32loader.a SUBDIRS=dshow dmo else LIBNAME= Modified: mplayerxp/win32loader/wine/avifmt.h =================================================================== --- mplayerxp/win32loader/wine/avifmt.h 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/win32loader/wine/avifmt.h 2012-12-28 06:34:01 UTC (rev 613) @@ -9,7 +9,7 @@ #ifndef NOAVIFMT #ifndef __WINE_WINDEF_H -#include "loader/wine/windef.h" +#include "win32loader/wine/windef.h" #endif #ifndef __WINE_MMSYSTEM_H Modified: mplayerxp/xmpcore/xmp_aframe.cpp =================================================================== --- mplayerxp/xmpcore/xmp_aframe.cpp 2012-12-28 06:24:26 UTC (rev 612) +++ mplayerxp/xmpcore/xmp_aframe.cpp 2012-12-28 06:34:01 UTC (rev 613) @@ -6,7 +6,7 @@ #include "xmp_aframe.h" #include "libao3/afmt.h" -#include "loader/wine/mmreg.h" +#include "win32loader/wine/mmreg.h" #include "player_msg.h" namespace mpxp { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-28 07:23:56
|
Revision: 614 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=614&view=rev Author: nickols_k Date: 2012-12-28 07:23:44 +0000 (Fri, 28 Dec 2012) Log Message: ----------- improve readability of sources: rename config_t -> mpxp_option_t Modified Paths: -------------- mplayerxp/input2/input.cpp mplayerxp/libmpcodecs/ad.h mplayerxp/libmpcodecs/ad_a52.cpp mplayerxp/libmpcodecs/ad_acm.cpp mplayerxp/libmpcodecs/ad_dca.cpp mplayerxp/libmpcodecs/ad_dmo.cpp mplayerxp/libmpcodecs/ad_dshow.cpp mplayerxp/libmpcodecs/ad_dvdpcm.cpp mplayerxp/libmpcodecs/ad_faad.cpp mplayerxp/libmpcodecs/ad_hwac3.cpp mplayerxp/libmpcodecs/ad_lavc.cpp mplayerxp/libmpcodecs/ad_libdv.cpp mplayerxp/libmpcodecs/ad_mp3.cpp mplayerxp/libmpcodecs/ad_null.cpp mplayerxp/libmpcodecs/ad_pcm.cpp mplayerxp/libmpcodecs/ad_qtaudio.cpp mplayerxp/libmpcodecs/ad_real.cpp mplayerxp/libmpcodecs/ad_twin.cpp mplayerxp/libmpcodecs/ad_vorbis.cpp mplayerxp/libmpcodecs/vd.h mplayerxp/libmpcodecs/vd_divx4.cpp mplayerxp/libmpcodecs/vd_dmo.cpp mplayerxp/libmpcodecs/vd_dshow.cpp mplayerxp/libmpcodecs/vd_huffyuv.cpp mplayerxp/libmpcodecs/vd_internal.h mplayerxp/libmpcodecs/vd_lavc.cpp mplayerxp/libmpcodecs/vd_libdv.cpp mplayerxp/libmpcodecs/vd_libmpeg2.cpp mplayerxp/libmpcodecs/vd_mpegpes.cpp mplayerxp/libmpcodecs/vd_null.cpp mplayerxp/libmpcodecs/vd_nuv.cpp mplayerxp/libmpcodecs/vd_qtvideo.cpp mplayerxp/libmpcodecs/vd_raw.cpp mplayerxp/libmpcodecs/vd_real.cpp mplayerxp/libmpcodecs/vd_theora.cpp mplayerxp/libmpcodecs/vd_vfw.cpp mplayerxp/libmpcodecs/vd_xanim.cpp mplayerxp/libmpcodecs/vd_xvid.cpp mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/libmpdemux/demux_ac3.cpp mplayerxp/libmpdemux/demux_avi.cpp mplayerxp/libmpdemux/demux_dca.cpp mplayerxp/libmpdemux/demux_flac.cpp mplayerxp/libmpdemux/demux_lavf.cpp mplayerxp/libmpdemux/demux_mp3.cpp mplayerxp/libmpdemux/demux_musepack.cpp mplayerxp/libmpdemux/demux_null.cpp mplayerxp/libmpdemux/demux_rawaudio.cpp mplayerxp/libmpdemux/demux_rawvideo.cpp mplayerxp/libmpdemux/demux_snd_au.cpp mplayerxp/libmpdemux/demux_viv.cpp mplayerxp/libmpdemux/demux_voc.cpp mplayerxp/libmpdemux/demux_wav.cpp mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpdemux/demuxer_internal.h mplayerxp/libmpstream2/cdda.cpp mplayerxp/mplayerxp.cpp mplayerxp/mplayerxp.h mplayerxp/xmpcore/xmp_context.cpp mplayerxp/xmpcore/xmp_context.h Modified: mplayerxp/input2/input.cpp =================================================================== --- mplayerxp/input2/input.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/input2/input.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -430,7 +430,7 @@ static int mp_input_print_key_list(libinput_t&); static int mp_input_print_cmd_list(libinput_t&); -static const config_t joystick_conf[] = { +static const mpxp_option_t joystick_conf[] = { { "on", &libinput_conf.use_joystick, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, "enables using of joystick" }, { "off", &libinput_conf.use_joystick, CONF_TYPE_FLAG, CONF_GLOBAL, 1, 0, "disables using of joystick" }, { "dev", &libinput_conf.js_dev, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, "specifies the joystick device" }, @@ -439,7 +439,7 @@ extern char *lirc_configfile; // Our command line options -static const config_t input_conf[] = { +static const mpxp_option_t input_conf[] = { { "conf", (any_t*)&config_file, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, "specifies alternative input.conf" }, { "ar-delay", (any_t*)&libinput_conf.ar_delay, CONF_TYPE_INT, CONF_GLOBAL, 0, 0, "autorepeate a key delay in milliseconds (0 to disable)" }, { "ar-rate", (any_t*)&libinput_conf.ar_rate, CONF_TYPE_INT, CONF_GLOBAL, 0, 0, "number of key-presses per second generating on autorepeat" }, @@ -457,7 +457,7 @@ { NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t mp_input_opts[] = { +static const mpxp_option_t mp_input_opts[] = { { "input", (any_t*)&input_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, "Input specific options"}, { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad.h =================================================================== --- mplayerxp/libmpcodecs/ad.h 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad.h 2012-12-28 07:23:44 UTC (rev 614) @@ -48,7 +48,7 @@ struct ad_functions_t { const ad_info_t* info; - const config_t* options;/**< Optional: MPlayerXP's option related */ + const mpxp_option_t* options;/**< Optional: MPlayerXP's option related */ const audio_probe_t*(* __FASTCALL__ probe)(uint32_t wtag); Opaque* (* __FASTCALL__ preinit)(const audio_probe_t&,sh_audio_t*,audio_filter_info_t&); MPXP_Rc (* __FASTCALL__ init)(Opaque& ctx); Modified: mplayerxp/libmpcodecs/ad_a52.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_a52.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -46,7 +46,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_acm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_acm.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -20,7 +20,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_dca.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_dca.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -45,7 +45,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_dmo.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -20,7 +20,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_dshow.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_dshow.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -17,7 +17,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_dvdpcm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_dvdpcm.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -24,7 +24,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_faad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_faad.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -29,7 +29,7 @@ "http://www.audiocoding.com/faad2.html" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_hwac3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_hwac3.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -155,7 +155,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_lavc.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_lavc.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -88,7 +88,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_libdv.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_libdv.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -41,7 +41,7 @@ "http://libdv.sourceforge.net" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_mp3.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_mp3.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -23,7 +23,7 @@ "http://www.mpg123.de" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_null.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_null.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_null.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -22,7 +22,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_pcm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_pcm.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_pcm.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -25,7 +25,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_qtaudio.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_qtaudio.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -27,7 +27,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_real.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_real.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_real.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -22,7 +22,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_twin.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_twin.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -20,7 +20,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/ad_vorbis.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_vorbis.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/ad_vorbis.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -23,7 +23,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd.h =================================================================== --- mplayerxp/libmpcodecs/vd.h 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd.h 2012-12-28 07:23:44 UTC (rev 614) @@ -53,7 +53,7 @@ /* interface of video decoder drivers */ struct vd_functions_t { const vd_info_t* info; - const config_t* options;/**< Optional: MPlayerXP's option related */ + const mpxp_option_t* options;/**< Optional: MPlayerXP's option related */ const video_probe_t*(*__FASTCALL__ probe)(uint32_t fourcc); Opaque* (*__FASTCALL__ preinit)(const video_probe_t& probe,sh_video_t *sh,put_slice_info_t& psi); MPXP_Rc (*__FASTCALL__ init)(Opaque& ctx,video_decoder_t& opaque); Modified: mplayerxp/libmpcodecs/vd_divx4.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_divx4.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_divx4.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -32,7 +32,7 @@ "http://labs.divx.com/DivXLinuxCodec" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_dmo.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_dmo.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -21,7 +21,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_dshow.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_dshow.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_dshow.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -23,7 +23,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_huffyuv.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_huffyuv.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_huffyuv.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -34,7 +34,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_internal.h =================================================================== --- mplayerxp/libmpcodecs/vd_internal.h 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_internal.h 2012-12-28 07:23:44 UTC (rev 614) @@ -6,7 +6,7 @@ #include "vd_msg.h" // prototypes: //static vd_info_t info; -//static const config_t options[]; +//static const mpxp_option_t options[]; static const video_probe_t* __FASTCALL__ probe(uint32_t fourcc); static MPXP_Rc control_vd(Opaque& ctx,int cmd,any_t* arg,...); @@ -17,7 +17,7 @@ #define LIBVD_EXTERN(x) extern const vd_functions_t mpcodecs_vd_##x = {\ &info,\ - (const config_t*)options,\ + (const mpxp_option_t*)options,\ probe, \ preinit, \ init,\ Modified: mplayerxp/libmpcodecs/vd_lavc.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_lavc.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_lavc.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -50,7 +50,7 @@ static char *lavc_avopt = NULL; static int enable_ffslices=1; -static const config_t ff_options[] = { +static const mpxp_option_t ff_options[] = { {"slices", &enable_ffslices, CONF_TYPE_FLAG, 0, 0, 1, "enables slice-based method of frame rendering in lavc decoder"}, {"noslices", &enable_ffslices, CONF_TYPE_FLAG, 0, 1, 0, "disables slice-based method of frame rendering in lavc decoder"}, {"er", &lavc_param_error_resilience, CONF_TYPE_INT, CONF_RANGE, 0, 99, "specifies error resilience for lavc decoders"}, @@ -70,7 +70,7 @@ { NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t options[] = { +static const mpxp_option_t options[] = { {"lavc", (any_t*)&ff_options, CONF_TYPE_SUBCONFIG, 0, 0, 0, "lavc specific options"}, { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_libdv.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_libdv.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_libdv.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -38,7 +38,7 @@ "http://libdv.sourceforge.net" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_libmpeg2.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_libmpeg2.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_libmpeg2.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -28,7 +28,7 @@ "http://libmpeg2.sourceforge.net" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_mpegpes.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_mpegpes.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_mpegpes.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -14,7 +14,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_null.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_null.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_null.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -22,7 +22,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_nuv.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_nuv.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_nuv.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -25,7 +25,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_qtvideo.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_qtvideo.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_qtvideo.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -25,7 +25,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_raw.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_raw.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_raw.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -24,7 +24,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_real.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_real.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_real.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -20,7 +20,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_theora.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_theora.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_theora.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -23,7 +23,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_vfw.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_vfw.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_vfw.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -29,7 +29,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_xanim.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_xanim.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_xanim.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -34,7 +34,7 @@ "build-in" }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpcodecs/vd_xvid.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_xvid.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpcodecs/vd_xvid.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -27,7 +27,7 @@ }; -static const config_t options[] = { +static const mpxp_option_t options[] = { { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -18,6 +18,12 @@ #include <string.h> #include <errno.h> +#include "mplayerxp.h" +#include "cfgparser.h" +#include "libplaytree/playtree.h" +#include "parser_msg.h" + +namespace mpxp { enum { COMMAND_LINE=0, CONFIG_FILE=1, @@ -27,10 +33,6 @@ MAX_RECURSION_DEPTH=8 }; -#include "mplayerxp.h" -#include "cfgparser.h" -#include "libplaytree/playtree.h" -#include "parser_msg.h" inline void SET_GLOBAL(m_config_t& c) { c.flags |= CONFIG_GLOBAL; } inline void UNSET_GLOBAL(m_config_t& c) { c.flags &= (!CONFIG_GLOBAL); } @@ -38,12 +40,12 @@ inline void SET_RUNNING(m_config_t& c) { c.flags |= CONFIG_RUNNING; } inline int IS_RUNNING(const m_config_t& c) { return c.flags & CONFIG_RUNNING; } -typedef int (*cfg_func_arg_param_t)(const config_t *,const std::string& ,const std::string& ); -typedef int (*cfg_func_param_t)(const config_t *,const std::string& ); -typedef int (*cfg_func_t)(const config_t *); +typedef int (*cfg_func_arg_param_t)(const mpxp_option_t *,const std::string& ,const std::string& ); +typedef int (*cfg_func_param_t)(const mpxp_option_t *,const std::string& ); +typedef int (*cfg_func_t)(const mpxp_option_t *); static void -m_config_save_option(m_config_t& config,const config_t* conf,const std::string& opt,const std::string& param) { +m_config_save_option(m_config_t& config,const mpxp_option_t* conf,const std::string& opt,const std::string& param) { config_save_t* save; int sl=0; @@ -242,14 +244,14 @@ static int cfg_inc_int(int value){ return ++value; } -static int config_read_option(m_config_t& config,const std::vector<const config_t*>& conf_list,const std::string& opt,const std::string& param) +static int config_read_option(m_config_t& config,const std::vector<const mpxp_option_t*>& conf_list,const std::string& opt,const std::string& param) { int i=0,nconf = 0; long tmp_int; double tmp_float; int ret = -1; char *endptr; - const config_t* conf=NULL; + const mpxp_option_t* conf=NULL; mpxp_dbg3<<"read_option: opt='"<<opt<<"' param='"<<param<<"'"<<std::endl; std::string lopt=opt; @@ -451,11 +453,11 @@ goto out; } -static const config_t* m_config_find_option(const std::vector<const config_t*>& list,const std::string& name); +static const mpxp_option_t* m_config_find_option(const std::vector<const mpxp_option_t*>& list,const std::string& name); int m_config_set_option(m_config_t& config,const std::string& _opt,const std::string& param) { size_t e; - std::vector<const config_t*> clist=config.opt_list; + std::vector<const mpxp_option_t*> clist=config.opt_list; std::string opt=_opt; std::string s; mpxp_dbg2<<"Setting option "<<opt<<"="<<param<<std::endl; @@ -464,7 +466,7 @@ e=opt.find('.'); if(e!=std::string::npos) { int flg,ret; - const config_t *subconf=NULL; + const mpxp_option_t *subconf=NULL; mpxp_dbg2<<"Parsing "<<opt<<" as subconfig"<<std::endl; do { if((e = opt.find('.'))==std::string::npos) break; @@ -474,7 +476,7 @@ clist.clear(); if(!subconf) return ERR_NO_SUBCONF; if(subconf->type!=CONF_TYPE_SUBCONFIG) return ERR_NO_SUBCONF; - clist.push_back(reinterpret_cast<const config_t*>(subconf->p)); + clist.push_back(reinterpret_cast<const mpxp_option_t*>(subconf->p)); opt = opt.substr(e+1); mpxp_dbg2<<"switching next subconf="<<subconf->name<<std::endl; }while(1); @@ -488,10 +490,10 @@ e = opt.find(':'); if(e!=std::string::npos && e<(opt.length()-1)) { int ret; - const config_t* m_opt; - std::vector<const config_t*> opt_list; + const mpxp_option_t* m_opt; + std::vector<const mpxp_option_t*> opt_list; s=opt.substr(0,e); - m_opt=(const config_t*)m_config_get_option_ptr(config,s); + m_opt=(const mpxp_option_t*)m_config_get_option_ptr(config,s); if(!m_opt) { mpxp_err<<"m_config_set_option "<<opt<<"="<<param<<" : no "<<s<<" subconfig"<<std::endl; return ERR_NOT_AN_OPTION; @@ -678,7 +680,6 @@ return ret; } -namespace mpxp { MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm) { size_t i,siz=argv.size(); @@ -699,7 +700,7 @@ exit(0); } if(opt=="--long-help") { - show_long_help(envm); + show_long_help(config,envm); exit(0); } /* check for -- (no more options id.) except --help! */ @@ -794,18 +795,15 @@ mpxp_err<<"command line: "<<argv[i]<<std::endl; return MPXP_False; } -} // namespace mpxp -int m_config_register_options(m_config_t& config,const config_t *args) { - std::vector<const config_t*>& conf_list = config.opt_list; - conf_list.push_back(args); - - return 1; +MPXP_Rc m_config_register_options(m_config_t& config,const mpxp_option_t *args) { + config.opt_list.push_back(args); + return MPXP_Ok; } -static const config_t* m_config_find_option(const std::vector<const config_t*>& list,const std::string& name) { +static const mpxp_option_t* m_config_find_option(const std::vector<const mpxp_option_t*>& list,const std::string& name) { unsigned i,j; - const config_t *conf; + const mpxp_option_t *conf; if(!list.empty()) { std::string ln=name; std::transform(ln.begin(),ln.end(),ln.begin(), ::tolower); @@ -821,13 +819,13 @@ return NULL; } -const config_t* m_config_get_option(const m_config_t& config,const std::string& arg) { +const mpxp_option_t* m_config_get_option(const m_config_t& config,const std::string& arg) { size_t e; e = arg.find(':'); if(e!=std::string::npos) { - std::vector<const config_t*> cl; - const config_t* opt; + std::vector<const mpxp_option_t*> cl; + const mpxp_option_t* opt; std::string s; s=arg.substr(0,e); opt = m_config_get_option(config,s); @@ -838,7 +836,7 @@ } any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg) { - const config_t* conf; + const mpxp_option_t* conf; conf = m_config_get_option(config,arg); if(!conf) return NULL; @@ -869,11 +867,11 @@ return *ret; } -inline int AS_INT(const config_t* c) { return *((int*)c->p); } -inline void AS_INT(const config_t* c,int val) { *((int*)c->p)=val; } +inline int AS_INT(const mpxp_option_t* c) { return *((int*)c->p); } +inline void AS_INT(const mpxp_option_t* c,int val) { *((int*)c->p)=val; } int m_config_set_int(m_config_t& config,const std::string& arg,int val) { - const config_t* opt; + const mpxp_option_t* opt; opt = m_config_get_option(config,arg); @@ -892,7 +890,7 @@ } int m_config_set_float(m_config_t& config,const std::string& arg,float val) { - const config_t* opt; + const mpxp_option_t* opt; opt = m_config_get_option(config,arg); @@ -912,7 +910,7 @@ int m_config_switch_flag(m_config_t& config,const std::string& opt) { - const config_t *conf; + const mpxp_option_t *conf; conf = m_config_get_option(config,opt); if(!conf || conf->type != CONF_TYPE_FLAG) return 0; @@ -924,7 +922,7 @@ } int m_config_set_flag(m_config_t& config,const std::string& opt, int state) { - const config_t *conf; + const mpxp_option_t *conf; conf = m_config_get_option(config,opt); if(!conf || conf->type != CONF_TYPE_FLAG) return 0; @@ -935,7 +933,7 @@ int m_config_get_flag(const m_config_t& config,const std::string& opt) { - const config_t* conf = m_config_get_option(config,opt); + const mpxp_option_t* conf = m_config_get_option(config,opt); if(!conf || conf->type != CONF_TYPE_FLAG) return -1; if(AS_INT(conf) == conf->max) return 1; else if(AS_INT(conf) == conf->min) return 0; @@ -943,7 +941,7 @@ } int m_config_is_option_set(const m_config_t& config,const std::string& arg) { - const config_t* opt; + const mpxp_option_t* opt; config_save_t* save; int l,i; @@ -965,7 +963,7 @@ return 0; } -static void __m_config_show_options(unsigned ntabs,const std::string& pfx,const config_t* opts) { +static void __m_config_show_options(unsigned ntabs,const std::string& pfx,const mpxp_option_t* opts) { unsigned i,n; i=0; while(opts[i].name) { @@ -980,7 +978,7 @@ else newpfx=""; newpfx+=opts[i].name; newpfx+="."; - __m_config_show_options(ntabs+2,newpfx,(const config_t *)opts[i].p); + __m_config_show_options(ntabs+2,newpfx,(const mpxp_option_t *)opts[i].p); } else if(opts[i].type<=CONF_TYPE_PRINT) { @@ -1053,12 +1051,13 @@ } void m_config_show_options(const m_config_t& args) { - unsigned j; - const config_t *opts; + size_t j,sz=args.opt_list.size(); + const mpxp_option_t *opts; j=0; mpxp_info<<"List of available command-line options:"<<std::endl; - while((opts=args.opt_list[j])!=NULL) { - __m_config_show_options(2,NULL,opts); - j++; + for(j=0;j<sz;j++) { + opts=args.opt_list[j]; + __m_config_show_options(2,"",opts); }; } +} // namespace mpxp Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-28 07:23:44 UTC (rev 614) @@ -11,164 +11,165 @@ namespace mpxp { struct libinput_t; struct PlayTree; -} -/* config types */ -enum { - CONF_TYPE_FLAG =0, - CONF_TYPE_INT =1, - CONF_TYPE_FLOAT =2, - CONF_TYPE_STRING =3, - CONF_TYPE_PRINT =4, - CONF_TYPE_INC =5, - CONF_TYPE_INCLUDE =6, - CONF_TYPE_SUBCONFIG =7 -}; -enum { - ERR_NOT_AN_OPTION =-1, - ERR_MISSING_PARAM =-2, - ERR_OUT_OF_RANGE =-3, - ERR_FUNC_ERR =-4, - ERR_NO_SUBCONF =-5 -}; -/* config flags */ -enum { - CONF_MIN =(1<<0), - CONF_MAX =(1<<1), - CONF_RANGE =(CONF_MIN|CONF_MAX), - CONF_NOCFG =(1<<2), - CONF_NOCMD =(1<<3), - CONF_GLOBAL =(1<<4), - CONF_NOSAVE =(1<<5) -}; -struct config_t { - const char *name; - any_t* const p; - unsigned int type; - unsigned int flags; - float min,max; - const char *help; -}; -typedef void (*cfg_default_func_t)(config_t*,const std::string&); + /* config types */ + enum { + CONF_TYPE_FLAG =0, + CONF_TYPE_INT =1, + CONF_TYPE_FLOAT =2, + CONF_TYPE_STRING=3, + CONF_TYPE_PRINT =4, + CONF_TYPE_INC =5, + CONF_TYPE_INCLUDE=6, + CONF_TYPE_SUBCONFIG=7 + }; -struct config_save_t; -struct m_config_t : public Opaque { - m_config_t(libinput_t& _libinput):libinput(_libinput) {} - ~m_config_t() {} + enum { + ERR_NOT_AN_OPTION =-1, + ERR_MISSING_PARAM =-2, + ERR_OUT_OF_RANGE =-3, + ERR_FUNC_ERR =-4, + ERR_NO_SUBCONF =-5 + }; - std::vector<const config_t*> opt_list; - config_save_t** config_stack; - int cs_level; - int parser_mode; /* COMMAND_LINE or CONFIG_FILE */ - int flags; - const char* sub_conf; // When we save a subconfig - PlayTree* pt; // play tree we use for playlist option, etc - PlayTree* last_entry; // last added entry - PlayTree* last_parent; // if last_entry is NULL we must create child of this - int recursion_depth; - libinput_t& libinput; -}; + /* config flags */ + enum { + CONF_MIN =(1<<0), + CONF_MAX =(1<<1), + CONF_RANGE =(CONF_MIN|CONF_MAX), + CONF_NOCFG =(1<<2), + CONF_NOCMD =(1<<3), + CONF_GLOBAL =(1<<4), + CONF_NOSAVE =(1<<5) + }; -struct config_save_t { - const config_t* opt; - union { - int as_int; - float as_float; - any_t* as_pointer; - } param; - char* opt_name; -}; + struct mpxp_option_t { + const char *name; + any_t* const p; + unsigned int type; + unsigned int flags; + float min,max; + const char *help; + }; -/* parse_config_file returns: - * -1 on error (can't mp_malloc, invalid option...) - * 0 if can't open configfile - * 1 on success - */ -MPXP_Rc m_config_parse_config_file(m_config_t& config,const std::string& conffile); + typedef void (*cfg_default_func_t)(mpxp_option_t*,const std::string&); -/* parse_command_line returns: - * -1 on error (invalid option...) - * 1 otherwise - */ -namespace mpxp { + struct config_save_t; + struct m_config_t : public Opaque { + m_config_t(libinput_t& _libinput):libinput(_libinput) {} + virtual ~m_config_t() {} + + std::vector<const mpxp_option_t*> opt_list; + config_save_t** config_stack; + int cs_level; + int parser_mode; /* COMMAND_LINE or CONFIG_FILE */ + int flags; + const char* sub_conf; // When we save a subconfig + PlayTree* pt; // play tree we use for playlist option, etc + PlayTree* last_entry; // last added entry + PlayTree* last_parent; // if last_entry is NULL we must create child of this + int recursion_depth; + libinput_t& libinput; + }; + + struct config_save_t { + const mpxp_option_t* opt; + union { + int as_int; + float as_float; + any_t* as_pointer; + } param; + const char* opt_name; + }; + + /* parse_command_line returns: + * -1 on error (invalid option...) + * 1 otherwise + */ MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm); -} + /* + * Return 0 on error 1 on success + */ + MPXP_Rc m_config_register_options(m_config_t& config,const mpxp_option_t *args); -m_config_t& m_config_new(PlayTree* pt,libinput_t&libinput); + /* parse_config_file returns: + * -1 on error (can't mp_malloc, invalid option...) + * 0 if can't open configfile + * 1 on success + */ + MPXP_Rc m_config_parse_config_file(m_config_t& config,const std::string& conffile); -void m_config_free(m_config_t* config); + m_config_t& m_config_new(PlayTree* pt,libinput_t&libinput); -void m_config_push(m_config_t& config); + void m_config_free(m_config_t* config); -/* - * Return 0 on error 1 on success - */ -int m_config_pop(m_config_t& config); + void m_config_push(m_config_t& config); -/* - * Return 0 on error 1 on success - */ -int m_config_register_options(m_config_t& config,const config_t *args); + /* + * Return 0 on error 1 on success + */ + int m_config_pop(m_config_t& config); -void m_config_show_options(const m_config_t& args); + void m_config_show_options(const m_config_t& args); -/* - * For all the following function when it's a subconfig option - * you must give an option name like 'tv:channel' and not just - * 'channel' - */ + /* + * For all the following function when it's a subconfig option + * you must give an option name like 'tv:channel' and not just + * 'channel' + */ -/** Return 1 on sucess 0 on failure -**/ -int m_config_set_option(m_config_t& config,const std::string& opt,const std::string& param); + /** Return 1 on sucess 0 on failure + **/ + int m_config_set_option(m_config_t& config,const std::string& opt,const std::string& param); -/** Get the config struct defining an option - * @return NULL on error -**/ -const config_t* m_config_get_option(const m_config_t& config,const std::string& arg); + /** Get the config struct defining an option + * @return NULL on error + **/ + const mpxp_option_t* m_config_get_option(const m_config_t& config,const std::string& arg); -/** Get the p field of the struct defining an option - * @return NULL on error -**/ -any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg); + /** Get the p field of the struct defining an option + * @return NULL on error + **/ + any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg); -/** Tell is an option is alredy set or not - * @return -1 one error (requested option arg exist) otherwise 0 or 1 -**/ -int m_config_is_option_set(const m_config_t& config,const std::string& arg); + /** Tell is an option is alredy set or not + * @return -1 one error (requested option arg exist) otherwise 0 or 1 + **/ + int m_config_is_option_set(const m_config_t& config,const std::string& arg); -/** Return 0 on error 1 on success -**/ -int m_config_switch_flag(m_config_t& config,const std::string& opt); + /** Return 0 on error 1 on success + **/ + int m_config_switch_flag(m_config_t& config,const std::string& opt); -/** Return 0 on error 1 on success -**/ -int m_config_set_flag(m_config_t& config,const std::string& opt, int max); + /** Return 0 on error 1 on success + **/ + int m_config_set_flag(m_config_t& config,const std::string& opt, int max); -/** Return the value of a flag (O or 1) and -1 on error -**/ -int m_config_get_flag(const m_config_t& config,const std::string& opt); + /** Return the value of a flag (O or 1) and -1 on error + **/ + int m_config_get_flag(const m_config_t& config,const std::string& opt); -/** Set the value of an int option - * @return 0 on error 1 on success -**/ -int m_config_set_int(m_config_t& config,const std::string& arg,int val); + /** Set the value of an int option + * @return 0 on error 1 on success + **/ + int m_config_set_int(m_config_t& config,const std::string& arg,int val); -/** Get the value of an int option - * @param err_ret If it is not NULL it's set to 1 on error - * @return the option value or -1 on error -**/ -int m_config_get_int (const m_config_t&,const std::string& arg,int& err_ret); + /** Get the value of an int option + * @param err_ret If it is not NULL it's set to 1 on error + * @return the option value or -1 on error + **/ + int m_config_get_int (const m_config_t&,const std::string& arg,int& err_ret); -/** Set the value of a float option - * @return 0 on error 1 on success -**/ -int m_config_set_float(m_config_t& config,const std::string& arg,float val); + /** Set the value of a float option + * @return 0 on error 1 on success + **/ + int m_config_set_float(m_config_t& config,const std::string& arg,float val); -/** Get the value of a float option - * @param err_ret If it is not NULL it's set to 1 on error - * @return the option value or -1 on error -**/ -float m_config_get_float (const m_config_t&,const std::string& arg,int& err_ret); + /** Get the value of a float option + * @param err_ret If it is not NULL it's set to 1 on error + * @return the option value or -1 on error + **/ + float m_config_get_float (const m_config_t&,const std::string& arg,int& err_ret); +} // namespace mpxp #endif /* __CONFIG_H */ Modified: mplayerxp/libmpdemux/demux_ac3.cpp =================================================================== --- mplayerxp/libmpdemux/demux_ac3.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_ac3.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -398,7 +398,7 @@ #include "libmpconf/cfgparser.h" -static const config_t ac3_opts[] = { +static const mpxp_option_t ac3_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_avi.cpp =================================================================== --- mplayerxp/libmpdemux/demux_avi.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_avi.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -1370,14 +1370,14 @@ return MPXP_Unknown; } -static const config_t avi_options[] = { +static const mpxp_option_t avi_options[] = { {"noidx", &index_mode, CONF_TYPE_FLAG, 0, -1, 0, "disables INDEXES for AVI's demuxing"}, {"idx", &index_mode, CONF_TYPE_FLAG, 0, -1, 1, "builds internal INDEXES of incomplete AVIs"}, {"forceidx", &index_mode, CONF_TYPE_FLAG, 0, -1, 2, "forces rebuilding of INDEXES for broken AVIs"}, { NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t avi_opts[] = { +static const mpxp_option_t avi_opts[] = { { "avi", (any_t*)&avi_options, CONF_TYPE_SUBCONFIG, 0, 0, 0, "AVI related options" }, { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_dca.cpp =================================================================== --- mplayerxp/libmpdemux/demux_dca.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_dca.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -575,7 +575,7 @@ #include "libmpconf/cfgparser.h" -static const config_t dca_opts[] = { +static const mpxp_option_t dca_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_flac.cpp =================================================================== --- mplayerxp/libmpdemux/demux_flac.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_flac.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -286,7 +286,7 @@ #include "libmpconf/cfgparser.h" -static const config_t flac_opts[] = { +static const mpxp_option_t flac_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_lavf.cpp =================================================================== --- mplayerxp/libmpdemux/demux_lavf.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_lavf.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -65,13 +65,13 @@ static char *opt_cryptokey; extern int ts_prog; -static const config_t lavf_opts[] = { +static const mpxp_option_t lavf_opts[] = { {"format", &(opt_format), CONF_TYPE_STRING, 0, 0, 0, "forces format of lavf demuxer"}, {"cryptokey", &(opt_cryptokey), CONF_TYPE_STRING, 0, 0, 0, "specifies cryptokey for lavf demuxer"}, {NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t lavfdopts_conf[] = { +static const mpxp_option_t lavfdopts_conf[] = { {"lavf", (any_t*)&lavf_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, "LAVF-demuxer related options"}, {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_mp3.cpp =================================================================== --- mplayerxp/libmpdemux/demux_mp3.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_mp3.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -709,13 +709,13 @@ #include "libmpconf/cfgparser.h" -static const config_t mp3_opts[] = { +static const mpxp_option_t mp3_opts[] = { { "hr-seek", &hr_mp3_seek, CONF_TYPE_FLAG, 0, 0, 1, "enables hight-resolution mp3 seeking" }, { "nohr-seek", &hr_mp3_seek, CONF_TYPE_FLAG, 0, 1, 0, "disables hight-resolution mp3 seeking"}, {NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t mp3_options[] = { +static const mpxp_option_t mp3_options[] = { { "mp3", (any_t*)&mp3_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, "MP3 related options" }, {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_musepack.cpp =================================================================== --- mplayerxp/libmpdemux/demux_musepack.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_musepack.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -297,7 +297,7 @@ #include "libmpconf/cfgparser.h" -static const config_t musepack_opts[] = { +static const mpxp_option_t musepack_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_null.cpp =================================================================== --- mplayerxp/libmpdemux/demux_null.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_null.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -10,11 +10,11 @@ #include "stheader.h" #include "libmpconf/cfgparser.h" -static const config_t demux_null_opts[] = { +static const mpxp_option_t demux_null_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t null_conf[] = { +static const mpxp_option_t null_conf[] = { { "null", (any_t*)&demux_null_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, "Null specific commands"}, { NULL,NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_rawaudio.cpp =================================================================== --- mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_rawaudio.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -20,7 +20,7 @@ static int afmt = AFMT_S16_LE; static int wtag = 0x1; // Raw PCM -static const config_t demux_rawaudio_opts[] = { +static const mpxp_option_t demux_rawaudio_opts[] = { { "on", &use_rawaudio, CONF_TYPE_FLAG, 0,0, 1, "forces treating stream as raw-audio" }, { "channels", &channels, CONF_TYPE_INT,CONF_RANGE,1,8, "specifies number of channels in raw-audio steram" }, { "rate", &samplerate, CONF_TYPE_INT,CONF_RANGE,1000,8*48000, "specifies sample-rate of raw-audio steram" }, @@ -29,7 +29,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t rawaudio_conf[] = { +static const mpxp_option_t rawaudio_conf[] = { { "rawaudio", (any_t*)&demux_rawaudio_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, "Raw-audio specific commands"}, { NULL,NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_rawvideo.cpp =================================================================== --- mplayerxp/libmpdemux/demux_rawvideo.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_rawvideo.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -27,7 +27,7 @@ }; static rawvideo_conf_t priv; -static const config_t demux_rawvideo_opts[] = { +static const mpxp_option_t demux_rawvideo_opts[] = { { "on", &priv.use_rawvideo, CONF_TYPE_FLAG, 0,0, 1, "forces treating stream as raw-vidio" }, // size: { "w", &priv.width, CONF_TYPE_INT,CONF_RANGE,1,8192, "specifies image width of raw-video stream" }, @@ -53,7 +53,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t rawvideo_conf[] = { +static const mpxp_option_t rawvideo_conf[] = { { "rawvideo", (any_t*)&demux_rawvideo_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, "Raw-video specific options"}, { NULL,NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_snd_au.cpp =================================================================== --- mplayerxp/libmpdemux/demux_snd_au.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_snd_au.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -249,7 +249,7 @@ #include "libmpconf/cfgparser.h" -static const config_t snd_au_opts[] = { +static const mpxp_option_t snd_au_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_viv.cpp =================================================================== --- mplayerxp/libmpdemux/demux_viv.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_viv.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -105,7 +105,7 @@ if (producer) delete producer; } -static const config_t vivoopts_conf[]={ +static const mpxp_option_t vivoopts_conf[]={ {"version", &vivo_param.version, CONF_TYPE_INT, 0, 0, 0, "forces version of VIVO stream"}, /* audio options */ {"acodec", &vivo_param.acodec, CONF_TYPE_STRING, 0, 0, 0, "specifies audio-codec of VIVO stream"}, @@ -119,7 +119,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t vivo_conf[] = { +static const mpxp_option_t vivo_conf[] = { { "vivo", (any_t*)&vivoopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, "Vivo specific options"}, { NULL,NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_voc.cpp =================================================================== --- mplayerxp/libmpdemux/demux_voc.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_voc.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -262,7 +262,7 @@ #include "libmpconf/cfgparser.h" -static const config_t voc_opts[] = { +static const mpxp_option_t voc_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demux_wav.cpp =================================================================== --- mplayerxp/libmpdemux/demux_wav.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demux_wav.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -358,7 +358,7 @@ #include "libmpconf/cfgparser.h" -static const config_t audio_opts[] = { +static const mpxp_option_t audio_opts[] = { {NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demuxer.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demuxer.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -516,14 +516,14 @@ /******************* Options stuff **********************/ -static const config_t demux_opts[] = { +static const mpxp_option_t demux_opts[] = { { "audiofile", &demux_conf.audio_stream, CONF_TYPE_STRING, 0, 0, 0, "forces reading of audio-stream from other file" }, { "subfile", &demux_conf.sub_stream, CONF_TYPE_STRING, 0, 0, 0, "forces reading of subtitles from other file" }, { "type", &demux_conf.type, CONF_TYPE_STRING, 0, 0, 0, "forces demuxer by given name" }, { NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t demuxer_opts[] = { +static const mpxp_option_t demuxer_opts[] = { { "demuxer", (any_t*)&demux_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, "Demuxer related options" }, { NULL, NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/libmpdemux/demuxer_internal.h =================================================================== --- mplayerxp/libmpdemux/demuxer_internal.h 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpdemux/demuxer_internal.h 2012-12-28 07:23:44 UTC (rev 614) @@ -7,7 +7,7 @@ const char* short_name; /**< for forcing through comand line */ const char* name; /**< Name of driver ("Matroska MKV parser") */ const char* defext; /**< Default file extension for this movie type */ - const config_t* options;/**< Optional: MPlayerXP's option related */ + const mpxp_option_t* options;/**< Optional: MPlayerXP's option related */ /** Probing stream. * @param d _this demuxer **/ Modified: mplayerxp/libmpstream2/cdda.cpp =================================================================== --- mplayerxp/libmpstream2/cdda.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/libmpstream2/cdda.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -20,7 +20,7 @@ static int search_overlap = -1; static int no_skip = 0; -static const config_t cdda_opts[] = { +static const mpxp_option_t cdda_opts[] = { { "speed", &speed, CONF_TYPE_INT, CONF_RANGE,1,100, "sets driver speed" }, { "overlap", &search_overlap, CONF_TYPE_INT, CONF_RANGE,0,75, "reserved" }, { "noskip", &no_skip, CONF_TYPE_FLAG, 0 , 0, 1, "reserved" }, @@ -28,7 +28,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL} }; -static const config_t cdda_conf[] = { +static const mpxp_option_t cdda_conf[] = { { "cdda", (any_t*)&cdda_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, "CD-DA related options"}, { NULL,NULL, 0, 0, 0, 0, NULL} }; Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/mplayerxp.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -616,9 +616,9 @@ mpxp_info<<"Use --long-help option for full help"<<std::endl; } -void show_long_help(const std::map<std::string,std::string>& envm) { +void show_long_help(const m_config_t& cfg,const std::map<std::string,std::string>& envm) { MPXPSystem& MPXPSys=*mpxp_context().engine().MPXPSys; - m_config_show_options(*mpxp_context().mconfig); + m_config_show_options(cfg); mp_input_print_binds(MPXPSys.libinput()); Stream::print_drivers(); Video_Output::print_help(); @@ -2171,9 +2171,9 @@ } return MPlayerXP(argv,envm); } catch(const std::string& what) { - std::cout<<"Exception '"<<what<<"'caught in module: MPlayerXP"<<std::endl; - } catch(...) { - std::cout<<"Exception caught in module: MPlayerXP"<<std::endl; + std::cout<<"[main_module] Exception '"<<what<<"'caught in module: MPlayerXP"<<std::endl; +// } catch(...) { +// std::cout<<"[main_module] Exception caught in module: MPlayerXP"<<std::endl; } return EXIT_FAILURE; } Modified: mplayerxp/mplayerxp.h =================================================================== --- mplayerxp/mplayerxp.h 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/mplayerxp.h 2012-12-28 07:23:44 UTC (rev 614) @@ -17,8 +17,8 @@ struct audio_decoder_t; struct video_decoder_t; -struct m_config_t; namespace mpxp { + struct m_config_t; struct _PlayTree_Iter; /* List of all modules which require protection by pin-code */ enum { @@ -198,9 +198,8 @@ unsigned get_number_cpu(void); void show_help(void); - void show_long_help(const std::map<std::string,std::string>& envm); + void show_long_help(const m_config_t& cfg,const std::map<std::string,std::string>& envm); - void update_osd( float v_pts ); extern pthread_mutex_t audio_timer_mutex; Modified: mplayerxp/xmpcore/xmp_context.cpp =================================================================== --- mplayerxp/xmpcore/xmp_context.cpp 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/xmpcore/xmp_context.cpp 2012-12-28 07:23:44 UTC (rev 614) @@ -20,7 +20,7 @@ #endif extern const char *oss_mixer_device; -static const config_t xpcore_config[]={ +static const mpxp_option_t xpcore_config[]={ {"xp", &mp_conf.xp, CONF_TYPE_INT, CONF_RANGE, 0, UINT_MAX, "specifies number cpus to use for playback"}, {"dump", &mp_conf.stream_dump, CONF_TYPE_STRING, 0, 0, 0, "specifies dump type and name for the dump of stream"}, {"gomp", &mp_conf.gomp, CONF_TYPE_FLAG, 0, 0, 1, "enables usage of OpenMP extensions"}, @@ -38,7 +38,7 @@ }; #ifdef HAVE_STREAMING -static const config_t net_config[]={ +static const mpxp_option_t net_config[]={ {"ipv4", &net_conf.prefer_ipv4, CONF_TYPE_FLAG, 0, 0, 1, "forces mplayerxp to use IPv4 protocol over network"}, #ifdef HAVE_AF_INET6 {"ipv6", &net_conf.prefer_ipv4, CONF_TYPE_FLAG, 0, 1, 0, "forces mplayerxp to use IPv6 protocol over network"}, @@ -57,7 +57,7 @@ #endif #if defined( ARCH_X86 ) || defined(ARCH_X86_64) -static const config_t cpu_config[]={ +static const mpxp_option_t cpu_config[]={ {"simd", &mp_conf.x86.simd, CONF_TYPE_FLAG, 0, 0, 1, "enables using of SIMD extensions of CPU"}, {"nosimd", &mp_conf.x86.simd, CONF_TYPE_FLAG, 0, 1, 0, "disables using of SIMD extensions of CPU"}, {"mmx", &mp_conf.x86.mmx, CONF_TYPE_FLAG, 0, 0, 1, "enables using of MMX extensions of CPU"}, @@ -90,7 +90,7 @@ }; #endif -static const config_t osd_config[]={ +static const mpxp_option_t osd_config[]={ {"level", &mp_conf.osd_level, CONF_TYPE_INT, CONF_RANGE, 0, 2 , "specifies initial mode of the OSD"}, #ifdef USE_OSD {"font", &mp_conf.font_name, CONF_TYPE_STRING, 0, 0, 0, "specifies an alternative directory of font.desc location"}, @@ -102,7 +102,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL}, }; -static const config_t veq_config[]={ +static const mpxp_option_t veq_config[]={ {"brightness",&vo_conf.gamma.brightness, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, "specifies brightness-level for output image"}, {"saturation",&vo_conf.gamma.saturation, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, "specifies saturation-level for output image"}, {"contrast",&vo_conf.gamma.contrast, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, "specifies contrast-level for output image"}, @@ -114,7 +114,7 @@ }; -static const config_t avsync_config[]={ +static const mpxp_option_t avsync_config[]={ {"framedrop", &mp_conf.frame_dropping, CONF_TYPE_FLAG, 0, 0, 1, "enables frame-dropping on slow systems: decodes all video frames, but skips displaying some ones"}, /*UD*/ {"hardframedrop", &mp_conf.frame_dropping, CONF_TYPE_FLAG, 0, 0, 2, "enables hard frame-dropping on slow systems: skips displaying and decoding of some frames"}, {"noframedrop", &mp_conf.frame_dropping, CONF_TYPE_FLAG, 0, 1, 0, "disables frame dropping"}, @@ -137,7 +137,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL}, }; -static const config_t subtitle_config[]={ +static const mpxp_option_t subtitle_config[]={ {"on", &mp_conf.has_dvdsub, CONF_TYPE_FLAG, 0, 0, 1, "enables subtitle-steam playback"}, {"off", &mp_conf.has_dvdsub, CONF_TYPE_FLAG, 0, 1, 0, "disables subtitle-stream playback"}, {"vob", &mp_conf.vobsub_name, CONF_TYPE_STRING, 0, 0, 0, "specifies the VobSub files that are to be used for subtitle"}, @@ -164,7 +164,7 @@ }; #ifdef HAVE_X11 -static const config_t x11_config[]={ +static const mpxp_option_t x11_config[]={ {"display", &vo_conf.mDisplayName, CONF_TYPE_STRING, 0, 0, 0, "specifies the hostname and display number of the X server"}, #ifdef HAVE_XINERAMA {"xinerama", &vo_conf.xinerama_screen, CONF_TYPE_INT, CONF_RANGE, 0, 32, "tells MPlayerXP the display for movie playback"}, @@ -173,7 +173,7 @@ }; #endif -static const config_t audio_config[]={ +static const mpxp_option_t audio_config[]={ {"on", &mp_conf.has_audio, CONF_TYPE_FLAG, 0, 0, 1, "enables audio-steam playback"}, {"off", &mp_conf.has_audio, CONF_TYPE_FLAG, 0, 1, 0, "disables audio-stream playback"}, {"mixer", &oss_mixer_device, CONF_TYPE_STRING, 0, 0, 0, "select audio-mixer device"}, @@ -184,7 +184,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL}, }; -static const config_t video_config[]={ +static const mpxp_option_t video_config[]={ {"on", &mp_conf.has_video, CONF_TYPE_FLAG, 0, 0, 1, "enables video-steam playback"}, {"off", &mp_conf.has_video, CONF_TYPE_FLAG, 0, 1, 0, "disables video-stream playback"}, {"width", &vo_conf.image_width, CONF_TYPE_INT, CONF_RANGE, 0, 4096, "scale output image to width (if driver supports)"}, @@ -220,7 +220,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL}, }; -static const config_t playback_config[]={ +static const mpxp_option_t playback_config[]={ {"sb", &mp_conf.seek_to_byte, CONF_TYPE_INT, CONF_MIN, 0, 0, "seek to given byte position before playback"}, {"ss", &mp_conf.seek_to_sec, CONF_TYPE_STRING, CONF_MIN, 0, 0, "seek to given time position before playback"}, {"loop", &mp_conf.loop_times, CONF_TYPE_INT, CONF_RANGE, -1, 10000, "loops movie playback given number of times. 0 means forever"}, @@ -232,7 +232,7 @@ {NULL, NULL, 0, 0, 0, 0, NULL}, }; -static const config_t mplayerxp_options[]={ +static const mpxp_option_t mplayerxp_options[]={ /* name, pointer, type, flags, min, max, help */ {"include", NULL, CONF_TYPE_INCLUDE, CONF_NOSAVE, 0, 0, ""}, /* this don't need anymore to be the first!!! */ @@ -269,7 +269,7 @@ // ------------------------- codec/pp options -------------------- {NULL, NULL, 0, 0, 0, 0, NULL} }; -const config_t* mplayerxp_opts=mplayerxp_options; +const mpxp_option_t* mplayerxp_opts=mplayerxp_options; } // namespace mpxp extern void libmpcodecs_ad_register_options(m_config_t& cfg); Modified: mplayerxp/xmpcore/xmp_context.h =================================================================== --- mplayerxp/xmpcore/xmp_context.h 2012-12-28 06:34:01 UTC (rev 613) +++ mplayerxp/xmpcore/xmp_context.h 2012-12-28 07:23:44 UTC (rev 614) @@ -1,9 +1,9 @@ #ifndef _XMP_CONTEXT_H_INCLUDED #define _XMP_CONTEXT_H_INCLUDED 1 -struct config_t; namespace mpxp { - extern const config_t* mplayerxp_opts; + struct mpxp_option_t; + extern const mpxp_option_t* mplayerxp_opts; } #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-28 12:22:49
|
Revision: 617 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=617&view=rev Author: nickols_k Date: 2012-12-28 12:22:38 +0000 (Fri, 28 Dec 2012) Log Message: ----------- convert struct m_config_t into class M_Config + simplifications (remove meaningless config_save_t - that fix multiple problems Modified Paths: -------------- mplayerxp/input2/input.cpp mplayerxp/libmpcodecs/ad.cpp mplayerxp/libmpcodecs/vd.cpp mplayerxp/libmpconf/cfgparser.cpp mplayerxp/libmpconf/cfgparser.h mplayerxp/libmpdemux/demuxer.cpp mplayerxp/libmpstream2/cdd.h mplayerxp/libmpstream2/cdda.cpp mplayerxp/libplaytree/asxparser.cpp mplayerxp/libplaytree/playtree.cpp mplayerxp/libplaytree/playtree.h mplayerxp/mplayerxp.cpp mplayerxp/mplayerxp.h mplayerxp/xmpcore/xmp_context.cpp Modified: mplayerxp/input2/input.cpp =================================================================== --- mplayerxp/input2/input.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/input2/input.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -1349,8 +1349,8 @@ delete &handle; } -void mp_input_register_options(m_config_t& cfg) { - m_config_register_options(cfg,mp_input_opts); +void mp_input_register_options(M_Config& cfg) { + cfg.register_options(mp_input_opts); } void mp_input_print_keys(libinput_t& handle) { Modified: mplayerxp/libmpcodecs/ad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libmpcodecs/ad.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -66,13 +66,13 @@ static unsigned int nddrivers=sizeof(mpcodecs_ad_drivers)/sizeof(ad_functions_t*); -void libmpcodecs_ad_register_options(m_config_t& cfg) +void libmpcodecs_ad_register_options(M_Config& cfg) { unsigned i; for(i=0;i<nddrivers;i++) { if(mpcodecs_ad_drivers[i]) if(mpcodecs_ad_drivers[i]->options) - m_config_register_options(cfg,mpcodecs_ad_drivers[i]->options); + cfg.register_options(mpcodecs_ad_drivers[i]->options); if(mpcodecs_ad_drivers[i]==&mpcodecs_ad_null) break; } } Modified: mplayerxp/libmpcodecs/vd.cpp =================================================================== --- mplayerxp/libmpcodecs/vd.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libmpcodecs/vd.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -73,13 +73,13 @@ }; static unsigned int nddrivers=sizeof(mpcodecs_vd_drivers)/sizeof(vd_functions_t*); -void libmpcodecs_vd_register_options(m_config_t& cfg) +void libmpcodecs_vd_register_options(M_Config& cfg) { unsigned i; for(i=0;i<nddrivers;i++) { if(mpcodecs_vd_drivers[i]) if(mpcodecs_vd_drivers[i]->options) - m_config_register_options(cfg,mpcodecs_vd_drivers[i]->options); + cfg.register_options(mpcodecs_vd_drivers[i]->options); if(mpcodecs_vd_drivers[i]==&mpcodecs_vd_null) break; } } Modified: mplayerxp/libmpconf/cfgparser.cpp =================================================================== --- mplayerxp/libmpconf/cfgparser.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libmpconf/cfgparser.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -9,6 +9,7 @@ * subconfig support by alex */ #include <algorithm> +#include <limits> #include <stdlib.h> #include <stdio.h> @@ -17,211 +18,51 @@ #include <fcntl.h> #include <string.h> #include <errno.h> +#include <sys/stat.h> +#include <sys/types.h> #include "mplayerxp.h" +#include "mpxp_help.h" #include "cfgparser.h" #include "libplaytree/playtree.h" #include "parser_msg.h" namespace mpxp { -enum { - COMMAND_LINE=0, - CONFIG_FILE=1, +static const int MAX_RECURSION_DEPTH=8; - CONFIG_GLOBAL=(1<<0), - CONFIG_RUNNING=(1<<1), - - MAX_RECURSION_DEPTH=8 -}; - -inline void SET_GLOBAL(m_config_t& c) { c.flags |= CONFIG_GLOBAL; } -inline void UNSET_GLOBAL(m_config_t& c) { c.flags &= (!CONFIG_GLOBAL); } -inline int IS_GLOBAL(const m_config_t& c) { return c.flags & CONFIG_GLOBAL; } -inline void SET_RUNNING(m_config_t& c) { c.flags |= CONFIG_RUNNING; } -inline int IS_RUNNING(const m_config_t& c) { return c.flags & CONFIG_RUNNING; } - typedef int (*cfg_func_arg_param_t)(const mpxp_option_t *,const std::string& ,const std::string& ); typedef int (*cfg_func_param_t)(const mpxp_option_t *,const std::string& ); typedef int (*cfg_func_t)(const mpxp_option_t *); -static void -m_config_save_option(m_config_t& config,const mpxp_option_t* conf,const std::string& opt,const std::string& param) { - config_save_t* save; - int sl=0; - switch(conf->type) { - case CONF_TYPE_PRINT : - case CONF_TYPE_SUBCONFIG : - return; - default : - ; - } - - mpxp_dbg2<<"Saving option "<<opt<<std::endl; - - save = config.config_stack[config.cs_level]; - - if(save) { - std::string lopt=opt; - std::transform(lopt.begin(),lopt.end(),lopt.begin(), ::tolower); - for(sl = 0; save[sl].opt != NULL; sl++){ - // Check to not save the same arg two times - if(save[sl].opt == conf && (save[sl].opt_name == NULL || lopt==save[sl].opt_name)) - break; - } - if(save[sl].opt) - return; - } - - save = (config_save_t*)mp_realloc(save,(sl+2)*sizeof(config_save_t)); - if(save == NULL) { - mpxp_err<<"Can't allocate "<<((sl+2)*sizeof(config_save_t))<<" bytes of memory : "<<strerror(errno)<<std::endl; - return; - } - memset(&save[sl],0,2*sizeof(config_save_t)); - save[sl].opt = conf; - - switch(conf->type) { - case CONF_TYPE_FLAG : - case CONF_TYPE_INC : - case CONF_TYPE_INT : - save[sl].param.as_int = *((int*)conf->p); - break; - case CONF_TYPE_FLOAT : - save[sl].param.as_float = *((float*)conf->p); - break; - case CONF_TYPE_STRING : - save[sl].param.as_pointer = *((char**)conf->p); - break; - case CONF_TYPE_INCLUDE : - if(!param.empty()) - save->param.as_pointer = mp_strdup(param.c_str()); - default : - mpxp_err<<"Should never append in m_config_save_option : conf->type="<<conf->type<<std::endl; - } - - config.config_stack[config.cs_level] = save; +M_Config::M_Config(PlayTree* _pt,libinput_t& _libinput) + :pt(_pt),libinput(_libinput) +{ + set_global(); // We always start with global options } +M_Config::~M_Config() {} -static int m_config_revert_option(m_config_t& config, config_save_t* save) { - const char* arg = NULL; - config_save_t* iter=NULL; - int i=-1; +void M_Config::set_global() { flags |= M_Config::Global; } +void M_Config::unset_global() { flags &= ~M_Config::Global; } +int M_Config::is_global() const { return flags & M_Config::Global; } +void M_Config::set_running() { flags |= M_Config::Running; } +void M_Config::unset_running() { flags &= ~M_Config::Running; } +int M_Config::is_running() const { return flags & M_Config::Running; } - arg = save->opt_name ? save->opt_name : save->opt->name; - mpxp_dbg2<<"Reverting option: "<<arg<<std::endl; - - switch(save->opt->type) { - case CONF_TYPE_FLAG: - case CONF_TYPE_INC : - case CONF_TYPE_INT : - *((int*)save->opt->p) = save->param.as_int; - break; - case CONF_TYPE_FLOAT : - *((float*)save->opt->p) = save->param.as_float; - break; - case CONF_TYPE_STRING : - *((char**)save->opt->p) = reinterpret_cast<char*>(save->param.as_pointer); - break; - case CONF_TYPE_INCLUDE : - if(config.cs_level > 0) { - for(i = config.cs_level - 1 ; i >= 0 ; i--){ - if(config.config_stack[i] == NULL) continue; - for(iter = config.config_stack[i]; iter != NULL && iter->opt != NULL ; iter++) { - if(iter->opt == save->opt && - ((save->param.as_pointer == NULL || iter->param.as_pointer == NULL) || strcasecmp((const char *)save->param.as_pointer,(const char *)iter->param.as_pointer) == 0) && - (save->opt_name == NULL || - (iter->opt_name && strcasecmp(save->opt_name,iter->opt_name)))) break; - } - } - } - delete save->param.as_pointer; - if(save->opt_name) delete save->opt_name; - save->param.as_pointer = NULL; - save->opt_name = reinterpret_cast<char*>(save->param.as_pointer); - if(i < 0) break; - arg = iter->opt_name ? iter->opt_name : iter->opt->name; - switch(iter->opt->type) { - case CONF_TYPE_INCLUDE : - if (iter->param.as_pointer == NULL) { - mpxp_err<<"We lost param for option "<<iter->opt->name<<"?"<<std::endl; - return -1; - } - if ((((cfg_func_param_t) iter->opt->p)(iter->opt, (char*)iter->param.as_pointer)) < 0) - return -1; - break; - } - break; - default : - mpxp_err<<"Why do we reverse this : name="<<save->opt->name<<" type="<<save->opt->type<<" ?"<<std::endl; - } - - return 1; -} - -void m_config_push(m_config_t& config) { - - config.cs_level++; - config.config_stack = (config_save_t**)mp_realloc(config.config_stack ,sizeof(config_save_t*)*(config.cs_level+1)); - if(config.config_stack == NULL) { - mpxp_err<<"Can't allocate "<<(sizeof(config_save_t*)*(config.cs_level+1))<<" bytes of memory : "<<strerror(errno)<<std::endl; - config.cs_level = -1; - return; - } - config.config_stack[config.cs_level] = NULL; - mpxp_dbg2<<"Config pushed level="<<config.cs_level<<std::endl; -} - -int m_config_pop(m_config_t& config) { - int i,ret= 1; - config_save_t* cs; - - if(config.config_stack[config.cs_level] != NULL) { - cs = config.config_stack[config.cs_level]; - for(i=0; cs[i].opt != NULL ; i++ ) { - if (m_config_revert_option(config,&cs[i]) < 0) - ret = -1; - } - delete config.config_stack[config.cs_level]; - } - config.config_stack = (config_save_t**)mp_realloc(config.config_stack ,sizeof(config_save_t*)*config.cs_level); - config.cs_level--; - if(config.cs_level > 0 && config.config_stack == NULL) { - mpxp_err<<"Can't allocate memory"<<std::endl; - config.cs_level = -1; - return -1; - } - mpxp_dbg2<<"Config poped level="<<config.cs_level<<std::endl; - return ret; -} - -m_config_t& m_config_new(PlayTree* pt,libinput_t&libinput) { - m_config_t& config = *new(zeromem) m_config_t(libinput); - config.config_stack = (config_save_t**)mp_calloc(1,sizeof(config_save_t*)); - SET_GLOBAL(config); // We always start with global options - config.pt = pt; - return config; -} - -void m_config_free(m_config_t* config) { - delete config->config_stack; - delete config; -} - -static int init_conf(m_config_t& config, int mode) +MPXP_Rc M_Config::init_conf(mode_e mode) { - config.parser_mode = mode; - return 1; + parser_mode = mode; + return MPXP_Ok; } -static int config_is_entry_option(m_config_t& config,const std::string& opt,const std::string& param) { +int M_Config::is_entry_option(const std::string& opt,const std::string& param) { PlayTree* entry = NULL; std::string lopt=opt; std::transform(lopt.begin(),lopt.end(),lopt.begin(), ::tolower); if(lopt=="playlist") { // We handle playlist here if(param.empty()) return ERR_MISSING_PARAM; - entry = PlayTree::parse_playlist_file(config.libinput,param); + entry = PlayTree::parse_playlist_file(libinput,param); if(!entry) { mpxp_err<<"Playlist parsing failed: "<<param<<std::endl; return 1; @@ -229,23 +70,22 @@ } if(entry) { - if(config.last_entry) config.last_entry->append_entry(entry); - else config.pt->set_child(entry); - config.last_entry = entry; - if(config.parser_mode == COMMAND_LINE) UNSET_GLOBAL(config); + if(last_entry) last_entry->append_entry(entry); + else pt->set_child(entry); + last_entry = entry; + if(parser_mode == M_Config::CmdLine) unset_global(); return 1; } return 0; } -static MPXP_Rc cfg_include(m_config_t& conf,const std::string& filename){ - return m_config_parse_config_file(conf, filename); +MPXP_Rc M_Config::cfg_include(const std::string& filename){ + return parse_config_file(filename); } -static int cfg_inc_int(int value){ return ++value; } +int M_Config::cfg_inc_int(int value){ return ++value; } -static int config_read_option(m_config_t& config,const std::vector<const mpxp_option_t*>& conf_list,const std::string& opt,const std::string& param) -{ +int M_Config::read_option(const std::vector<const mpxp_option_t*>& conf_list,const std::string& opt,const std::string& param) { int i=0,nconf = 0; long tmp_int; double tmp_float; @@ -276,30 +116,25 @@ option_found : mpxp_dbg3<<"read_option: name='"<<conf[i].name<<"' type="<<conf[i].type<<std::endl; - if (conf[i].flags & CONF_NOCFG && config.parser_mode == CONFIG_FILE) { + if (conf[i].flags & CONF_NOCFG && parser_mode == M_Config::File) { mpxp_err<<"this option can only be used on command line:"<<opt<<std::endl; ret = ERR_NOT_AN_OPTION; goto out; } - if (conf[i].flags & CONF_NOCMD && config.parser_mode == COMMAND_LINE) { + if (conf[i].flags & CONF_NOCMD && parser_mode == M_Config::CmdLine) { mpxp_err<<"this option can only be used in config file:"<<opt<<std::endl; ret = ERR_NOT_AN_OPTION; goto out; } - ret = config_is_entry_option(config,opt,param); + ret = is_entry_option(opt,param); if(ret != 0) return ret; else ret = -1; - if(! IS_RUNNING(config) && ! IS_GLOBAL(config) && - ! (conf[i].flags & CONF_GLOBAL) && conf[i].type != CONF_TYPE_SUBCONFIG ) - m_config_push(config); - if( !(conf[i].flags & CONF_NOSAVE) && ! (conf[i].flags & CONF_GLOBAL) ) - m_config_save_option(config,&conf[i],opt,param); switch (conf[i].type) { case CONF_TYPE_FLAG: /* flags need a parameter in config file */ - if (config.parser_mode == CONFIG_FILE) { + if (parser_mode == M_Config::File) { std::string lparm=param; std::transform(lparm.begin(),lparm.end(),lparm.begin(), ::tolower); if (lparm=="yes" || /* any other language? */ @@ -420,7 +255,7 @@ case CONF_TYPE_INCLUDE: if (param.empty()) goto err_missing_param; - if (cfg_include(config, param) < 0) { + if (cfg_include(param) < 0) { ret = ERR_FUNC_ERR; goto out; } @@ -434,17 +269,16 @@ break; } out: - if(ret >= 0 && ! IS_RUNNING(config) && ! IS_GLOBAL(config) && ! (conf[i].flags & CONF_GLOBAL) && conf[i].type != CONF_TYPE_SUBCONFIG ) { - PlayTree* dest = config.last_entry ? config.last_entry : config.last_parent; + if(ret >= 0 && ! is_running() && !is_global() && ! (conf[i].flags & CONF_GLOBAL) && conf[i].type != CONF_TYPE_SUBCONFIG ) { + PlayTree* dest = last_entry ? last_entry : last_parent; std::string o; - if(config.sub_conf) o=std::string(config.sub_conf)+":"+opt; - else o=opt; + if(sub_conf) o=std::string(sub_conf)+":"+opt; + else o=opt; if(ret == 0) dest->set_param(o,""); else if(ret > 0) dest->set_param(o,param); - m_config_pop(config); } return ret; err_missing_param: @@ -453,26 +287,25 @@ goto out; } -static const mpxp_option_t* m_config_find_option(const std::vector<const mpxp_option_t*>& list,const std::string& name); - -int m_config_set_option(m_config_t& config,const std::string& _opt,const std::string& param) { +int M_Config::set_option(const std::string& _opt,const std::string& param) { size_t e; - std::vector<const mpxp_option_t*> clist=config.opt_list; + std::vector<const mpxp_option_t*> clist=opt_list; std::string opt=_opt; std::string s; mpxp_dbg2<<"Setting option "<<opt<<"="<<param<<std::endl; - clist = config.opt_list; + clist = opt_list; e=opt.find('.'); if(e!=std::string::npos) { - int flg,ret; + int ret; + flags_e flg; const mpxp_option_t *subconf=NULL; mpxp_dbg2<<"Parsing "<<opt<<" as subconfig"<<std::endl; do { if((e = opt.find('.'))==std::string::npos) break; s=opt.substr(0,e); mpxp_dbg2<<"Treat "<<s<<" as subconfig name"<<std::endl; - subconf = m_config_find_option(clist,s); + subconf = find_option(clist,s); clist.clear(); if(!subconf) return ERR_NO_SUBCONF; if(subconf->type!=CONF_TYPE_SUBCONFIG) return ERR_NO_SUBCONF; @@ -480,10 +313,10 @@ opt = opt.substr(e+1); mpxp_dbg2<<"switching next subconf="<<subconf->name<<std::endl; }while(1); - flg=config.flags; - config.flags|=CONFIG_GLOBAL; - ret=config_read_option(config,clist,opt,param); - config.flags=flg; + flg=flags; + set_global(); + ret=read_option(clist,opt,param); + flags=flg; return ret; } @@ -491,26 +324,26 @@ if(e!=std::string::npos && e<(opt.length()-1)) { int ret; const mpxp_option_t* m_opt; - std::vector<const mpxp_option_t*> opt_list; + std::vector<const mpxp_option_t*> _opt_list; s=opt.substr(0,e); - m_opt=(const mpxp_option_t*)m_config_get_option_ptr(config,s); + m_opt=(const mpxp_option_t*)get_option_ptr(s); if(!m_opt) { mpxp_err<<"m_config_set_option "<<opt<<"="<<param<<" : no "<<s<<" subconfig"<<std::endl; return ERR_NOT_AN_OPTION; } - opt_list.push_back(m_opt); + _opt_list.push_back(m_opt); s=opt.substr(e+1); - ret = config_read_option(config,opt_list,s,param); + ret = read_option(_opt_list,s,param); return ret; } - return config_read_option(config,config.opt_list,opt,param); + return read_option(opt_list,opt,param); } static void PRINT_LINENUM(const std::string& conffile,int line_num) { mpxp_err<<conffile<<"("<<line_num<<")"<<std::endl; } static const int MAX_LINE_LEN=1000; static const int MAX_OPT_LEN=100; static const int MAX_PARAM_LEN=100; -MPXP_Rc m_config_parse_config_file(m_config_t& config,const std::string& conffile) +MPXP_Rc M_Config::parse_config_file(const std::string& conffile) { FILE *fp; char *line; @@ -525,15 +358,15 @@ MPXP_Rc ret = MPXP_Ok; int errors = 0; - if (++config.recursion_depth > 1) mpxp_info<<"Reading config file: "<<conffile<<std::endl; + if (++recursion_depth > 1) mpxp_info<<"Reading config file: "<<conffile<<std::endl; - if (config.recursion_depth > MAX_RECURSION_DEPTH) { + if (recursion_depth > MAX_RECURSION_DEPTH) { mpxp_fatal<<": too deep 'include'. check your configfiles"<<std::endl; ret = MPXP_False; goto out; } - if (init_conf(config, CONFIG_FILE) == -1) { + if (init_conf(M_Config::File) == -1) { ret = MPXP_False; goto out; } @@ -545,12 +378,12 @@ } if ((fp = ::fopen(conffile.c_str(), "r")) == NULL) { - if (config.recursion_depth > 1) mpxp_err<<": "<<strerror(errno)<<std::endl; + if (recursion_depth > 1) mpxp_err<<": "<<::strerror(errno)<<std::endl; delete line; ret = MPXP_Ok; goto out; } - if (config.recursion_depth > 1) mpxp_fatal<<std::endl; + if (recursion_depth > 1) mpxp_fatal<<std::endl; while (fgets(line, MAX_LINE_LEN, fp)) { if (errors >= 16) { @@ -655,7 +488,7 @@ ret = MPXP_False; } - tmp = m_config_set_option(config, opt, param); + tmp = set_option(opt, param); switch (tmp) { case ERR_NOT_AN_OPTION: case ERR_MISSING_PARAM: @@ -676,21 +509,20 @@ delete line; fclose(fp); out: - --config.recursion_depth; + --recursion_depth; return ret; } -MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm) -{ +MPXP_Rc M_Config::parse_command_line(const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm) { size_t i,siz=argv.size(); int tmp; std::string opt; int no_more_opts = 0; - if (init_conf(config, COMMAND_LINE) == -1) return MPXP_False; - if(config.last_parent == NULL) config.last_parent = config.pt; + if (init_conf(M_Config::CmdLine) == -1) return MPXP_False; + if(last_parent == NULL) last_parent = pt; /* in order to work recursion detection properly in parse_config_file */ - ++config.recursion_depth; + ++recursion_depth; for (i = 1; i < siz; i++) { //next: @@ -700,7 +532,7 @@ exit(0); } if(opt=="--long-help") { - show_long_help(config,envm); + show_long_help(*this,envm); exit(0); } /* check for -- (no more options id.) except --help! */ @@ -714,24 +546,24 @@ } if(opt[0] == '{' && opt[1] == '\0') { PlayTree* entry = new(zeromem) PlayTree; - UNSET_GLOBAL(config); - if(config.last_entry == NULL) { - config.last_parent->set_child(entry); + unset_global(); + if(last_entry == NULL) { + last_parent->set_child(entry); } else { - config.last_entry->append_entry(entry); - config.last_entry = NULL; + last_entry->append_entry(entry); + last_entry = NULL; } - config.last_parent = entry; + last_parent = entry; continue; } if(opt[0] == '}' && opt[1] == '\0') { - if( ! config.last_parent || ! config.last_parent->get_parent()) { + if( ! last_parent || ! last_parent->get_parent()) { mpxp_err<<"too much }-"<<std::endl; goto err_out; } - config.last_entry = config.last_parent; - config.last_parent = config.last_entry->get_parent(); + last_entry = last_parent; + last_parent = last_entry->get_parent(); continue; } @@ -749,7 +581,7 @@ parm=item.substr(pos+1); item=item.substr(0,pos); } - tmp = m_config_set_option(config, item, parm); + tmp = set_option(item, parm); if(!tmp && pos!=std::string::npos) { mpxp_err<<"Option '"<<item<<"' doesn't require arguments"<<std::endl; goto err_out; @@ -776,32 +608,32 @@ PlayTree* entry = new(zeromem) PlayTree; mpxp_dbg2<<"Adding file "<<argv[i]<<std::endl; entry->add_file(argv[i]); - if(argv[i]=="-") m_config_set_option(config,"use-stdin",NULL); + if(argv[i]=="-") set_option("use-stdin",""); /* opt is not an option -> treat it as a filename */ - UNSET_GLOBAL(config); // We start entry specific options - if(config.last_entry == NULL) config.last_parent->set_child(entry); - else config.last_entry->append_entry(entry); - config.last_entry = entry; + unset_global(); // We start entry specific options + if(last_entry == NULL) last_parent->set_child(entry); + else last_entry->append_entry(entry); + last_entry = entry; } } - --config.recursion_depth; - if(config.last_parent != config.pt) mpxp_err<<"Missing }- ?"<<std::endl; - UNSET_GLOBAL(config); - SET_RUNNING(config); + --recursion_depth; + if(last_parent != pt) mpxp_err<<"Missing }- ?"<<std::endl; + unset_global(); + set_running(); return MPXP_Ok; err_out: - --config.recursion_depth; + --recursion_depth; mpxp_err<<"command line: "<<argv[i]<<std::endl; return MPXP_False; } -MPXP_Rc m_config_register_options(m_config_t& config,const mpxp_option_t *args) { - config.opt_list.push_back(args); - return MPXP_Ok; +MPXP_Rc M_Config::register_options(const mpxp_option_t *args) { + opt_list.push_back(args); + return MPXP_Ok; } -static const mpxp_option_t* m_config_find_option(const std::vector<const mpxp_option_t*>& list,const std::string& name) { +const mpxp_option_t* M_Config::find_option(const std::vector<const mpxp_option_t*>& list,const std::string& name) const { unsigned i,j; const mpxp_option_t *conf; if(!list.empty()) { @@ -819,7 +651,7 @@ return NULL; } -const mpxp_option_t* m_config_get_option(const m_config_t& config,const std::string& arg) { +const mpxp_option_t* M_Config::get_option(const std::string& arg) const { size_t e; e = arg.find(':'); @@ -828,25 +660,25 @@ const mpxp_option_t* opt; std::string s; s=arg.substr(0,e); - opt = m_config_get_option(config,s); + opt = get_option(s); cl.push_back(opt); - return m_config_find_option(cl,arg); + return find_option(cl,arg); } - return m_config_find_option(config.opt_list,arg); + return find_option(opt_list,arg); } -any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg) { - const mpxp_option_t* conf; +any_t* M_Config::get_option_ptr(const std::string& arg) const { + const mpxp_option_t* conf; - conf = m_config_get_option(config,arg); - if(!conf) return NULL; - return conf->p; + conf = get_option(arg); + if(!conf) return NULL; + return conf->p; } -int m_config_get_int (const m_config_t& config,const std::string& arg,int& err_ret) { +int M_Config::get_int (const std::string& arg,int& err_ret) const { int *ret; - ret = (int*)m_config_get_option_ptr(config,arg); + ret = (int*)get_option_ptr(arg); err_ret = 0; if(!ret) { err_ret = 1; @@ -855,10 +687,10 @@ return *ret; } -float m_config_get_float (const m_config_t& config,const std::string& arg,int& err_ret) { +float M_Config::get_float (const std::string& arg,int& err_ret) const { float *ret; - ret = (float*)m_config_get_option_ptr(config,arg); + ret = (float*)get_option_ptr(arg); err_ret = 0; if(!ret) { err_ret = 1; @@ -870,100 +702,66 @@ inline int AS_INT(const mpxp_option_t* c) { return *((int*)c->p); } inline void AS_INT(const mpxp_option_t* c,int val) { *((int*)c->p)=val; } -int m_config_set_int(m_config_t& config,const std::string& arg,int val) { - const mpxp_option_t* opt; +int M_Config::set_int(const std::string& arg,int val) { + const mpxp_option_t* opt; - opt = m_config_get_option(config,arg); + opt = get_option(arg); - if(!opt || opt->type != CONF_TYPE_INT) - return ERR_NOT_AN_OPTION; + if(!opt || opt->type != CONF_TYPE_INT) return ERR_NOT_AN_OPTION; + if(opt->flags & CONF_MIN && val < opt->min) return ERR_OUT_OF_RANGE; + if(opt->flags & CONF_MAX && val > opt->max) return ERR_OUT_OF_RANGE; - if(opt->flags & CONF_MIN && val < opt->min) - return ERR_OUT_OF_RANGE; - if(opt->flags & CONF_MAX && val > opt->max) - return ERR_OUT_OF_RANGE; + AS_INT(opt,val); - m_config_save_option(config,opt,arg,NULL); - AS_INT(opt,val); - - return 1; + return 1; } -int m_config_set_float(m_config_t& config,const std::string& arg,float val) { - const mpxp_option_t* opt; +int M_Config::set_float(const std::string& arg,float val) { + const mpxp_option_t* opt; - opt = m_config_get_option(config,arg); + opt = get_option(arg); - if(!opt || opt->type != CONF_TYPE_FLOAT) - return ERR_NOT_AN_OPTION; + if(!opt || opt->type != CONF_TYPE_FLOAT) return ERR_NOT_AN_OPTION; + if(opt->flags & CONF_MIN && val < opt->min) return ERR_OUT_OF_RANGE; + if(opt->flags & CONF_MAX && val > opt->max) return ERR_OUT_OF_RANGE; - if(opt->flags & CONF_MIN && val < opt->min) - return ERR_OUT_OF_RANGE; - if(opt->flags & CONF_MAX && val > opt->max) - return ERR_OUT_OF_RANGE; - - m_config_save_option(config,opt,arg,NULL); - *((float*)opt->p) = val; - - return 1; + *((float*)opt->p) = val; + return 1; } -int m_config_switch_flag(m_config_t& config,const std::string& opt) { - const mpxp_option_t *conf; +int M_Config::switch_flag(const std::string& opt) { + const mpxp_option_t *conf; - conf = m_config_get_option(config,opt); - if(!conf || conf->type != CONF_TYPE_FLAG) return 0; - if( AS_INT(conf) == conf->min) AS_INT(conf,conf->max); - else if(AS_INT(conf) == conf->max) AS_INT(conf,conf->min); - else return 0; + conf = get_option(opt); + if(!conf || conf->type != CONF_TYPE_FLAG) return 0; + if( AS_INT(conf) == conf->min) AS_INT(conf,conf->max); + else if(AS_INT(conf) == conf->max) AS_INT(conf,conf->min); + else return 0; - return 1; + return 1; } -int m_config_set_flag(m_config_t& config,const std::string& opt, int state) { - const mpxp_option_t *conf; +int M_Config::set_flag(const std::string& opt, int state) { + const mpxp_option_t *conf; - conf = m_config_get_option(config,opt); - if(!conf || conf->type != CONF_TYPE_FLAG) return 0; - if(state) AS_INT(conf,conf->max); - else AS_INT(conf,conf->min); - return 1; + conf = get_option(opt); + if(!conf || conf->type != CONF_TYPE_FLAG) return 0; + if(state) AS_INT(conf,conf->max); + else AS_INT(conf,conf->min); + return 1; } -int m_config_get_flag(const m_config_t& config,const std::string& opt) { +int M_Config::get_flag(const std::string& opt) const { + const mpxp_option_t* conf = get_option(opt); - const mpxp_option_t* conf = m_config_get_option(config,opt); - if(!conf || conf->type != CONF_TYPE_FLAG) return -1; - if(AS_INT(conf) == conf->max) return 1; - else if(AS_INT(conf) == conf->min) return 0; - return -1; -} - -int m_config_is_option_set(const m_config_t& config,const std::string& arg) { - const mpxp_option_t* opt; - config_save_t* save; - int l,i; - - opt = m_config_get_option(config,arg); - - if(!opt) + if(!conf || conf->type != CONF_TYPE_FLAG) return -1; + if(AS_INT(conf) == conf->max) return 1; + else if(AS_INT(conf) == conf->min) return 0; return -1; - - for(l = config.cs_level ; l >= 0 ; l--) { - save = config.config_stack[l]; - if(!save) - continue; - for(i = 0 ; save[i].opt != NULL ; i++) { - if(save[i].opt == opt) - return 1; - } - } - - return 0; } -static void __m_config_show_options(unsigned ntabs,const std::string& pfx,const mpxp_option_t* opts) { +void M_Config::__show_options(unsigned ntabs,const std::string& pfx,const mpxp_option_t* opts) const { unsigned i,n; i=0; while(opts[i].name) { @@ -978,7 +776,7 @@ else newpfx=""; newpfx+=opts[i].name; newpfx+="."; - __m_config_show_options(ntabs+2,newpfx,(const mpxp_option_t *)opts[i].p); + __show_options(ntabs+2,newpfx,(const mpxp_option_t *)opts[i].p); } else if(opts[i].type<=CONF_TYPE_PRINT) { @@ -1050,14 +848,57 @@ }; } -void m_config_show_options(const m_config_t& args) { - size_t j,sz=args.opt_list.size(); +void M_Config::show_options() const { + size_t j,sz=opt_list.size(); const mpxp_option_t *opts; j=0; mpxp_info<<"List of available command-line options:"<<std::endl; for(j=0;j<sz;j++) { - opts=args.opt_list[j]; - __m_config_show_options(2,"",opts); + opts=opt_list[j]; + __show_options(2,"",opts); }; } + +static const char* default_config= +"# Write your default config options here!\n" +"\n" +//"nosound=nein" +"\n"; + +__always_inline std::string get_path(const std::map<std::string,std::string>& envm,const std::string& filename="") { + std::map<std::string,std::string>::const_iterator it; + it = envm.find("HOME"); + const std::string homedir = (*it).second; + std::string rs; + std::string config_dir = std::string("/.")+PROGNAME; + + if (homedir.empty()) throw "No 'HOME' environment found"; + rs=homedir+config_dir; + if (!filename.empty()) rs+="/"+filename; + mpxp_v<<"get_path('"<<homedir<<":"<<filename<<"') -> "<<rs<<std::endl; + return rs; +} + +void M_Config::parse_cfgfiles(const std::map<std::string,std::string>& envm) +{ + std::string conffile; + int conffile_fd; + conffile = get_path(envm); + if (conffile.empty()) mpxp_warn<<MSGTR_NoHomeDir<<std::endl; + else { + ::mkdir(conffile.c_str(), 0777); + conffile = get_path(envm,"config"); + if (conffile.empty()) { + mpxp_err<<MSGTR_GetpathProblem<<std::endl; + conffile="config"; + } + if ((conffile_fd = ::open(conffile.c_str(), O_CREAT | O_EXCL | O_WRONLY, 0666)) != -1) { + mpxp_info<<MSGTR_CreatingCfgFile<<": "<<conffile<<std::endl; + ::write(conffile_fd, default_config, strlen(default_config)); + ::close(conffile_fd); + } + if (parse_config_file(conffile) != MPXP_Ok) exit(1); + } +} + } // namespace mpxp Modified: mplayerxp/libmpconf/cfgparser.h =================================================================== --- mplayerxp/libmpconf/cfgparser.h 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libmpconf/cfgparser.h 2012-12-28 12:22:38 UTC (rev 617) @@ -43,133 +43,109 @@ CONF_NOSAVE =(1<<5) }; + // Plain C-structure for static declarations struct mpxp_option_t { - const char *name; - any_t* const p; - unsigned int type; - unsigned int flags; - float min,max; - const char *help; + const char* name; + any_t* const p; + unsigned int type; + unsigned int flags; + float min,max; + const char* help; }; typedef void (*cfg_default_func_t)(mpxp_option_t*,const std::string&); - struct config_save_t; - struct m_config_t : public Opaque { - m_config_t(libinput_t& _libinput):libinput(_libinput) {} - virtual ~m_config_t() {} + class M_Config : public Opaque { + public: + enum mode_e { + CmdLine=0, + File=1, + }; + enum flags_e { + Global=0x01, + Running=0x02 + }; - std::vector<const mpxp_option_t*> opt_list; - config_save_t** config_stack; - int cs_level; - int parser_mode; /* COMMAND_LINE or CONFIG_FILE */ - int flags; - const char* sub_conf; // When we save a subconfig - PlayTree* pt; // play tree we use for playlist option, etc - PlayTree* last_entry; // last added entry - PlayTree* last_parent; // if last_entry is NULL we must create child of this - int recursion_depth; - libinput_t& libinput; - }; + M_Config(PlayTree* pt,libinput_t& _libinput); + virtual ~M_Config(); - struct config_save_t { - const mpxp_option_t* opt; - union { - int as_int; - float as_float; - any_t* as_pointer; - } param; - const char* opt_name; - }; + virtual MPXP_Rc parse_command_line(const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm); + virtual MPXP_Rc register_options(const mpxp_option_t *args); + virtual MPXP_Rc parse_config_file(const std::string& conffile); + /** Return 1 on sucess 0 on failure + **/ + virtual int set_option(const std::string& opt,const std::string& param); + /** Get the config struct defining an option + * @return NULL on error + **/ + virtual const mpxp_option_t* get_option(const std::string& arg) const; + /** Get the p field of the struct defining an option + * @return NULL on error + **/ + virtual any_t* get_option_ptr(const std::string& arg) const; + /** Return 0 on error 1 on success + **/ + virtual int switch_flag(const std::string& opt); + /** Return 0 on error 1 on success + **/ + virtual int set_flag(const std::string& opt, int max); + /** Return the value of a flag (O or 1) and -1 on error + **/ + virtual int get_flag(const std::string& opt) const; + /** Set the value of an int option + * @return 0 on error 1 on success + **/ + virtual int set_int(const std::string& arg,int val); + /** Get the value of an int option + * @param err_ret If it is not NULL it's set to 1 on error + * @return the option value or -1 on error + **/ + virtual int get_int (const std::string& arg,int& err_ret) const; + /** Set the value of a float option + * @return 0 on error 1 on success + **/ + virtual int set_float(const std::string& arg,float val); + /** Get the value of a float option + * @param err_ret If it is not NULL it's set to 1 on error + * @return the option value or -1 on error + **/ + virtual float get_float (const std::string& arg,int& err_ret) const; - /* parse_command_line returns: - * -1 on error (invalid option...) - * 1 otherwise - */ - MPXP_Rc mpxp_parse_command_line(m_config_t& config, const std::vector<std::string>& argv,const std::map<std::string,std::string>& envm); - /* - * Return 0 on error 1 on success - */ - MPXP_Rc m_config_register_options(m_config_t& config,const mpxp_option_t *args); + virtual void parse_cfgfiles(const std::map<std::string,std::string>& envm); + virtual void show_options() const; + private: + void set_global(); + void unset_global(); + int is_global() const; + void set_running(); + void unset_running(); + int is_running() const; - /* parse_config_file returns: - * -1 on error (can't mp_malloc, invalid option...) - * 0 if can't open configfile - * 1 on success - */ - MPXP_Rc m_config_parse_config_file(m_config_t& config,const std::string& conffile); + void __show_options(unsigned ntabs,const std::string& pfx,const mpxp_option_t* opts) const; + const mpxp_option_t* find_option(const std::vector<const mpxp_option_t*>& list,const std::string& name) const; + MPXP_Rc init_conf(mode_e mode); + int read_option(const std::vector<const mpxp_option_t*>& conf_list,const std::string& opt,const std::string& param); + MPXP_Rc cfg_include(const std::string& filename); + int cfg_inc_int(int value); + int is_entry_option(const std::string& opt,const std::string& param); - m_config_t& m_config_new(PlayTree* pt,libinput_t&libinput); - - void m_config_free(m_config_t* config); - - void m_config_push(m_config_t& config); - - /* - * Return 0 on error 1 on success - */ - int m_config_pop(m_config_t& config); - - void m_config_show_options(const m_config_t& args); - - /* - * For all the following function when it's a subconfig option - * you must give an option name like 'tv:channel' and not just - * 'channel' - */ - - /** Return 1 on sucess 0 on failure - **/ - int m_config_set_option(m_config_t& config,const std::string& opt,const std::string& param); - - /** Get the config struct defining an option - * @return NULL on error - **/ - const mpxp_option_t* m_config_get_option(const m_config_t& config,const std::string& arg); - - /** Get the p field of the struct defining an option - * @return NULL on error - **/ - any_t* m_config_get_option_ptr(const m_config_t& config,const std::string& arg); - - /** Tell is an option is alredy set or not - * @return -1 one error (requested option arg exist) otherwise 0 or 1 - **/ - int m_config_is_option_set(const m_config_t& config,const std::string& arg); - - /** Return 0 on error 1 on success - **/ - int m_config_switch_flag(m_config_t& config,const std::string& opt); - - /** Return 0 on error 1 on success - **/ - int m_config_set_flag(m_config_t& config,const std::string& opt, int max); - - /** Return the value of a flag (O or 1) and -1 on error - **/ - int m_config_get_flag(const m_config_t& config,const std::string& opt); - - /** Set the value of an int option - * @return 0 on error 1 on success - **/ - int m_config_set_int(m_config_t& config,const std::string& arg,int val); - - /** Get the value of an int option - * @param err_ret If it is not NULL it's set to 1 on error - * @return the option value or -1 on error - **/ - int m_config_get_int (const m_config_t&,const std::string& arg,int& err_ret); - - /** Set the value of a float option - * @return 0 on error 1 on success - **/ - int m_config_set_float(m_config_t& config,const std::string& arg,float val); - - /** Get the value of a float option - * @param err_ret If it is not NULL it's set to 1 on error - * @return the option value or -1 on error - **/ - float m_config_get_float (const m_config_t&,const std::string& arg,int& err_ret); + std::vector<const mpxp_option_t*> opt_list; + mode_e parser_mode; + flags_e flags; + const char* sub_conf; // When we save a subconfig + PlayTree* pt; // play tree we use for playlist option, etc + PlayTree* last_entry; // last added entry + PlayTree* last_parent; // if last_entry is NULL we must create child of this + int recursion_depth; + libinput_t& libinput; + }; + inline M_Config::flags_e operator~(M_Config::flags_e a) { return static_cast<M_Config::flags_e>(~static_cast<unsigned>(a)); } + inline M_Config::flags_e operator|(M_Config::flags_e a, M_Config::flags_e b) { return static_cast<M_Config::flags_e>(static_cast<unsigned>(a)|static_cast<unsigned>(b)); } + inline M_Config::flags_e operator&(M_Config::flags_e a, M_Config::flags_e b) { return static_cast<M_Config::flags_e>(static_cast<unsigned>(a)&static_cast<unsigned>(b)); } + inline M_Config::flags_e operator^(M_Config::flags_e a, M_Config::flags_e b) { return static_cast<M_Config::flags_e>(static_cast<unsigned>(a)^static_cast<unsigned>(b)); } + inline M_Config::flags_e operator|=(M_Config::flags_e a, M_Config::flags_e b) { return (a=static_cast<M_Config::flags_e>(static_cast<unsigned>(a)|static_cast<unsigned>(b))); } + inline M_Config::flags_e operator&=(M_Config::flags_e a, M_Config::flags_e b) { return (a=static_cast<M_Config::flags_e>(static_cast<unsigned>(a)&static_cast<unsigned>(b))); } + inline M_Config::flags_e operator^=(M_Config::flags_e a, M_Config::flags_e b) { return (a=static_cast<M_Config::flags_e>(static_cast<unsigned>(a)^static_cast<unsigned>(b))); } } // namespace mpxp #endif /* __CONFIG_H */ Modified: mplayerxp/libmpdemux/demuxer.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libmpdemux/demuxer.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -121,12 +121,12 @@ const demuxer_driver_t* driver; /**< driver associated with this demuxer */ }; -void libmpdemux_register_options(m_config_t& cfg) +void libmpdemux_register_options(M_Config& cfg) { unsigned i; for(i=0;ddrivers[i];i++) { if(ddrivers[i]->options) - m_config_register_options(cfg,ddrivers[i]->options); + cfg.register_options(ddrivers[i]->options); if(ddrivers[i]==&demux_null) break; } } @@ -463,7 +463,7 @@ delete ad; ad = NULL; } else if(ad->audio->sh && ((sh_audio_t*)ad->audio->sh)->wtag == 0x55) // MP3 - m_config_set_flag(*mpxp_context().mconfig,"mp3.hr-seek",1); // Enable high res seeking + mpxp_context().mconfig->set_flag("mp3.hr-seek",1); // Enable high res seeking } if(ss) { sd = new(zeromem) Demuxer(ss,-2,-2,dvdsub_id); @@ -528,8 +528,8 @@ { NULL, NULL, 0, 0, 0, 0, NULL} }; -void demuxer_register_options(m_config_t& cfg) { - m_config_register_options(cfg,demuxer_opts); +void demuxer_register_options(M_Config& cfg) { + cfg.register_options(demuxer_opts); } int Demuxer::demux(Demuxer_Stream* ds) { Modified: mplayerxp/libmpstream2/cdd.h =================================================================== --- mplayerxp/libmpstream2/cdd.h 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libmpstream2/cdd.h 2012-12-28 12:22:38 UTC (rev 617) @@ -100,6 +100,6 @@ lsn_t end_sector; }; - void cdda_register_options(m_config_t& cfg); + void cdda_register_options(M_Config& cfg); } // namespace mpxp #endif // __CDD_H__ Modified: mplayerxp/libmpstream2/cdda.cpp =================================================================== --- mplayerxp/libmpstream2/cdda.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libmpstream2/cdda.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -33,8 +33,8 @@ { NULL,NULL, 0, 0, 0, 0, NULL} }; -void cdda_register_options(m_config_t& cfg) { - m_config_register_options(cfg,cdda_conf); +void cdda_register_options(M_Config& cfg) { + cfg.register_options(cdda_conf); } static unsigned cdda_parse_tracks(unsigned char *arr,unsigned nelem,const std::string& arg) Modified: mplayerxp/libplaytree/asxparser.cpp =================================================================== --- mplayerxp/libplaytree/asxparser.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libplaytree/asxparser.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -304,7 +304,7 @@ return; } val = cattribs.get("VALUE"); - if(m_config_get_option(*mpxp_context().mconfig,name) == NULL) { + if(mpxp_context().mconfig->get_option(name) == NULL) { mpxp_warn<<"Found unknow param in asx: "<<name<<std::endl; if(!val.empty())mpxp_warn<<"="<<val<<std::endl; else mpxp_warn<<std::endl; Modified: mplayerxp/libplaytree/playtree.cpp =================================================================== --- mplayerxp/libplaytree/playtree.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libplaytree/playtree.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -319,7 +319,7 @@ return NULL; } -_PlayTree_Iter::_PlayTree_Iter(PlayTree* pt,m_config_t& _config) +_PlayTree_Iter::_PlayTree_Iter(PlayTree* pt,M_Config& _config) :root(pt), tree(NULL), config(_config) { @@ -342,20 +342,15 @@ pt = tree; - // We always push a config because we can set some option - // while playing - m_config_push(config); - if(pt->get_params().empty()) return; size_t n,sz=pt->get_params().size(); for(n=0; n<sz; n++) { int e; - if((e = m_config_set_option(config,pt->get_param(n).name,pt->get_param(n).value)) < 0) + if((e = config.set_option(pt->get_param(n).name,pt->get_param(n).value)) < 0) mpxp_err<<"Error "<<e<<" while setting option '"<<pt->get_param(n).name<<"' with value '"<<pt->get_param(n).value<<"'"<<std::endl; } - if(!pt->get_child()) entry_pushed = 1; return; } @@ -368,11 +363,6 @@ return step(0,with_nodes); } - if(entry_pushed > 0) { - entry_pushed = 0; - m_config_pop(config); - } - if(tree->get_parent() && (tree->get_parent()->get_flags() & PLAY_TREE_RND)) rnd=mode = PLAY_TREE_ITER_RND; else @@ -435,8 +425,6 @@ num_files = tree->get_files().size(); - push_params(); - entry_pushed = 1; if(mode == PLAY_TREE_ITER_RND) pt->set_flags(pt->get_flags()|PLAY_TREE_RND_PLAYED); return PLAY_TREE_ITER_ENTRY; @@ -449,8 +437,6 @@ loop = status_stack.top(); status_stack.pop(); tree = tree->get_parent(); - // Pop subtree params - m_config_pop(config); if(mode == PLAY_TREE_ITER_RND) tree->set_flags(tree->get_flags()|PLAY_TREE_RND_PLAYED); return step(d,with_nodes); } @@ -490,11 +476,11 @@ switch(tree->get_entry_type()) { case PLAY_TREE_ENTRY_DVD : if(entry.length() == 0) entry = "1"; - m_config_set_option(config,"dvd",entry); + config.set_option("dvd",entry); return std::string("DVD title ")+entry; case PLAY_TREE_ENTRY_VCD : if(entry.length() == 0) entry = "1"; - m_config_set_option(config,"vcd",entry); + config.set_option("vcd",entry); return std::string("vcd://")+entry; case PLAY_TREE_ENTRY_TV: { if(entry.length() != 0) { @@ -502,7 +488,7 @@ size_t e; std::string rs; val="on:channel="+entry; - m_config_set_option(config,"tv",val); + config.set_option("tv",val); rs="TV channel "; e = entry.find(':'); if(e==std::string::npos) rs+=entry.substr(0,255-11); @@ -511,7 +497,7 @@ rs+=entry.substr(0,e); } return rs; - } else m_config_set_option(config,"tv","on"); + } else config.set_option("tv","on"); return "TV"; } default: break; Modified: mplayerxp/libplaytree/playtree.h =================================================================== --- mplayerxp/libplaytree/playtree.h 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/libplaytree/playtree.h 2012-12-28 12:22:38 UTC (rev 617) @@ -6,7 +6,7 @@ #include <vector> #include <stack> -struct m_config_t; +struct M_Config; namespace mpxp { struct Stream; struct libinput_t; @@ -112,7 +112,7 @@ struct _PlayTree_Iter : public Opaque { public: - _PlayTree_Iter(PlayTree* parent,m_config_t& config); + _PlayTree_Iter(PlayTree* parent,M_Config& config); _PlayTree_Iter(const _PlayTree_Iter& old); virtual ~_PlayTree_Iter(); @@ -135,11 +135,10 @@ void push_params(); PlayTree* root; // Iter root tree PlayTree* tree; // Current tree - m_config_t& config; + M_Config& config; int loop; // Looping status int file; int num_files; - int entry_pushed; int mode; std::stack<int> status_stack; Modified: mplayerxp/mplayerxp.cpp =================================================================== --- mplayerxp/mplayerxp.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/mplayerxp.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -386,7 +386,7 @@ MP_UNIT("exit_player"); if(!why.empty()) mpxp_hint<<std::endl<<MSGTR_Exiting<<"...("<<why<<")"<<std::endl; - if(mpxp_context().mconfig) m_config_free(mpxp_context().mconfig); + if(mpxp_context().mconfig) delete mpxp_context().mconfig; mpxp_print_uninit(); mpxp_uninit_structs(); if(!why.empty()) ::exit(0); @@ -414,34 +414,6 @@ __exit_sighandler(); } -static const char* default_config= -"# Write your default config options here!\n" -"\n" -//"nosound=nein" -"\n"; - -void parse_cfgfiles(const std::map<std::string,std::string>& envm, m_config_t& conf ) -{ - std::string conffile; - int conffile_fd; - conffile = get_path(envm); - if (conffile.empty()) mpxp_warn<<MSGTR_NoHomeDir<<std::endl; - else { - ::mkdir(conffile.c_str(), 0777); - conffile = get_path(envm,"config"); - if (conffile.empty()) { - mpxp_err<<MSGTR_GetpathProblem<<std::endl; - conffile="config"; - } - if ((conffile_fd = ::open(conffile.c_str(), O_CREAT | O_EXCL | O_WRONLY, 0666)) != -1) { - mpxp_info<<MSGTR_CreatingCfgFile<<": "<<conffile<<std::endl; - ::write(conffile_fd, default_config, strlen(default_config)); - ::close(conffile_fd); - } - if (m_config_parse_config_file(conf, conffile.c_str()) != MPXP_Ok) exit(1); - } -} - // When libmpdemux perform a blocking operation (network connection or cache filling) // if the operation fail we use this function to check if it was interrupted by the user. // The function return a new value for eof. @@ -594,9 +566,9 @@ mpxp_info<<"Use --long-help option for full help"<<std::endl; } -void show_long_help(const m_config_t& cfg,const std::map<std::string,std::string>& envm) { +void show_long_help(const M_Config& cfg,const std::map<std::string,std::string>& envm) { MPXPSystem& MPXPSys=*mpxp_context().engine().MPXPSys; - m_config_show_options(cfg); + cfg.show_options(); mp_input_print_binds(MPXPSys.libinput()); Stream::print_drivers(); Video_Output::print_help(); @@ -1631,14 +1603,14 @@ MPXPSys.playtree = new(zeromem) PlayTree; - m_config_t& m_config=m_config_new(MPXPSys.playtree,MPXPSys.libinput()); + M_Config& m_config=*new(zeromem) M_Config(MPXPSys.playtree,MPXPSys.libinput()); mpxp_context().mconfig = &m_config; - m_config_register_options(m_config,mplayerxp_opts); + m_config.register_options(mplayerxp_opts); // TODO : add something to let modules register their options mp_register_options(m_config); - parse_cfgfiles(envm,m_config); + m_config.parse_cfgfiles(envm); - if(mpxp_parse_command_line(m_config, argv,envm)!=MPXP_Ok) + if(m_config.parse_command_line(argv,envm)!=MPXP_Ok) exit_player("Error parse command line"); // error parsing cmdline if(!mp_conf.xp) { Modified: mplayerxp/mplayerxp.h =================================================================== --- mplayerxp/mplayerxp.h 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/mplayerxp.h 2012-12-28 12:22:38 UTC (rev 617) @@ -18,7 +18,7 @@ struct audio_decoder_t; struct video_decoder_t; namespace mpxp { - struct m_config_t; + class M_Config; struct _PlayTree_Iter; /* List of all modules which require protection by pin-code */ enum { @@ -183,7 +183,7 @@ int use_pts_fix2; unsigned mplayer_accel; subtitle* subtitles; - m_config_t* mconfig; + M_Config* mconfig; time_usage_t* bench; any_t* msg_priv; private: @@ -198,7 +198,7 @@ unsigned get_number_cpu(void); void show_help(void); - void show_long_help(const m_config_t& cfg,const std::map<std::string,std::string>& envm); + void show_long_help(const M_Config& cfg,const std::map<std::string,std::string>& envm); void update_osd( float v_pts ); @@ -228,6 +228,6 @@ void mplayer_put_key(int code); - void mp_register_options(m_config_t& cfg); + void mp_register_options(M_Config& cfg); } #endif Modified: mplayerxp/xmpcore/xmp_context.cpp =================================================================== --- mplayerxp/xmpcore/xmp_context.cpp 2012-12-28 08:16:10 UTC (rev 616) +++ mplayerxp/xmpcore/xmp_context.cpp 2012-12-28 12:22:38 UTC (rev 617) @@ -272,17 +272,17 @@ const mpxp_option_t* mplayerxp_opts=mplayerxp_options; } // namespace mpxp -extern void libmpcodecs_ad_register_options(m_config_t& cfg); -extern void libmpcodecs_vd_register_options(m_config_t& cfg); +extern void libmpcodecs_ad_register_options(M_Config& cfg); +extern void libmpcodecs_vd_register_options(M_Config& cfg); namespace mpxp { #ifdef HAVE_LIBCDIO -extern void cdda_register_options(m_config_t& cfg); +extern void cdda_register_options(M_Config& cfg); #endif -extern void mp_input_register_options(m_config_t& cfg); -extern void libmpdemux_register_options(m_config_t& cfg); -extern void demuxer_register_options(m_config_t& cfg); -void mp_register_options(m_config_t& cfg) +extern void mp_input_register_options(M_Config& cfg); +extern void libmpdemux_register_options(M_Config& cfg); +extern void demuxer_register_options(M_Config& cfg); +void mp_register_options(M_Config& cfg) { mp_input_register_options(cfg); libmpdemux_register_options(cfg); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nic...@us...> - 2012-12-28 14:13:03
|
Revision: 620 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=620&view=rev Author: nickols_k Date: 2012-12-28 14:12:56 +0000 (Fri, 28 Dec 2012) Log Message: ----------- rename libplaytree -> libplaytree2 (TRANSACTION BEGIN) Added Paths: ----------- mplayerxp/libplaytree2/ Removed Paths: ------------- mplayerxp/libplaytree/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |