From 1a39f60d9f9fa8ad7b664787f162f9fa7e616957 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 13 Jun 2008 18:03:16 +0000 Subject: gst/real/gstrealaudiodec.c: Add raversions we can support on the caps. Original commit message from CVS: * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain), (close_library), (open_library), (gst_real_audio_dec_probe_modules), (gst_real_audio_dec_getcaps), (gst_real_audio_dec_setcaps), (gst_real_audio_dec_init), (gst_real_audio_dec_change_state), (gst_real_audio_dec_finalize): Add raversions we can support on the caps. Refactor the loading of the real codecs like realvideo so that we can implement probing. Probe all supported formats by trying to load the .so files, only report the versions on the caps that we can actually load. * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain), (gst_real_video_dec_getcaps), (gst_real_video_dec_setcaps), (open_library), (close_library), (gst_real_video_dec_probe_modules), (gst_real_video_dec_change_state), (gst_real_video_dec_init), (gst_real_video_dec_finalize), (gst_real_video_dec_class_init): * gst/real/gstrealvideodec.h: Change the loading of the library like the audio decoder. Probe the supported formats by trying to load the .so files and only report the versions on the caps that we can actually load. --- gst/real/gstrealvideodec.h | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'gst/real/gstrealvideodec.h') diff --git a/gst/real/gstrealvideodec.h b/gst/real/gstrealvideodec.h index d3ac5391..e80b6f46 100644 --- a/gst/real/gstrealvideodec.h +++ b/gst/real/gstrealvideodec.h @@ -35,11 +35,6 @@ typedef struct _GstRealVideoDec GstRealVideoDec; typedef struct _GstRealVideoDecClass GstRealVideoDecClass; typedef enum _GstRealVideoDecVersion GstRealVideoDecVersion; -typedef guint32 (*GstRealVideoDecMessageFunc) (gpointer, gpointer); -typedef guint32 (*GstRealVideoDecFreeFunc) (gpointer); -typedef guint32 (*GstRealVideoDecInitFunc) (gpointer, gpointer); -typedef guint32 (*GstRealVideoDecTransformFunc) (gchar *, gchar *, gpointer, gpointer, gpointer); - enum _GstRealVideoDecVersion { GST_REAL_VIDEO_DEC_VERSION_2 = 2, @@ -50,13 +45,21 @@ enum _GstRealVideoDecVersion typedef struct { GModule *module; + gpointer context; + + guint32 (*Init) (gpointer, gpointer); + guint32 (*Free) (gpointer); + guint32 (*Transform) (gchar *, gchar *, gpointer, gpointer, gpointer); + guint32 (*Message) (gpointer, gpointer); + + /* GstRealVideoDecMessageFunc custom_message; GstRealVideoDecFreeFunc free; GstRealVideoDecInitFunc init; GstRealVideoDecTransformFunc transform; + */ - gpointer context; -} GstRealVideoDecHooks; +} GstRVDecLibrary; struct _GstRealVideoDec { @@ -72,14 +75,18 @@ struct _GstRealVideoDec gint error_count; - /* Hooks */ - GstRealVideoDecHooks hooks; + /* Library functions */ + GstRVDecLibrary lib; /* Properties */ gchar *real_codecs_path; + gboolean checked_modules; gchar *rv20_names; + gboolean valid_rv20; gchar *rv30_names; + gboolean valid_rv30; gchar *rv40_names; + gboolean valid_rv40; gint max_errors; }; -- cgit v1.2.1