1 /* GStreamer
2 * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
3 * Copyright (C) <2003> David A. Schleef <ds@schleef.org>
4 * Copyright (C) <2006> Wim Taymans <wim@fluendo.com>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20 */
21
22 #ifdef HAVE_CONFIG_H
23 #include "config.h"
24 #endif
25 #include "gst/gst-i18n-plugin.h"
26
27 #include "qtdemux.h"
28 #include "gstrtpxqtdepay.h"
29 #include "gstqtmux.h"
30 #include "gstqtmoovrecover.h"
31
32 #include <gst/pbutils/pbutils.h>
33
34 static gboolean
plugin_init(GstPlugin * plugin)35 plugin_init (GstPlugin * plugin)
36 {
37 #ifdef ENABLE_NLS
38 bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
39 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
40 #endif /* ENABLE_NLS */
41
42 gst_pb_utils_init ();
43
44 /* ensure private tag is registered */
45 gst_tag_register (GST_QT_DEMUX_PRIVATE_TAG, GST_TAG_FLAG_META,
46 GST_TYPE_SAMPLE, "QT atom", "unparsed QT tag atom",
47 gst_tag_merge_use_first);
48
49 gst_tag_register (GST_QT_DEMUX_CLASSIFICATION_TAG, GST_TAG_FLAG_META,
50 G_TYPE_STRING, GST_QT_DEMUX_CLASSIFICATION_TAG, "content classification",
51 gst_tag_merge_use_first);
52
53 if (!gst_element_register (plugin, "qtdemux",
54 GST_RANK_PRIMARY, GST_TYPE_QTDEMUX))
55 return FALSE;
56
57 if (!gst_element_register (plugin, "rtpxqtdepay",
58 GST_RANK_MARGINAL, GST_TYPE_RTP_XQT_DEPAY))
59 return FALSE;
60
61 if (!gst_qt_mux_register (plugin))
62 return FALSE;
63 if (!gst_qt_moov_recover_register (plugin))
64 return FALSE;
65
66 return TRUE;
67 }
68
69 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
70 GST_VERSION_MINOR,
71 isomp4,
72 "ISO base media file format support (mp4, 3gpp, qt, mj2)",
73 plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
74