Commit graph

3589 commits

Author SHA1 Message Date
Sebastian Dröge
ef8649e92e gst/flv/gstflvparse.c: Correct caps for video codec id 5: It's On2 VP6 with alpha channel which needs a different dec...
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate),
(gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate):
Correct caps for video codec id 5: It's On2 VP6 with alpha channel
which needs a different decoder and has different caps.
Add support for audio codec id 14, which is MP3 with 8kHz sampling
rate.
Fix endianness and signedness for raw audio codec ids.
Add support for alaw and mulaw audio.
2008-10-09 10:00:51 +00:00
Sebastian Dröge
9f3b48a495 gst/flv/gstflvdemux.c: Go out of the parse loop as soon as we get an error instead of parsing until the GstAdapter is...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_chain):
Go out of the parse loop as soon as we get an error instead
of parsing until the GstAdapter is empty.
Add some explanations about the header and tag size.
Don't print synchronizing message if everything is fine.
2008-10-09 09:48:46 +00:00
Sebastian Dröge
0b42844a3c gst/flv/: Add first version of a FLV muxer. The only missing feature is writing of stream metadata.
Original commit message from CVS:
* gst/flv/Makefile.am:
* gst/flv/gstflvdemux.c: (plugin_init):
* gst/flv/gstflvmux.c: (gst_flv_mux_base_init),
(gst_flv_mux_class_init), (gst_flv_mux_init),
(gst_flv_mux_finalize), (gst_flv_mux_reset),
(gst_flv_mux_handle_src_event), (gst_flv_mux_handle_sink_event),
(gst_flv_mux_video_pad_setcaps), (gst_flv_mux_audio_pad_setcaps),
(gst_flv_mux_request_new_pad), (gst_flv_mux_release_pad),
(gst_flv_mux_write_header), (gst_flv_mux_write_buffer),
(gst_flv_mux_collected), (gst_flv_mux_change_state):
* gst/flv/gstflvmux.h:
Add first version of a FLV muxer. The only missing feature is writing
of stream metadata.
2008-10-09 09:26:58 +00:00
Stefan Kost
815d2620ac ext/amrwb/gstamrwbparse.*: Add flush seek handler. Taken from recent armnbparse changes.
Original commit message from CVS:
* ext/amrwb/gstamrwbparse.c:
* ext/amrwb/gstamrwbparse.h:
Add flush seek handler. Taken from recent armnbparse changes.
Sync the code more and use #defines for HEADER.
2008-10-09 09:21:44 +00:00
Stefan Kost
9335055068 ext/amrwb/gstamrwbparse.*: Fix the duration query. Also set caps on the pads and buffers more correctly. Taken from r...
Original commit message from CVS:
* ext/amrwb/gstamrwbparse.c:
* ext/amrwb/gstamrwbparse.h:
Fix the duration query. Also set caps on the pads and buffers more
correctly. Taken from recent armnbparse changes.
2008-10-09 08:43:41 +00:00
Zaheer Abbas Merali
2dde2ebecc gst/mpegdemux/: Add Fluendo to the Long Name.
Original commit message from CVS:
* gst/mpegdemux/gstmpegdemux.c:
* gst/mpegdemux/gstmpegtsdemux.c:
Add Fluendo to the Long Name.
2008-10-08 16:20:26 +00:00
Zaheer Abbas Merali
f6aeac7868 Move of mpegtsparse to mpegdemux.
Original commit message from CVS:
* configure.ac:
* gst-plugins-bad.spec.in:
* gst/mpegdemux/Makefile.am:
* gst/mpegdemux/flumpegdemux.c:
* gst/mpegdemux/gstmpegdesc.c:
* gst/mpegdemux/gstmpegdesc.h:
* gst/mpegdemux/mpegtspacketizer.c:
* gst/mpegdemux/mpegtspacketizer.h:
* gst/mpegdemux/mpegtsparse.c:
* gst/mpegdemux/mpegtsparse.h:
Move of mpegtsparse to mpegdemux.
Fixes #555193.
2008-10-08 15:25:24 +00:00
Sebastian Dröge
453b704a09 gst/mpegdemux/gstmpegdemux.c: Prevent a division by zero if last mux rate was zero.
Original commit message from CVS:
* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data),
(gst_flups_demux_parse_pack_start):
Prevent a division by zero if last mux rate was zero.
If we're going to send a NEWSEGMENT event but the segment start
and the current buffer timestamp differ by more than a second we
will start the NEWSEGMENT at the buffer timestamp.
This fixes playback of the tv2-1_25.mpg file, which has 0 as first SCR
but the first PTS are around 1 hour and 40 minutes.
Fixes bug #553755.
2008-10-08 10:21:20 +00:00
Jan Schmidt
a1b977dc8b ext/resindvd/resindvdsrc.c: Fix next/prev chapter seeking at the beginning or end.
Original commit message from CVS:
* ext/resindvd/resindvdsrc.c:
Fix next/prev chapter seeking at the beginning or end.
Use 64-bit scaling utility functions for converting MPEG
timestamps.
2008-10-07 21:29:26 +00:00
Håvard Graff
b398d611a4 gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal.
Original commit message from CVS:
Patch by: Håvard Graff <havard dot graff at tandberg dot com>
* gst/rtpmanager/gstrtpbin-marshal.list:
Add marshaller for new action signal.
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_internal_session),
(gst_rtp_bin_class_init):
* gst/rtpmanager/gstrtpbin.h:
Add action signal to retrieve the internal RTPSession object.
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(gst_rtp_session_get_property), (gst_rtp_session_release_pad):
Add property to access the internal RTPSession object.
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(check_collision):
* gst/rtpmanager/rtpsession.h:
Add action signal to retrieve an RTPSource object by SSRC.
See #555396.
2008-10-07 18:54:41 +00:00
Stefan Kost
ae65d3945b gst/selector/gstoutputselector.c: Choose right pad for sending events. Fixes #555244
Original commit message from CVS:
* gst/selector/gstoutputselector.c:
Choose right pad for sending events. Fixes #555244
2008-10-07 13:14:40 +00:00
Wim Taymans
dbc5475c97 gst/rtpmanager/gstrtpbin.c: Release pads of the session manager.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (find_session_by_pad),
(free_session), (gst_rtp_bin_dispose), (remove_recv_rtp),
(remove_recv_rtcp), (remove_send_rtp), (remove_rtcp),
(gst_rtp_bin_release_pad):
Release pads of the session manager.
Start implementing releasing pads of gstrtpbin.
* gst/rtpmanager/gstrtpsession.c: (remove_recv_rtp_sink),
(remove_recv_rtcp_sink), (remove_send_rtp_sink),
(remove_send_rtcp_src), (gst_rtp_session_release_pad):
Implement releasing pads in gstrtpsession.
2008-10-07 11:33:10 +00:00
Wim Taymans
be12e7d67c gst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was not already configured for the streams.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps):
Only update the seqnum-base when it was not already configured for the
streams.
2008-10-07 10:02:20 +00:00
Stefan Kost
87c7a4648b configure.ac
Original commit message from CVS:
* configure.ac
* ext/metadata/README:
* ext/metadata/metadataexif.c:
* ext/metadata/metadatatags.c:
* ext/metadata/metadatatags.h:
Start using core geo tags (bump req). Fix handling of location
references.
* tests/check/Makefile.am:
Sort blacklisted elements and remove moved ones. Add new test.
* tests/check/pipelines/metadata.c:
Add first tests for metadata element.
* tests/icles/metadata_editor.c:
Move free to correct place.
2008-10-06 16:01:49 +00:00
Stefan Kost
11450de677 tests/check/generic/states.c: Stop test on state-change error. Should be applied on other modules if we agree that it...
Original commit message from CVS:
* tests/check/generic/states.c:
Stop test on state-change error. Should be applied on other modules if
we agree that it makes sense.
2008-10-06 15:53:01 +00:00
Zaheer Abbas Merali
c3e91e1a88 gst/mpegtsparse/mpegtsparse.c: Actually copy the structure passed in when assigning it because it gets freed straight...
Original commit message from CVS:
* gst/mpegtsparse/mpegtsparse.c:
Actually copy the structure passed in when assigning it because
it gets freed straight after the function call.
Re: pat_info and pmt_info GstStructures.
2008-10-06 12:01:14 +00:00
Zaheer Abbas Merali
478417da1a gst/mpegdemux/gstmpegtsdemux.c: Fix wrong firing of critical introduced by previous optimisation.
Original commit message from CVS:
Patch by: Josep Torra
* gst/mpegdemux/gstmpegtsdemux.c:
Fix wrong firing of critical introduced by previous optimisation.
2008-10-06 08:32:41 +00:00
Wim Taymans
db433443c9 ext/faac/gstfaac.c: Warn and clamp to max bitrate for samplerate.
Original commit message from CVS:
* ext/faac/gstfaac.c: (gst_faac_configure_source_pad):
Warn and clamp to max bitrate for samplerate.
Fixes #550486.
2008-10-03 17:11:12 +00:00
Zaheer Abbas Merali
67030c152b gst/mpegtsparse/mpegtsparse.c: Fix possible crash where pat is pointing to a freed structure.
Original commit message from CVS:
* gst/mpegtsparse/mpegtsparse.c:
Fix possible crash where pat is pointing to a freed structure.
2008-10-03 09:11:16 +00:00
Stefan Kost
2d9d036a18 ext/metadata/: Add mapping of format and mime type to xmp.
Original commit message from CVS:
* ext/metadata/metadata_mapping.htm:
* ext/metadata/metadataxmp.c:
* ext/metadata/Makefile.am:
Add mapping of format and mime type to xmp.
2008-10-03 05:57:58 +00:00
Stefan Kost
df0bfbca26 ext/metadata/: Reverting. Will need to wait for core 0.10.21 release.
Original commit message from CVS:
* ext/metadata/README:
* ext/metadata/metadataexif.c:
* ext/metadata/metadatatags.c:
* ext/metadata/metadatatags.h:
Reverting. Will need to wait for core 0.10.21 release.
2008-10-02 14:42:25 +00:00
Stefan Kost
1d13e695f6 ext/metadata/: Use core gsp tags.
Original commit message from CVS:
* ext/metadata/README:
* ext/metadata/metadataexif.c:
* ext/metadata/metadatatags.c:
* ext/metadata/metadatatags.h:
Use core gsp tags.
2008-10-02 13:52:50 +00:00
Sebastian Dröge
45738112d4 gst/flacparse/gstbaseparse.c: Add support for GstIndex.
Original commit message from CVS:
* gst/flacparse/gstbaseparse.c: (gst_base_parse_finalize),
(gst_base_parse_class_init), (gst_base_parse_push_buffer),
(gst_base_parse_change_state), (gst_base_parse_set_index),
(gst_base_parse_get_index):
Add support for GstIndex.
2008-09-30 17:03:14 +00:00
Sebastian Dröge
3070e9bdec gst/flacparse/gstbaseparse.*: Provide a vfunc for the subclass to decide whether a frame is inside the segment or not...
Original commit message from CVS:
* gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init),
(gst_base_parse_push_buffer),
(gst_base_parse_update_upstream_durations),
(gst_base_parse_convert), (gst_base_parse_frame_in_segment):
* gst/flacparse/gstbaseparse.h:
Provide a vfunc for the subclass to decide whether a frame is inside
the segment or not and add a default implementation.
Fix approximate bitrate calculations.
2008-09-30 16:41:15 +00:00
Sebastian Dröge
5bd9d5cd17 gst/flacparse/gstbaseparse.c: Approximate the average bitrate, duration and size if possible and add a default conver...
Original commit message from CVS:
* gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init),
(gst_base_parse_init), (gst_base_parse_push_buffer),
(gst_base_parse_update_upstream_durations), (gst_base_parse_chain),
(gst_base_parse_loop), (gst_base_parse_activate),
(gst_base_parse_convert), (gst_base_parse_query):
Approximate the average bitrate, duration and size if possible
and add a default conversion function which uses this for
time<->byte conversions.
* gst/flacparse/gstflacparse.c: (gst_flac_parse_get_frame_size):
Fix parsing if upstream gives -1 as duration.
2008-09-30 16:22:04 +00:00
Wim Taymans
aaee1a3d42 gst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the session lock when we emit the signals.
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
(on_ssrc_validated), (on_ssrc_active), (on_ssrc_sdes),
(on_bye_ssrc), (on_bye_timeout), (on_timeout), (on_sender_timeout):
Ref the rtpsource object before we release the session lock when we emit
the signals.
2008-09-30 15:08:52 +00:00
Ole André Vadla Ravnås
69fad589ac sys/: New plugin for audio capture and playback using Windows Audio Session
Original commit message from CVS:
* sys/Makefile.am:
* sys/wasapi/Makefile.am:
* sys/wasapi/gstwasapi.c:
* sys/wasapi/gstwasapisink.c:
* sys/wasapi/gstwasapisink.h:
* sys/wasapi/gstwasapisrc.c:
* sys/wasapi/gstwasapisrc.h:
* sys/wasapi/gstwasapiutil.c:
* sys/wasapi/gstwasapiutil.h:
New plugin for audio capture and playback using Windows Audio Session
API (WASAPI) available with Vista and newer (#520901).
Comes with hardcoded caps and obviously needs lots of love. Haven't
had time to work on this code since it was written, was initially just
a quick experiment to play around with this new API.
2008-09-30 11:19:10 +00:00
Ole André Vadla Ravnås
34a993ef50 sys/dshowdecwrapper/gstdshowaudiodec.cpp
Original commit message from CVS:
* sys/dshowdecwrapper/gstdshowaudiodec.cpp
(AudioFakeSink.DoRenderSample):
Fix a couple of signed/unsigned comparison warnings.
2008-09-30 10:43:54 +00:00
Ole André Vadla Ravnås
b8b5a842c1 sys/dshowdecwrapper/: Use the _T() macro to support both Unicode and MBCS.
Original commit message from CVS:
* sys/dshowdecwrapper/gstdshowaudiodec.h (AudioFakeSink.AudioFakeSink):
* sys/dshowdecwrapper/gstdshowvideodec.h (VideoFakeSink.VideoFakeSink):
Use the _T() macro to support both Unicode and MBCS.
2008-09-30 10:22:10 +00:00
Ole André Vadla Ravnås
1882ecba12 ext/libmms/gstmms.c (plugin_init): Fix return type of the GstURIHandler::get_type() implementation.
Original commit message from CVS:
* ext/libmms/gstmms.c (plugin_init):
Fix return type of the GstURIHandler::get_type() implementation.
2008-09-30 10:17:41 +00:00
Sebastian Dröge
ba0a1f60ed Add FLAC parser, based on GstBaseParse. Also add the bit and byte reader that will be added to libgstbase later.
Original commit message from CVS:
* configure.ac:
* gst/flacparse/Makefile.am:
* gst/flacparse/gstbaseparse.c: (gst_base_parse_get_type),
(gst_base_parse_base_init), (gst_base_parse_base_finalize),
(gst_base_parse_finalize), (gst_base_parse_class_init),
(gst_base_parse_init), (gst_base_parse_check_frame),
(gst_base_parse_parse_frame), (gst_base_parse_bytepos_to_time),
(gst_base_parse_sink_event), (gst_base_parse_sink_eventfunc),
(gst_base_parse_src_event), (gst_base_parse_src_eventfunc),
(gst_base_parse_is_seekable), (gst_base_parse_push_buffer),
(gst_base_parse_handle_and_push_buffer), (gst_base_parse_drain),
(gst_base_parse_chain), (gst_base_parse_pull_range),
(gst_base_parse_loop), (gst_base_parse_sink_activate),
(gst_base_parse_activate), (gst_base_parse_sink_activate_push),
(gst_base_parse_sink_activate_pull), (gst_base_parse_set_duration),
(gst_base_parse_set_min_frame_size),
(gst_base_parse_get_querytypes), (gst_base_parse_query),
(gst_base_parse_handle_seek), (gst_base_parse_sink_setcaps):
* gst/flacparse/gstbaseparse.h:
* gst/flacparse/gstbitreader.c: (gst_bit_reader_new),
(gst_bit_reader_new_from_buffer), (gst_bit_reader_free),
(gst_bit_reader_init), (gst_bit_reader_init_from_buffer),
(gst_bit_reader_set_pos), (gst_bit_reader_get_pos),
(gst_bit_reader_get_remaining), (gst_bit_reader_skip),
(gst_bit_reader_skip_to_byte):
* gst/flacparse/gstbitreader.h:
* gst/flacparse/gstbytereader.c: (GDOUBLE_SWAP_LE_BE),
(GFLOAT_SWAP_LE_BE), (gst_byte_reader_new),
(gst_byte_reader_new_from_buffer), (gst_byte_reader_free),
(gst_byte_reader_init), (gst_byte_reader_init_from_buffer),
(gst_byte_reader_set_pos), (gst_byte_reader_get_pos),
(gst_byte_reader_get_remaining), (gst_byte_reader_skip),
(gst_byte_reader_get_uint8), (gst_byte_reader_get_int8),
(gst_byte_reader_peek_uint8), (gst_byte_reader_peek_int8),
(gst_byte_reader_get_uint24_le), (gst_byte_reader_get_uint24_be),
(gst_byte_reader_get_int24_le), (gst_byte_reader_get_int24_be),
(gst_byte_reader_peek_uint24_le), (gst_byte_reader_peek_uint24_be),
(gst_byte_reader_peek_int24_le), (gst_byte_reader_peek_int24_be):
* gst/flacparse/gstbytereader.h:
* gst/flacparse/gstflac.c: (plugin_init):
* gst/flacparse/gstflacparse.c: (gst_flac_parse_base_init),
(gst_flac_parse_class_init), (gst_flac_parse_init),
(gst_flac_parse_finalize), (gst_flac_parse_start),
(gst_flac_parse_stop), (gst_flac_parse_get_frame_size),
(gst_flac_parse_check_valid_frame),
(gst_flac_parse_handle_streaminfo),
(gst_flac_parse_handle_vorbiscomment),
(gst_flac_parse_handle_picture), (_value_array_append_buffer),
(gst_flac_parse_handle_headers), (gst_flac_parse_generate_headers),
(gst_flac_parse_parse_frame):
* gst/flacparse/gstflacparse.h:
Add FLAC parser, based on GstBaseParse. Also add the bit and byte reader
that will be added to libgstbase later.
The FLAC parser is currently not 100% bug free and fails to get the
correct frame size for some frames in some streams.
2008-09-29 08:26:54 +00:00
Jan Schmidt
a8736df9b5 ext/resindvd/: Add in Title/Chapter seeking, and simple but buggy audio and subtitle stream selection.
Original commit message from CVS:
* ext/resindvd/gstmpegdemux.c:
* ext/resindvd/gstmpegdemux.h:
* ext/resindvd/resindvdbin.c:
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/rsnstreamselector.c:
Add in Title/Chapter seeking, and simple but buggy audio
and subtitle stream selection.
2008-09-27 01:12:30 +00:00
Michael Smith
a51c4c16b2 sys/dshowdecwrapper/: Prefer known-good filters, create directly by GUID if possible, fall back to creating highest-m...
Original commit message from CVS:
* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
* sys/dshowdecwrapper/gstdshowaudiodec.h:
* sys/dshowdecwrapper/gstdshowfakesrc.cpp:
* sys/dshowdecwrapper/gstdshowutil.cpp:
* sys/dshowdecwrapper/gstdshowutil.h:
* sys/dshowdecwrapper/gstdshowvideodec.cpp:
* sys/dshowdecwrapper/gstdshowvideodec.h:
Prefer known-good filters, create directly by GUID if possible,
fall back to creating highest-merit filter otherwise.
Fixes playback with random dshow filters installed in some
cases.
2008-09-24 17:21:41 +00:00
Wim Taymans
5a97c0d534 gst/rtpmanager/: Fix some docs.
Original commit message from CVS:
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert),
(rtp_jitter_buffer_get_sync):
* gst/rtpmanager/rtpsession.c: (on_sender_timeout),
(session_cleanup):
* gst/rtpmanager/rtpsource.c:
Fix some docs.
2008-09-23 18:13:31 +00:00
Zaheer Abbas Merali
4c23ebf721 Patch from: Josep Torra
Original commit message from CVS:
Patch from: Josep Torra
* gst/mpegdemux/gstmpegtsdemux.c:
* gst/mpegdemux/gstmpegtsdemux.h:
Use a preallocated buffer per stream for PES packets sent on src pads.
Adaptively adjust buffer size appropriately.
2008-09-23 17:34:44 +00:00
Tim-Philipp Müller
52fd692bcf ext/neon/gstneonhttpsrc.c: Clean up the debug logging code and #ifdef mess a bit: whether or not gstreamer debug mess...
Original commit message from CVS:
* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start),
(gst_neonhttp_src_send_request_and_redirect):
Clean up the debug logging code and #ifdef mess a bit: whether or not
gstreamer debug messages should be output should not depend on an
element property; also, GST_ELEMENT_ERROR will leave a line in the log
already, so merge the more useful debug log messages with the less useful
error debug strings.
2008-09-17 14:47:12 +00:00
Tim-Philipp Müller
028352c5e0 ext/neon/gstneonhttpsrc.c: Don't post LIBRARY_INIT errors where we should be posting
Original commit message from CVS:
* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start):
Don't post LIBRARY_INIT errors where we should be posting
RESOURCE OPEN_READ errors. Fixes #552506.
2008-09-17 14:22:38 +00:00
Jan Schmidt
6cc8ef3018 Fix compiler warnings on OS/X
Original commit message from CVS:
* ext/jack/gstjackaudiosink.c: (jack_process_cb):
* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
Fix compiler warnings on OS/X
2008-09-17 13:59:21 +00:00
Michael Krufky
07f3b573f5 sys/dvb/gstdvbsrc.c: Add adapter_name for bus message in ATSC case. Fixes #552536.
Original commit message from CVS:
patch by: Michael Krufky
* sys/dvb/gstdvbsrc.c:
Add adapter_name for bus message in ATSC case. Fixes #552536.
2008-09-17 09:06:57 +00:00
Stefan Kost
9294cda841 ext/celt/gstceltenc.h: Help gtk-doc to parse this correctly.
Original commit message from CVS:
* ext/celt/gstceltenc.h:
Help gtk-doc to parse this correctly.
* gst/pcapparse/gstpcapparse.c:
Add missing include.
2008-09-15 09:39:00 +00:00
Stefan Kost
7386f71683 examples/Makefile.am: Only built scaletempo example if we have gtk.
Original commit message from CVS:
* examples/Makefile.am:
Only built scaletempo example if we have gtk.
2008-09-15 09:34:14 +00:00
Wim Taymans
c1647d0369 gst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for which we have not yet seen an SR packet. A...
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_session),
(gst_rtp_bin_associate), (gst_rtp_bin_sync_chain):
Do not try to adjust the offset of streams for which we have not yet
seen an SR packet. Avoids large ts-offsets in some cases.
2008-09-13 01:37:50 +00:00
Michael Smith
007478f09c sys/dshowdecwrapper/: Major rewrite of dshowdecwrapper. Converts code to
Original commit message from CVS:
* sys/dshowdecwrapper/Makefile.am:
* sys/dshowdecwrapper/gstdshowaudiodec.c:
* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
* sys/dshowdecwrapper/gstdshowaudiodec.h:
* sys/dshowdecwrapper/gstdshowdecwrapper.c:
* sys/dshowdecwrapper/gstdshowdecwrapper.cpp:
* sys/dshowdecwrapper/gstdshowdecwrapper.h:
* sys/dshowdecwrapper/gstdshowfakesrc.cpp:
* sys/dshowdecwrapper/gstdshowfakesrc.h:
* sys/dshowdecwrapper/gstdshowutil.cpp:
* sys/dshowdecwrapper/gstdshowutil.h:
* sys/dshowdecwrapper/gstdshowvideodec.c:
* sys/dshowdecwrapper/gstdshowvideodec.cpp:
* sys/dshowdecwrapper/gstdshowvideodec.h:
Major rewrite of dshowdecwrapper. Converts code to
C++, moves to direct use of DirectShow base classes,
make a lot of code clearer, simplify, etc.
Fix decode of MP3 on Vista by working around an apparent
bug in the decoder.
2008-09-10 23:15:11 +00:00
Ole André Vadla Ravnås
61dee51291 sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func, gst_ks_clock_start):
Original commit message from CVS:
* sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func,
gst_ks_clock_start):
Synchronize KS clock as a single-shot operation for now, there's not
much point in doing it periodically until we're actually using the
KS timestamps for anything else than just discarding old frames.
* sys/winks/gstksvideosrc.c (gst_ks_video_src_open_device):
Provide the GstClock when opening the device if we already have one.
2008-09-10 12:05:39 +00:00
Ole André Vadla Ravnås
0ff4dc306f sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp, gst_ks_video_device_prepare_buffers, gst_ks_video...
Original commit message from CVS:
* sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp,
gst_ks_video_device_prepare_buffers, gst_ks_video_device_create_pin,
gst_ks_video_device_set_state, gst_ks_video_device_request_frame,
gst_ks_video_device_read_frame):
Guard against capturing old frames by keeping track of the last
timestamp and also zero-fill the buffers before each capture.
Only assign a master clock if the pin hasn't already got one.
Actually free buffers on the way down to avoid a huge memory leak,
as this was previously done when changing state to ACQUIRE downwards
and we now skip that state on the way down.
Add some debug.
* sys/winks/gstksvideosrc.c (DEFAULT_DEVICE_PATH, DEFAULT_DEVICE_NAME,
DEFAULT_DEVICE_INDEX, KS_WORKER_LOCK, KS_WORKER_UNLOCK,
KS_WORKER_WAIT, KS_WORKER_NOTIFY, KS_WORKER_WAIT_FOR_RESULT,
KS_WORKER_NOTIFY_RESULT, KS_WORKER_STATE_STARTING,
KS_WORKER_STATE_READY, KS_WORKER_STATE_STOPPING,
KS_WORKER_STATE_ERROR, KsWorkerState, device_path, device_name,
device_index, running, worker_thread, worker_lock,
worker_notify_cond, worker_result_cond, worker_state,
worker_pending_caps, worker_setcaps_result, worker_pending_run,
worker_run_result, gst_ks_video_src_reset,
gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_open_device,
gst_ks_video_src_close_device, gst_ks_video_src_worker_func,
gst_ks_video_src_start_worker, gst_ks_video_src_stop_worker,
gst_ks_video_src_change_state, gst_ks_video_src_set_clock,
gst_ks_video_src_set_caps, gst_ks_video_src_timestamp_buffer,
gst_ks_video_src_create):
Remove ENABLE_CLOCK_DEBUG define, it's GST_LEVEL_DEBUG after all.
Get rid of PROP_ENSLAVE_KSCLOCK and always slave the ks clock to the
GStreamer clock, it doesn't seem to hurt and matches DirectShow's
behavior. As an added bonus we usually get PresentationTime set for
each frame, so we can expand on this later for smarter latency
reporting (by looking at the diff between the timestamp from the
driver and the time according to the GStreamer clock).
Use an internal worker thread for opening the device, setting caps,
changing its state and closing it. This way we're a lot more
compatible with drivers that rely on hacks to do video-effects
between the low-level NT API and the application. Ick.
Start the ks clock and set the pin to KSSTATE_RUN on the first
create() so that we'll hopefully get hold of the GStreamer clock
from the very beginning. This way there's no chance that the
timestamps will make a sudden jump in the beginning of the stream
when we're running with a clock.
* sys/winks/kshelpers.c (CHECK_OPTIONS_FLAG,
ks_options_flags_to_string):
Reorder the flags to match the headerfile order, and make the string
a bit more compact.
* sys/winks/ksvideohelpers.c (ks_video_probe_filter_for_caps):
Avoid leaking KSPROPERTY_PIN_DATARANGES.
2008-09-09 23:58:02 +00:00
Mark Nauwelaerts
e262a72516 Add jp2k plugin. Fixes #550657.
Original commit message from CVS:
* configure.ac:
* ext/Makefile.am:
* ext/jp2k/Makefile.am:
* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_base_init),
(gst_jasper_dec_class_init), (gst_jasper_dec_init),
(gst_jasper_dec_reset), (gst_jasper_dec_sink_setcaps),
(gst_jasper_dec_negotiate), (gst_jasper_dec_get_picture),
(gst_jasper_dec_chain), (gst_jasper_dec_set_property),
(gst_jasper_dec_get_property), (gst_jasper_dec_change_state),
(plugin_init):
* ext/jp2k/gstjasperdec.h:
Add jp2k plugin.  Fixes #550657.
2008-09-09 17:56:10 +00:00
Edward Hervey
7359989bdb gst/mpegdemux/: Fix conflicting public names in new mpeg demuxers.
Original commit message from CVS:
* gst/mpegdemux/flumpegdemux.c: (plugin_init):
* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_sync_get_type),
(gst_flups_demux_get_type), (gst_flups_demux_plugin_init):
* gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_get_type),
(gst_fluts_demux_plugin_init):
Fix conflicting public names in new mpeg demuxers.
Fixes #550468
2008-09-09 11:47:42 +00:00
Michael Smith
8618e452ae gst/aiffparse/aiffparse.c: Support chunks in AIFF in any order in pull mode, and any order so long as we get COMM bef...
Original commit message from CVS:
* gst/aiffparse/aiffparse.c:
Support chunks in AIFF in any order in pull mode, and any order so
long as we get COMM before the actual data (SSND) in push mode.
Fixes playback of AIFC files.
2008-09-09 01:14:10 +00:00
Wim Taymans
5d1c162f06 gst/selector/gstinputselector.c: Reset the selector state when going to READY.
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_selector_pad_reset),
(gst_input_selector_reset), (gst_input_selector_change_state):
Reset the selector state when going to READY.
2008-09-08 20:27:23 +00:00
Wim Taymans
a35d1dde42 gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender becomes a receiver.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (on_sender_timeout),
(create_session), (gst_rtp_bin_associate),
(gst_rtp_bin_sync_chain), (gst_rtp_bin_class_init),
(gst_rtp_bin_request_new_pad):
* gst/rtpmanager/gstrtpbin.h:
Add signal to notify listeners when a sender becomes a receiver.
Tweak lip-sync code, don't store our own copy of the ts-offset of the
jitterbuffer, don't adjust sync if the change is less than 4msec.
Get the RTP timestamp <-> GStreamer timestamp relation directly from
the jitterbuffer instead of our inaccurate version from the source.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
(gst_rtp_jitter_buffer_get_sync):
* gst/rtpmanager/gstrtpjitterbuffer.h:
Add G_LIKELY macros, use global defines for max packet reorder and
dropouts.
Reset the jitterbuffer clock skew detection when packets seqnums are
changed unexpectedly.
* gst/rtpmanager/gstrtpsession.c: (on_sender_timeout),
(gst_rtp_session_class_init), (gst_rtp_session_init):
* gst/rtpmanager/gstrtpsession.h:
Add sender timeout signal.
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
(calculate_skew), (rtp_jitter_buffer_insert),
(rtp_jitter_buffer_get_sync):
* gst/rtpmanager/rtpjitterbuffer.h:
Add some G_LIKELY macros.
Keep track of the extended RTP timestamp so that we can report the RTP
timestamp <-> GStreamer timestamp relation for lip-sync.
Remove server timestamp gap detection code, the server can sometimes
make a huge gap in timestamps (talk spurts,...) see #549774.
Detect timetamp weirdness instead by observing the sender/receiver
timestamp relation and resync if it changes more than 1 second.
Add method to report about the current rtp <-> gst timestamp relation
which is needed for lip-sync.
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(on_sender_timeout), (check_collision), (rtp_session_process_sr),
(session_cleanup):
* gst/rtpmanager/rtpsession.h:
Add sender timeout signal.
Remove inaccurate rtp <-> gst timestamp relation code, the
jitterbuffer can now do an accurate reporting about this.
* gst/rtpmanager/rtpsource.c: (rtp_source_init),
(rtp_source_update_caps), (calculate_jitter),
(rtp_source_process_rtp):
* gst/rtpmanager/rtpsource.h:
Remove inaccurate rtp <-> gst timestamp relation code.
* gst/rtpmanager/rtpstats.h:
Define global max-reorder and max-dropout constants for use in various
subsystems.
2008-09-05 13:52:34 +00:00