diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2003-01-11 19:06:52 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2003-01-11 19:06:52 +0000 |
commit | 847cbb1144eae8f185fdc47aaaf1a9e12bfc8de8 (patch) | |
tree | 269256e274f346dc6c5578e56fa983132eb412ba /src/xine-engine/load_plugins.c | |
parent | 330004fb3f8c479c9619436b15f76dce95e83cbf (diff) | |
download | xine-lib-847cbb1144eae8f185fdc47aaaf1a9e12bfc8de8.tar.gz xine-lib-847cbb1144eae8f185fdc47aaaf1a9e12bfc8de8.tar.bz2 |
introducing a new, very low-impact aproach on implementing a video processing api
CVS patchset: 3875
CVS date: 2003/01/11 19:06:52
Diffstat (limited to 'src/xine-engine/load_plugins.c')
-rw-r--r-- | src/xine-engine/load_plugins.c | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index 1e4542b7b..1357a5aa6 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: load_plugins.c,v 1.130 2003/01/08 01:02:32 miguelfreitas Exp $ + * $Id: load_plugins.c,v 1.131 2003/01/11 19:06:52 guenter Exp $ * * * Load input/demux/audio_out/video_out/codec plugins @@ -1251,7 +1251,44 @@ xine_video_port_t *xine_open_video_driver (xine_t *this, return NULL; } - port = vo_new_port(this, driver); + port = vo_new_port(this, driver, 0); + + return port; +} + +xine_video_port_t *xine_new_framegrab_video_port (xine_t *this) { + + plugin_node_t *node; + vo_driver_t *driver; + xine_video_port_t *port; + vo_info_t *vo_info; + plugin_catalog_t *catalog = this->plugin_catalog; + char *id; + + driver = NULL; + id = "none"; + + pthread_mutex_lock (&catalog->lock); + + node = xine_list_first_content (catalog->vout); + while (node) { + + vo_info = node->info->special_info; + if (!strcasecmp (node->info->id, id)) { + driver = _load_video_driver (this, node, NULL); + break; + } + node = xine_list_next_content (catalog->vout); + } + + pthread_mutex_unlock (&catalog->lock); + + if (!driver) { + printf ("load_plugins: failed to load video output plugin <%s>\n", id); + return NULL; + } + + port = vo_new_port(this, driver, 1); return port; } @@ -1392,7 +1429,16 @@ xine_audio_port_t *xine_open_audio_driver (xine_t *this, const char *id, return NULL; } - port = ao_new_port(this, driver); + port = ao_new_port(this, driver, 0); + + return port; +} + +xine_audio_port_t *xine_new_framegrab_audio_port (xine_t *this) { + + xine_audio_port_t *port; + + port = ao_new_port (this, NULL, 1); return port; } |