mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-08 21:28:45 +00:00
Original commit message from CVS: * 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).
This commit is contained in:
parent
6532344da9
commit
d1fc8e9747
4 changed files with 70 additions and 8 deletions
27
ChangeLog
27
ChangeLog
|
@ -1,3 +1,30 @@
|
||||||
|
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>
|
2005-01-28 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
||||||
* gst/matroska/matroska-demux.c:
|
* gst/matroska/matroska-demux.c:
|
||||||
|
|
11
configure.ac
11
configure.ac
|
@ -778,6 +778,16 @@ GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
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 *** arts ***
|
||||||
dnl if mcopidl can't be found there's no use in compiling it
|
dnl if mcopidl can't be found there's no use in compiling it
|
||||||
AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
|
AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
|
||||||
|
@ -2021,6 +2031,7 @@ ext/Makefile
|
||||||
ext/a52dec/Makefile
|
ext/a52dec/Makefile
|
||||||
ext/aalib/Makefile
|
ext/aalib/Makefile
|
||||||
ext/alsa/Makefile
|
ext/alsa/Makefile
|
||||||
|
ext/amrnb/Makefile
|
||||||
ext/arts/Makefile
|
ext/arts/Makefile
|
||||||
ext/artsd/Makefile
|
ext/artsd/Makefile
|
||||||
ext/audiofile/Makefile
|
ext/audiofile/Makefile
|
||||||
|
|
|
@ -16,6 +16,12 @@ else
|
||||||
ALSA_DIR=
|
ALSA_DIR=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if USE_AMRNB
|
||||||
|
AMRNB_DIR=amrnb
|
||||||
|
else
|
||||||
|
AMRNB=
|
||||||
|
endif
|
||||||
|
|
||||||
if USE_ARTS
|
if USE_ARTS
|
||||||
ARTS_DIR=arts
|
ARTS_DIR=arts
|
||||||
else
|
else
|
||||||
|
@ -398,6 +404,8 @@ SUBDIRS=\
|
||||||
$(A52DEC_DIR) \
|
$(A52DEC_DIR) \
|
||||||
$(AALIB_DIR) \
|
$(AALIB_DIR) \
|
||||||
$(ALSA_DIR) \
|
$(ALSA_DIR) \
|
||||||
|
$(AMRNB_DIR) \
|
||||||
|
$(AMRWB_DIR) \
|
||||||
$(ARTS_DIR) \
|
$(ARTS_DIR) \
|
||||||
$(ARTSC_DIR) \
|
$(ARTSC_DIR) \
|
||||||
$(AUDIOFILE_DIR) \
|
$(AUDIOFILE_DIR) \
|
||||||
|
@ -464,6 +472,7 @@ DIST_SUBDIRS=\
|
||||||
a52dec \
|
a52dec \
|
||||||
aalib \
|
aalib \
|
||||||
alsa \
|
alsa \
|
||||||
|
amrnb \
|
||||||
arts \
|
arts \
|
||||||
artsd \
|
artsd \
|
||||||
audiofile \
|
audiofile \
|
||||||
|
|
|
@ -78,6 +78,7 @@ struct _QtDemuxStream
|
||||||
{
|
{
|
||||||
guint32 subtype;
|
guint32 subtype;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
guint32 fourcc;
|
||||||
GstPad *pad;
|
GstPad *pad;
|
||||||
int n_samples;
|
int n_samples;
|
||||||
QtDemuxSample *samples;
|
QtDemuxSample *samples;
|
||||||
|
@ -770,11 +771,14 @@ gst_qtdemux_loop_header (GstElement * element)
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_BUFFER_TIMESTAMP (buf) =
|
/* timestamps of AMR aren't known... */
|
||||||
stream->samples[stream->sample_index].timestamp;
|
if (stream->fourcc != GST_MAKE_FOURCC ('s', 'a', 'm', 'r')) {
|
||||||
qtdemux->last_ts = GST_BUFFER_TIMESTAMP (buf);
|
GST_BUFFER_TIMESTAMP (buf) =
|
||||||
GST_BUFFER_DURATION (buf) =
|
stream->samples[stream->sample_index].timestamp;
|
||||||
stream->samples[stream->sample_index].duration;
|
qtdemux->last_ts = GST_BUFFER_TIMESTAMP (buf);
|
||||||
|
GST_BUFFER_DURATION (buf) =
|
||||||
|
stream->samples[stream->sample_index].duration;
|
||||||
|
}
|
||||||
if (qtdemux->need_flush) {
|
if (qtdemux->need_flush) {
|
||||||
gst_pad_event_default (qtdemux->sinkpad,
|
gst_pad_event_default (qtdemux->sinkpad,
|
||||||
gst_event_new (GST_EVENT_FLUSH));
|
gst_event_new (GST_EVENT_FLUSH));
|
||||||
|
@ -2022,7 +2026,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
||||||
GST_LOG ("frame count: %u",
|
GST_LOG ("frame count: %u",
|
||||||
QTDEMUX_GUINT16_GET (stsd->data + offset + 48));
|
QTDEMUX_GUINT16_GET (stsd->data + offset + 48));
|
||||||
|
|
||||||
fourcc = QTDEMUX_FOURCC_GET (stsd->data + offset + 4);
|
stream->fourcc = fourcc = QTDEMUX_FOURCC_GET (stsd->data + offset + 4);
|
||||||
stream->caps = qtdemux_video_caps (qtdemux, fourcc, stsd->data);
|
stream->caps = qtdemux_video_caps (qtdemux, fourcc, stsd->data);
|
||||||
|
|
||||||
esds = NULL;
|
esds = NULL;
|
||||||
|
@ -2050,9 +2054,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
||||||
GST_LOG ("st type: " GST_FOURCC_FORMAT,
|
GST_LOG ("st type: " GST_FOURCC_FORMAT,
|
||||||
GST_FOURCC_ARGS (QTDEMUX_FOURCC_GET (stsd->data + 16 + 4)));
|
GST_FOURCC_ARGS (QTDEMUX_FOURCC_GET (stsd->data + 16 + 4)));
|
||||||
|
|
||||||
fourcc = QTDEMUX_FOURCC_GET (stsd->data + 16 + 4);
|
stream->fourcc = fourcc = QTDEMUX_FOURCC_GET (stsd->data + 16 + 4);
|
||||||
|
|
||||||
offset = 32;
|
offset = 32;
|
||||||
|
|
||||||
GST_LOG ("version/rev: %08x",
|
GST_LOG ("version/rev: %08x",
|
||||||
QTDEMUX_GUINT32_GET (stsd->data + offset));
|
QTDEMUX_GUINT32_GET (stsd->data + offset));
|
||||||
version = QTDEMUX_GUINT32_GET (stsd->data + offset);
|
version = QTDEMUX_GUINT32_GET (stsd->data + offset);
|
||||||
|
@ -2098,6 +2102,17 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
||||||
stream->compression = 3;
|
stream->compression = 3;
|
||||||
if (fourcc == GST_MAKE_FOURCC ('i', 'm', 'a', '4'))
|
if (fourcc == GST_MAKE_FOURCC ('i', 'm', 'a', '4'))
|
||||||
stream->compression = 4;
|
stream->compression = 4;
|
||||||
|
if (fourcc == GST_MAKE_FOURCC ('s', 'a', 'm', 'r')) {
|
||||||
|
stream->n_channels = 1;
|
||||||
|
stream->rate = 8000;
|
||||||
|
stream->bytes_per_frame <<= 3;
|
||||||
|
}
|
||||||
|
if (fourcc == GST_MAKE_FOURCC ('u', 'l', 'a', 'w'))
|
||||||
|
stream->compression = 2;
|
||||||
|
if (fourcc == GST_MAKE_FOURCC ('a', 'g', 's', 'm')) {
|
||||||
|
stream->bytes_per_frame *= 33;
|
||||||
|
stream->compression = 320;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
GST_ERROR ("unknown version %08x", version);
|
GST_ERROR ("unknown version %08x", version);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue