diff options
Diffstat (limited to 'src/libmpeg2new')
-rw-r--r-- | src/libmpeg2new/Makefile.am | 19 | ||||
-rw-r--r-- | src/libmpeg2new/include/Makefile.am | 5 | ||||
-rw-r--r-- | src/libmpeg2new/include/attributes.h | 6 | ||||
-rw-r--r-- | src/libmpeg2new/libmpeg2/Makefile.am | 9 | ||||
-rw-r--r-- | src/libmpeg2new/libmpeg2/motion_comp_alpha.c | 6 | ||||
-rw-r--r-- | src/libmpeg2new/libmpeg2/motion_comp_altivec.c | 4 | ||||
-rw-r--r-- | src/libmpeg2new/libmpeg2/motion_comp_vis.c | 10 | ||||
-rw-r--r-- | src/libmpeg2new/xine_mpeg2new_decoder.c | 26 |
8 files changed, 51 insertions, 34 deletions
diff --git a/src/libmpeg2new/Makefile.am b/src/libmpeg2new/Makefile.am index 49959da86..8b05a5444 100644 --- a/src/libmpeg2new/Makefile.am +++ b/src/libmpeg2new/Makefile.am @@ -1,13 +1,18 @@ +include $(top_builddir)/misc/Makefile.plugins include $(top_srcdir)/misc/Makefile.common -SUBDIRS = libmpeg2 +SUBDIRS = include libmpeg2 -xineplug_LTLIBRARIES = xineplug_decode_mpeg2.la +if ENABLE_MPEG2NEW +mpeg2new_module = xineplug_decode_mpeg2new.la +endif -xineplug_decode_mpeg2_la_SOURCES = \ - xine_mpeg2_decoder.c +xineplug_LTLIBRARIES = $(mpeg2new_module) -xineplug_decode_mpeg2_la_CFLAGS = $(VISIBILITY_FLAG) $(LIBMPEG2_CFLAGS) -xineplug_decode_mpeg2_la_LIBADD = $(XINE_LIB) ./libmpeg2/libmpeg2.la -xineplug_decode_mpeg2_la_LDFLAGS = $(xineplug_ldflags) +xineplug_decode_mpeg2new_la_SOURCES = \ + xine_mpeg2new_decoder.c + +xineplug_decode_mpeg2new_la_CFLAGS = $(VISIBILITY_FLAG) $(LIBMPEG2_CFLAGS) +xineplug_decode_mpeg2new_la_LIBADD = $(XINE_LIB) libmpeg2/libmpeg2.la +xineplug_decode_mpeg2new_la_LDFLAGS = $(xineplug_ldflags) diff --git a/src/libmpeg2new/include/Makefile.am b/src/libmpeg2new/include/Makefile.am index 302d01cb1..91d5575ee 100644 --- a/src/libmpeg2new/include/Makefile.am +++ b/src/libmpeg2new/include/Makefile.am @@ -1,3 +1,4 @@ -pkginclude_HEADERS = mpeg2.h mpeg2convert.h +include $(top_builddir)/misc/Makefile.plugins +include $(top_srcdir)/misc/Makefile.common -EXTRA_DIST = video_out.h mmx.h alpha_asm.h vis.h attributes.h tendra.h +EXTRA_DIST = video_out.h mmx.h alpha_asm.h vis.h attributes.h tendra.h mpeg2.h mpeg2convert.h diff --git a/src/libmpeg2new/include/attributes.h b/src/libmpeg2new/include/attributes.h index eefbc0dd1..92db86e7e 100644 --- a/src/libmpeg2new/include/attributes.h +++ b/src/libmpeg2new/include/attributes.h @@ -22,11 +22,7 @@ */ /* use gcc attribs to align critical data structures */ -#ifdef ATTRIBUTE_ALIGNED_MAX -#define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_MAX < align) ? ATTRIBUTE_ALIGNED_MAX : align))) -#else -#define ATTR_ALIGN(align) -#endif +#include "../../xine-utils/attributes.h" #ifdef HAVE_BUILTIN_EXPECT #define likely(x) __builtin_expect ((x) != 0, 1) diff --git a/src/libmpeg2new/libmpeg2/Makefile.am b/src/libmpeg2new/libmpeg2/Makefile.am index f99894f12..0bfeda1ce 100644 --- a/src/libmpeg2new/libmpeg2/Makefile.am +++ b/src/libmpeg2new/libmpeg2/Makefile.am @@ -1,13 +1,20 @@ include $(top_srcdir)/misc/Makefile.common -noinst_LTLIBRARIES = libmpeg2.la libmpeg2arch.la +if ENABLE_MPEG2NEW +mpeg2new_libs = libmpeg2.la libmpeg2arch.la +endif + +noinst_LTLIBRARIES = $(mpeg2new_libs) libmpeg2_la_SOURCES = alloc.c header.c decode.c slice.c motion_comp.c idct.c libmpeg2_la_LIBADD = libmpeg2arch.la +AM_CPPFLAGS = -I$(srcdir)/../include + libmpeg2arch_la_SOURCES = motion_comp_mmx.c idct_mmx.c \ motion_comp_altivec.c idct_altivec.c \ motion_comp_alpha.c idct_alpha.c \ motion_comp_vis.c \ cpu_accel.c cpu_state.c +EXTRA_DIST = mpeg2_internal.h vlc.h diff --git a/src/libmpeg2new/libmpeg2/motion_comp_alpha.c b/src/libmpeg2new/libmpeg2/motion_comp_alpha.c index 05cd55084..73f6625d2 100644 --- a/src/libmpeg2new/libmpeg2/motion_comp_alpha.c +++ b/src/libmpeg2new/libmpeg2/motion_comp_alpha.c @@ -26,10 +26,10 @@ #include <inttypes.h> -#include "mpeg2.h" -#include "attributes.h" +#include "../include/mpeg2.h" +#include "../include/attributes.h" #include "mpeg2_internal.h" -#include "alpha_asm.h" +#include "../include/alpha_asm.h" static inline uint64_t avg2 (uint64_t a, uint64_t b) { diff --git a/src/libmpeg2new/libmpeg2/motion_comp_altivec.c b/src/libmpeg2new/libmpeg2/motion_comp_altivec.c index 4356aa6e7..cc1b72f56 100644 --- a/src/libmpeg2new/libmpeg2/motion_comp_altivec.c +++ b/src/libmpeg2new/libmpeg2/motion_comp_altivec.c @@ -30,8 +30,8 @@ #endif #include <inttypes.h> -#include "mpeg2.h" -#include "attributes.h" +#include "../include/mpeg2.h" +#include "../include/attributes.h" #include "mpeg2_internal.h" typedef vector signed char vector_s8_t; diff --git a/src/libmpeg2new/libmpeg2/motion_comp_vis.c b/src/libmpeg2new/libmpeg2/motion_comp_vis.c index 54c0f7e75..e4b61aaa7 100644 --- a/src/libmpeg2new/libmpeg2/motion_comp_vis.c +++ b/src/libmpeg2new/libmpeg2/motion_comp_vis.c @@ -22,14 +22,14 @@ #include "config.h" -#ifdef ARCH_SPARC +#if defined(ARCH_SPARC) && defined(ENABLE_VIS) #include <inttypes.h> -#include "mpeg2.h" -#include "attributes.h" +#include "../include/mpeg2.h" +#include "../include/attributes.h" #include "mpeg2_internal.h" -#include "vis.h" +#include "../include/vis.h" /* The trick used in some of this file is the formula from the MMX * motion comp code, which is: @@ -2058,4 +2058,4 @@ static void MC_avg_xy_8_vis (uint8_t * dest, const uint8_t * _ref, MPEG2_MC_EXTERN(vis); -#endif /* !(ARCH_SPARC) */ +#endif /* defined(ARCH_SPARC) && defined(ENABLE_VIS) */ diff --git a/src/libmpeg2new/xine_mpeg2new_decoder.c b/src/libmpeg2new/xine_mpeg2new_decoder.c index 7ceac9178..8c16c441b 100644 --- a/src/libmpeg2new/xine_mpeg2new_decoder.c +++ b/src/libmpeg2new/xine_mpeg2new_decoder.c @@ -20,6 +20,10 @@ * stuff needed to turn libmpeg2 into a xine decoder plugin */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include <stdlib.h> #include <string.h> @@ -35,13 +39,14 @@ #include "video_out.h" #include "buffer.h" - - +/* #define LOG #define LOG_FRAME_ALLOC_FREE #define LOG_ENTRY #define LOG_FRAME_COUNTER +*/ +#define _x_abort() do {} while (0) typedef struct { video_decoder_class_t decoder_class; @@ -66,7 +71,9 @@ typedef struct mpeg2_video_decoder_s { } mpeg2_video_decoder_t; - +#ifndef LOG_FRAME_ALLOC_FREE +inline static void mpeg2_video_print_bad_state(img_state_t * img_state) {} +#else static void mpeg2_video_print_bad_state(img_state_t * img_state) { int32_t n,m; m=0; @@ -79,6 +86,7 @@ static void mpeg2_video_print_bad_state(img_state_t * img_state) { if (m > 3) _x_abort(); if (m == 0) printf("NO FRAMES\n"); } +#endif static void mpeg2_video_free_all(img_state_t * img_state) { int32_t n,m; @@ -153,7 +161,7 @@ static void mpeg2_video_decode_data (video_decoder_t *this_gen, buf_element_t *b _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH, info->sequence->picture_width); _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HEIGHT, info->sequence->picture_height); _x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, info->sequence->frame_period / 300); - if (this->force_aspect) info->sequence->pixel_width = this->force_aspect; + if (this->force_aspect) ((mpeg2_sequence_t *)info->sequence)->pixel_width = this->force_aspect; /* ugly... */ switch (info->sequence->pixel_width) { case 3: this->ratio = 16.0 / 9.0; @@ -449,7 +457,7 @@ static video_decoder_t *open_plugin (video_decoder_class_t *class_gen, xine_stre mpeg2_video_decoder_t *this ; int32_t n; - this = (mpeg2_video_decoder_t *) xine_xmalloc (sizeof (mpeg2_video_decoder_t)); + this = (mpeg2_video_decoder_t *) calloc(1, sizeof(mpeg2_video_decoder_t)); this->video_decoder.decode_data = mpeg2_video_decode_data; this->video_decoder.flush = mpeg2_video_flush; @@ -490,7 +498,7 @@ static void *init_plugin (xine_t *xine, void *data) { mpeg2_class_t *this; - this = (mpeg2_class_t *) xine_xmalloc (sizeof (mpeg2_class_t)); + this = (mpeg2_class_t *) calloc(1, sizeof(mpeg2_class_t)); this->decoder_class.open_plugin = open_plugin; this->decoder_class.get_identifier = get_identifier; @@ -503,14 +511,14 @@ static void *init_plugin (xine_t *xine, void *data) { * exported plugin catalog entry */ -static uint32_t supported_types[] = { BUF_VIDEO_MPEG, 0 }; +static const uint32_t supported_types[] = { BUF_VIDEO_MPEG, 0 }; -static decoder_info_t dec_info_mpeg2 = { +static const decoder_info_t dec_info_mpeg2 = { supported_types, /* supported types */ 6 /* priority */ }; -plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_VIDEO_DECODER, 18, "mpeg2new", XINE_VERSION_CODE, &dec_info_mpeg2, init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } |