gstffmpeg.c 2.14 KB
Newer Older
Andy Wingo Wingo's avatar
Andy Wingo Wingo committed
1
/* GStreamer
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
 * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library 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
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

/* First, include the header file for the plugin, to bring in the
 * object definition and other useful things.
 */
23

24
#ifdef HAVE_CONFIG_H
25
#include "config.h"
26
#endif
27
#include <gst/gst.h>
28 29 30 31 32 33 34
#ifdef HAVE_FFMPEG_UNINSTALLED
#include <avcodec.h>
#include <avformat.h>
#else
#include <ffmpeg/avcodec.h>
#include <ffmpeg/avformat.h>
#endif
35

Thomas Vander Stichele's avatar
indent  
Thomas Vander Stichele committed
36 37 38 39 40 41
extern gboolean gst_ffmpegdemux_register (GstPlugin * plugin);
extern gboolean gst_ffmpegdec_register (GstPlugin * plugin);
extern gboolean gst_ffmpegenc_register (GstPlugin * plugin);
extern gboolean gst_ffmpegmux_register (GstPlugin * plugin);
extern gboolean gst_ffmpegcsp_register (GstPlugin * plugin);

42
extern URLProtocol gstreamer_protocol;
43 44

static gboolean
Thomas Vander Stichele's avatar
indent  
Thomas Vander Stichele committed
45
plugin_init (GstPlugin * plugin)
46
{
47 48 49
  if (!gst_library_load ("gstbytestream"))
    return FALSE;

50 51
  avcodec_init ();
  avcodec_register_all ();
52 53
  av_register_all ();

54 55
  gst_ffmpegenc_register (plugin);
  gst_ffmpegdec_register (plugin);
56
  gst_ffmpegdemux_register (plugin);
Thomas Vander Stichele's avatar
indent  
Thomas Vander Stichele committed
57
  /*gst_ffmpegmux_register (plugin); */
58
  gst_ffmpegcsp_register (plugin);
59

60
  register_protocol (&gstreamer_protocol);
61 62 63 64 65

  /* Now we can return the pointer to the newly created Plugin object. */
  return TRUE;
}

Thomas Vander Stichele's avatar
indent  
Thomas Vander Stichele committed
66 67 68 69 70 71
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
    GST_VERSION_MINOR,
    "ffmpeg",
    "All FFMPEG codecs",
    plugin_init,
    FFMPEG_VERSION, "LGPL", "FFMpeg", "http://ffmpeg.sourceforge.net/")