diff --git a/multimedia/mencoder/Makefile b/multimedia/mencoder/Makefile index 28b5c8eaadcd..2df6b5c12581 100644 --- a/multimedia/mencoder/Makefile +++ b/multimedia/mencoder/Makefile @@ -1,105 +1,104 @@ # Created by: Thomas E. Zander PORTNAME= mencoder PORTVERSION= ${MPLAYER_PORT_VERSION}.${MPLAYER_SNAPSHOT_DATE:S/-//g} -PORTREVISION= 1 CATEGORIES= multimedia audio MAINTAINER= riggs@FreeBSD.org COMMENT= Convenient video file and movie encoder .include "${.CURDIR}/../mplayer/Makefile.common" OPTIONS_DEFINE= AMR_NB AMR_WB ASS BLURAY CDIO DEBUG DV DVDNAV FAAC FONTCONFIG \ FRIBIDI GIF GNUTLS GSM IPV6 JACK LADSPA LIBMNG LZO \ MAD NAS NLS OPENAL OPENJPEG OPUS PULSEAUDIO \ RTMP SMB SPEEX THEORA TWOLAME V4L VPX \ X264 XVID OPTIONS_DEFAULT=ASS DVDNAV FONTCONFIG GIF GNUTLS X264 XVID OPTIONS_DEFINE_i386= RTCPU OPTIONS_DEFINE_amd64= RTCPU OPTIONS_DEFINE_powerpc= RTCPU OPTIONS_DEFAULT_i386= RTCPU OPTIONS_DEFAULT_amd64= RTCPU OPTIONS_DEFAULT_powerpc=RTCPU ASS_DESC?= Subtitles rendering via libass BLURAY_DESC?= BluRay support DVDNAV_DESC?= DVD navigation features support LZO_DESC?= Enable external liblzo library RTCPU_DESC?= Use runtime CPU detection PATCHDIR= ${.CURDIR}/../mplayer/files FILESDIR= ${PATCHDIR} DATADIR= ${PREFIX}/share/mplayer TOOLFILES= aconvert.sh binary_codecs.sh calcbpp.pl \ checktree.sh countquant.pl divx2svcd.sh \ dvd2divxscript.pl edgedetect.fp edgeenh.fp \ emboss.fp mencvcd.sh midentify.sh \ mpconsole.sh mphelp_check.py mplmult.sh \ plotpsnr.pl psnr-video.sh qepdvcd.sh \ subedit.pl subsearch.sh vobshift.py \ w32codec_dl.pl wma2ogg.pl USES+= alias iconv pkgconfig python shebangfix SHEBANG_FILES= TOOLS/calcbpp.pl TOOLS/checktree.sh TOOLS/countquant.pl \ TOOLS/divx2svcd.sh TOOLS/dvd2divxscript.pl TOOLS/mencvcd.sh \ TOOLS/mphelp_check.py TOOLS/plotpsnr.pl TOOLS/psnr-video.sh \ TOOLS/qepdvcd.sh TOOLS/subedit.pl TOOLS/vobshift.py \ TOOLS/w32codec_dl.pl TOOLS/wma2ogg.pl PYTHON_NO_DEPENDS= yes .include "${.CURDIR}/../mplayer/Makefile.optvars" .include CONFIGURE_ARGS+= --disable-mplayer \ --disable-libdca \ --disable-x11 \ --disable-vdpau \ --disable-rtc \ --disable-arts \ --disable-caca \ --disable-lirc \ --disable-sdl \ --disable-svga \ --disable-aa \ --disable-joystick \ --disable-directfb \ --disable-mpg123 \ --disable-enca \ --disable-musepack \ --disable-sndio LIB_DEPENDS+= libmp3lame.so:audio/lame ALL_TARGET= mencoder .include "${.CURDIR}/../mplayer/Makefile.options" pre-everything:: @${ECHO_MSG} "N - O - T - E" @${ECHO_MSG} "" @${ECHO_MSG} "There are some knobs which *can* *not* be selected via the" @${ECHO_MSG} "OPTIONS framework. At the moment, these settings are:" @${ECHO_MSG} "DEFAULT_DVD_DEVICE=${DEFAULT_DVD_DEVICE}" @${ECHO_MSG} "DEFAULT_CDROM_DEVICE=${DEFAULT_CDROM_DEVICE}" post-patch: common-post-patch do-install: ${INSTALL_PROGRAM} ${WRKSRC}/mencoder ${STAGEDIR}${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/DOCS/man/en/mplayer.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/mencoder.1 @${MKDIR} ${STAGEDIR}${DATADIR} @${CHMOD} 755 ${STAGEDIR}${DATADIR} @${MKDIR} ${STAGEDIR}${DATADIR}/tools @${CHMOD} 755 ${STAGEDIR}${DATADIR}/tools .for tool in ${TOOLFILES} ${INSTALL_SCRIPT} ${WRKSRC}/TOOLS/${tool} ${STAGEDIR}${DATADIR}/tools .endfor .include diff --git a/multimedia/mencoder/distinfo b/multimedia/mencoder/distinfo index d1f256eeef77..1e75807866db 100644 --- a/multimedia/mencoder/distinfo +++ b/multimedia/mencoder/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1615850499 -SHA256 (mplayer-1.4.0.20210314.tar.xz) = 7709f988fadcd24c00cc27b8c2d775dbb2e75e6b8bdc682b13ae6b66cc0a5174 -SIZE (mplayer-1.4.0.20210314.tar.xz) = 5194236 +TIMESTAMP = 1625393918 +SHA256 (mplayer-1.4.0.20210703.tar.xz) = 7c81c590215436d2365b98324e3903e92958722e06eb7ebc9f20192e8a99a6ab +SIZE (mplayer-1.4.0.20210703.tar.xz) = 5195192 diff --git a/multimedia/mplayer/Makefile b/multimedia/mplayer/Makefile index d9cb87a4df7d..09ddd828f6a4 100644 --- a/multimedia/mplayer/Makefile +++ b/multimedia/mplayer/Makefile @@ -1,100 +1,99 @@ # Created by: Thomas E. Zander with help from Vladimir Kushnir PORTNAME= mplayer PORTVERSION= ${MPLAYER_PORT_VERSION}.${MPLAYER_SNAPSHOT_DATE:S/-//g} -PORTREVISION= 1 CATEGORIES= multimedia audio MAINTAINER= riggs@FreeBSD.org COMMENT= High performance media player supporting many formats .include "${.CURDIR}/../../multimedia/mplayer/Makefile.common" OPTIONS_DEFINE= AALIB AMR_NB AMR_WB ASS BLURAY CACA CDIO DV DVDNAV \ ENCA FONTCONFIG FRIBIDI GIF GNUTLS GSM GUI IPV6 JACK \ LADSPA LIBMNG LIRC LZO NAS NLS OPENAL OPENGL \ OPENJPEG OPUS PULSEAUDIO RTMP \ SDL SKINS SNDIO SMB SPEEX SVGALIB V4L VDPAU VPX \ X11 X11DGA X11VM XINERAMA XVIDEO XVMC OPTIONS_DEFAULT=ASS DVDNAV FONTCONFIG FRIBIDI GNUTLS OPENGL \ SKINS X11 X11DGA X11VM XINERAMA XVIDEO OPTIONS_DEFINE_i386= RTCPU OPTIONS_DEFINE_amd64= RTCPU OPTIONS_DEFINE_powerpc= RTCPU OPTIONS_DEFAULT_i386= RTCPU VDPAU OPTIONS_DEFAULT_amd64= RTCPU VDPAU OPTIONS_DEFAULT_powerpc=RTCPU ASS_DESC?= Subtitles rendering via libass BLURAY_DESC?= BluRay support DVDNAV_DESC?= DVD navigation features support ENCA_DESC?= Charset conversion via enca LZO_DESC?= External liblzo support RTCPU_DESC?= Use runtime CPU detection SKINS_DESC?= Install skins for GUI X11DGA_DESC?= X11 DGA video driver support X11VM_DESC?= X11 VidMode support SUB_FILES= pkg-message CONFLICTS= mplayer2-2.* CONFFILES= example.conf input.conf menu.conf dvb-menu.conf USES+= iconv pkgconfig OPTIONS_SUB= yes .include "${.CURDIR}/../../multimedia/mplayer/Makefile.optvars" .include CONFIGURE_ARGS+= --disable-arts \ --disable-directfb \ --disable-faac \ --disable-libdca \ --disable-toolame \ --disable-twolame \ --disable-x264 \ --disable-xvid \ --disable-mencoder \ --disable-mpg123 \ --disable-musepack \ --disable-theora .include "${.CURDIR}/../../multimedia/mplayer/Makefile.options" pre-everything:: @${ECHO_MSG} "N - O - T - E" @${ECHO_MSG} "" @${ECHO_MSG} "There are some knobs which *can* *not* be selected via the" @${ECHO_MSG} "OPTIONS framework. At the moment, these settings are:" @${ECHO_MSG} "WITH_KERN_HZ=${DEFAULT_KERN_HZ}" @${ECHO_MSG} "DEFAULT_DVD_DEVICE=${DEFAULT_DVD_DEVICE}" @${ECHO_MSG} "DEFAULT_CDROM_DEVICE=${DEFAULT_CDROM_DEVICE}" .if ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MX11} @${ECHO_MSG} "If you want to use the GUI, you can use the skins from" @${ECHO_MSG} "${PORTSDIR}/multimedia/mplayer-skins" @${ECHO_MSG} "or download them from" @${ECHO_MSG} "http://www.mplayerhq.hu/" .endif post-patch: common-post-patch post-install: @${MKDIR} ${STAGEDIR}${DATADIR} @${CHMOD} 755 ${STAGEDIR}${DATADIR} @${MKDIR} ${STAGEDIR}${DATADIR}/examples/etc @${CHMOD} 755 ${STAGEDIR}${DATADIR}/examples/etc .for conf in ${CONFFILES} ${INSTALL_DATA} ${WRKSRC}/etc/${conf} ${STAGEDIR}${DATADIR}/examples/etc .endfor .if ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MX11} @${LN} -sf mplayer ${STAGEDIR}${PREFIX}/bin/gmplayer @(cd ${STAGEDIR}${MAN1PREFIX}/man/man1 && ${LN} -sf mplayer.1.gz gmplayer.1.gz) ${CP} -f ${WRKSRC}/etc/mplayer256x256.png ${STAGEDIR}${PREFIX}/share/pixmaps/mplayer.png .endif .include diff --git a/multimedia/mplayer/Makefile.common b/multimedia/mplayer/Makefile.common index f7701abd85f0..dd35b9a35e45 100644 --- a/multimedia/mplayer/Makefile.common +++ b/multimedia/mplayer/Makefile.common @@ -1,76 +1,76 @@ # Contains the build infrastructural definitions for both # mplayer and mencoder....the variables that we need to set # before we include bsd.port.pre.mk MPLAYER_PORT_VERSION= 1.4.0 -MPLAYER_SNAPSHOT_DATE= 2021-03-14 +MPLAYER_SNAPSHOT_DATE= 2021-07-03 MASTER_SITES= LOCAL/riggs/mplayer DISTNAME= mplayer-${MPLAYER_PORT_VERSION}.${MPLAYER_SNAPSHOT_DATE:S/-//g} WRKSRC= ${WRKDIR}/mplayer-export-${MPLAYER_SNAPSHOT_DATE} LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libpng.so:graphics/png \ libavcodec.so:multimedia/ffmpeg \ libfreetype.so:print/freetype2 BUILD_DEPENDS= ${BUILD_DEPENDS_${ARCH}} BUILD_DEPENDS_i386= as:devel/binutils USES= compiler:c11 gmake iconv ncurses tar:xz NOPRECIOUSMAKEVARS= yes # ARCH HAS_CONFIGURE= yes CONFIGURE_ENV= TMPDIR="${WRKSRC}" CONFIGURE_ARGS= --cc="${CC}" \ --host-cc="${CC}" \ --as="${AS}" \ --mandir="${PREFIX}/man" \ --extra-cflags="-I${PREFIX}/include -I${LOCALBASE}/include" \ --extra-libs="-L${PREFIX}/lib" \ --disable-alsa \ --disable-ass-internal \ --disable-bitmap-font \ --disable-crystalhd \ --disable-esd \ --disable-faad \ --disable-ffmpeg_a \ --disable-ggi \ --disable-ggiwmh \ --disable-liba52 \ --disable-libbs2b \ --disable-libilbc \ --disable-libnut \ --disable-libvorbis \ --disable-live \ --disable-joystick \ --disable-mad \ --disable-libmpeg2 \ --disable-nemesi \ --disable-real \ --yasm='' common-post-patch: @${REINPLACE_CMD} \ -e 's|/dev/dvd|${DEFAULT_DVD_DEVICE}|; \ s|/dev/cdrom|${DEFAULT_CDROM_DEVICE}|' \ -e 's|/usr/local|${LOCALBASE}|' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ -e 's|-lbz2|/usr/lib/libbz2.so|' \ -e 's|-lncurses|/usr/lib/libncurses.so|' \ -e 's|-liconv|${ICONV_LIB}|' \ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} @${FIND} -E ${WRKSRC} -type f \ -iregex ".*(configure|.sh|Makefile)" -print0 | \ ${XARGS} -x -0 -n 10 \ ${REINPLACE_CMD} -E \ -e 's|[[:space:]]gcc[-[:digit:]\.]+| ${CC}|' \ -e 's|[[:space:]]gcc| ${CC}|' \ -e 's|\$$\(CC\)|${CC}|' \ -e 's|/usr/X11R6|${LOCALBASE}|' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|' @${FIND} ${WRKSRC}/DOCS/man -name "mplayer.1" | ${XARGS} ${REINPLACE_CMD} -E -e \ 's|/usr/\\:local/\\:etc/\\:mplayer|${DATADIR:S/\//\/\\\:/g}|g ; \ s|/dev/\\:(dvd[[:alnum:]]*[[:>:]])|${DEFAULT_DVD_DEVICE:S/dev\//dev\/\\\:/}|g ; \ s|/dev/\\:(cdrom[[:alnum:]]*[[:>:]])|${DEFAULT_CDROM_DEVICE:S/dev\//dev\/\\\:/}|g' @${RM} ${WRKSRC}/binary.ver diff --git a/multimedia/mplayer/distinfo b/multimedia/mplayer/distinfo index b91ba38d8b1a..3933f63c3152 100644 --- a/multimedia/mplayer/distinfo +++ b/multimedia/mplayer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1615840634 -SHA256 (mplayer-1.4.0.20210314.tar.xz) = 7709f988fadcd24c00cc27b8c2d775dbb2e75e6b8bdc682b13ae6b66cc0a5174 -SIZE (mplayer-1.4.0.20210314.tar.xz) = 5194236 +TIMESTAMP = 1625328221 +SHA256 (mplayer-1.4.0.20210703.tar.xz) = 7c81c590215436d2365b98324e3903e92958722e06eb7ebc9f20192e8a99a6ab +SIZE (mplayer-1.4.0.20210703.tar.xz) = 5195192 diff --git a/multimedia/mplayer/files/patch-libao2_ao__oss.c b/multimedia/mplayer/files/patch-libao2_ao__oss.c index fd7fb8d6fa64..431cfe198dc3 100644 --- a/multimedia/mplayer/files/patch-libao2_ao__oss.c +++ b/multimedia/mplayer/files/patch-libao2_ao__oss.c @@ -1,149 +1,146 @@ ---- libao2/ao_oss.c.orig 2016-02-26 20:47:16 UTC +--- libao2/ao_oss.c.orig 2021-04-15 19:26:53 UTC +++ libao2/ao_oss.c @@ -57,6 +57,8 @@ static const ao_info_t info = "" }; +static int volume = -1; + /* Support for >2 output channels added 2001-11-25 - Steve Davies */ LIBAO_EXTERN(oss) @@ -73,6 +75,11 @@ static int format2oss(int format) case AF_FORMAT_S16_BE: return AFMT_S16_BE; #ifdef AFMT_S24_PACKED case AF_FORMAT_S24_LE: return AFMT_S24_PACKED; +#elif defined(__FreeBSD__) && defined(AFMT_S24_LE) + case AF_FORMAT_U24_LE: return AFMT_U24_LE; + case AF_FORMAT_U24_BE: return AFMT_U24_BE; + case AF_FORMAT_S24_LE: return AFMT_S24_LE; + case AF_FORMAT_S24_BE: return AFMT_S24_BE; #endif #ifdef AFMT_U32_LE case AF_FORMAT_U32_LE: return AFMT_U32_LE; @@ -116,6 +123,11 @@ static int oss2format(int format) case AFMT_S16_BE: return AF_FORMAT_S16_BE; #ifdef AFMT_S24_PACKED case AFMT_S24_PACKED: return AF_FORMAT_S24_LE; +#elif defined(__FreeBSD__) && defined(AFMT_S24_LE) + case AFMT_U24_LE: return AF_FORMAT_U24_LE; + case AFMT_U24_BE: return AF_FORMAT_U24_BE; + case AFMT_S24_LE: return AF_FORMAT_S24_LE; + case AFMT_S24_BE: return AF_FORMAT_S24_BE; #endif #ifdef AFMT_U32_LE case AFMT_U32_LE: return AF_FORMAT_U32_LE; @@ -217,6 +229,48 @@ static int control(int cmd,void *arg){ return CONTROL_UNKNOWN; } +static void setfragment(int audio_fd) +{ + int buffer_bytes = ao_data.channels * ao_data.samplerate; + int block_size = 0; + + switch (ao_data.format & AF_FORMAT_BITS_MASK) { + case AF_FORMAT_8BIT: + break; + case AF_FORMAT_16BIT: + buffer_bytes *= 2; + break; + case AF_FORMAT_24BIT: + buffer_bytes *= 3; + break; + case AF_FORMAT_32BIT: + buffer_bytes *= 4; + break; + } + buffer_bytes *= 0.050; + + if(ioctl(audio_fd, SNDCTL_DSP_GETBLKSIZE, &block_size)==0){ + int setfrag; + /* make block size power of two */ + while (block_size & (block_size - 1)) + block_size += block_size & ~(block_size - 1); + /* set number of fragments */ + setfrag = ((buffer_bytes + block_size - 1) / block_size) << 16; + /* need at least double buffering */ + if (setfrag < (2 << 16)) + setfrag = (2 << 16); + /* set block size in power of two */ + while (block_size) { + setfrag++; + block_size /= 2; + } + /* try to set a total buffer of 50ms */ + if (ioctl(audio_fd, SNDCTL_DSP_SETFRAGMENT, &setfrag)==-1){ + mp_msg(MSGT_AO,MSGL_V,"audio_setup: setfragment %d failed\n", setfrag); + } + } +} + // open & setup audio device // return: 1=success 0=fail static int init(int rate,int channels,int format,int flags){ @@ -364,6 +418,7 @@ ac3_retry: mp_msg(MSGT_AO,MSGL_WARN, "OSS: Failed setting sample-rate %i %s\n", rate, strerror(errno)); mp_msg(MSGT_AO,MSGL_V,"audio_setup: using %d Hz samplerate (requested: %d)\n",ao_data.samplerate,rate); } + setfragment(audio_fd); if(ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &zz)==-1){ int r=0; @@ -441,10 +496,30 @@ static void uninit(int immed){ audio_fd = -1; } +static void savevol(void){ + int fd; + if (volume < 0) { + if ((fd = open(oss_mixer_device, O_RDONLY)) >= 0) { + ioctl(fd, MIXER_READ(oss_mixer_channel), &volume); + close(fd); + } + } +} + +static void restorevol(void){ + int fd; + if ((fd = open(oss_mixer_device, O_RDONLY)) >= 0) { + ioctl(fd, MIXER_WRITE(oss_mixer_channel), &volume); + close(fd); + } + volume = -1; +} + // stop playing and empty buffers (for seeking/pause) static void reset(void){ int fail = 0; int oss_format; + savevol(); uninit(1); audio_fd=open(dsp, O_WRONLY); if(audio_fd < 0){ @@ -456,6 +531,7 @@ static void reset(void){ fcntl(audio_fd, F_SETFD, FD_CLOEXEC); #endif + ioctl (audio_fd, SNDCTL_DSP_SPEED, &ao_data.samplerate); oss_format = format2oss(ao_data.format); if(AF_FORMAT_IS_AC3(ao_data.format)) fail |= ioctl (audio_fd, SNDCTL_DSP_SPEED, &ao_data.samplerate) == -1; -@@ -467,14 +543,15 @@ static void reset(void){ - int c = ao_data.channels-1; - fail |= ioctl (audio_fd, SNDCTL_DSP_STEREO, &c) == -1; - } -- fail |= ioctl (audio_fd, SNDCTL_DSP_SPEED, &ao_data.samplerate) == -1; +@@ -471,11 +547,14 @@ static void reset(void){ } -- mp_msg(MSGT_AO,MSGL_WARN, "OSS: Reset failed\n"); + if (fail) + mp_msg(MSGT_AO,MSGL_WARN, "OSS: Reset failed\n"); + setfragment(audio_fd); + restorevol(); } // stop playing, keep buffers (for pause) static void audio_pause(void) { + savevol(); prepause_space = get_space(); uninit(1); }