media-video: Rm'd old version of mplayer, not sure why it was here to begin with

master
audiodef 2 years ago
parent ed4522bb25
commit ad5832082a

@ -1,12 +0,0 @@
AUX dump_ffmpeg.sh 2529 SHA256 fc26816195a1a5754a377c7ca9915823f599d8e33f4a6047413f217742cc7f50 SHA512 12c15efa5cdb99eac92ff808fa56c6137343cca48b73d5875a7a6b08cf36ebeda5022eb3bae0ba567ff9031d2a0f3b5dbe69ee191ae8ecf48b98a779504df66c WHIRLPOOL b8fe6da839579d0dfa94c77318d1713a73810960c914c8936100e091793ffedeec558565b2ce096138ad60cd7c18e690a0a8bd573e2b88b11a8399bab0ce224c
AUX mplayer-1.2-get_buffer.patch 12054 SHA256 ffffa0672bead0e97d970e98dc9ed4d1b9de444ee1eac3e83a16aeb0cac5c148 SHA512 9180c1d8cb151ce2c31ef196cbc10fc0a9e694995f49bc560e3335c76e424441b53306283d6fe89ea7a3ca933ef6801d5f155942951754a217fee3d3f34ad2a0 WHIRLPOOL 3efe38e95952dea7b36f3caf981786aa72e1a052ac3729daa29b84a850ad549996c514ff303d7a34e074e6c11842a7bffb18fab40173515fbfee8eaf4efd5397
AUX mplayer-1.2_pre20150730-chan.patch 966 SHA256 d92a18180b023833a748ec4186a5e2914781247f8840d57d41b564cbe06eed48 SHA512 9ea28c193d26feba870283d110a69d42e739696571ac13d40f983b4b6f0c83f01befd12fa7825b2dca10d5f3279d29d71dd07f2f53553f78e88b182fd8250df4 WHIRLPOOL 8368cf41f1c1ca82674fde7ca39c46a7ec95569fd56acde0caba55b848a1a2635ae0b4b8b5e39c9b6f5f79bb6ad6401c2d7920568aee9d0c24e2e2def8a1f5fb
AUX mplayer-1.2_pre20150730-encode.patch 3022 SHA256 edf081f8704fdf3936be1971d2d1243b684f78772d4c2a9459ad56a2db9c87fa SHA512 c1da3944616205c92926910d93bf9ee39404f46cad07a68df28050aeab88a358480e9cfe09f41af8fa047b623d9400bcebc1a05c6982f704d5164a777e591792 WHIRLPOOL a928b0ff7bf40495a4a34a4f89f7c6cd17d76bf528ecc696828d9dd5b67a9121f455d22fd439d74dbe434b3e6c1c94e572023e694db8510fea3b6581bd95ab72
AUX mplayer-1.3-CVE-2016-4352.patch 617 SHA256 3fac635945a9327b3e08d6707f7153966908df147b7bf3d06d0b72d2d3215ae5 SHA512 654bfa8368a02669ba249aa0c1a605f285d4d967b7038285df0ba7b83cd034ac3aff933a564fd6f33c7a153267be19d9eb517a52c8f4b53a6f81b6b2c5558512 WHIRLPOOL a7f36dbb623536ceeebdfc11f1389c97d51a7e5afba335345318b867bf2dbed9f8fdcfd695eb41de0b8fe648b3b40a04f61857c2845e43d46d8ad4ed0dfa08d5
AUX prepare_mplayer.sh 757 SHA256 ee4c0765b2cbab5bcc99408c4864669647fb0ad42517e0a51a6524c12b55804f SHA512 0add0707e15d58cee331fc82f884a44b29908c503f9ddcbb63dc01e237e2f457f599bae8644ce49f1af2cc7b3183529364ce30e6748889355c17cb96cecee71a WHIRLPOOL a4de2ff8e6ecfe66e41881664a84bc8ad91147e7b559e2ec334f9ad6671d9892de01bddfdba514b9c2b0589956b38d22fc8d2ce6ff00c267bded4bfb6c3ef6f0
DIST MPlayer-1.3.0.tar.xz 13278984 SHA256 3ad0846c92d89ab2e4e6fb83bf991ea677e7aa2ea775845814cbceb608b09843 SHA512 10007e471a941f8a3dabf6149e6e44fc1a364a9ccb5cd08c670fc22560e5053a15f3249e9d3e18cdda06b6b7e77e537026b5d33dc356e928c63747d6ed73dbae WHIRLPOOL 4aaa9609b0c27c0363671e32fb6b7cac8d2c0944c3425c8e76de0250fb76865d5f47c341b11704a0ea980401288d1d28fcd172a5f8469c9713ec37f977bcb088
DIST font-arial-cp1250.tar.bz2 249705 SHA256 423a07e780bb130cd8e4730715545c5d919c248dda595aab7a0a01de3c83fd12 SHA512 4f77ff5ceb8ec6e5d9f8f34d8950a6a6276d1fd5a947772fcbdb6554988b1ea665c12b82f45164f91fb7bd08000cb4afc26fa35beb4c760464160e22b9b8c340 WHIRLPOOL d635f54be65b0ca1047d943b6f6da433cda9fce6ed74fcab993501cf7f6b443eb711e182cd7fff09e553d251b5fd1c60196aa22e8370cba99fa175ed5ecdb47f
DIST font-arial-iso-8859-1.tar.bz2 234242 SHA256 9730f481764f367c9089d0166fb6ccf9148808ffbbfeca635cf0e6db75765d29 SHA512 a1d03b6f09c48f48b7733f3bc0402ceab239a9abf88b860d852ea9fe69b4da690208a79d6f29d30204f5b37becf10672e8e8c0bfef201846d80ec54df617d029 WHIRLPOOL 8050362b125d3ca98214526cee2fa685e31487d13a6483c765bfc844bdc5e07beeba2c1ba313458096d43a63edd6c5e80b8b388c2792fc0ec7421e4072d8ca25
DIST font-arial-iso-8859-2.tar.bz2 222208 SHA256 71debfc960007c2f6242dfc91e8b1c005b30a99e129aeb00ab8c03f4371b41c1 SHA512 5671e628303fd816f64a51ad10e2f4dd9c3dc1b34c379a2ecf489b83931db7af668aaa4e00e96a00cacd63ed98daeae6b6a4d5925edfb06fc98d3a923f70257d WHIRLPOOL 08178087b4ea1dfb2250f4673785e31dd876b06af51c51b2bddc172b23e6e33cbc1b2c6b710a317e42dc05486974b26ed0ad3ca50a185567aa77d49bd1e72aee
EBUILD mplayer-1.3.0-r1.ebuild 17253 SHA256 36bf0b3ff878c64a3473b1211df362cf84c8f0d27037d399ea09b966454ccc53 SHA512 4996160be01c32b477e9db3ae5a23162c7dedb860fb8981633f262dcd36f59027519bc8e92d7130f8fd03d57b6e1d2936809d699d0a0b6e59ee24446291b068c WHIRLPOOL 95c3600982a5438025a07776c8029d494c534a6be6ac722031cbaa033c422a8864dd0058ba5c4b324892bafb98b22a846aa1114ca0dfce3de15e2da161912d40
MISC metadata.xml 2530 SHA256 5cb25b11c6a110c0b1fe430a58f355760817d5616ee2f1e54165f4df787c60f4 SHA512 b650af6aa25ee064d81d3db5cc066d634eaf8c8ccdf8e1352d449f0579b0a310026be2ff873999767c5b82c25a76c138af722220892794b9c615ce477335a93b WHIRLPOOL 8e259e49d552aa40dce3f8df33900dfef3d6b509fd8e6158cc92c766d3be7311526e563fb51ea042ee3505326db7f3a4b7cd92bae515d13fc3033c6f8dc63ce9

@ -1,74 +0,0 @@
#!/bin/sh
FFMPEG_DIR=ffmpeg
FFMPEG_MOVED_DIR=ffmpeg_removed
SYSTEM_FFMPEG_DIR=${EPREFIX}/usr/include
# Move directories
[ -d "${FFMPEG_DIR}" ] && mv "${FFMPEG_DIR}" "${FFMPEG_MOVED_DIR}"
[ -d "${FFMPEG_MOVED_DIR}" ] || exit 1
[ -d "${FFMPEG_DIR}" ] || mkdir "${FFMPEG_DIR}"
# Keep required files and check them
SANITIZED_REGEXP='^\#[[:space:]]*include.*\".*[.]h\"'
sanitize_includes() {
sed -e "s/^\#[[:space:]]*include.*\"config[.]h\"/#include <config.h>/" \
-e "s/^\#[[:space:]]*include.*\"\(libav.*\/.*[.]h\)\"/#include \<\1\>/" \
-e "/${SANITIZED_REGEXP}/{s:\"\(.*\)\":\<${2}\/\1\>:}" ${1}
}
check_sanitized_includes() {
grep -q "${SANITIZED_REGEXP}" $1
}
get_header_deps() {
grep "^#[[:space:]]*include.*\<libav.*[.]h\>" ${1} | \
sed -e "s/^#[[:space:]]*include.*\<\(libav.*[.]h\)\>/\1/" | \
tr -d '<>' | tr '\n' ' '
}
check_header_deps() {
for i ; do
printf "Checking for the presence of ${i}...\n"
if [ ! -f "${SYSTEM_FFMPEG_DIR}/${i}" -a ! -f "${FFMPEG_DIR}/${i}" ] ; then
printf "Header depends on ${i}\n"
printf "... but that file cannot be found, aborting\n"
exit 1
fi
done
}
move_file() {
mydir="$(dirname $1)"
printf "Moving and checking file: ${1}\n"
[ -d "${FFMPEG_DIR}/${mydir}" ] || mkdir -p "${FFMPEG_DIR}/${mydir}"
if [ ! -f "${FFMPEG_DIR}/${1}" ] ; then
sanitize_includes "${FFMPEG_MOVED_DIR}/${1}" ${mydir} > "${FFMPEG_DIR}/${1}"
fi
if $(check_sanitized_includes "${FFMPEG_DIR}/${1}") ; then
printf "Error, found non sanitized file in ffmpeg:\n"
printf "${FFMPEG_DIR}/${1}\n"
printf "Please report it at bugs.gentoo.org\n"
exit 1
fi
if [ "${1%.h}" != "${1}" ] ; then
mydeps=$(get_header_deps "${FFMPEG_DIR}/${1}")
check_header_deps ${mydeps}
fi
}
# HEADERS (order matters for the consistency checks: leaves come first)
FILES="libavutil/wchar_filename.h libavformat/os_support.h libavformat/internal.h libavutil/x86/asm.h"
# Files that are sed'ed but not compiled, used to check for availability of
# some codecs
FILES="${FILES} libavcodec/allcodecs.c libavformat/allformats.c libavfilter/allfilters.c"
for i in ${FILES} ; do
move_file $i
done
rm -rf "${FFMPEG_MOVED_DIR}"
exit 0

@ -1,327 +0,0 @@
r37476 | rtogni | 2015-09-05 18:20:27 +0200 (Sat, 05 Sep 2015) | 5 lines
Replace deprecated get_buffer, buffer_hints, and others
This is needed to compile with latest FFmpeg
Index: libmpcodecs/vd_ffmpeg.c
===================================================================
--- libmpcodecs/vd_ffmpeg.c (revision 37475)
+++ libmpcodecs/vd_ffmpeg.c (revision 37476)
@@ -40,6 +40,7 @@
#if CONFIG_VDPAU
#include "libavcodec/vdpau.h"
#endif
+#include "libavutil/pixdesc.h"
static const vd_info_t info = {
"FFmpeg's libavcodec codec family",
@@ -95,8 +96,11 @@
#include "m_option.h"
-static int get_buffer(AVCodecContext *avctx, AVFrame *pic);
+static int get_buffer(AVCodecContext *avctx, AVFrame *pic, int isreference);
+static int mpcodec_default_get_buffer(AVCodecContext *avctx, AVFrame *frame);
+static int get_buffer2(AVCodecContext *avctx, AVFrame *frame, int flags);
static void release_buffer(AVCodecContext *avctx, AVFrame *pic);
+static void mpcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic);
static void draw_slice(struct AVCodecContext *s, const AVFrame *src, int offset[4],
int y, int type, int height);
@@ -269,19 +273,10 @@
if (lavc_param_vismv || (lavc_param_debug & (FF_DEBUG_VIS_MB_TYPE|FF_DEBUG_VIS_QP))) {
ctx->do_slices = ctx->do_dr1 = 0;
}
-#ifndef CODEC_FLAG_EMU_EDGE
-#define CODEC_FLAG_EMU_EDGE 0
-#endif
if(ctx->do_dr1){
- avctx->flags |= CODEC_FLAG_EMU_EDGE;
- avctx-> reget_buffer =
- avctx-> get_buffer = get_buffer;
- avctx->release_buffer = release_buffer;
+ avctx->get_buffer2 = get_buffer2;
} else if (lavc_codec->capabilities & CODEC_CAP_DR1) {
- avctx->flags &= ~CODEC_FLAG_EMU_EDGE;
- avctx-> reget_buffer = avcodec_default_reget_buffer;
- avctx-> get_buffer = avcodec_default_get_buffer;
- avctx->release_buffer = avcodec_default_release_buffer;
+ avctx->get_buffer2 = avcodec_default_get_buffer2;
}
avctx->slice_flags = 0;
}
@@ -309,9 +304,7 @@
if (IMGFMT_IS_HWACCEL(imgfmt)) {
ctx->do_dr1 = 1;
ctx->nonref_dr = 0;
- avctx->get_buffer = get_buffer;
- avctx->release_buffer = release_buffer;
- avctx->reget_buffer = get_buffer;
+ avctx->get_buffer2 = get_buffer2;
mp_msg(MSGT_DECVIDEO, MSGL_V, IMGFMT_IS_XVMC(imgfmt) ?
MSGTR_MPCODECS_XVMCAcceleratedMPEG2 :
"[VD_FFMPEG] VDPAU accelerated decoding\n");
@@ -384,7 +377,6 @@
#endif
avctx->flags2|= lavc_param_fast;
avctx->codec_tag= sh->format;
- avctx->stream_codec_tag= sh->video.fccHandler;
avctx->idct_algo= lavc_param_idct_algo;
avctx->error_concealment= lavc_param_error_concealment;
avctx->debug= lavc_param_debug;
@@ -668,7 +660,7 @@
return 0;
}
-static int get_buffer(AVCodecContext *avctx, AVFrame *pic){
+static int get_buffer(AVCodecContext *avctx, AVFrame *pic, int isreference){
sh_video_t *sh = avctx->opaque;
vd_ffmpeg_ctx *ctx = sh->context;
mp_image_t *mpi=NULL;
@@ -677,27 +669,12 @@
int width = FFMAX(avctx->width, -(-avctx->coded_width >> avctx->lowres));
int height= FFMAX(avctx->height, -(-avctx->coded_height >> avctx->lowres));
// special case to handle reget_buffer
- if (pic->opaque && pic->data[0] && (!pic->buffer_hints || pic->buffer_hints & FF_BUFFER_HINTS_REUSABLE))
+ if (pic->opaque && pic->data[0])
return 0;
avcodec_align_dimensions(avctx, &width, &height);
//printf("get_buffer %d %d %d\n", pic->reference, ctx->ip_count, ctx->b_count);
- if (pic->buffer_hints) {
- mp_msg(MSGT_DECVIDEO, MSGL_DBG2, "Buffer hints: %u\n", pic->buffer_hints);
- type = MP_IMGTYPE_TEMP;
- if (pic->buffer_hints & FF_BUFFER_HINTS_READABLE)
- flags |= MP_IMGFLAG_READABLE;
- if (pic->buffer_hints & FF_BUFFER_HINTS_PRESERVE ||
- pic->buffer_hints & FF_BUFFER_HINTS_REUSABLE) {
- ctx->ip_count++;
- type = MP_IMGTYPE_IP;
- flags |= MP_IMGFLAG_PRESERVE;
- }
- flags|=(avctx->skip_idct<=AVDISCARD_DEFAULT && avctx->skip_frame<=AVDISCARD_DEFAULT && ctx->do_slices) ?
- MP_IMGFLAG_DRAW_CALLBACK:0;
- mp_msg(MSGT_DECVIDEO, MSGL_DBG2, type == MP_IMGTYPE_IP ? "using IP\n" : "using TEMP\n");
- } else {
- if(!pic->reference){
+ if(!isreference){
ctx->b_count++;
flags|=(avctx->skip_idct<=AVDISCARD_DEFAULT && avctx->skip_frame<=AVDISCARD_DEFAULT && ctx->do_slices) ?
MP_IMGFLAG_DRAW_CALLBACK:0;
@@ -711,11 +688,10 @@
}else{
type= MP_IMGTYPE_IP;
}
- }
if (ctx->nonref_dr) {
if (flags & MP_IMGFLAG_PRESERVE)
- return avcodec_default_get_buffer(avctx, pic);
+ return mpcodec_default_get_buffer(avctx, pic);
// Use NUMBERED since for e.g. TEMP vos assume there will
// be no other frames between the get_image and matching put_image.
type = MP_IMGTYPE_NUMBERED;
@@ -722,7 +698,6 @@
}
if(init_vo(sh, avctx->pix_fmt, 1) < 0){
- avctx->release_buffer= avcodec_default_release_buffer;
goto disable_dr1;
}
@@ -822,7 +797,6 @@
else
printf(".");
#endif
- pic->type= FF_BUFFER_TYPE_USER;
return 0;
disable_dr1:
@@ -829,13 +803,11 @@
ctx->do_dr1 = 0;
// For frame-multithreading these contexts aren't
// the same and must both be updated.
- ctx->avctx->get_buffer =
- avctx->get_buffer = avcodec_default_get_buffer;
- ctx->avctx->reget_buffer =
- avctx->reget_buffer = avcodec_default_reget_buffer;
+ ctx->avctx->get_buffer2 =
+ avctx->get_buffer2 = avcodec_default_get_buffer2;
if (pic->data[0])
- release_buffer(avctx, pic);
- return avctx->get_buffer(avctx, pic);
+ mpcodec_default_release_buffer(avctx, pic);
+ return avctx->get_buffer2(avctx, pic,0);
}
static void release_buffer(struct AVCodecContext *avctx, AVFrame *pic){
@@ -843,8 +815,8 @@
sh_video_t *sh = avctx->opaque;
vd_ffmpeg_ctx *ctx = sh->context;
int i;
- if (pic->type != FF_BUFFER_TYPE_USER) {
- avcodec_default_release_buffer(avctx, pic);
+ if (pic->opaque == NULL) {
+ mpcodec_default_release_buffer(avctx, pic);
return;
}
@@ -954,7 +926,7 @@
// even when we do dr we might actually get a buffer we had
// FFmpeg allocate - this mostly happens with nonref_dr.
// Ensure we treat it correctly.
- dr1= ctx->do_dr1 && pic->type == FF_BUFFER_TYPE_USER;
+ dr1= ctx->do_dr1 && pic->opaque != NULL;
if(ret<0) mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Error while decoding frame!\n");
//printf("repeat: %d\n", pic->repeat_pict);
//-- vstats generation
@@ -1128,3 +1100,148 @@
set_format_params(avctx, selected_format);
return selected_format;
}
+
+
+/*
+ FFWrapper
+*/
+static int mpcodec_default_get_buffer(AVCodecContext *avctx, AVFrame *frame)
+{
+ return avcodec_default_get_buffer2(avctx, frame, 0);
+}
+
+static void mpcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic)
+{
+ av_frame_unref(pic);
+}
+
+typedef struct CompatReleaseBufPriv {
+ AVCodecContext avctx;
+ AVFrame frame;
+ uint8_t avframe_padding[1024]; // hack to allow linking to a avutil with larger AVFrame
+} CompatReleaseBufPriv;
+
+static void compat_free_buffer(void *opaque, uint8_t *data)
+{
+ CompatReleaseBufPriv *priv = opaque;
+ release_buffer(&priv->avctx, &priv->frame);
+ av_freep(&priv);
+}
+
+static void compat_release_buffer(void *opaque, uint8_t *data)
+{
+ AVBufferRef *buf = opaque;
+ av_buffer_unref(&buf);
+}
+
+static int get_buffer2(AVCodecContext *avctx, AVFrame *frame, int flags)
+{
+ /*
+ * Wrap an old get_buffer()-allocated buffer in a bunch of AVBuffers.
+ * We wrap each plane in its own AVBuffer. Each of those has a reference to
+ * a dummy AVBuffer as its private data, unreffing it on free.
+ * When all the planes are freed, the dummy buffer's free callback calls
+ * release_buffer().
+ */
+ CompatReleaseBufPriv *priv = NULL;
+ AVBufferRef *dummy_buf = NULL;
+ int planes, i, ret;
+
+ ret = get_buffer(avctx, frame, flags & AV_GET_BUFFER_FLAG_REF);
+ if (ret < 0)
+ return ret;
+
+ /* return if the buffers are already set up
+ * this would happen e.g. when a custom get_buffer() calls
+ * avcodec_default_get_buffer
+ */
+ if (frame->buf[0])
+ goto end0;
+
+ priv = av_mallocz(sizeof(*priv));
+ if (!priv) {
+ ret = AVERROR(ENOMEM);
+ goto fail;
+ }
+ priv->avctx = *avctx;
+ priv->frame = *frame;
+
+ dummy_buf = av_buffer_create(NULL, 0, compat_free_buffer, priv, 0);
+ if (!dummy_buf) {
+ ret = AVERROR(ENOMEM);
+ goto fail;
+ }
+
+#define WRAP_PLANE(ref_out, data, data_size) \
+do { \
+ AVBufferRef *dummy_ref = av_buffer_ref(dummy_buf); \
+ if (!dummy_ref) { \
+ ret = AVERROR(ENOMEM); \
+ goto fail; \
+ } \
+ ref_out = av_buffer_create(data, data_size, compat_release_buffer, \
+ dummy_ref, 0); \
+ if (!ref_out) { \
+ av_buffer_unref(&dummy_ref); \
+ av_frame_unref(frame); \
+ ret = AVERROR(ENOMEM); \
+ goto fail; \
+ } \
+} while (0)
+
+ if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) {
+ const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format);
+
+ planes = av_pix_fmt_count_planes(frame->format);
+ /* workaround for AVHWAccel plane count of 0, buf[0] is used as
+ check for allocated buffers: make libavcodec happy */
+ if (desc && desc->flags & AV_PIX_FMT_FLAG_HWACCEL)
+ planes = 1;
+ if (!desc || planes <= 0) {
+ ret = AVERROR(EINVAL);
+ goto fail;
+ }
+
+ for (i = 0; i < planes; i++) {
+ int v_shift = (i == 1 || i == 2) ? desc->log2_chroma_h : 0;
+ int plane_size = (frame->height >> v_shift) * frame->linesize[i];
+
+ WRAP_PLANE(frame->buf[i], frame->data[i], plane_size);
+ }
+ } else {
+ int planar = av_sample_fmt_is_planar(frame->format);
+ planes = planar ? avctx->channels : 1;
+
+ if (planes > FF_ARRAY_ELEMS(frame->buf)) {
+ frame->nb_extended_buf = planes - FF_ARRAY_ELEMS(frame->buf);
+ frame->extended_buf = av_malloc_array(sizeof(*frame->extended_buf),
+ frame->nb_extended_buf);
+ if (!frame->extended_buf) {
+ ret = AVERROR(ENOMEM);
+ goto fail;
+ }
+ }
+
+ for (i = 0; i < FFMIN(planes, FF_ARRAY_ELEMS(frame->buf)); i++)
+ WRAP_PLANE(frame->buf[i], frame->extended_data[i], frame->linesize[0]);
+
+ for (i = 0; i < frame->nb_extended_buf; i++)
+ WRAP_PLANE(frame->extended_buf[i],
+ frame->extended_data[i + FF_ARRAY_ELEMS(frame->buf)],
+ frame->linesize[0]);
+ }
+
+ av_buffer_unref(&dummy_buf);
+
+end0:
+ frame->width = avctx->width;
+ frame->height = avctx->height;
+
+ return 0;
+
+fail:
+ release_buffer(avctx, frame);
+ av_freep(&priv);
+ av_buffer_unref(&dummy_buf);
+ return ret;
+}

@ -1,25 +0,0 @@
r37447 | rtogni | 2015-08-14 21:30:34 +0200 (Fri, 14 Aug 2015) | 3 lines
Replace deprecated avctx->request_channels with request_channel_layout
Index: libmpcodecs/ad_ffmpeg.c
===================================================================
--- libmpcodecs/ad_ffmpeg.c (revision 37446)
+++ libmpcodecs/ad_ffmpeg.c (revision 37447)
@@ -46,6 +46,7 @@
#include "libavcodec/avcodec.h"
#include "libavutil/dict.h"
+#include "libavutil/channel_layout.h"
struct adctx {
int last_samplerate;
@@ -127,7 +128,7 @@
lavc_context->bits_per_coded_sample = sh_audio->wf->wBitsPerSample;
}
lavc_context->channel_layout = sh_audio->channel_layout;
- lavc_context->request_channels = audio_output_channels;
+ lavc_context->request_channel_layout = av_get_default_channel_layout(audio_output_channels);
lavc_context->codec_tag = sh_audio->format; //FOURCC
lavc_context->codec_id = lavc_codec->id; // not sure if required, imho not --A'rpi

@ -1,82 +0,0 @@
r37453 | rtogni | 2015-08-23 22:32:50 +0200 (Sun, 23 Aug 2015) | 3 lines
Replace deprecated av_encode_video() with av_encode_video2()
Index: libmpcodecs/vf_uspp.c
===================================================================
--- libmpcodecs/vf_uspp.c (revision 37452)
+++ libmpcodecs/vf_uspp.c (revision 37453)
@@ -177,11 +177,16 @@
const int x1= offset[i+count-1][0];
const int y1= offset[i+count-1][1];
int offset;
+ AVPacket pkt;
+ int ret, got_pkt;
p->frame->data[0]= p->src[0] + x1 + y1 * p->frame->linesize[0];
p->frame->data[1]= p->src[1] + x1/2 + y1/2 * p->frame->linesize[1];
p->frame->data[2]= p->src[2] + x1/2 + y1/2 * p->frame->linesize[2];
- avcodec_encode_video(p->avctx_enc[i], p->outbuf, p->outbuf_size, p->frame);
+ av_init_packet(&pkt);
+ pkt.data = p->outbuf;
+ pkt.size = p->outbuf_size;
+ avcodec_encode_video2(p->avctx_enc[i], &pkt, p->frame, &got_pkt);
p->frame_dec = p->avctx_enc[i]->coded_frame;
offset= (BLOCK-x1) + (BLOCK-y1)*p->frame_dec->linesize[0];
Index: libmpcodecs/vf_lavc.c
===================================================================
--- libmpcodecs/vf_lavc.c (revision 37452)
+++ libmpcodecs/vf_lavc.c (revision 37453)
@@ -86,6 +86,8 @@
mp_image_t* dmpi;
int out_size;
AVFrame *pic= vf->priv->pic;
+ int ret, got_pkt;
+ AVPacket pkt;
pic->data[0]=mpi->planes[0];
pic->data[1]=mpi->planes[1];
@@ -94,10 +96,14 @@
pic->linesize[1]=mpi->stride[1];
pic->linesize[2]=mpi->stride[2];
- out_size = avcodec_encode_video(&lavc_venc_context,
- vf->priv->outbuf, vf->priv->outbuf_size, pic);
+ av_init_packet(&pkt);
+ pkt.data = vf->priv->outbuf;
+ pkt.size = vf->priv->outbuf_size;
+ ret = avcodec_encode_video2(&lavc_venc_context, &pkt, pic, &got_pkt);
- if(out_size<=0) return 1;
+ if(ret<=0) return 1;
+ if(!got_pkt) return 1;
+ out_size = pkt.size;
dmpi=vf_get_image(vf->next,IMGFMT_MPEGPES,
MP_IMGTYPE_EXPORT, 0,
Index: libmpcodecs/vf_mcdeint.c
===================================================================
--- libmpcodecs/vf_mcdeint.c (revision 37452)
+++ libmpcodecs/vf_mcdeint.c (revision 37453)
@@ -92,6 +92,8 @@
static void filter(struct vf_priv_s *p, uint8_t *dst[3], uint8_t *src[3], int dst_stride[3], int src_stride[3], int width, int height){
int x, y, i;
+ int got_pkt;
+ AVPacket pkt;
for(i=0; i<3; i++){
p->frame->data[i]= src[i];
@@ -101,7 +103,10 @@
p->avctx_enc->me_cmp=
p->avctx_enc->me_sub_cmp= FF_CMP_SAD /*| (p->parity ? FF_CMP_ODD : FF_CMP_EVEN)*/;
p->frame->quality= p->qp*FF_QP2LAMBDA;
- avcodec_encode_video(p->avctx_enc, p->outbuf, p->outbuf_size, p->frame);
+ av_init_packet(&pkt);
+ pkt.data = p->outbuf;
+ pkt.size = p->outbuf_size;
+ avcodec_encode_video2(p->avctx_enc, &pkt, p->frame, &got_pkt);
p->frame_dec = p->avctx_enc->coded_frame;
for(i=0; i<3; i++){

@ -1,24 +0,0 @@
https://trac.mplayerhq.hu/ticket/2295
r37857
--- old/libmpdemux/demux_gif.c
+++ new/libmpdemux/demux_gif.c
@@ -304,6 +304,17 @@
return NULL;
}
+ // Validate image size, most code in this demuxer assumes w*h <= INT_MAX
+ if ((int64_t)gif->SWidth * gif->SHeight > INT_MAX) {
+ mp_msg(MSGT_DEMUX, MSGL_ERR,
+ "[demux_gif] Unsupported picture size %dx%d.\n", gif->SWidth,
+ gif->SHeight);
+ if (DGifCloseFile(gif) == GIF_ERROR)
+ print_gif_error(NULL);
+ free(priv);
+ return NULL;
+ }
+
// create a new video stream header
sh_video = new_sh_video(demuxer, 0);

@ -1,25 +0,0 @@
#!/bin/sh
VERSION=$(date +%Y%m%d)
PACKAGE="mplayer-1.2_pre${VERSION}"
DUMP_FFMPEG="$(dirname $0)/dump_ffmpeg.sh"
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk ${PACKAGE}
pushd ${PACKAGE} > /dev/null
# ffmpeg is in git now so no svn external anymore
rm -rf ffmpeg
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg/
sh "$DUMP_FFMPEG"
STORE_VERSION=$(LC_ALL=C svn info 2> /dev/null | grep Revision | cut -d' ' -f2)
printf "$STORE_VERSION" > snapshot_version
popd > /dev/null
find "${PACKAGE}" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
find "${PACKAGE}" -type d -name '.git' -prune -print0 | xargs -0 rm -rf
tar cJf ${PACKAGE}.tar.xz ${PACKAGE}
rm -rf ${PACKAGE}/
echo "Tarball: \"${PACKAGE}.tar.xz\""
echo "** all done **"

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>media-video@gentoo.org</email>
</maintainer>
<use>
<flag name="bl">Blinkenlights video output</flag>
<flag name="bluray">Enable playback of Blu-ray filesystems</flag>
<flag name="bs2b">Enable Bauer stereophonic-to-binaural headphone filter</flag>
<flag name="cdio">Use libcdio for CD support (instead of cdparanoia)</flag>
<flag name="cpudetection">Enables runtime CPU detection (useful for binpkgs, compatibility on other CPUs)</flag>
<flag name="dvdnav">Use forked libdvdnav, navigate menus in GUIs</flag>
<flag name="enca">Enables support for charset discovery and conversion</flag>
<flag name="faac">Use external faac library for AAC encoding</flag>
<flag name="faad">Use external faad library for AAC decoding</flag>
<flag name="libmpeg2">Build support for mpeg2 over media-libs/libmpeg2 rather than using ffmpeg.</flag>
<flag name="live">Enables live.com streaming media support</flag>
<flag name="md5sum">Enables md5sum video output</flag>
<flag name="mng">MNG input support</flag>
<flag name="network">Enables network streaming support</flag>
<flag name="nut">Enables support for the NUT container format</flag>
<flag name="osdmenu">Enables support for on-screen display (OSD) menus</flag>
<flag name="pnm">Add PNM video output option, to create PPM/PGM/PGMYUV images</flag>
<flag name="pvr">Enable Video4Linux2 MPEG PVR</flag>
<flag name="radio">Enable V4L2 radio interface and support</flag>
<flag name="rar">Enable Unique RAR File Library</flag>
<flag name="rtc">Enables usage of the linux real time clock. The alternative is software emulation of rtc</flag>
<flag name="rtmp">Enables RTMPDump Streaming Media support</flag>
<flag name="shm">Enable support for shm</flag>
<flag name="tga">Enables Targa video output</flag>
<flag name="toolame">Enable toolame MPEG-2 encoding</flag>
<flag name="tremor">Enable internal support for Vorbis</flag>
<flag name="twolame">Enable twolame MPEG-2 encoding</flag>
<flag name="vcd">Enables VCD support</flag>
<flag name="vidix">Support for vidix video output</flag>
<flag name="xvmc">Enables X-Video Motion Compensation support</flag>
<flag name="yuv4mpeg">Enables yuv4mpeg video output</flag>
<flag name="zoran">Enables ZR360[56]7/ZR36060 video output</flag>
</use>
</pkgmetadata>

@ -1,628 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
EGIT_REPO_URI="git://git.videolan.org/ffmpeg.git"
ESVN_REPO_URI="svn://svn.mplayerhq.hu/mplayer/trunk"
[[ ${PV} = *9999* ]] && SVN_ECLASS="subversion git-2" || SVN_ECLASS=""
inherit toolchain-funcs eutils flag-o-matic multilib base ${SVN_ECLASS}
IUSE="cpu_flags_x86_3dnow cpu_flags_x86_3dnowext a52 aalib +alsa altivec aqua bidi bl bluray
bs2b cddb +cdio cdparanoia cpudetection debug dga
directfb doc dts dv dvb +dvd +dvdnav +enca +encode faac faad fbcon
ftp gif ggi gsm +iconv ipv6 jack joystick jpeg jpeg2k kernel_linux ladspa
+libass libcaca libmpeg2 lirc live lzo mad md5sum +cpu_flags_x86_mmx cpu_flags_x86_mmxext mng mp3 nas
+network nut openal opengl +osdmenu oss png pnm pulseaudio pvr
radio rar rtc rtmp samba selinux +shm sdl speex cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_ssse3
tga theora tremor +truetype toolame twolame +unicode v4l vcd vdpau vidix
vorbis +X x264 xinerama +xscreensaver +xv xvid xvmc yuv4mpeg zoran"
VIDEO_CARDS="s3virge mga tdfx"
for x in ${VIDEO_CARDS}; do
IUSE+=" video_cards_${x}"
done
FONT_URI="
mirror://mplayer/releases/fonts/font-arial-iso-8859-1.tar.bz2
mirror://mplayer/releases/fonts/font-arial-iso-8859-2.tar.bz2
mirror://mplayer/releases/fonts/font-arial-cp1250.tar.bz2
"
if [[ ${PV} == *9999* ]]; then
RELEASE_URI=""
elif [ "${PV%_rc*}" = "${PV}" -a "${PV%_pre*}" = "${PV}" ]; then
MY_P="MPlayer-${PV}"
S="${WORKDIR}/${MY_P}"
RELEASE_URI="mirror://mplayer/releases/${MY_P}.tar.xz"
else
RELEASE_URI="mirror://gentoo/${P}.tar.xz"
fi
SRC_URI="${RELEASE_URI}
!truetype? ( ${FONT_URI} )"
DESCRIPTION="Media Player for Linux"
HOMEPAGE="http://www.mplayerhq.hu/"
FONT_RDEPS="
virtual/ttf-fonts
media-libs/fontconfig
>=media-libs/freetype-2.2.1:2
"
X_RDEPS="
x11-libs/libXext
x11-libs/libXxf86vm
"
# Rar: althrought -gpl version is nice, it cant do most functions normal rars can
# nemesi? ( net-libs/libnemesi )
RDEPEND+="
sys-libs/ncurses:0=
app-arch/bzip2
sys-libs/zlib
>=media-video/ffmpeg-3.0:0=[vdpau?]
a52? ( media-libs/a52dec )
aalib? ( media-libs/aalib )
alsa? ( media-libs/alsa-lib )
bidi? ( dev-libs/fribidi )
bluray? ( >=media-libs/libbluray-0.2.1:= )
bs2b? ( media-libs/libbs2b )
cdio? ( dev-libs/libcdio:0= dev-libs/libcdio-paranoia )
cdparanoia? ( !cdio? ( media-sound/cdparanoia ) )
dga? ( x11-libs/libXxf86dga )
directfb? ( dev-libs/DirectFB )
dts? ( media-libs/libdca )
dv? ( media-libs/libdv )
dvb? ( virtual/linuxtv-dvb-headers )
dvd? ( >=media-libs/libdvdread-4.1.3 )
dvdnav? ( >=media-libs/libdvdnav-4.1.3 )
encode? (
!twolame? ( toolame? ( media-sound/toolame ) )
twolame? ( media-sound/twolame )
faac? ( media-libs/faac )
mp3? ( media-sound/lame )
x264? ( >=media-libs/x264-0.0.20100423:= )
xvid? ( media-libs/xvid )
)
enca? ( app-i18n/enca )
faad? ( media-libs/faad2 )
ggi? ( media-libs/libggi media-libs/libggiwmh )
gif? ( media-libs/giflib:0= )
gsm? ( media-sound/gsm )
iconv? ( virtual/libiconv )
jack? ( virtual/jack )
jpeg? ( virtual/jpeg:0 )
jpeg2k? ( media-libs/openjpeg:0 )
ladspa? ( media-libs/ladspa-sdk )
libass? ( >=media-libs/libass-0.9.10:= )
libcaca? ( media-libs/libcaca )
libmpeg2? ( media-libs/libmpeg2 )
lirc? ( app-misc/lirc )
live? ( media-plugins/live )
lzo? ( >=dev-libs/lzo-2 )
mad? ( media-libs/libmad )
mng? ( media-libs/libmng:= )
mp3? ( media-sound/mpg123 )
nas? ( media-libs/nas )
nut? ( >=media-libs/libnut-661 )
openal? ( media-libs/openal )
opengl? ( virtual/opengl )
png? ( media-libs/libpng:0= )
pnm? ( media-libs/netpbm )
pulseaudio? ( media-sound/pulseaudio )
rar? (
|| (
app-arch/unrar
app-arch/rar
)
)
rtmp? ( media-video/rtmpdump )
samba? ( net-fs/samba )
sdl? ( media-libs/libsdl )
speex? ( media-libs/speex )
theora? ( media-libs/libtheora[encode?] )
tremor? ( media-libs/tremor )
truetype? ( ${FONT_RDEPS} )
vdpau? ( x11-libs/libvdpau )
vorbis? ( !tremor? ( media-libs/libvorbis ) )
X? ( ${X_RDEPS} )
xinerama? ( x11-libs/libXinerama )
xscreensaver? ( x11-libs/libXScrnSaver )
xv? ( x11-libs/libXv )
xvmc? ( x11-libs/libXvMC )
"
X_DEPS="
x11-proto/videoproto
x11-proto/xf86vidmodeproto
"
ASM_DEP="dev-lang/yasm"
DEPEND="${RDEPEND}
virtual/pkgconfig
dga? ( x11-proto/xf86dgaproto )
X? ( ${X_DEPS} )
xinerama? ( x11-proto/xineramaproto )
xscreensaver? ( x11-proto/scrnsaverproto )
amd64? ( ${ASM_DEP} )
doc? (
dev-libs/libxslt app-text/docbook-xml-dtd
app-text/docbook-xsl-stylesheets
)
x86? ( ${ASM_DEP} )
x86-fbsd? ( ${ASM_DEP} )
"
RDEPEND+="
selinux? ( sec-policy/selinux-mplayer )
"
SLOT="0"
LICENSE="GPL-2"
if [[ ${PV} != *9999* ]]; then
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
else
KEYWORDS="~alpha ~arm ~hppa ~ia64"
fi
# faac codecs are nonfree
# libcdio support: prefer libcdio over cdparanoia and don't check for cddb w/cdio
# dvd navigation requires dvd read support
# ass and freetype font require iconv and ass requires freetype fonts
# unicode transformations are usefull only with iconv
# radio requires oss or alsa backend
# xvmc requires xvideo support
REQUIRED_USE="
dga? ( X )
dvdnav? ( dvd )
enca? ( iconv )
ggi? ( X )
libass? ( truetype )
opengl? ( X )
osdmenu? ( X )
truetype? ( iconv )
vdpau? ( X )
vidix? ( X )
xinerama? ( X )
xscreensaver? ( X )
xv? ( X )
xvmc? ( xv )"
RESTRICT="faac? ( bindist )"
pkg_setup() {
if [[ ${PV} == *9999* ]]; then
elog
elog "This is a live ebuild which installs the latest from upstream's"
elog "subversion repository, and is unsupported by Gentoo."
elog "Everything but bugs in the ebuild itself will be ignored."
elog
fi
if use cpudetection; then
ewarn
ewarn "You've enabled the cpudetection flag. This feature is"
ewarn "included mainly for people who want to use the same"
ewarn "binary on another system with a different CPU architecture."
ewarn "MPlayer will already detect your CPU settings by default at"
ewarn "buildtime; this flag is used for runtime detection."
ewarn "You won't need this turned on if you are only building"
ewarn "mplayer for this system. Also, if your compile fails, try"
ewarn "disabling this use flag."
fi
if has_version 'media-video/libav' ; then
ewarn "Please note that upstream uses media-video/ffmpeg."
ewarn "media-video/libav should be fine in theory but if you"
ewarn "experience any problem, try to move to media-video/ffmpeg."
fi
}
src_unpack() {
if [[ ${PV} = *9999* ]]; then
subversion_src_unpack
cd "${WORKDIR}"
rm -rf "${WORKDIR}/${P}/ffmpeg/"
( S="${WORKDIR}/${P}/ffmpeg/" git-2_src_unpack )
else
unpack ${A}
fi
if [[ ${PV} = *9999* ]] || [[ "${PV%_rc*}" = "${PV}" ]]; then
cd "${S}"
cp "${FILESDIR}/dump_ffmpeg.sh" . || die
chmod +x dump_ffmpeg.sh
./dump_ffmpeg.sh || die
fi
if ! use truetype; then
unpack font-arial-iso-8859-1.tar.bz2 \
font-arial-iso-8859-2.tar.bz2 \
font-arial-cp1250.tar.bz2
fi
}
src_prepare() {
local svf=snapshot_version
if [[ ${PV} = *9999* ]]; then
# Set SVN version manually
subversion_wc_info
printf "${ESVN_WC_REVISION}" > $svf
else
epatch "${FILESDIR}"/${PN}-1.3-CVE-2016-4352.patch
fi
if [ ! -f VERSION ] ; then
[ -f "$svf" ] || die "Missing ${svf}. Did you generate your snapshot with prepare_mplayer.sh?"
local sv=$(<$svf)
printf "SVN-r${sv} (Gentoo)" > VERSION
fi
# fix path to bash executable in configure scripts
sed -i -e "1c\#!${EPREFIX}/bin/bash" configure version.sh || die
base_src_prepare
# Use sane default for >=virtual/udev-197
sed -i -e '/default_dvd_device/s:/dev/dvd:/dev/cdrom:' configure || die
}
src_configure() {
local myconf=""
local uses i
# set LINGUAS
[[ -n $LINGUAS ]] && LINGUAS="${LINGUAS/da/dk}"
[[ -n $LINGUAS ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968
# mplayer ebuild uses "use foo || --disable-foo" to forcibly disable
# compilation in almost every situation. The reason for this is
# because if --enable is used, it will force the build of that option,
# regardless of whether the dependency is available or not.
###################
#Optional features#
###################
# disable svga since we don't want it
# disable arts since we don't have kde3
# always disable internal ass
# disable opus and ilbc since it only controls support in internal
# ffmpeg which we do not use
myconf+="
--disable-svga --disable-svgalib_helper
--disable-ass-internal
--disable-arts
--disable-kai
--disable-libopus
--disable-libilbc
$(use_enable network networking)
$(use_enable joystick)
"
uses="bl bluray enca ftp rtc vcd" # nemesi <- not working with in-tree ebuild
myconf+=" --disable-nemesi" # nemesi automagic disable
for i in ${uses}; do
use ${i} || myconf+=" --disable-${i}"
done
use bidi || myconf+=" --disable-fribidi"
use ipv6 || myconf+=" --disable-inet6"
use libass || myconf+=" --disable-ass"
use nut || myconf+=" --disable-libnut"
use rar || myconf+=" --disable-unrarexec"
use samba || myconf+=" --disable-smb"
use lirc || myconf+=" --disable-lirc --disable-lircc --disable-apple-ir"
# libcdio support: prefer libcdio over cdparanoia
# don't check for cddb w/cdio
if use cdio; then
myconf+=" --disable-cdparanoia"
else
myconf+=" --disable-libcdio"
use cdparanoia || myconf+=" --disable-cdparanoia"
use cddb || myconf+=" --disable-cddb"
fi
################################
# DVD read, navigation support #
################################
#
# dvdread - accessing a DVD
# dvdnav - navigation of menus
use dvd || myconf+=" --disable-dvdread"
use dvdnav || myconf+=" --disable-dvdnav"
#############
# Subtitles #
#############
#
# SRT/ASS/SSA (subtitles) requires freetype support
# freetype support requires iconv
# iconv optionally can use unicode
use truetype || myconf+=" --disable-freetype"
use iconv || myconf+=" --disable-iconv --charset=noconv"
use iconv && use unicode && myconf+=" --charset=UTF-8"
#####################################
# DVB / Video4Linux / Radio support #
#####################################
myconf+=" --disable-tv-bsdbt848"
# broken upstream, won't work with recent kernels
myconf+=" --disable-ivtv"
# gone since linux-headers-2.6.38
myconf+=" --disable-tv-v4l1"
if { use dvb || use v4l || use pvr || use radio; }; then
use dvb || myconf+=" --disable-dvb"
use pvr || myconf+=" --disable-pvr"
use v4l || myconf+=" --disable-tv-v4l2"
if use radio && { use dvb || use v4l; }; then
myconf+="
--enable-radio
$(use_enable encode radio-capture)
"
else
myconf+="
--disable-radio-v4l2
--disable-radio-bsdbt848
"
fi
else
myconf+="
--disable-tv
--disable-tv-v4l2
--disable-radio
--disable-radio-v4l2
--disable-radio-bsdbt848
--disable-dvb
--disable-v4l2
--disable-pvr"
fi
##########
# Codecs #
##########
myconf+=" --disable-musepack" # Use internal musepack codecs for SV7 and SV8 support
myconf+=" --disable-libmpeg2-internal" # always use system media-libs/libmpeg2
use dts || myconf+=" --disable-libdca"
if ! use mp3; then
myconf+="
--disable-mp3lame
--disable-mpg123
"
fi
uses="a52 bs2b dv gsm lzo rtmp vorbis"
for i in ${uses}; do
use ${i} || myconf+=" --disable-lib${i}"
done
uses="faad gif jpeg libmpeg2 live mad mng png pnm speex tga theora tremor"
for i in ${uses}; do
use ${i} || myconf+=" --disable-${i}"
done
use jpeg2k || myconf+=" --disable-libopenjpeg"
# Encoding
uses="faac x264 xvid toolame twolame"
if use encode; then
for i in ${uses}; do
use ${i} || myconf+=" --disable-${i}"
done
else
myconf+=" --disable-mencoder"
for i in ${uses}; do
myconf+=" --disable-${i}"
use ${i} && elog "Useflag \"${i}\" will only be useful for encoding, i.e., with \"encode\" useflag enabled."
done
fi
#################
# Binary codecs #
#################
myconf+=" --disable-qtx --disable-real --disable-win32dll"
################
# Video Output #
################
uses="directfb md5sum sdl yuv4mpeg"
for i in ${uses}; do
use ${i} || myconf+=" --disable-${i}"
done
use aalib || myconf+=" --disable-aa"
use fbcon || myconf+=" --disable-fbdev"
use fbcon && use video_cards_s3virge && myconf+=" --enable-s3fb"
use libcaca || myconf+=" --disable-caca"
use zoran || myconf+=" --disable-zr"
if ! use kernel_linux || ! use video_cards_mga; then
myconf+=" --disable-mga --disable-xmga"
fi
if use video_cards_tdfx; then
myconf+="
$(use_enable video_cards_tdfx tdfxvid)
$(use_enable fbcon tdfxfb)
"
else
myconf+="
--disable-3dfx
--disable-tdfxvid
--disable-tdfxfb
"
fi
# sun card, disable by default, see bug #258729
myconf+=" --disable-xvr100"
################
# Audio Output #
################
myconf+=" --disable-esd"
uses="alsa jack ladspa nas openal"
for i in ${uses}; do
use ${i} || myconf+=" --disable-${i}"
done
use pulseaudio || myconf+=" --disable-pulse"
if ! use radio; then
use oss || myconf+=" --disable-ossaudio"
fi
####################
# Advanced Options #
####################
# Platform specific flags, hardcoded on amd64 (see below)
use cpudetection && myconf+=" --enable-runtime-cpudetection"
uses="3dnow 3dnowext mmx mmxext sse sse2 ssse3"
for i in ${uses}; do
myconf+=" $(use_enable cpu_flags_x86_${i} ${i})"
done
uses="altivec shm"
for i in ${uses}; do
myconf+=" $(use_enable ${i})"
done
use debug && myconf+=" --enable-debug=3"
if use x86 && gcc-specs-pie; then
filter-flags -fPIC -fPIE
append-ldflags -nopie
fi
###########################
# X enabled configuration #
###########################
myconf+=" --disable-gui"
myconf+=" --disable-vesa"
uses="ggi vdpau xinerama xv"
for i in ${uses}; do
use ${i} || myconf+=" --disable-${i}"
done
use dga || myconf+=" --disable-dga1 --disable-dga2"
use opengl || myconf+=" --disable-gl"
use osdmenu && myconf+=" --enable-menu"
use vidix || myconf+=" --disable-vidix --disable-vidix-pcidb"
use xscreensaver || myconf+=" --disable-xss"
use X || myconf+=" --disable-x11"
if use xvmc; then
myconf+=" --enable-xvmc --with-xvmclib=XvMCW"
else
myconf+=" --disable-xvmc"
fi
############################
# OSX (aqua) configuration #
############################
if use aqua; then
myconf+="
--enable-macosx-finder
--enable-macosx-bundle
"
fi
./configure \
--cc="$(tc-getCC)" \
--host-cc="$(tc-getBUILD_CC)" \
--prefix="${EPREFIX}/usr" \
--bindir="${EPREFIX}/usr/bin" \
--libdir="${EPREFIX}/usr/$(get_libdir)" \
--confdir="${EPREFIX}/etc/mplayer" \
--datadir="${EPREFIX}/usr/share/mplayer${namesuf}" \
--mandir="${EPREFIX}/usr/share/man" \
--disable-ffmpeg_a \
${myconf} || die
}
src_compile() {
base_src_compile
# Build only user-requested docs if they're available.
if use doc ; then
# select available languages from $LINGUAS
local ALLOWED_LINGUAS="cs de en es fr hu it pl ru zh_CN"
local BUILT_DOCS=""
for i in ${LINGUAS} ; do
has ${i} ${ALLOWED_LINGUAS} && BUILT_DOCS+=" ${i}"
done
if [[ -z $BUILT_DOCS ]]; then
emake -j1 html-chunked
else
for i in ${BUILT_DOCS}; do
emake -j1 html-chunked-${i}
done
fi
fi
}
src_install() {
local i
emake \
DESTDIR="${D}" \
INSTALLSTRIP="" \
install
dodoc AUTHORS Changelog Copyright README etc/codecs.conf
docinto tech/
dodoc DOCS/tech/{*.txt,MAINTAINERS,mpsub.sub,playtree,TODO,wishlist}
docinto TOOLS/
dodoc -r TOOLS
docinto tech/mirrors/
dodoc DOCS/tech/mirrors/*
if use doc; then
docinto html/
dohtml -r "${S}"/DOCS/HTML/*
fi
if ! use truetype; then
dodir /usr/share/mplayer/fonts
# Do this generic, as the mplayer people like to change the structure
# of their zips ...
for i in $(find "${WORKDIR}/" -type d -name 'font-arial-*'); do
cp -pPR "${i}" "${ED}/usr/share/mplayer/fonts"
done
# Fix the font symlink ...
rm -rf "${ED}/usr/share/mplayer/font"
dosym fonts/font-arial-14-iso-8859-1 /usr/share/mplayer/font
fi
insinto /etc/mplayer
newins "${S}/etc/example.conf" mplayer.conf
cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_
# Config options can be section specific, global
# options should go in the default section
[default]
_EOF_
doins "${S}/etc/input.conf"
if use osdmenu; then
doins "${S}/etc/menu.conf"
fi
if use truetype; then
cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_
fontconfig=1
subfont-osd-scale=4
subfont-text-scale=3
_EOF_
fi
# bug 256203
if use rar; then
cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_
unrarexec=${EPREFIX}/usr/bin/unrar
_EOF_
fi
dosym ../../../etc/mplayer/mplayer.conf /usr/share/mplayer/mplayer.conf
newbin "${S}/TOOLS/midentify.sh" midentify
}
pkg_preinst() {
[[ -d ${EROOT}/usr/share/mplayer/Skin/default ]] && \
rm -rf "${EROOT}/usr/share/mplayer/Skin/default"
}
pkg_postrm() {
# Cleanup stale symlinks
[ -L "${EROOT}/usr/share/mplayer/font" -a \
! -e "${EROOT}/usr/share/mplayer/font" ] && \
rm -f "${EROOT}/usr/share/mplayer/font"
[ -L "${EROOT}/usr/share/mplayer/subfont.ttf" -a \
! -e "${EROOT}/usr/share/mplayer/subfont.ttf" ] && \
rm -f "${EROOT}/usr/share/mplayer/subfont.ttf"
}
Loading…
Cancel
Save