summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/combined/ffmpeg/Makefile.am11
-rw-r--r--src/dxr3/Makefile.am5
-rw-r--r--src/dxr3/dxr3_mpeg_encoders.c37
-rw-r--r--src/dxr3/ffmpeg_encoder.c (renamed from src/combined/ffmpeg/ffmpeg_encoder.c)14
-rw-r--r--src/dxr3/video_out_dxr3.c17
5 files changed, 15 insertions, 69 deletions
diff --git a/src/combined/ffmpeg/Makefile.am b/src/combined/ffmpeg/Makefile.am
index 67c7c011a..c0eeccffd 100644
--- a/src/combined/ffmpeg/Makefile.am
+++ b/src/combined/ffmpeg/Makefile.am
@@ -4,21 +4,10 @@ AM_CFLAGS = $(DEFAULT_OCFLAGS) $(VISIBILITY_FLAG)
AM_CPPFLAGS = $(ZLIB_CPPFLAGS)
AM_LDFLAGS = $(xineplug_ldflags)
-# this must always be included, even if the current machine has no DXR3...
-EXTRA_DIST = ffmpeg_encoder.c
-
xineplug_LTLIBRARIES = xineplug_decode_ff.la
-if ENABLE_DXR3
-AM_CFLAGS += $(X_CFLAGS)
-AM_CPPFLAGS += -I$(top_srcdir)/src/dxr3
-xineplug_decode_ff_la_SOURCES = ffmpeg_decoder.c ff_audio_decoder.c ff_video_decoder.c \
- ffmpeg_encoder.c ff_mpeg_parser.c ffmpeg_decoder.h \
- ff_mpeg_parser.h
-else
xineplug_decode_ff_la_SOURCES = ffmpeg_decoder.c ff_audio_decoder.c ff_video_decoder.c \
ff_mpeg_parser.c ffmpeg_decoder.h ff_mpeg_parser.h
-endif
nodist_xineplug_decode_ff_la_SOURCES = ffmpeg_config.h
diff --git a/src/dxr3/Makefile.am b/src/dxr3/Makefile.am
index 541306ab9..0c0f4f979 100644
--- a/src/dxr3/Makefile.am
+++ b/src/dxr3/Makefile.am
@@ -39,9 +39,10 @@ endif
xineplug_vo_out_dxr3_la_SOURCES = \
dxr3_mpeg_encoders.c \
+ ffmpeg_encoder.c \
dxr3_spu_encoder.c \
dxr3_scr.c \
video_out_dxr3.c
-xineplug_vo_out_dxr3_la_CFLAGS = $(AM_CFLAGS) $(AVUTIL_CFLAGS)
-xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) $(AVUTIL_LIBS) -lm
+xineplug_vo_out_dxr3_la_CFLAGS = $(AM_CFLAGS) $(AVUTIL_CFLAGS) $(FFMPEG_CFLAGS)
+xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) $(AVUTIL_LIBS) $(FFMPEG_LDFLAGS) -lm
diff --git a/src/dxr3/dxr3_mpeg_encoders.c b/src/dxr3/dxr3_mpeg_encoders.c
index d32a298a6..2ccc05e49 100644
--- a/src/dxr3/dxr3_mpeg_encoders.c
+++ b/src/dxr3/dxr3_mpeg_encoders.c
@@ -110,13 +110,6 @@ static int fame_prepare_frame(fame_data_t *this, dxr3_driver_t *drv,
dxr3_frame_t *frame);
#endif
-/* initialization function */
-int dxr3_lavc_init(dxr3_driver_t *drv, plugin_node_t *node);
-
-/* close function from encoder api */
-static int lavc_on_close(dxr3_driver_t *drv);
-
-
#ifdef HAVE_LIBRTE
int dxr3_rte_init(dxr3_driver_t *drv)
{
@@ -538,33 +531,3 @@ static int fame_prepare_frame(fame_data_t *this, dxr3_driver_t *drv, dxr3_frame_
return 1;
}
#endif
-
-
-int dxr3_lavc_init(dxr3_driver_t *drv, plugin_node_t *node)
-{
- void *ffmpeg;
- int (*init)(dxr3_driver_t *);
- int result;
-
- ffmpeg = dlopen(node->file->filename, RTLD_LAZY);
- if (!ffmpeg) return 0;
-
- init = dlsym(ffmpeg, "dxr3_encoder_init");
- if (!init) return 0;
-
- result = init(drv);
- /* the close function is implemented here, because it will call dlclose()
- * and that should not be done be the library we are closing... */
- drv->enc->on_close = lavc_on_close;
- drv->enc->handle = ffmpeg;
- return result;
-}
-
-static int lavc_on_close(dxr3_driver_t *drv)
-{
- drv->enc->on_unneeded(drv);
- dlclose(drv->enc->handle);
- free(drv->enc);
- drv->enc = NULL;
- return 1;
-}
diff --git a/src/combined/ffmpeg/ffmpeg_encoder.c b/src/dxr3/ffmpeg_encoder.c
index f7401f6ab..d9ee921cc 100644
--- a/src/combined/ffmpeg/ffmpeg_encoder.c
+++ b/src/dxr3/ffmpeg_encoder.c
@@ -45,9 +45,6 @@
#define DEFAULT_BUFFER_SIZE 512*1024
-/*initialisation function, used by the dxr3 plugin */
-int dxr3_encoder_init(dxr3_driver_t *drv) EXPORTED;
-
/* functions required by encoder api */
static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame);
static int lavc_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame);
@@ -65,7 +62,7 @@ typedef struct lavc_data_s {
} lavc_data_t;
-int dxr3_encoder_init(dxr3_driver_t *drv)
+int dxr3_lavc_init(dxr3_driver_t *drv)
{
lavc_data_t* this;
avcodec_init();
@@ -83,6 +80,15 @@ int dxr3_encoder_init(dxr3_driver_t *drv)
this->context = 0;
drv->enc = &this->encoder_data;
+ drv->enc->on_close = dxr3_lavc_close;
+ return 1;
+}
+
+static int dxr3_lavc_close(dxr3_driver_t *drv) {
+ drv->enc->on_unneeded(drv);
+ free(drv->enc);
+ drv->enc = NULL;
+
return 1;
}
diff --git a/src/dxr3/video_out_dxr3.c b/src/dxr3/video_out_dxr3.c
index 5559f18ca..20cee345b 100644
--- a/src/dxr3/video_out_dxr3.c
+++ b/src/dxr3/video_out_dxr3.c
@@ -286,21 +286,8 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
#if LOG_VID
printf("video_out_dxr3: Supported mpeg encoders: ");
#endif
- /* check, if ffmpeg plugin is available by looking through plugin
- * catalog; catalog mutex is already locked here, since this is open_plugin() */
- node = NULL;
- plugin_list = class->xine->plugin_catalog->plugin_lists[PLUGIN_VIDEO_DECODER - 1];
- list_size = xine_sarray_size(plugin_list);
- for (list_id = 0; list_id < list_size; list_id++) {
- node = xine_sarray_get (plugin_list, list_id);
- if (strcasecmp(node->info->id, "ffmpegvideo") == 0) {
- available_encoders[encoder++] = "libavcodec";
-#if LOG_VID
- printf("libavcodec, ");
-#endif
- break;
- }
- }
+ available_encoders[encoder++] = "libavcodec";
+ printf("libavcodec, ");
#ifdef HAVE_LIBFAME
available_encoders[encoder++] = "fame";
#if LOG_VID