2005-01-28 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+ * configure.ac:
+ * ext/Makefile.am:
+ * ext/amrnb/Makefile.am:
+ * ext/amrnb/amrnb.c: (plugin_init):
+ * ext/amrnb/amrnbdec.c: (gst_amrnbdec_get_type),
+ (gst_amrnbdec_base_init), (gst_amrnbdec_class_init),
+ (gst_amrnbdec_init), (gst_amrnbdec_link), (gst_amrnbdec_chain),
+ (gst_amrnbdec_state_change):
+ * ext/amrnb/amrnbdec.h:
+ * ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type),
+ (gst_amrnbparse_base_init), (gst_amrnbparse_class_init),
+ (gst_amrnbparse_init), (gst_amrnbparse_formats),
+ (gst_amrnbparse_querytypes), (gst_amrnbparse_query),
+ (gst_amrnbparse_handle_event), (gst_amrnbparse_reserve),
+ (gst_amrnbparse_loop), (gst_amrnbparse_state_change):
+ * ext/amrnb/amrnbparse.h:
+ Add support for AMR-NB (mobile phone audio format; #155163, #163286).
+ * gst/typefind/gsttypefindfunctions.c: (plugin_init):
+ Add AMR-NB/-WB raw formats.
+ * ext/alsa/gstalsa.c: (gst_alsa_link):
+ Keep valid time when changing format.
+ * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
+ (qtdemux_parse_trak):
+ Add some more format-specific options (#140141, #143555, #155163).
+
+2005-01-28 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_blockgroup):
Fix logic error in timing of subtitle stream synchronization.
])
])
+dnl *** AMR-NB ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_AMRNB, true)
+GST_CHECK_FEATURE(AMRNB, [AMR-NB], amrnbdec amrnbenc, [
+ GST_CHECK_LIBHEADER(AMRNB, amrnb,
+ Decoder_Interface_init, -lm,
+ amrnb/interf_dec.h,
+ AMRNB_LIBS="-lamrnb -lm"
+ AC_SUBST(AMRNB_LIBS))
+])
+
dnl *** arts ***
dnl if mcopidl can't be found there's no use in compiling it
AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
ext/a52dec/Makefile
ext/aalib/Makefile
ext/alsa/Makefile
+ext/amrnb/Makefile
ext/arts/Makefile
ext/artsd/Makefile
ext/audiofile/Makefile
ALSA_DIR=
endif
+if USE_AMRNB
+AMRNB_DIR=amrnb
+else
+AMRNB=
+endif
+
if USE_ARTS
ARTS_DIR=arts
else
$(A52DEC_DIR) \
$(AALIB_DIR) \
$(ALSA_DIR) \
+ $(AMRNB_DIR) \
+ $(AMRWB_DIR) \
$(ARTS_DIR) \
$(ARTSC_DIR) \
$(AUDIOFILE_DIR) \
a52dec \
aalib \
alsa \
+ amrnb \
arts \
artsd \
audiofile \
GstAlsa *this;
GstAlsaFormat *format;
GstPadLinkReturn ret;
+ gint old_rate = 0;
g_return_val_if_fail (caps != NULL, GST_PAD_LINK_REFUSED);
g_return_val_if_fail (pad != NULL, GST_PAD_LINK_REFUSED);
/* sync the params */
if (GST_FLAG_IS_SET (this, GST_ALSA_RUNNING))
gst_alsa_stop_audio (this);
+ if (this->format)
+ old_rate = this->format->rate;
g_free (this->format);
this->format = format;
+ if (this->played && old_rate)
+ this->played = this->played * this->format->rate / old_rate;
if (!gst_alsa_start_audio (this)) {
GST_ELEMENT_ERROR (this, RESOURCE, SETTINGS, (NULL), (NULL));
return GST_PAD_LINK_REFUSED;
static gchar *tiff_exts[] = { "tif", "tiff", NULL };
static gchar *matroska_exts[] = { "mkv", "mka", NULL };
static gchar *dv_exts[] = { "dv", "dif", NULL };
+ static gchar *amr_exts[] = { "amr", NULL };
static gchar *sid_exts[] = { "sid", NULL };
static gchar *xcf_exts[] = { "xcf", NULL };
static gchar *mng_exts[] = { "mng", NULL };
matroska_type_find, matroska_exts, MATROSKA_CAPS, NULL);
TYPE_FIND_REGISTER (plugin, "video/x-dv", GST_RANK_SECONDARY, dv_type_find,
dv_exts, DV_CAPS, NULL);
+ TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-amr-nb-sh", GST_RANK_PRIMARY,
+ amr_exts, "#!AMR", 5, GST_TYPE_FIND_LIKELY);
+ TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-amr-wb-sh", GST_RANK_PRIMARY,
+ amr_exts, "#!AMR-WB", 7, GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-sid", GST_RANK_MARGINAL,
sid_exts, "PSID", 4, GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER_START_WITH (plugin, "image/x-xcf", GST_RANK_SECONDARY,