rebuilt [release 1.2.13-2mamba;Mon Apr 15 2024]
This commit is contained in:
parent
69db302394
commit
b6b8cd2aeb
@ -1,380 +0,0 @@
|
||||
diff -r 717450d734f7 src/combined/ffmpeg/ff_audio_decoder.c
|
||||
--- a/src/combined/ffmpeg/ff_audio_decoder.c Mon May 16 15:49:02 2011 +0100
|
||||
+++ b/src/combined/ffmpeg/ff_audio_decoder.c Mon May 16 19:46:49 2011 -0400
|
||||
@@ -46,6 +46,12 @@
|
||||
|
||||
#define AUDIOBUFSIZE (64 * 1024)
|
||||
|
||||
+#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32)
|
||||
+# define AVAUDIO 3
|
||||
+#else
|
||||
+# define AVAUDIO 2
|
||||
+#endif
|
||||
+
|
||||
typedef struct {
|
||||
audio_decoder_class_t decoder_class;
|
||||
} ff_audio_class_t;
|
||||
@@ -255,6 +261,9 @@
|
||||
buf->decoder_info[2]);
|
||||
|
||||
} else if (!(buf->decoder_flags & BUF_FLAG_SPECIAL)) {
|
||||
+#if AVAUDIO > 2
|
||||
+ AVPacket avpkt;
|
||||
+#endif
|
||||
|
||||
if( !this->decoder_ok ) {
|
||||
if ( ! this->context || ! this->codec ) {
|
||||
@@ -286,11 +295,21 @@
|
||||
if (!this->output_open) {
|
||||
if (!this->audio_bits || !this->audio_sample_rate || !this->audio_channels) {
|
||||
decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
|
||||
+#if AVAUDIO > 2
|
||||
+ av_init_packet (&avpkt);
|
||||
+ avpkt.data = (uint8_t *)&this->buf[0];
|
||||
+ avpkt.size = this->size;
|
||||
+ avpkt.flags = AV_PKT_FLAG_KEY;
|
||||
+ avcodec_decode_audio3 (this->context,
|
||||
+ (int16_t *)this->decode_buffer,
|
||||
+ &decode_buffer_size, &avpkt);
|
||||
+#else
|
||||
avcodec_decode_audio2 (this->context,
|
||||
(int16_t *)this->decode_buffer,
|
||||
&decode_buffer_size,
|
||||
&this->buf[0],
|
||||
this->size);
|
||||
+#endif
|
||||
this->audio_bits = this->context->bits_per_sample;
|
||||
this->audio_sample_rate = this->context->sample_rate;
|
||||
this->audio_channels = this->context->channels;
|
||||
@@ -311,12 +330,21 @@
|
||||
offset = 0;
|
||||
while (this->size>0) {
|
||||
decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
|
||||
+#if AVAUDIO > 2
|
||||
+ av_init_packet (&avpkt);
|
||||
+ avpkt.data = (uint8_t *)&this->buf[offset];
|
||||
+ avpkt.size = this->size;
|
||||
+ avpkt.flags = AV_PKT_FLAG_KEY;
|
||||
+ bytes_consumed = avcodec_decode_audio3 (this->context,
|
||||
+ (int16_t *)this->decode_buffer,
|
||||
+ &decode_buffer_size, &avpkt);
|
||||
+#else
|
||||
bytes_consumed = avcodec_decode_audio2 (this->context,
|
||||
(int16_t *)this->decode_buffer,
|
||||
&decode_buffer_size,
|
||||
&this->buf[offset],
|
||||
this->size);
|
||||
-
|
||||
+#endif
|
||||
if (bytes_consumed<0) {
|
||||
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
|
||||
"ffmpeg_audio_dec: error decompressing audio frame\n");
|
||||
diff -r 717450d734f7 src/combined/ffmpeg/ff_video_decoder.c
|
||||
--- a/src/combined/ffmpeg/ff_video_decoder.c Mon May 16 15:49:02 2011 +0100
|
||||
+++ b/src/combined/ffmpeg/ff_video_decoder.c Mon May 16 19:46:49 2011 -0400
|
||||
@@ -58,6 +58,14 @@
|
||||
|
||||
#define ENABLE_DIRECT_RENDERING
|
||||
|
||||
+#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32)
|
||||
+# define AVVIDEO 2
|
||||
+#else
|
||||
+# define AVVIDEO 1
|
||||
+# define pp_context pp_context_t
|
||||
+# define pp_mode pp_mode_t
|
||||
+#endif
|
||||
+
|
||||
/* reordered_opaque appeared in libavcodec 51.68.0 */
|
||||
#define AVCODEC_HAS_REORDERED_OPAQUE
|
||||
#if LIBAVCODEC_VERSION_INT < 0x334400
|
||||
@@ -116,8 +124,8 @@
|
||||
|
||||
int pp_quality;
|
||||
int pp_flags;
|
||||
- pp_context_t *pp_context;
|
||||
- pp_mode_t *pp_mode;
|
||||
+ pp_context *our_context;
|
||||
+ pp_mode *our_mode;
|
||||
|
||||
/* mpeg-es parsing */
|
||||
mpeg_parser_t *mpeg_parser;
|
||||
@@ -444,23 +452,23 @@
|
||||
this->pp_quality = this->class->pp_quality;
|
||||
|
||||
if(this->pp_available && this->pp_quality) {
|
||||
- if(!this->pp_context && this->context)
|
||||
- this->pp_context = pp_get_context(this->context->width, this->context->height,
|
||||
+ if(!this->our_context && this->context)
|
||||
+ this->our_context = pp_get_context(this->context->width, this->context->height,
|
||||
this->pp_flags);
|
||||
- if(this->pp_mode)
|
||||
- pp_free_mode(this->pp_mode);
|
||||
+ if(this->our_mode)
|
||||
+ pp_free_mode(this->our_mode);
|
||||
|
||||
- this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
|
||||
+ this->our_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
|
||||
this->pp_quality);
|
||||
} else {
|
||||
- if(this->pp_mode) {
|
||||
- pp_free_mode(this->pp_mode);
|
||||
- this->pp_mode = NULL;
|
||||
+ if(this->our_mode) {
|
||||
+ pp_free_mode(this->our_mode);
|
||||
+ this->our_mode = NULL;
|
||||
}
|
||||
|
||||
- if(this->pp_context) {
|
||||
- pp_free_context(this->pp_context);
|
||||
- this->pp_context = NULL;
|
||||
+ if(this->our_context) {
|
||||
+ pp_free_context(this->our_context);
|
||||
+ this->our_context = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1055,12 +1063,26 @@
|
||||
}
|
||||
|
||||
/* skip decoding b frames if too late */
|
||||
+#if AVVIDEO > 1
|
||||
+ this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
|
||||
+#else
|
||||
this->context->hurry_up = (this->skipframes > 0);
|
||||
+#endif
|
||||
|
||||
lprintf("avcodec_decode_video: size=%d\n", this->mpeg_parser->buffer_size);
|
||||
+#if AVVIDEO > 1
|
||||
+ AVPacket avpkt;
|
||||
+ av_init_packet(&avpkt);
|
||||
+ avpkt.data = (uint8_t *)this->mpeg_parser->chunk_buffer;
|
||||
+ avpkt.size = this->mpeg_parser->buffer_size;
|
||||
+ avpkt.flags = AV_PKT_FLAG_KEY;
|
||||
+ len = avcodec_decode_video2 (this->context, this->av_frame,
|
||||
+ &got_picture, &avpkt);
|
||||
+#else
|
||||
len = avcodec_decode_video (this->context, this->av_frame,
|
||||
&got_picture, this->mpeg_parser->chunk_buffer,
|
||||
this->mpeg_parser->buffer_size);
|
||||
+#endif
|
||||
lprintf("avcodec_decode_video: decoded_size=%d, got_picture=%d\n",
|
||||
len, got_picture);
|
||||
len = current - buf->content - offset;
|
||||
@@ -1112,7 +1134,13 @@
|
||||
|
||||
} else {
|
||||
|
||||
- if (this->context->hurry_up) {
|
||||
+ if (
|
||||
+#if AVVIDEO > 1
|
||||
+ this->context->skip_frame != AVDISCARD_DEFAULT
|
||||
+#else
|
||||
+ this->context->hurry_up
|
||||
+#endif
|
||||
+ ) {
|
||||
/* skipped frame, output a bad frame */
|
||||
img = this->stream->video_out->get_frame (this->stream->video_out,
|
||||
this->bih.biWidth,
|
||||
@@ -1304,13 +1332,25 @@
|
||||
got_picture = 0;
|
||||
} else {
|
||||
/* skip decoding b frames if too late */
|
||||
+#if AVVIDEO > 1
|
||||
+ this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
|
||||
+#else
|
||||
this->context->hurry_up = (this->skipframes > 0);
|
||||
-
|
||||
+#endif
|
||||
lprintf("buffer size: %d\n", this->size);
|
||||
+#if AVVIDEO > 1
|
||||
+ AVPacket avpkt;
|
||||
+ av_init_packet(&avpkt);
|
||||
+ avpkt.data = (uint8_t *)&chunk_buf[offset];
|
||||
+ avpkt.size = this->size;
|
||||
+ avpkt.flags = AV_PKT_FLAG_KEY;
|
||||
+ len = avcodec_decode_video2 (this->context, this->av_frame,
|
||||
+ &got_picture, &avpkt);
|
||||
+#else
|
||||
len = avcodec_decode_video (this->context, this->av_frame,
|
||||
&got_picture, &chunk_buf[offset],
|
||||
this->size);
|
||||
-
|
||||
+#endif
|
||||
#ifdef AVCODEC_HAS_REORDERED_OPAQUE
|
||||
/* reset consumed pts value */
|
||||
this->context->reordered_opaque = ff_tag_pts(this, 0);
|
||||
@@ -1432,7 +1472,7 @@
|
||||
img->base, img->pitches,
|
||||
img->width, img->height,
|
||||
this->av_frame->qscale_table, this->av_frame->qstride,
|
||||
- this->pp_mode, this->pp_context,
|
||||
+ this->our_mode, this->our_context,
|
||||
this->av_frame->pict_type);
|
||||
|
||||
} else if (!this->av_frame->opaque) {
|
||||
@@ -1676,11 +1716,11 @@
|
||||
free(this->buf);
|
||||
this->buf = NULL;
|
||||
|
||||
- if(this->pp_context)
|
||||
- pp_free_context(this->pp_context);
|
||||
+ if(this->our_context)
|
||||
+ pp_free_context(this->our_context);
|
||||
|
||||
- if(this->pp_mode)
|
||||
- pp_free_mode(this->pp_mode);
|
||||
+ if(this->our_mode)
|
||||
+ pp_free_mode(this->our_mode);
|
||||
|
||||
mpeg_parser_dispose(this->mpeg_parser);
|
||||
|
||||
@@ -1721,8 +1761,8 @@
|
||||
this->aspect_ratio = 0;
|
||||
|
||||
this->pp_quality = 0;
|
||||
- this->pp_context = NULL;
|
||||
- this->pp_mode = NULL;
|
||||
+ this->our_context = NULL;
|
||||
+ this->our_mode = NULL;
|
||||
|
||||
this->mpeg_parser = NULL;
|
||||
|
||||
diff -r 717450d734f7 src/post/planar/pp.c
|
||||
--- a/src/post/planar/pp.c Mon May 16 15:49:02 2011 +0100
|
||||
+++ b/src/post/planar/pp.c Mon May 16 19:46:49 2011 -0400
|
||||
@@ -35,6 +35,12 @@
|
||||
# include <libpostproc/postprocess.h>
|
||||
#endif
|
||||
|
||||
+#if LIBPOSTPROC_VERSION_MAJOR < 52
|
||||
+# define pp_context pp_context_t
|
||||
+# define pp_mode pp_mode_t
|
||||
+# define PP_PARAMETERS_T
|
||||
+#endif
|
||||
+
|
||||
#define PP_STRING_SIZE 256 /* size of pp mode string (including all options) */
|
||||
|
||||
/* plugin class initialization function */
|
||||
@@ -76,14 +82,15 @@
|
||||
|
||||
/* libpostproc specific stuff */
|
||||
int pp_flags;
|
||||
- pp_context_t *pp_context;
|
||||
- pp_mode_t *pp_mode;
|
||||
+ pp_context *our_context;
|
||||
+ pp_mode *our_mode;
|
||||
|
||||
pthread_mutex_t lock;
|
||||
};
|
||||
|
||||
|
||||
static int set_parameters (xine_post_t *this_gen, void *param_gen) {
|
||||
+#ifdef PP_PARAMETERS_T
|
||||
post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
|
||||
pp_parameters_t *param = (pp_parameters_t *)param_gen;
|
||||
|
||||
@@ -92,17 +99,18 @@
|
||||
memcpy( &this->params, param, sizeof(pp_parameters_t) );
|
||||
|
||||
pthread_mutex_unlock (&this->lock);
|
||||
-
|
||||
+#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int get_parameters (xine_post_t *this_gen, void *param_gen) {
|
||||
+#ifdef PP_PARAMETERS_T
|
||||
post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
|
||||
pp_parameters_t *param = (pp_parameters_t *)param_gen;
|
||||
|
||||
|
||||
memcpy( param, &this->params, sizeof(pp_parameters_t) );
|
||||
-
|
||||
+#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -202,8 +210,8 @@
|
||||
if(cpu_caps & MM_ACCEL_X86_3DNOW)
|
||||
this->pp_flags |= PP_CPU_CAPS_3DNOW;
|
||||
|
||||
- this->pp_mode = NULL;
|
||||
- this->pp_context = NULL;
|
||||
+ this->our_mode = NULL;
|
||||
+ this->our_context = NULL;
|
||||
|
||||
pthread_mutex_init (&this->lock, NULL);
|
||||
|
||||
@@ -248,13 +256,13 @@
|
||||
post_plugin_pp_t *this = (post_plugin_pp_t *)this_gen;
|
||||
|
||||
if (_x_post_dispose(this_gen)) {
|
||||
- if(this->pp_mode) {
|
||||
- pp_free_mode(this->pp_mode);
|
||||
- this->pp_mode = NULL;
|
||||
+ if(this->our_mode) {
|
||||
+ pp_free_mode(this->our_mode);
|
||||
+ this->our_mode = NULL;
|
||||
}
|
||||
- if(this->pp_context) {
|
||||
- pp_free_context(this->pp_context);
|
||||
- this->pp_context = NULL;
|
||||
+ if(this->our_context) {
|
||||
+ pp_free_context(this->our_context);
|
||||
+ this->our_context = NULL;
|
||||
}
|
||||
free(this);
|
||||
}
|
||||
@@ -304,7 +312,7 @@
|
||||
|
||||
pthread_mutex_lock (&this->lock);
|
||||
|
||||
- if( !this->pp_context ||
|
||||
+ if( !this->our_context ||
|
||||
this->frame_width != yv12_frame->width ||
|
||||
this->frame_height != yv12_frame->height ) {
|
||||
|
||||
@@ -312,32 +320,32 @@
|
||||
this->frame_height = yv12_frame->height;
|
||||
pp_flags = this->pp_flags;
|
||||
|
||||
- if(this->pp_context)
|
||||
- pp_free_context(this->pp_context);
|
||||
+ if(this->our_context)
|
||||
+ pp_free_context(this->our_context);
|
||||
|
||||
- this->pp_context = pp_get_context(frame->width, frame->height, pp_flags);
|
||||
+ this->our_context = pp_get_context(frame->width, frame->height, pp_flags);
|
||||
|
||||
- if(this->pp_mode) {
|
||||
- pp_free_mode(this->pp_mode);
|
||||
- this->pp_mode = NULL;
|
||||
+ if(this->our_mode) {
|
||||
+ pp_free_mode(this->our_mode);
|
||||
+ this->our_mode = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
- if(!this->pp_mode)
|
||||
- this->pp_mode = pp_get_mode_by_name_and_quality(this->params.mode,
|
||||
+ if(!this->our_mode)
|
||||
+ this->our_mode = pp_get_mode_by_name_and_quality(this->params.mode,
|
||||
this->params.quality);
|
||||
|
||||
- if(this->pp_mode)
|
||||
+ if(this->our_mode)
|
||||
pp_postprocess(yv12_frame->base, yv12_frame->pitches,
|
||||
out_frame->base, out_frame->pitches,
|
||||
(frame->width+7)&(~7), frame->height,
|
||||
NULL, 0,
|
||||
- this->pp_mode, this->pp_context,
|
||||
+ this->our_mode, this->our_context,
|
||||
0 /*this->av_frame->pict_type*/);
|
||||
|
||||
pthread_mutex_unlock (&this->lock);
|
||||
|
||||
- if(this->pp_mode) {
|
||||
+ if(this->our_mode) {
|
||||
skip = out_frame->draw(out_frame, stream);
|
||||
_x_post_frame_copy_up(frame, out_frame);
|
||||
} else {
|
@ -1,20 +0,0 @@
|
||||
--- a/src/video_dec/dav1d.c
|
||||
+++ b/src/video_dec/dav1d.c
|
||||
@@ -544,11 +544,17 @@
|
||||
|
||||
/* multithreading */
|
||||
ncpu = xine_cpu_count();
|
||||
+#if DAV1D_API_VERSION_MAJOR > 5
|
||||
+ settings.n_threads = ncpu + 1;
|
||||
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG, LOG_MODULE ": "
|
||||
+ "Using %d threads\n", settings.n_threads);
|
||||
+#else
|
||||
settings.n_frame_threads = (ncpu > 8) ? 4 : (ncpu < 2) ? 1 : ncpu/2;
|
||||
settings.n_tile_threads = MAX(1, ncpu - settings.n_frame_threads + 1);
|
||||
xprintf(stream->xine, XINE_VERBOSITY_DEBUG, LOG_MODULE ": "
|
||||
"Using %d frame threads, %d tile threads\n",
|
||||
settings.n_frame_threads, settings.n_tile_threads);
|
||||
+#endif
|
||||
|
||||
/* dri frame allocator */
|
||||
settings.allocator.cookie = this;
|
@ -1,46 +0,0 @@
|
||||
From 5ea5bc2bc27d45da6c6d30279df7d824188a7745 Mon Sep 17 00:00:00 2001
|
||||
From: Petri Hintukainen
|
||||
Date: Sun, 10 Jun 2012 06:45:02 +0000
|
||||
Subject: Fix building on non-x86 systems
|
||||
|
||||
---
|
||||
diff --git a/src/post/deinterlace/plugins/greedy2frame_template.c b/src/post/deinterlace/plugins/greedy2frame_template.c
|
||||
index d7e5ef5..e881248 100644
|
||||
--- a/src/post/deinterlace/plugins/greedy2frame_template.c
|
||||
+++ b/src/post/deinterlace/plugins/greedy2frame_template.c
|
||||
@@ -85,6 +85,7 @@
|
||||
*/
|
||||
|
||||
|
||||
+#if defined(ARCH_X86) || defined(ARCH_X86_64)
|
||||
#if !defined(MASKS_DEFINED)
|
||||
#define MASKS_DEFINED
|
||||
static const mmx_t Mask = { uq: 0x7f7f7f7f7f7f7f7fll };
|
||||
@@ -92,6 +93,7 @@ static const mmx_t Mask = { uq: 0x7f7f7f7f7f7f7f7fll };
|
||||
static const mmx_t GreedyTwoFrameThreshold = { ub: {TP, TP, TP, TP} };
|
||||
#undef TP
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#if defined(IS_MMXEXT)
|
||||
static void DeinterlaceGreedy2Frame_MMXEXT(uint8_t *output, int outstride,
|
||||
diff --git a/src/post/deinterlace/plugins/greedy2frame_template_sse2.c b/src/post/deinterlace/plugins/greedy2frame_template_sse2.c
|
||||
index 53c6876..5bc76d5 100644
|
||||
--- a/src/post/deinterlace/plugins/greedy2frame_template_sse2.c
|
||||
+++ b/src/post/deinterlace/plugins/greedy2frame_template_sse2.c
|
||||
@@ -84,11 +84,12 @@
|
||||
** B0 | | B1 | |
|
||||
*/
|
||||
|
||||
-
|
||||
+#if defined(ARCH_X86) || defined(ARCH_X86_64)
|
||||
static const sse_t Mask128 = { uq: { 0x7f7f7f7f7f7f7f7fll, 0x7f7f7f7f7f7f7f7fll} };
|
||||
#define TP GREEDYTWOFRAMETHRESHOLD, GREEDYTWOFRAMETHRESHOLD2
|
||||
static const sse_t GreedyTwoFrameThreshold128 = { ub: {TP, TP, TP, TP, TP, TP, TP, TP} };
|
||||
#undef TP
|
||||
+#endif
|
||||
|
||||
static void DeinterlaceGreedy2Frame_SSE2(uint8_t *output, int outstride,
|
||||
deinterlace_frame_data_t *data,
|
||||
--
|
||||
cgit v0.9.0.2-39-g756e
|
@ -1,139 +0,0 @@
|
||||
diff -Nru xine-lib-1.2.3.orig/src/xine-engine/accel_vaapi.h xine-lib-1.2.3/src/xine-engine/accel_vaapi.h
|
||||
--- xine-lib-1.2.3.orig/src/xine-engine/accel_vaapi.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ xine-lib-1.2.3/src/xine-engine/accel_vaapi.h 2013-05-31 21:25:50.006068027 +0200
|
||||
@@ -0,0 +1,135 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2008 the xine project
|
||||
+ *
|
||||
+ * This file is part of xine, a free video player.
|
||||
+ *
|
||||
+ * xine is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * xine is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
+ *
|
||||
+ *
|
||||
+ * Common acceleration definitions for vdpau
|
||||
+ *
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#ifndef HAVE_XINE_ACCEL_VAAPI_H
|
||||
+#define HAVE_XINE_ACCEL_VAAPI_H
|
||||
+
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
+
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+#include "config.h"
|
||||
+#endif
|
||||
+
|
||||
+#include <va/va_x11.h>
|
||||
+#include <pthread.h>
|
||||
+#ifdef HAVE_FFMPEG_AVUTIL_H
|
||||
+# include <avcodec.h>
|
||||
+#else
|
||||
+# include <libavcodec/avcodec.h>
|
||||
+#endif
|
||||
+
|
||||
+#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32)
|
||||
+# define AVVIDEO 2
|
||||
+#else
|
||||
+# define AVVIDEO 1
|
||||
+# define pp_context pp_context_t
|
||||
+# define pp_mode pp_mode_t
|
||||
+#endif
|
||||
+
|
||||
+#define NUM_OUTPUT_SURFACES 22
|
||||
+
|
||||
+#define SURFACE_FREE 0
|
||||
+#define SURFACE_ALOC 1
|
||||
+#define SURFACE_RELEASE 2
|
||||
+#define SURFACE_RENDER 3
|
||||
+#define SURFACE_RENDER_RELEASE 5
|
||||
+
|
||||
+struct vaapi_equalizer {
|
||||
+ VADisplayAttribute brightness;
|
||||
+ VADisplayAttribute contrast;
|
||||
+ VADisplayAttribute hue;
|
||||
+ VADisplayAttribute saturation;
|
||||
+};
|
||||
+
|
||||
+typedef struct ff_vaapi_context_s ff_vaapi_context_t;
|
||||
+
|
||||
+struct ff_vaapi_context_s {
|
||||
+ VADisplay va_display;
|
||||
+ VAContextID va_context_id;
|
||||
+ VAConfigID va_config_id;
|
||||
+ int width;
|
||||
+ int height;
|
||||
+ int sw_width;
|
||||
+ int sw_height;
|
||||
+ int va_profile;
|
||||
+ unsigned int va_colorspace;
|
||||
+ VAImage va_subpic_image;
|
||||
+ VASubpictureID va_subpic_id;
|
||||
+ int va_subpic_width;
|
||||
+ int va_subpic_height;
|
||||
+ int is_bound;
|
||||
+ void *gl_surface;
|
||||
+ unsigned int soft_head;
|
||||
+ unsigned int valid_context;
|
||||
+ unsigned int va_head;
|
||||
+ unsigned int va_soft_head;
|
||||
+ vo_driver_t *driver;
|
||||
+ unsigned int last_sub_image_fmt;
|
||||
+ VASurfaceID last_sub_surface_id;
|
||||
+ struct vaapi_equalizer va_equalizer;
|
||||
+ VAImageFormat *va_image_formats;
|
||||
+ int va_num_image_formats;
|
||||
+ VAImageFormat *va_subpic_formats;
|
||||
+ int va_num_subpic_formats;
|
||||
+};
|
||||
+
|
||||
+typedef struct ff_vaapi_surface_s ff_vaapi_surface_t;
|
||||
+typedef struct vaapi_accel_s vaapi_accel_t;
|
||||
+
|
||||
+struct ff_vaapi_surface_s {
|
||||
+ unsigned int index;
|
||||
+ vaapi_accel_t *accel;
|
||||
+ VASurfaceID va_surface_id;
|
||||
+ unsigned int status;
|
||||
+};
|
||||
+
|
||||
+struct vaapi_accel_s {
|
||||
+ unsigned int index;
|
||||
+ vo_frame_t *vo_frame;
|
||||
+
|
||||
+#if AVVIDEO > 1
|
||||
+ int (*avcodec_decode_video2)(vo_frame_t *frame_gen, AVCodecContext *avctx, AVFrame *picture,
|
||||
+ int *got_picture_ptr, AVPacket *avpkt);
|
||||
+#else
|
||||
+ int (*avcodec_decode_video)(vo_frame_t *frame_gen, AVCodecContext *avctx, AVFrame *picture,
|
||||
+ int *got_picture_ptr, uint8_t *buf, int buf_size);
|
||||
+#endif
|
||||
+ VAStatus (*vaapi_init)(vo_frame_t *frame_gen, int va_profile, int width, int height, int softrender);
|
||||
+ int (*profile_from_imgfmt)(vo_frame_t *frame_gen, enum PixelFormat pix_fmt, int codec_id, int vaapi_mpeg_sofdec);
|
||||
+ ff_vaapi_context_t *(*get_context)(vo_frame_t *frame_gen);
|
||||
+ int (*guarded_render)(vo_frame_t *frame_gen);
|
||||
+ ff_vaapi_surface_t *(*get_vaapi_surface)(vo_frame_t *frame_gen);
|
||||
+ void (*render_vaapi_surface)(vo_frame_t *frame_gen, ff_vaapi_surface_t *va_surface);
|
||||
+ void (*release_vaapi_surface)(vo_frame_t *frame_gen, ff_vaapi_surface_t *va_surface);
|
||||
+};
|
||||
+
|
||||
+#ifdef __cplusplus
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
+
|
39
libxine.spec
39
libxine.spec
@ -2,7 +2,7 @@
|
||||
|
||||
Name: libxine
|
||||
Version: 1.2.13
|
||||
Release: 1mamba
|
||||
Release: 2mamba
|
||||
Epoch: 2
|
||||
Summary: A free multimedia player. It plays back CDs, DVDs, and VCDs
|
||||
Group: System/Libraries
|
||||
@ -11,19 +11,13 @@ Distribution: openmamba
|
||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
URL: http://xinehq.de
|
||||
Source: http://downloads.sourceforge.net/sourceforge/xine/%{pkgname}-%{version}.tar.xz
|
||||
Patch0: %{name}-1.1.19-ffmpeg.patch
|
||||
Patch1: %{name}-1.2.2-fix_building_on_non_x86_systems.patch
|
||||
Patch2: libxine-1.2.3-missing-header.patch
|
||||
Patch3: libxine-1.2.12-libdav1d-1.0.0.patch
|
||||
License: GPL
|
||||
## AUTOBUILDREQ-BEGIN
|
||||
BuildRequires: glibc-devel
|
||||
BuildRequires: libGConf-devel
|
||||
BuildRequires: libGLU-devel
|
||||
BuildRequires: libICE-devel
|
||||
BuildRequires: libMagick-devel
|
||||
BuildRequires: libORBit2-devel
|
||||
BuildRequires: libSDL-devel
|
||||
BuildRequires: libSM-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libXext-devel
|
||||
@ -38,7 +32,6 @@ BuildRequires: libavcodec-ffmpeg-devel
|
||||
BuildRequires: libavformat-ffmpeg-devel
|
||||
BuildRequires: libavutil-ffmpeg-devel
|
||||
BuildRequires: libbluray-devel
|
||||
BuildRequires: libbrotli-devel
|
||||
BuildRequires: libbzip2-devel
|
||||
BuildRequires: libcaca-devel
|
||||
BuildRequires: libcdio-devel
|
||||
@ -48,16 +41,15 @@ BuildRequires: libdca-devel
|
||||
BuildRequires: libdirectfb-devel
|
||||
BuildRequires: libdvdnav-devel
|
||||
BuildRequires: libdvdread-devel
|
||||
BuildRequires: libe2fs-devel
|
||||
BuildRequires: libfaad2-devel
|
||||
BuildRequires: libfame-devel
|
||||
BuildRequires: libflac-devel
|
||||
BuildRequires: libfreeglut-devel
|
||||
BuildRequires: libfreetype-devel
|
||||
BuildRequires: libftgl-devel
|
||||
BuildRequires: libgcrypt-devel
|
||||
BuildRequires: libgdk-pixbuf-devel
|
||||
BuildRequires: libglib-devel
|
||||
BuildRequires: libglu-devel
|
||||
BuildRequires: libglvnd-devel
|
||||
BuildRequires: libgnome-vfs-devel
|
||||
BuildRequires: libgnutls-devel
|
||||
@ -66,7 +58,7 @@ BuildRequires: libgpm-devel
|
||||
BuildRequires: libgraphite2-devel
|
||||
BuildRequires: libjack-devel
|
||||
BuildRequires: libjpeg-devel
|
||||
BuildRequires: libkrb5-devel
|
||||
BuildRequires: libmad-devel
|
||||
BuildRequires: libmng-devel
|
||||
BuildRequires: libmodplug-devel
|
||||
BuildRequires: libmusepack-devel
|
||||
@ -79,20 +71,20 @@ BuildRequires: libpcre-devel
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: libpostproc-ffmpeg-devel
|
||||
BuildRequires: libpulseaudio-devel
|
||||
BuildRequires: libsdl12-compat-devel
|
||||
BuildRequires: libslang-devel
|
||||
BuildRequires: libsmbclient-devel
|
||||
BuildRequires: libsndio-devel
|
||||
BuildRequires: libspeex-devel
|
||||
BuildRequires: libssh2-devel
|
||||
BuildRequires: libsystemd-devel
|
||||
BuildRequires: libtheora-devel
|
||||
BuildRequires: libtirpc-devel
|
||||
BuildRequires: libts-devel
|
||||
BuildRequires: libv4l-devel
|
||||
BuildRequires: libva-devel
|
||||
BuildRequires: libvcdimager-devel
|
||||
BuildRequires: libvdpau-devel
|
||||
BuildRequires: libvorbis-devel
|
||||
BuildRequires: libvpx6-devel
|
||||
BuildRequires: libvpx-devel
|
||||
BuildRequires: libwavpack-devel
|
||||
BuildRequires: libwayland-devel
|
||||
BuildRequires: libwayland-egl-devel
|
||||
@ -100,7 +92,6 @@ BuildRequires: libxcb-devel
|
||||
BuildRequires: libxdg-basedir-devel
|
||||
BuildRequires: libz-devel
|
||||
## AUTOBUILDREQ-END
|
||||
BuildRequires: libMagick-devel >= 7.1.0.35-1mamba
|
||||
BuildRequires: libfreetype-devel
|
||||
BuildRequires: libbonobo-devel
|
||||
BuildRequires: libgomp-devel
|
||||
@ -118,15 +109,6 @@ Provides: %{pkgname} = %{epoch}:%{version}-%{release}
|
||||
Requires: %{name}-tools = %{epoch}:%{version}-%{release}
|
||||
Obsoletes: libxine1 < 2:1.2.12
|
||||
|
||||
# FIXME (missing Build Requirements):
|
||||
# - sgmltools
|
||||
# - checking for Libstk... no
|
||||
# - checking for DirectFB... no
|
||||
# - checking for DirectX... no
|
||||
# - checking for rte_init in -lrte... no
|
||||
# conftest.c:(.text+0xd): undefined reference to `rte_init'
|
||||
# - checking for polypaudio... no
|
||||
|
||||
%description
|
||||
xine is a free (GPL-licensed) high-performance, portable and reusable multimedia playback engine.
|
||||
xine itself is a shared library with an easy to use, yet powerful API which is used by many applications for smooth video playback and video processing purposes.
|
||||
@ -142,7 +124,6 @@ Obsoletes: libxine1-devel < 2:1.2.12
|
||||
%description devel
|
||||
xine is a free (GPL-licensed) high-performance, portable and reusable multimedia playback engine.
|
||||
xine itself is a shared library with an easy to use, yet powerful API which is used by many applications for smooth video playback and video processing purposes.
|
||||
|
||||
This is the devel package for the xine-lib library.
|
||||
|
||||
%package tools
|
||||
@ -153,16 +134,13 @@ Requires: %{name} = %{epoch}:%{version}-%{release}
|
||||
%description tools
|
||||
xine is a free (GPL-licensed) high-performance, portable and reusable multimedia playback engine.
|
||||
xine itself is a shared library with an easy to use, yet powerful API which is used by many applications for smooth video playback and video processing purposes.
|
||||
This is the devel package for the xine-lib library.
|
||||
This is the tools package for the xine-lib library.
|
||||
|
||||
%debug_package
|
||||
|
||||
%prep
|
||||
%setup -q -n %{pkgname}.%{version}
|
||||
#%patch2 -p1
|
||||
#%patch3 -p1 -b .libdav1d-1.0.0
|
||||
sed -i "s,| arm-\* |,| aarch64-\* | arm-\* |," config.sub
|
||||
#./autogen.sh
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fomit-frame-pointer -Xlinker -zmuldefs"
|
||||
@ -247,6 +225,9 @@ mv %{buildroot}%{_datadir}/doc/xine-lib \
|
||||
%{_datadir}/xine-lib/*
|
||||
|
||||
%changelog
|
||||
* Mon Apr 15 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 1.2.13-2mamba
|
||||
- rebuilt
|
||||
|
||||
* Tue Jan 31 2023 Automatic Build System <autodist@mambasoft.it> 1.2.13-1mamba
|
||||
- automatic version update by autodist
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user