blob: 7ff78cee7526c5182c819857adfe17bae63d0706 [file] [log] [blame]
Wim Taymansc7839a62007-01-12 17:16:51 +00001/* 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
Tim-Philipp Müller230cf412012-11-04 00:07:18 +000018 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
Wim Taymansc7839a62007-01-12 17:16:51 +000020 */
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"
Tim-Philipp Müller4d780292011-04-13 11:25:11 +010029#include "gstqtmux.h"
30#include "gstqtmoovrecover.h"
Wim Taymansc7839a62007-01-12 17:16:51 +000031
Arun Raghavanc65305d2010-04-30 21:00:31 +053032#include <gst/pbutils/pbutils.h>
33
Wim Taymansc7839a62007-01-12 17:16:51 +000034static gboolean
35plugin_init (GstPlugin * plugin)
36{
37#ifdef ENABLE_NLS
Wim Taymansc7839a62007-01-12 17:16:51 +000038 bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
Tim-Philipp Müller21995922009-03-25 15:42:15 +000039 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
Wim Taymansc7839a62007-01-12 17:16:51 +000040#endif /* ENABLE_NLS */
41
Arun Raghavanc65305d2010-04-30 21:00:31 +053042 gst_pb_utils_init ();
43
Mark Nauwelaerts455e24c2009-01-05 11:42:09 +000044 /* ensure private tag is registered */
45 gst_tag_register (GST_QT_DEMUX_PRIVATE_TAG, GST_TAG_FLAG_META,
Mark Nauwelaertsdd254112012-07-27 12:05:44 +020046 GST_TYPE_SAMPLE, "QT atom", "unparsed QT tag atom",
Mark Nauwelaerts455e24c2009-01-05 11:42:09 +000047 gst_tag_merge_use_first);
48
Marco Ballesio94d5d242009-04-15 20:10:04 +030049 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
Wim Taymansc7839a62007-01-12 17:16:51 +000053 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
Tim-Philipp Müller4d780292011-04-13 11:25:11 +010061 if (!gst_qt_mux_register (plugin))
62 return FALSE;
63 if (!gst_qt_moov_recover_register (plugin))
64 return FALSE;
65
Wim Taymansc7839a62007-01-12 17:16:51 +000066 return TRUE;
67}
68
69GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
70 GST_VERSION_MINOR,
Sebastian Drögeaa2cd462012-04-05 17:36:38 +020071 isomp4,
Tim-Philipp Müllerc25bf5d2011-04-30 17:46:36 +010072 "ISO base media file format support (mp4, 3gpp, qt, mj2)",
Wim Taymansc7839a62007-01-12 17:16:51 +000073 plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);