Update to VLC 2.0.6.
ok sthen@
This commit is contained in:
parent
4f389a6a50
commit
d3834966df
@ -1,16 +1,14 @@
|
||||
# $OpenBSD: Makefile,v 1.169 2013/04/04 16:49:56 brad Exp $
|
||||
# $OpenBSD: Makefile,v 1.170 2013/04/11 17:58:42 brad Exp $
|
||||
|
||||
SHARED_ONLY= Yes
|
||||
|
||||
COMMENT-main= VideoLAN client; multimedia player
|
||||
COMMENT-jack= JACK audio output module for VLC
|
||||
|
||||
V= 2.0.5
|
||||
V= 2.0.6
|
||||
DISTNAME= vlc-${V}
|
||||
PKGNAME-main= ${DISTNAME}
|
||||
REVISION-main= 6
|
||||
PKGNAME-jack= vlc-jack-${V}
|
||||
REVISION-jack= 2
|
||||
CATEGORIES= x11
|
||||
MASTER_SITES= http://download.videolan.org/pub/videolan/vlc/${V}/
|
||||
EXTRACT_SUFX= .tar.xz
|
||||
@ -32,13 +30,13 @@ WANTLIB-main= GL ICE lib/qt4/QtGui QtCore SM SDL SDL_image X11 Xcomposite \
|
||||
ass atk-1.0 avcodec avformat avutil bluray c cairo cddb dvbpsi \
|
||||
dvdnav dvdread ebml stdc++ expat ffi fontconfig freetype \
|
||||
fribidi gcrypt gdk-x11-2.0 gdk_pixbuf-2.0 gio-2.0 glib-2.0 \
|
||||
gmodule-2.0 gmp gnutls gobject-2.0 gpg-error gthread-2.0 \
|
||||
gtk-x11-2.0 harfbuzz hogweed icudata icule icuuc jpeg matroska \
|
||||
nettle notify opus orc-0.4 ogg p11-kit pango-1.0 pangocairo-1.0 \
|
||||
pangoft2-1.0 pcre pixman-1 png postproc pthread-stubs \
|
||||
samplerate schroedinger-1.0>=2.0 sndio speex speexdsp \
|
||||
swscale tag tar tasn1 tiff usbhid vorbis vorbisenc webp \
|
||||
x264 xcb-composite xcb-keysyms xcb-randr xcb-render \
|
||||
gmodule-2.0 gmp gnutls gobject-2.0 gpg-error graphite2 \
|
||||
gthread-2.0 gtk-x11-2.0 harfbuzz hogweed icudata icule icuuc \
|
||||
jpeg matroska nettle notify opus orc-0.4 ogg p11-kit pango-1.0 \
|
||||
pangocairo-1.0 pangoft2-1.0 pcre pixman-1 png postproc \
|
||||
pthread-stubs samplerate schroedinger-1.0>=2.0 sndio speex \
|
||||
speexdsp swscale tag tar tasn1 tiff usbhid vorbis vorbisenc \
|
||||
webp x264 xcb-composite xcb-keysyms xcb-randr xcb-render \
|
||||
xcb-shape xcb-shm xcb-xfixes xcb-xv xcb xml2 z ${WANTLIB-common}
|
||||
WANTLIB-jack= jack vlccore ${WANTLIB-common}
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (vlc-2.0.5.tar.xz) = 3/nrAIYbzZ+ERv9c7b08X9K+1GDmv6hL2eAfdQ7Za24=
|
||||
SIZE (vlc-2.0.5.tar.xz) = 18369292
|
||||
SHA256 (vlc-2.0.6.tar.xz) = McyYA14s42xxqPEFqlqH49i14gags/cgjFztQHy+GWM=
|
||||
SIZE (vlc-2.0.6.tar.xz) = 18619836
|
||||
|
@ -1,6 +1,6 @@
|
||||
$OpenBSD: patch-configure_ac,v 1.26 2013/03/09 09:32:03 brad Exp $
|
||||
--- configure.ac.orig Mon Oct 22 05:03:51 2012
|
||||
+++ configure.ac Fri Mar 8 19:45:35 2013
|
||||
$OpenBSD: patch-configure_ac,v 1.27 2013/04/11 17:58:42 brad Exp $
|
||||
--- configure.ac.orig Sun Apr 7 14:42:04 2013
|
||||
+++ configure.ac Mon Apr 8 12:00:21 2013
|
||||
@@ -122,10 +122,6 @@ case "${host_os}" in
|
||||
;;
|
||||
openbsd*)
|
||||
@ -55,53 +55,7 @@ $OpenBSD: patch-configure_ac,v 1.26 2013/03/09 09:32:03 brad Exp $
|
||||
], [
|
||||
CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
|
||||
])
|
||||
@@ -2415,23 +2384,28 @@ dnl
|
||||
AC_ARG_ENABLE(avcodec,
|
||||
[ --enable-avcodec libavcodec codec (default enabled)])
|
||||
AS_IF([test "${enable_avcodec}" != "no"], [
|
||||
- PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
|
||||
- [
|
||||
- VLC_SAVE_FLAGS
|
||||
- CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
|
||||
- CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
|
||||
- AC_CHECK_HEADERS(libavcodec/avcodec.h)
|
||||
- AC_CHECK_HEADERS(libavutil/avutil.h)
|
||||
- VLC_ADD_PLUGIN([avcodec])
|
||||
- VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
|
||||
- AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
|
||||
- VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
|
||||
- ])
|
||||
- VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
|
||||
- VLC_RESTORE_FLAGS
|
||||
- have_avcodec="yes"
|
||||
- ],[
|
||||
- AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
|
||||
+ PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil], [
|
||||
+ PKG_CHECK_EXISTS([libavcodec < 55],, [
|
||||
+ AC_MSG_ERROR([libavcodec versions 55 and later are not supported yet.])
|
||||
+ ])
|
||||
+ VLC_SAVE_FLAGS
|
||||
+ CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
|
||||
+ CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
|
||||
+ LIBS="${LIBS} ${AVCODEC_LIBS}"
|
||||
+ AC_CHECK_LIB(avutil, av_sample_fmt_is_planar,
|
||||
+ AC_DEFINE([HAVE_AVUTIL_PLANAR], [1], [Define if libav* use planar audio formats]))
|
||||
+ AC_CHECK_HEADERS(libavcodec/avcodec.h)
|
||||
+ AC_CHECK_HEADERS(libavutil/avutil.h)
|
||||
+ VLC_ADD_PLUGIN([avcodec])
|
||||
+ VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
|
||||
+ AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
|
||||
+ VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
|
||||
+ ])
|
||||
+ VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
|
||||
+ VLC_RESTORE_FLAGS
|
||||
+ have_avcodec="yes"
|
||||
+ ],[
|
||||
+ AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
|
||||
])
|
||||
], [
|
||||
have_avcodec="no"
|
||||
@@ -3514,6 +3488,24 @@ AS_IF([test "$enable_oss" != "no"], [
|
||||
@@ -3519,6 +3488,24 @@ AS_IF([test "$enable_oss" != "no"], [
|
||||
])
|
||||
AC_SUBST(OSS_LIBS)
|
||||
AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
|
||||
|
@ -1,21 +0,0 @@
|
||||
$OpenBSD: patch-include_vlc_common_h,v 1.3 2013/01/03 03:07:29 brad Exp $
|
||||
--- include/vlc_common.h.orig Mon Dec 31 21:37:48 2012
|
||||
+++ include/vlc_common.h Mon Dec 31 21:39:40 2012
|
||||
@@ -659,7 +659,7 @@ static inline uint16_t bswap16 (uint16_t x)
|
||||
VLC_USED
|
||||
static inline uint32_t bswap32 (uint32_t x)
|
||||
{
|
||||
-#if VLC_GCC_VERSION(4,3)
|
||||
+#if VLC_GCC_VERSION(4,3) || defined(__clang__)
|
||||
return __builtin_bswap32 (x);
|
||||
#else
|
||||
return ((x & 0x000000FF) << 24)
|
||||
@@ -673,7 +673,7 @@ static inline uint32_t bswap32 (uint32_t x)
|
||||
VLC_USED
|
||||
static inline uint64_t bswap64 (uint64_t x)
|
||||
{
|
||||
-#if VLC_GCC_VERSION(4,3)
|
||||
+#if VLC_GCC_VERSION(4,3) || defined(__clang__)
|
||||
return __builtin_bswap64 (x);
|
||||
#elif !defined (__cplusplus)
|
||||
return ((x & 0x00000000000000FF) << 56)
|
@ -1,21 +0,0 @@
|
||||
$OpenBSD: patch-include_vlc_cpu_h,v 1.1 2013/01/03 03:07:29 brad Exp $
|
||||
--- include/vlc_cpu.h.orig Mon Dec 31 21:37:12 2012
|
||||
+++ include/vlc_cpu.h Mon Dec 31 21:37:38 2012
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
# if defined (__MMX__)
|
||||
# define VLC_MMX
|
||||
-# elif VLC_GCC_VERSION(4, 4)
|
||||
+# elif VLC_GCC_VERSION(4, 4) || defined(__clang__)
|
||||
# define VLC_MMX __attribute__ ((__target__ ("mmx")))
|
||||
# else
|
||||
# define VLC_MMX VLC_MMX_is_not_implemented_on_this_compiler
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
# if defined (__SSE__)
|
||||
# define VLC_SSE
|
||||
-# elif VLC_GCC_VERSION(4, 4)
|
||||
+# elif VLC_GCC_VERSION(4, 4) || defined(__clang__)
|
||||
# define VLC_SSE __attribute__ ((__target__ ("sse")))
|
||||
# else
|
||||
# define VLC_SSE VLC_SSE_is_not_implemented_on_this_compiler
|
@ -1,163 +0,0 @@
|
||||
$OpenBSD: patch-modules_codec_avcodec_audio_c,v 1.1 2013/03/09 09:32:03 brad Exp $
|
||||
--- modules/codec/avcodec/audio.c.orig Fri Mar 8 16:28:52 2013
|
||||
+++ modules/codec/avcodec/audio.c Fri Mar 8 16:29:02 2013
|
||||
@@ -29,6 +29,8 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
+#include <assert.h>
|
||||
+
|
||||
#include <vlc_common.h>
|
||||
#include <vlc_aout.h>
|
||||
#include <vlc_codec.h>
|
||||
@@ -81,6 +83,42 @@ struct decoder_sys_t
|
||||
int64_t i_previous_layout;
|
||||
};
|
||||
|
||||
+/**
|
||||
+ * Interleaves audio samples within a block of samples.
|
||||
+ * \param dst destination buffer for interleaved samples
|
||||
+ * \param src source buffer with consecutive planes of samples
|
||||
+ * \param samples number of samples (per channel/per plane)
|
||||
+ * \param chans channels/planes count
|
||||
+ * \param fourcc sample format (must be a linear sample format)
|
||||
+ * \note The samples must be naturally aligned in memory.
|
||||
+ * \warning Destination and source buffers MUST NOT overlap.
|
||||
+ */
|
||||
+static void Interleave( void *restrict dst, const void *restrict src,
|
||||
+ unsigned samples, unsigned chans, vlc_fourcc_t fourcc )
|
||||
+{
|
||||
+#define INTERLEAVE_TYPE(type) \
|
||||
+do { \
|
||||
+ type *d = dst; \
|
||||
+ const type *s = src; \
|
||||
+ for( size_t i = 0; i < chans; i++ ) { \
|
||||
+ for( size_t j = 0, k = 0; j < samples; j++, k += chans ) \
|
||||
+ d[k] = *(s++); \
|
||||
+ d++; \
|
||||
+ } \
|
||||
+} while(0)
|
||||
+
|
||||
+ switch( fourcc )
|
||||
+ {
|
||||
+ case VLC_CODEC_U8: INTERLEAVE_TYPE(uint8_t); break;
|
||||
+ case VLC_CODEC_S16N: INTERLEAVE_TYPE(uint16_t); break;
|
||||
+ case VLC_CODEC_FL32: INTERLEAVE_TYPE(float); break;
|
||||
+ case VLC_CODEC_S32N: INTERLEAVE_TYPE(int32_t); break;
|
||||
+ case VLC_CODEC_FL64: INTERLEAVE_TYPE(double); break;
|
||||
+ default: assert(0);
|
||||
+ }
|
||||
+#undef INTERLEAVE_TYPE
|
||||
+}
|
||||
+
|
||||
#define BLOCK_FLAG_PRIVATE_REALLOCATED (1 << BLOCK_FLAG_PRIVATE_SHIFT)
|
||||
|
||||
static void SetupOutputFormat( decoder_t *p_dec, bool b_trust );
|
||||
@@ -230,6 +268,7 @@ static aout_buffer_t *SplitBuffer( decoder_t *p_dec )
|
||||
{
|
||||
decoder_sys_t *p_sys = p_dec->p_sys;
|
||||
int i_samples = __MIN( p_sys->i_samples, 4096 );
|
||||
+ int sample_planar=0;
|
||||
aout_buffer_t *p_buffer;
|
||||
|
||||
if( i_samples == 0 ) return NULL;
|
||||
@@ -241,16 +280,26 @@ static aout_buffer_t *SplitBuffer( decoder_t *p_dec )
|
||||
p_buffer->i_length = date_Increment( &p_sys->end_date, i_samples )
|
||||
- p_buffer->i_pts;
|
||||
|
||||
+ sample_planar = av_sample_fmt_is_planar( p_sys->p_context->sample_fmt );
|
||||
+ if( sample_planar )
|
||||
+ Interleave( p_buffer->p_buffer, p_sys->p_samples, i_samples, p_sys->p_context->channels, p_dec->fmt_out.audio.i_format );
|
||||
+
|
||||
if( p_sys->b_extract )
|
||||
+ {
|
||||
+ if( sample_planar )
|
||||
+ memcpy( p_sys->p_samples, p_buffer->p_buffer, p_buffer->i_buffer );
|
||||
+
|
||||
aout_ChannelExtract( p_buffer->p_buffer, p_dec->fmt_out.audio.i_channels,
|
||||
p_sys->p_samples, p_sys->p_context->channels, i_samples,
|
||||
p_sys->pi_extraction, p_dec->fmt_out.audio.i_bitspersample );
|
||||
- else
|
||||
+ }
|
||||
+ else if (!sample_planar)
|
||||
memcpy( p_buffer->p_buffer, p_sys->p_samples, p_buffer->i_buffer );
|
||||
|
||||
p_sys->p_samples += i_samples * p_sys->p_context->channels * ( p_dec->fmt_out.audio.i_bitspersample / 8 );
|
||||
p_sys->i_samples -= i_samples;
|
||||
|
||||
+
|
||||
return p_buffer;
|
||||
}
|
||||
|
||||
@@ -416,33 +465,25 @@ void EndAudioDec( decoder_t *p_dec )
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
-void GetVlcAudioFormat( vlc_fourcc_t *pi_codec, unsigned *pi_bits, int i_sample_fmt )
|
||||
+vlc_fourcc_t GetVlcAudioFormat( int fmt )
|
||||
{
|
||||
- switch( i_sample_fmt )
|
||||
- {
|
||||
- case AV_SAMPLE_FMT_U8:
|
||||
- *pi_codec = VLC_CODEC_U8;
|
||||
- *pi_bits = 8;
|
||||
- break;
|
||||
- case AV_SAMPLE_FMT_S32:
|
||||
- *pi_codec = VLC_CODEC_S32N;
|
||||
- *pi_bits = 32;
|
||||
- break;
|
||||
- case AV_SAMPLE_FMT_FLT:
|
||||
- *pi_codec = VLC_CODEC_FL32;
|
||||
- *pi_bits = 32;
|
||||
- break;
|
||||
- case AV_SAMPLE_FMT_DBL:
|
||||
- *pi_codec = VLC_CODEC_FL64;
|
||||
- *pi_bits = 64;
|
||||
- break;
|
||||
-
|
||||
- case AV_SAMPLE_FMT_S16:
|
||||
- default:
|
||||
- *pi_codec = VLC_CODEC_S16N;
|
||||
- *pi_bits = 16;
|
||||
- break;
|
||||
- }
|
||||
+ static const vlc_fourcc_t fcc[] = {
|
||||
+ [AV_SAMPLE_FMT_U8] = VLC_CODEC_U8,
|
||||
+ [AV_SAMPLE_FMT_S16] = VLC_CODEC_S16N,
|
||||
+ [AV_SAMPLE_FMT_S32] = VLC_CODEC_S32N,
|
||||
+ [AV_SAMPLE_FMT_FLT] = VLC_CODEC_FL32,
|
||||
+ [AV_SAMPLE_FMT_DBL] = VLC_CODEC_FL64,
|
||||
+#ifdef HAVE_AVUTIL_PLANAR
|
||||
+ [AV_SAMPLE_FMT_U8P] = VLC_CODEC_U8,
|
||||
+ [AV_SAMPLE_FMT_S16P] = VLC_CODEC_S16N,
|
||||
+ [AV_SAMPLE_FMT_S32P] = VLC_CODEC_S32N,
|
||||
+ [AV_SAMPLE_FMT_FLTP] = VLC_CODEC_FL32,
|
||||
+ [AV_SAMPLE_FMT_DBLP] = VLC_CODEC_FL64,
|
||||
+#endif
|
||||
+ };
|
||||
+ if( (sizeof(fcc) / sizeof(fcc[0])) > (unsigned)fmt )
|
||||
+ return fcc[fmt];
|
||||
+ return VLC_CODEC_S16N;
|
||||
}
|
||||
|
||||
static const uint64_t pi_channels_map[][2] =
|
||||
@@ -473,9 +514,8 @@ static void SetupOutputFormat( decoder_t *p_dec, bool
|
||||
{
|
||||
decoder_sys_t *p_sys = p_dec->p_sys;
|
||||
|
||||
- GetVlcAudioFormat( &p_dec->fmt_out.i_codec,
|
||||
- &p_dec->fmt_out.audio.i_bitspersample,
|
||||
- p_sys->p_context->sample_fmt );
|
||||
+ p_dec->fmt_out.i_codec = GetVlcAudioFormat( p_sys->p_context->sample_fmt );
|
||||
+ p_dec->fmt_out.audio.i_format = p_dec->fmt_out.i_codec;
|
||||
p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
|
||||
|
||||
/* */
|
||||
@@ -527,6 +567,6 @@ static void SetupOutputFormat( decoder_t *p_dec, bool
|
||||
|
||||
p_dec->fmt_out.audio.i_physical_channels =
|
||||
p_dec->fmt_out.audio.i_original_channels = i_layout_dst;
|
||||
- p_dec->fmt_out.audio.i_channels = i_channels_dst;
|
||||
+ aout_FormatPrepare( &p_dec->fmt_out.audio );
|
||||
}
|
||||
|
@ -1,15 +0,0 @@
|
||||
$OpenBSD: patch-modules_codec_avcodec_avcodec_c,v 1.2 2013/03/30 02:06:26 brad Exp $
|
||||
|
||||
Re-enable the multi-threaded mode for the avcodec backend.
|
||||
|
||||
--- modules/codec/avcodec/avcodec.c.orig Tue Mar 19 19:45:29 2013
|
||||
+++ modules/codec/avcodec/avcodec.c Tue Mar 19 19:46:39 2013
|
||||
@@ -132,7 +132,7 @@ vlc_module_begin ()
|
||||
add_bool( "ffmpeg-hw", false, HW_TEXT, HW_LONGTEXT, false )
|
||||
#endif
|
||||
#if defined(FF_THREAD_FRAME)
|
||||
- add_integer( "ffmpeg-threads", 1, THREADS_TEXT, THREADS_LONGTEXT, true );
|
||||
+ add_integer( "ffmpeg-threads", 0, THREADS_TEXT, THREADS_LONGTEXT, true );
|
||||
#endif
|
||||
|
||||
|
@ -1,27 +0,0 @@
|
||||
$OpenBSD: patch-modules_codec_avcodec_avcodec_h,v 1.1 2013/03/09 09:32:03 brad Exp $
|
||||
--- modules/codec/avcodec/avcodec.h.orig Fri Mar 8 16:29:45 2013
|
||||
+++ modules/codec/avcodec/avcodec.h Fri Mar 8 16:29:50 2013
|
||||
@@ -21,13 +21,22 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||||
*****************************************************************************/
|
||||
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+# include "config.h"
|
||||
+#endif
|
||||
+
|
||||
+#ifndef HAVE_AVUTIL_PLANAR
|
||||
+# define av_sample_fmt_is_planar(x) (0)
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
#include "chroma.h"
|
||||
/* VLC <-> avcodec tables */
|
||||
int GetFfmpegCodec( vlc_fourcc_t i_fourcc, int *pi_cat,
|
||||
int *pi_ffmpeg_codec, const char **ppsz_name );
|
||||
int GetVlcFourcc( int i_ffmpeg_codec, int *pi_cat,
|
||||
vlc_fourcc_t *pi_fourcc, const char **ppsz_name );
|
||||
-void GetVlcAudioFormat( vlc_fourcc_t *, unsigned *pi_bits, int i_sample_fmt );
|
||||
+vlc_fourcc_t GetVlcAudioFormat( int i_sample_fmt );
|
||||
|
||||
picture_t * DecodeVideo ( decoder_t *, block_t ** );
|
||||
aout_buffer_t * DecodeAudio( decoder_t *, block_t ** );
|
@ -1,126 +0,0 @@
|
||||
$OpenBSD: patch-modules_codec_avcodec_encoder_c,v 1.1 2013/03/09 09:32:03 brad Exp $
|
||||
--- modules/codec/avcodec/encoder.c.orig Fri Mar 8 16:31:00 2013
|
||||
+++ modules/codec/avcodec/encoder.c Fri Mar 8 16:31:07 2013
|
||||
@@ -32,6 +32,8 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
+#include <assert.h>
|
||||
+
|
||||
#include <vlc_common.h>
|
||||
#include <vlc_aout.h>
|
||||
#include <vlc_sout.h>
|
||||
@@ -188,6 +190,42 @@ static const uint16_t mpeg4_default_non_intra_matrix[6
|
||||
23, 24, 25, 27, 28, 30, 31, 33,
|
||||
};
|
||||
|
||||
+/**
|
||||
+ * Deinterleaves audio samples within a block of samples.
|
||||
+ * \param dst destination buffer for planar samples
|
||||
+ * \param src source buffer with interleaved samples
|
||||
+ * \param samples number of samples (per channel/per plane)
|
||||
+ * \param chans channels/planes count
|
||||
+ * \param fourcc sample format (must be a linear sample format)
|
||||
+ * \note The samples must be naturally aligned in memory.
|
||||
+ * \warning Destination and source buffers MUST NOT overlap.
|
||||
+ */
|
||||
+static void Deinterleave( void *restrict dst, const void *restrict src,
|
||||
+ unsigned samples, unsigned chans, vlc_fourcc_t fourcc )
|
||||
+{
|
||||
+#define DEINTERLEAVE_TYPE(type) \
|
||||
+do { \
|
||||
+ type *d = dst; \
|
||||
+ const type *s = src; \
|
||||
+ for( size_t i = 0; i < chans; i++ ) { \
|
||||
+ for( size_t j = 0, k = 0; j < samples; j++, k += chans ) \
|
||||
+ *(d++) = s[k]; \
|
||||
+ s++; \
|
||||
+ } \
|
||||
+} while(0)
|
||||
+
|
||||
+ switch( fourcc )
|
||||
+ {
|
||||
+ case VLC_CODEC_U8: DEINTERLEAVE_TYPE(uint8_t); break;
|
||||
+ case VLC_CODEC_S16N: DEINTERLEAVE_TYPE(uint16_t); break;
|
||||
+ case VLC_CODEC_FL32: DEINTERLEAVE_TYPE(float); break;
|
||||
+ case VLC_CODEC_S32N: DEINTERLEAVE_TYPE(int32_t); break;
|
||||
+ case VLC_CODEC_FL64: DEINTERLEAVE_TYPE(double); break;
|
||||
+ default: assert(0);
|
||||
+ }
|
||||
+#undef DEINTERLEAVE_TYPE
|
||||
+}
|
||||
+
|
||||
/*****************************************************************************
|
||||
* OpenEncoder: probe the encoder
|
||||
*****************************************************************************/
|
||||
@@ -612,7 +650,8 @@ int OpenEncoder( vlc_object_t *p_this )
|
||||
p_context->sample_fmt = p_codec->sample_fmts ?
|
||||
p_codec->sample_fmts[0] :
|
||||
AV_SAMPLE_FMT_S16;
|
||||
- p_enc->fmt_in.i_codec = VLC_CODEC_S16N;
|
||||
+ p_enc->fmt_in.i_codec = GetVlcAudioFormat( p_context->sample_fmt );
|
||||
+
|
||||
p_context->sample_rate = p_enc->fmt_out.audio.i_rate;
|
||||
p_context->time_base.num = 1;
|
||||
p_context->time_base.den = p_context->sample_rate;
|
||||
@@ -826,9 +865,9 @@ int OpenEncoder( vlc_object_t *p_this )
|
||||
|
||||
if( p_enc->fmt_in.i_cat == AUDIO_ES )
|
||||
{
|
||||
- GetVlcAudioFormat( &p_enc->fmt_in.i_codec,
|
||||
- &p_enc->fmt_in.audio.i_bitspersample,
|
||||
- p_sys->p_context->sample_fmt );
|
||||
+ p_enc->fmt_in.i_codec = GetVlcAudioFormat( p_sys->p_context->sample_fmt );
|
||||
+ p_enc->fmt_in.audio.i_bitspersample = aout_BitsPerSample( p_enc->fmt_in.i_codec );
|
||||
+
|
||||
p_sys->i_sample_bytes = (p_enc->fmt_in.audio.i_bitspersample / 8) *
|
||||
p_context->channels;
|
||||
p_sys->i_frame_size = p_context->frame_size > 1 ?
|
||||
@@ -1105,8 +1144,12 @@ static block_t *EncodeAudio( encoder_t *p_enc, aout_bu
|
||||
int i_size = (p_sys->i_frame_size - i_delay_size) *
|
||||
p_sys->i_sample_bytes;
|
||||
|
||||
- memcpy( p_sys->p_buffer + i_delay_size * p_sys->i_sample_bytes,
|
||||
- p_buffer, i_size );
|
||||
+ if( av_sample_fmt_is_planar( p_sys->p_context->sample_fmt ) )
|
||||
+ Deinterleave( &p_sys->p_buffer[i_delay_size * p_sys->i_sample_bytes],
|
||||
+ p_buffer, i_samples_delay, p_enc->fmt_in.audio.i_channels, p_enc->fmt_in.i_codec );
|
||||
+ else
|
||||
+ memcpy( p_sys->p_buffer + i_delay_size * p_sys->i_sample_bytes,
|
||||
+ p_buffer, i_size );
|
||||
p_buffer -= i_delay_size * p_sys->i_sample_bytes;
|
||||
i_samples += i_samples_delay;
|
||||
i_samples_delay = 0;
|
||||
@@ -1115,7 +1158,14 @@ static block_t *EncodeAudio( encoder_t *p_enc, aout_bu
|
||||
}
|
||||
else
|
||||
{
|
||||
- p_samples = p_buffer;
|
||||
+ if( av_sample_fmt_is_planar( p_sys->p_context->sample_fmt ) ) {
|
||||
+ Deinterleave( p_sys->p_buffer,
|
||||
+ p_buffer, p_sys->i_frame_size,
|
||||
+ p_enc->fmt_in.audio.i_channels,
|
||||
+ p_enc->fmt_in.i_codec );
|
||||
+ p_samples = p_sys->p_buffer;
|
||||
+ } else
|
||||
+ p_samples = p_buffer;
|
||||
}
|
||||
|
||||
i_out = avcodec_encode_audio( p_sys->p_context, p_sys->p_buffer_out,
|
||||
@@ -1148,9 +1198,13 @@ static block_t *EncodeAudio( encoder_t *p_enc, aout_bu
|
||||
/* Backup the remaining raw samples */
|
||||
if( i_samples )
|
||||
{
|
||||
- memcpy( &p_sys->p_buffer[i_samples_delay * p_sys->i_sample_bytes],
|
||||
- p_buffer,
|
||||
- i_samples * p_sys->i_sample_bytes );
|
||||
+ if( av_sample_fmt_is_planar( p_sys->p_context->sample_fmt ) )
|
||||
+ Deinterleave( &p_sys->p_buffer[i_samples_delay * p_sys->i_sample_bytes],
|
||||
+ p_buffer, i_samples, p_enc->fmt_in.audio.i_channels, p_enc->fmt_in.i_codec );
|
||||
+ else
|
||||
+ memcpy( &p_sys->p_buffer[i_samples_delay * p_sys->i_sample_bytes],
|
||||
+ p_buffer,
|
||||
+ i_samples * p_sys->i_sample_bytes );
|
||||
}
|
||||
|
||||
return p_chain;
|
@ -1,159 +0,0 @@
|
||||
$OpenBSD: patch-modules_demux_asf_asf_c,v 1.1 2013/02/06 13:07:05 brad Exp $
|
||||
|
||||
Fix crash with broken ASF files (SA-1302).
|
||||
|
||||
--- modules/demux/asf/asf.c.orig Tue Aug 28 13:25:19 2012
|
||||
+++ modules/demux/asf/asf.c Tue Feb 5 07:53:12 2013
|
||||
@@ -383,15 +383,30 @@ static mtime_t GetMoviePTS( demux_sys_t *p_sys )
|
||||
return i_time;
|
||||
}
|
||||
|
||||
-#define GETVALUE2b( bits, var, def ) \
|
||||
- switch( (bits)&0x03 ) \
|
||||
- { \
|
||||
- case 1: var = p_peek[i_skip]; i_skip++; break; \
|
||||
- case 2: var = GetWLE( p_peek + i_skip ); i_skip+= 2; break; \
|
||||
- case 3: var = GetDWLE( p_peek + i_skip ); i_skip+= 4; break; \
|
||||
- case 0: \
|
||||
- default: var = def; break;\
|
||||
+static inline int GetValue2b(int *var, const uint8_t *p, int *skip, int left, int bits)
|
||||
+{
|
||||
+ switch(bits&0x03)
|
||||
+ {
|
||||
+ case 1:
|
||||
+ if (left < 1)
|
||||
+ return -1;
|
||||
+ *var = p[*skip]; *skip += 1;
|
||||
+ return 0;
|
||||
+ case 2:
|
||||
+ if (left < 2)
|
||||
+ return -1;
|
||||
+ *var = GetWLE(&p[*skip]); *skip += 2;
|
||||
+ return 0;
|
||||
+ case 3:
|
||||
+ if (left < 4)
|
||||
+ return -1;
|
||||
+ *var = GetDWLE(&p[*skip]); *skip += 4;
|
||||
+ return 0;
|
||||
+ case 0:
|
||||
+ default:
|
||||
+ return 0;
|
||||
}
|
||||
+}
|
||||
|
||||
static int DemuxPacket( demux_t *p_demux )
|
||||
{
|
||||
@@ -405,15 +420,15 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
int i_packet_property;
|
||||
|
||||
int b_packet_multiple_payload;
|
||||
- int i_packet_length;
|
||||
- int i_packet_sequence;
|
||||
- int i_packet_padding_length;
|
||||
+ int i_packet_length = i_data_packet_min;
|
||||
+ int i_packet_sequence = 0;
|
||||
+ int i_packet_padding_length = 0;
|
||||
|
||||
uint32_t i_packet_send_time;
|
||||
- uint16_t i_packet_duration;
|
||||
int i_payload;
|
||||
int i_payload_count;
|
||||
int i_payload_length_type;
|
||||
+ int peek_size;
|
||||
|
||||
|
||||
if( stream_Peek( p_demux->s, &p_peek,i_data_packet_min)<i_data_packet_min )
|
||||
@@ -421,6 +436,7 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
msg_Warn( p_demux, "cannot peek while getting new packet, EOF ?" );
|
||||
return 0;
|
||||
}
|
||||
+ peek_size = i_data_packet_min;
|
||||
i_skip = 0;
|
||||
|
||||
/* *** parse error correction if present *** */
|
||||
@@ -461,9 +477,12 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
b_packet_multiple_payload = i_packet_flags&0x01;
|
||||
|
||||
/* read some value */
|
||||
- GETVALUE2b( i_packet_flags >> 5, i_packet_length, i_data_packet_min );
|
||||
- GETVALUE2b( i_packet_flags >> 1, i_packet_sequence, 0 );
|
||||
- GETVALUE2b( i_packet_flags >> 3, i_packet_padding_length, 0 );
|
||||
+ if (GetValue2b(&i_packet_length, p_peek, &i_skip, peek_size - i_skip, i_packet_flags >> 5) < 0)
|
||||
+ goto loop_error_recovery;
|
||||
+ if (GetValue2b(&i_packet_sequence, p_peek, &i_skip, peek_size - i_skip, i_packet_flags >> 1) < 0)
|
||||
+ goto loop_error_recovery;
|
||||
+ if (GetValue2b(&i_packet_padding_length, p_peek, &i_skip, peek_size - i_skip, i_packet_flags >> 3) < 0)
|
||||
+ goto loop_error_recovery;
|
||||
|
||||
if( i_packet_padding_length > i_packet_length )
|
||||
{
|
||||
@@ -479,7 +498,7 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
}
|
||||
|
||||
i_packet_send_time = GetDWLE( p_peek + i_skip ); i_skip += 4;
|
||||
- i_packet_duration = GetWLE( p_peek + i_skip ); i_skip += 2;
|
||||
+ /* uint16_t i_packet_duration = GetWLE( p_peek + i_skip ); */ i_skip += 2;
|
||||
|
||||
i_packet_size_left = i_packet_length;
|
||||
|
||||
@@ -501,13 +520,13 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
|
||||
int i_packet_keyframe;
|
||||
unsigned int i_stream_number;
|
||||
- int i_media_object_number;
|
||||
+ int i_media_object_number = 0;
|
||||
int i_media_object_offset;
|
||||
- int i_replicated_data_length;
|
||||
- int i_payload_data_length;
|
||||
+ int i_replicated_data_length = 0;
|
||||
+ int i_payload_data_length = 0;
|
||||
int i_payload_data_pos;
|
||||
int i_sub_payload_data_length;
|
||||
- int i_tmp;
|
||||
+ int i_tmp = 0;
|
||||
|
||||
mtime_t i_pts;
|
||||
mtime_t i_pts_delta;
|
||||
@@ -521,9 +540,12 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
i_packet_keyframe = p_peek[i_skip] >> 7;
|
||||
i_stream_number = p_peek[i_skip++] & 0x7f;
|
||||
|
||||
- GETVALUE2b( i_packet_property >> 4, i_media_object_number, 0 );
|
||||
- GETVALUE2b( i_packet_property >> 2, i_tmp, 0 );
|
||||
- GETVALUE2b( i_packet_property, i_replicated_data_length, 0 );
|
||||
+ if (GetValue2b(&i_media_object_number, p_peek, &i_skip, peek_size - i_skip, i_packet_property >> 4) < 0)
|
||||
+ break;
|
||||
+ if (GetValue2b(&i_tmp, p_peek, &i_skip, peek_size - i_skip, i_packet_property >> 2) < 0)
|
||||
+ break;
|
||||
+ if (GetValue2b(&i_replicated_data_length, p_peek, &i_skip, peek_size - i_skip, i_packet_property) < 0)
|
||||
+ break;
|
||||
|
||||
if( i_replicated_data_length > 1 ) // should be at least 8 bytes
|
||||
{
|
||||
@@ -558,7 +580,9 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
i_pts = __MAX( i_pts - p_sys->p_fp->i_preroll * 1000, 0 );
|
||||
if( b_packet_multiple_payload )
|
||||
{
|
||||
- GETVALUE2b( i_payload_length_type, i_payload_data_length, 0 );
|
||||
+ i_payload_data_length = 0;
|
||||
+ if (GetValue2b(&i_payload_data_length, p_peek, &i_skip, peek_size - i_skip, i_payload_length_type) < 0)
|
||||
+ break;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -645,6 +669,7 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
return 0;
|
||||
}
|
||||
i_packet_size_left -= i_read;
|
||||
+ peek_size = 0;
|
||||
|
||||
p_frag->p_buffer += i_skip;
|
||||
p_frag->i_buffer -= i_skip;
|
||||
@@ -672,6 +697,7 @@ static int DemuxPacket( demux_t *p_demux )
|
||||
msg_Warn( p_demux, "cannot peek, EOF ?" );
|
||||
return 0;
|
||||
}
|
||||
+ peek_size = i_packet_size_left;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,137 +0,0 @@
|
||||
$OpenBSD: patch-modules_demux_mkv_Ebml_parser_cpp,v 1.1 2013/02/06 13:07:05 brad Exp $
|
||||
|
||||
Fix MKV behaviour with unknown or new EBML elements.
|
||||
|
||||
--- modules/demux/mkv/Ebml_parser.cpp.orig Fri Dec 9 11:58:27 2011
|
||||
+++ modules/demux/mkv/Ebml_parser.cpp Tue Feb 5 07:55:42 2013
|
||||
@@ -30,6 +30,7 @@
|
||||
* Ebml Stream parser
|
||||
*****************************************************************************/
|
||||
EbmlParser::EbmlParser( EbmlStream *es, EbmlElement *el_start, demux_t *p_demux ) :
|
||||
+ p_demux( p_demux ),
|
||||
m_es( es ),
|
||||
mi_level( 1 ),
|
||||
m_got( NULL ),
|
||||
@@ -103,7 +104,7 @@ void EbmlParser::Up( void )
|
||||
{
|
||||
if( mi_user_level == mi_level )
|
||||
{
|
||||
- fprintf( stderr,"MKV/Ebml Parser: Up cannot escape itself\n" );
|
||||
+ msg_Warn( p_demux, "MKV/Ebml Parser: Up cannot escape itself" );
|
||||
}
|
||||
|
||||
mi_user_level--;
|
||||
@@ -133,15 +134,17 @@ void EbmlParser::Reset( demux_t *p_demux )
|
||||
m_el[mi_level] = NULL;
|
||||
mi_level--;
|
||||
}
|
||||
+ this->p_demux = p_demux;
|
||||
mi_user_level = mi_level = 1;
|
||||
// a little faster and cleaner
|
||||
m_es->I_O().setFilePointer( static_cast<KaxSegment*>(m_el[0])->GetGlobalPosition(0) );
|
||||
mb_dummy = var_InheritBool( p_demux, "mkv-use-dummy" );
|
||||
}
|
||||
|
||||
-EbmlElement *EbmlParser::Get( void )
|
||||
+EbmlElement *EbmlParser::Get( int n_call )
|
||||
{
|
||||
int i_ulev = 0;
|
||||
+ EbmlElement *p_prev = NULL;
|
||||
|
||||
if( mi_user_level != mi_level )
|
||||
{
|
||||
@@ -155,24 +158,29 @@ EbmlElement *EbmlParser::Get( void )
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ p_prev = m_el[mi_level];
|
||||
if( m_el[mi_level] )
|
||||
{
|
||||
m_el[mi_level]->SkipData( *m_es, EBML_CONTEXT(m_el[mi_level]) );
|
||||
- if( !mb_keep )
|
||||
- {
|
||||
- if( MKV_IS_ID( m_el[mi_level], KaxBlockVirtual ) )
|
||||
- static_cast<KaxBlockVirtualWorkaround*>(m_el[mi_level])->Fix();
|
||||
- delete m_el[mi_level];
|
||||
- }
|
||||
- mb_keep = false;
|
||||
+
|
||||
}
|
||||
vlc_stream_io_callback & io_stream = (vlc_stream_io_callback &) m_es->I_O();
|
||||
uint64 i_size = io_stream.toRead();
|
||||
m_el[mi_level] = m_es->FindNextElement( EBML_CONTEXT(m_el[mi_level - 1]),
|
||||
- i_ulev, i_size, mb_dummy, 1 );
|
||||
+ i_ulev, i_size, true, 1 );
|
||||
// mi_remain_size[mi_level] = m_el[mi_level]->GetSize();
|
||||
if( i_ulev > 0 )
|
||||
{
|
||||
+ if( p_prev )
|
||||
+ {
|
||||
+ if( !mb_keep )
|
||||
+ {
|
||||
+ if( MKV_IS_ID( p_prev, KaxBlockVirtual ) )
|
||||
+ static_cast<KaxBlockVirtualWorkaround*>(p_prev)->Fix();
|
||||
+ delete p_prev;
|
||||
+ }
|
||||
+ mb_keep = false;
|
||||
+ }
|
||||
while( i_ulev > 0 )
|
||||
{
|
||||
if( mi_level == 1 )
|
||||
@@ -192,9 +200,55 @@ EbmlElement *EbmlParser::Get( void )
|
||||
}
|
||||
else if( m_el[mi_level] == NULL )
|
||||
{
|
||||
- fprintf( stderr,"MKV/Ebml Parser: m_el[mi_level] == NULL\n" );
|
||||
+ msg_Warn( p_demux,"MKV/Ebml Parser: m_el[mi_level] == NULL\n" );
|
||||
}
|
||||
+ else if( m_el[mi_level]->IsDummy() && !mb_dummy )
|
||||
+ {
|
||||
+ bool b_bad_position = false;
|
||||
+ /* We got a dummy element but don't want those...
|
||||
+ * perform a sanity check */
|
||||
+ if( !mi_level )
|
||||
+ {
|
||||
+ msg_Err(p_demux, "Got invalid lvl 0 element... Aborting");
|
||||
+ return NULL;
|
||||
+ }
|
||||
|
||||
+ if( p_prev && p_prev->IsFiniteSize() &&
|
||||
+ p_prev->GetEndPosition() != m_el[mi_level]->GetElementPosition())
|
||||
+ {
|
||||
+ msg_Err( p_demux, "Dummy Element at unexpected position... corrupted file?" );
|
||||
+ b_bad_position = true;
|
||||
+ }
|
||||
+
|
||||
+ if( n_call < 10 && !b_bad_position && m_el[mi_level]->IsFiniteSize() &&
|
||||
+ ( !m_el[mi_level-1]->IsFiniteSize() ||
|
||||
+ m_el[mi_level]->GetEndPosition() <= m_el[mi_level-1]->GetEndPosition() ) )
|
||||
+ {
|
||||
+ /* The element fits inside its upper element */
|
||||
+ msg_Warn( p_demux, "Dummy element found... skipping it" );
|
||||
+ return Get( ++n_call );
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ /* Too large, misplaced or 10 successive dummy elements */
|
||||
+ msg_Err( p_demux, "Dummy element too large or misplaced... skipping to next upper element" );
|
||||
+ delete m_el[mi_level];
|
||||
+ m_el[mi_level] = NULL;
|
||||
+ m_el[mi_level - 1]->SkipData( *m_es, EBML_CONTEXT(m_el[mi_level - 1]) );
|
||||
+ return Get();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if( p_prev )
|
||||
+ {
|
||||
+ if( !mb_keep )
|
||||
+ {
|
||||
+ if( MKV_IS_ID( p_prev, KaxBlockVirtual ) )
|
||||
+ static_cast<KaxBlockVirtualWorkaround*>(p_prev)->Fix();
|
||||
+ delete p_prev;
|
||||
+ }
|
||||
+ mb_keep = false;
|
||||
+ }
|
||||
return m_el[mi_level];
|
||||
}
|
||||
|
@ -1,37 +0,0 @@
|
||||
$OpenBSD: patch-modules_demux_mkv_Ebml_parser_hpp,v 1.1 2013/02/06 13:07:05 brad Exp $
|
||||
|
||||
Fix MKV behaviour with unknown or new EBML elements.
|
||||
|
||||
--- modules/demux/mkv/Ebml_parser.hpp.orig Thu Dec 8 13:00:26 2011
|
||||
+++ modules/demux/mkv/Ebml_parser.hpp Tue Feb 5 07:55:42 2013
|
||||
@@ -39,7 +39,7 @@ class EbmlParser
|
||||
void Up( void );
|
||||
void Down( void );
|
||||
void Reset( demux_t *p_demux );
|
||||
- EbmlElement *Get( void );
|
||||
+ EbmlElement *Get( int n_call = 0 );
|
||||
void Keep( void );
|
||||
EbmlElement *UnGet( uint64 i_block_pos, uint64 i_cluster_pos );
|
||||
|
||||
@@ -49,16 +49,17 @@ class EbmlParser
|
||||
bool IsTopPresent( EbmlElement * ) const;
|
||||
|
||||
private:
|
||||
+ demux_t *p_demux;
|
||||
EbmlStream *m_es;
|
||||
- int mi_level;
|
||||
+ int mi_level;
|
||||
EbmlElement *m_el[10];
|
||||
int64_t mi_remain_size[10];
|
||||
|
||||
EbmlElement *m_got;
|
||||
|
||||
- int mi_user_level;
|
||||
- bool mb_keep;
|
||||
- bool mb_dummy;
|
||||
+ int mi_user_level;
|
||||
+ bool mb_keep;
|
||||
+ bool mb_dummy;
|
||||
};
|
||||
|
||||
/* This class works around a bug in KaxBlockVirtual implementation */
|
@ -1,30 +0,0 @@
|
||||
$OpenBSD: patch-modules_video_filter_deinterlace_yadif_h,v 1.1 2013/01/03 03:07:29 brad Exp $
|
||||
--- modules/video_filter/deinterlace/yadif.h.orig Mon Dec 31 21:34:43 2012
|
||||
+++ modules/video_filter/deinterlace/yadif.h Mon Dec 31 21:35:48 2012
|
||||
@@ -39,7 +39,7 @@ DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x000100
|
||||
|
||||
|
||||
#ifdef CAN_COMPILE_SSSE3
|
||||
-#if defined(__SSE__) || VLC_GCC_VERSION(4, 4)
|
||||
+#if defined(__SSE__) || VLC_GCC_VERSION(4, 4) || defined(__clang__)
|
||||
// ================ SSSE3 =================
|
||||
#define HAVE_YADIF_SSSE3
|
||||
#define COMPILE_TEMPLATE_SSE 1
|
||||
@@ -55,7 +55,7 @@ DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x000100
|
||||
#endif
|
||||
|
||||
#ifdef CAN_COMPILE_SSE2
|
||||
-#if defined(__SSE__) || VLC_GCC_VERSION(4, 4)
|
||||
+#if defined(__SSE__) || VLC_GCC_VERSION(4, 4) || defined(__clang__)
|
||||
// ================= SSE2 =================
|
||||
#define HAVE_YADIF_SSE2
|
||||
#define COMPILE_TEMPLATE_SSE 1
|
||||
@@ -69,7 +69,7 @@ DECLARE_ASM_CONST(16, const xmm_reg, pw_1) = {0x000100
|
||||
#endif
|
||||
|
||||
#ifdef CAN_COMPILE_MMX
|
||||
-#if defined(__MMX__) || VLC_GCC_VERSION(4, 4)
|
||||
+#if defined(__MMX__) || VLC_GCC_VERSION(4, 4) || defined(__clang__)
|
||||
// ================ MMX =================
|
||||
#define HAVE_YADIF_MMX
|
||||
#define VLC_TARGET VLC_MMX
|
@ -1,4 +1,4 @@
|
||||
@comment $OpenBSD: PLIST-main,v 1.30 2013/01/03 03:18:21 brad Exp $
|
||||
@comment $OpenBSD: PLIST-main,v 1.31 2013/04/11 17:58:42 brad Exp $
|
||||
@pkgpath x11/vlc
|
||||
%%amd64%%
|
||||
%%i386%%
|
||||
@ -58,6 +58,7 @@ include/vlc/plugins/vlc_image.h
|
||||
include/vlc/plugins/vlc_inhibit.h
|
||||
include/vlc/plugins/vlc_input.h
|
||||
include/vlc/plugins/vlc_input_item.h
|
||||
include/vlc/plugins/vlc_keys.h
|
||||
include/vlc/plugins/vlc_main.h
|
||||
include/vlc/plugins/vlc_md5.h
|
||||
include/vlc/plugins/vlc_media_library.h
|
||||
@ -438,6 +439,7 @@ share/locale/ach/LC_MESSAGES/
|
||||
share/locale/ach/LC_MESSAGES/vlc.mo
|
||||
share/locale/af/LC_MESSAGES/vlc.mo
|
||||
share/locale/am/LC_MESSAGES/vlc.mo
|
||||
share/locale/an/LC_MESSAGES/vlc.mo
|
||||
share/locale/ar/LC_MESSAGES/vlc.mo
|
||||
share/locale/ast/LC_MESSAGES/vlc.mo
|
||||
share/locale/be/LC_MESSAGES/vlc.mo
|
||||
@ -470,8 +472,6 @@ share/locale/ff/LC_MESSAGES/
|
||||
share/locale/ff/LC_MESSAGES/vlc.mo
|
||||
share/locale/fi/LC_MESSAGES/vlc.mo
|
||||
share/locale/fr/LC_MESSAGES/vlc.mo
|
||||
share/locale/fur/
|
||||
share/locale/fur/LC_MESSAGES/
|
||||
share/locale/fur/LC_MESSAGES/vlc.mo
|
||||
share/locale/ga/LC_MESSAGES/vlc.mo
|
||||
share/locale/gd/
|
||||
@ -496,7 +496,6 @@ share/locale/kmr/
|
||||
share/locale/kmr/LC_MESSAGES/
|
||||
share/locale/kmr/LC_MESSAGES/vlc.mo
|
||||
share/locale/ko/LC_MESSAGES/vlc.mo
|
||||
share/locale/ku/LC_MESSAGES/vlc.mo
|
||||
share/locale/lg/LC_MESSAGES/vlc.mo
|
||||
share/locale/lt/LC_MESSAGES/vlc.mo
|
||||
share/locale/lv/LC_MESSAGES/vlc.mo
|
||||
|
Loading…
Reference in New Issue
Block a user