mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 16:26:39 +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>
|
||||
|
||||
* 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 if mcopidl can't be found there's no use in compiling it
|
||||
AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
|
||||
|
@ -2021,6 +2031,7 @@ ext/Makefile
|
|||
ext/a52dec/Makefile
|
||||
ext/aalib/Makefile
|
||||
ext/alsa/Makefile
|
||||
ext/amrnb/Makefile
|
||||
ext/arts/Makefile
|
||||
ext/artsd/Makefile
|
||||
ext/audiofile/Makefile
|
||||
|
|
|
@ -16,6 +16,12 @@ else
|
|||
ALSA_DIR=
|
||||
endif
|
||||
|
||||
if USE_AMRNB
|
||||
AMRNB_DIR=amrnb
|
||||
else
|
||||
AMRNB=
|
||||
endif
|
||||
|
||||
if USE_ARTS
|
||||
ARTS_DIR=arts
|
||||
else
|
||||
|
@ -398,6 +404,8 @@ SUBDIRS=\
|
|||
$(A52DEC_DIR) \
|
||||
$(AALIB_DIR) \
|
||||
$(ALSA_DIR) \
|
||||
$(AMRNB_DIR) \
|
||||
$(AMRWB_DIR) \
|
||||
$(ARTS_DIR) \
|
||||
$(ARTSC_DIR) \
|
||||
$(AUDIOFILE_DIR) \
|
||||
|
@ -464,6 +472,7 @@ DIST_SUBDIRS=\
|
|||
a52dec \
|
||||
aalib \
|
||||
alsa \
|
||||
amrnb \
|
||||
arts \
|
||||
artsd \
|
||||
audiofile \
|
||||
|
|
|
@ -78,6 +78,7 @@ struct _QtDemuxStream
|
|||
{
|
||||
guint32 subtype;
|
||||
GstCaps *caps;
|
||||
guint32 fourcc;
|
||||
GstPad *pad;
|
||||
int n_samples;
|
||||
QtDemuxSample *samples;
|
||||
|
@ -770,11 +771,14 @@ gst_qtdemux_loop_header (GstElement * element)
|
|||
*/
|
||||
}
|
||||
|
||||
GST_BUFFER_TIMESTAMP (buf) =
|
||||
stream->samples[stream->sample_index].timestamp;
|
||||
qtdemux->last_ts = GST_BUFFER_TIMESTAMP (buf);
|
||||
GST_BUFFER_DURATION (buf) =
|
||||
stream->samples[stream->sample_index].duration;
|
||||
/* timestamps of AMR aren't known... */
|
||||
if (stream->fourcc != GST_MAKE_FOURCC ('s', 'a', 'm', 'r')) {
|
||||
GST_BUFFER_TIMESTAMP (buf) =
|
||||
stream->samples[stream->sample_index].timestamp;
|
||||
qtdemux->last_ts = GST_BUFFER_TIMESTAMP (buf);
|
||||
GST_BUFFER_DURATION (buf) =
|
||||
stream->samples[stream->sample_index].duration;
|
||||
}
|
||||
if (qtdemux->need_flush) {
|
||||
gst_pad_event_default (qtdemux->sinkpad,
|
||||
gst_event_new (GST_EVENT_FLUSH));
|
||||
|
@ -2022,7 +2026,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
GST_LOG ("frame count: %u",
|
||||
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);
|
||||
|
||||
esds = NULL;
|
||||
|
@ -2050,9 +2054,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
GST_LOG ("st type: " GST_FOURCC_FORMAT,
|
||||
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;
|
||||
|
||||
GST_LOG ("version/rev: %08x",
|
||||
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;
|
||||
if (fourcc == GST_MAKE_FOURCC ('i', 'm', 'a', '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 {
|
||||
GST_ERROR ("unknown version %08x", version);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue