Commit graph

119 commits

Author SHA1 Message Date
Stefan Kost
a184490e6c rmdemux: target is unsigned and can't be < 0 2011-05-20 13:32:31 +03:00
Edward Hervey
65ac3e727b rmdemux: Initialize return variable.
In the unlikely event that height is 0 (which is invalid) we would end up
never setting the flow return.
2011-01-06 13:15:17 +01:00
Vincent Penquerc'h
878781c6a7 realmedia: do not use the pad buffer allocation functions in demuxers
Doing so can block, see https://bugzilla.gnome.org/show_bug.cgi?id=637822

https://bugzilla.gnome.org/show_bug.cgi?id=637932
2010-12-24 14:15:48 +01:00
Rob Clark
987c199370 rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
Signed-off-by: Rob Clark <rob@ti.com>
2010-12-13 14:51:53 -06:00
Edward Hervey
fe3e26bee4 realmedia: Get codec name from pbutils instead of harcoding them 2010-10-24 14:25:49 +02:00
Sebastian Dröge
f3fa6f6de0 rmdemux: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS() 2010-09-04 14:57:51 +02:00
Tim-Philipp Müller
6f5dabb71f rmdemux: fix compiler warning when debugging system in core is disabled 2010-06-24 18:03:21 +01:00
Wim Taymans
2c469df530 rmdemux: pass bitrate on caps
Set the bitrate on the caps, some decoders like sipro need this to function
properly.

Fixes #620007
2010-06-05 14:13:02 +02:00
Wim Taymans
4044046ac1 rmdemux: add better sipr nibble swap routine 2010-05-14 16:02:47 +02:00
Wim Taymans
a68951f0bb rmdemux: descramble SIPR before pushing out
Collect and descramble the SIPR packets before pushing.
Descramble ATRAC audio.

Fixes #618098
2010-05-13 17:57:57 +02:00
Benjamin Otte
9850bd814f gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 15:53:14 +01:00
Thiago Santos
6dd3525806 rmdemux: Parse and post bitrate for streams
Parse the bitrate of the streams and post their tags.

Fixes #599299
2010-01-07 16:36:08 -03:00
Mark Nauwelaerts
095c8eb5d4 rmdemux: plug buffer leaking 2009-06-22 19:10:15 +02:00
Edward Hervey
29b34e049c rmdemux: Actually return the return value for the seek handling. 2009-04-21 20:37:19 +02:00
Edward Hervey
c1cd90eb57 rmdemux: Remove dead assignment, value is being overwritten before being read. 2009-04-19 13:59:24 +02:00
Edward Hervey
2a892f5856 rmdemux: Remove unused accurate flag.
I couldn't see any reason why this was there in the first place.
2009-04-19 13:58:31 +02:00
Edward Hervey
0d32a3703d realmedia: Remove useless variables, only being used once (or not). 2009-04-19 13:57:10 +02:00
Wim Taymans
da28d1620e Add pnm:// uri source
Add a new utri handler for pnm:// that for now just redirects to the same uri
with the rtsp:// protocol, which usually works nowadays.

Separate the registration of the various plugins into a separate source file.
2009-02-20 15:53:34 +01:00
Roland Moser
c42e090acc Fix parsing of the flags in rmdemux
Fix parsing of the flags in version 1 realmedia streams.
Fixes #571358.
2009-02-18 12:55:16 +01:00
Wim Taymans
5aa3023505 gst/realmedia/rmdemux.c: Add suport for mpeg4 and aac audio. See #556714.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_descramble_mp4a_audio),
(gst_rmdemux_handle_scrambled_packet):
Add suport for mpeg4 and aac audio. See #556714.
2008-10-24 12:47:05 +00:00
Wim Taymans
ff1503f5cf gst/realmedia/rdtdepay.*: Parse other values from the incomming caps.
Original commit message from CVS:
* gst/realmedia/rdtdepay.c: (gst_rdt_depay_init),
(gst_rdt_depay_setcaps), (gst_rdt_depay_sink_event),
(create_segment_event), (gst_rdt_depay_push),
(gst_rdt_depay_handle_data), (gst_rdt_depay_change_state):
* gst/realmedia/rdtdepay.h:
Parse other values from the incomming caps.
Add event handler to handle flushing and segments.
Create segment events.
* gst/realmedia/rdtjitterbuffer.c: (rdt_jitter_buffer_insert):
Do skew correction based on RDT timestamps.
* gst/realmedia/rdtmanager.c: (activate_session),
(gst_rdt_manager_parse_caps), (gst_rdt_manager_setcaps),
(create_recv_rtp):
Parse caps to get the clockrate needed for the jitterbuffer.
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_video_packet):
Apply timestamp fixup after correcting for initial timestamp and
internal base timestamp corrections.
2008-08-27 15:55:05 +00:00
Wim Taymans
82a84e69e5 gst/realmedia/rmdemux.*: Keep track of the first timestamp of the stream and add this to the outgoing buffer timestam...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_init),
(find_seek_offset_time), (gst_rmdemux_reset), (gst_rmdemux_chain),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_descramble_cook_audio),
(gst_rmdemux_descramble_dnet_audio),
(gst_rmdemux_parse_video_packet), (gst_rmdemux_parse_audio_packet):
* gst/realmedia/rmdemux.h:
Keep track of the first timestamp of the stream and add this to the
outgoing buffer timestamps so that we can handle live streams.
Set discont flag on the first buffers and after a seek.
2008-08-27 09:47:17 +00:00
Wim Taymans
a40deba0ce gst/realmedia/rmdemux.c: Flush timestamp correction variables on a flush. Fixes #533832.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_send_event):
Flush timestamp correction variables on a flush. Fixes #533832.
2008-05-19 10:23:46 +00:00
Edward Hervey
826629a9b0 gst/realmedia/rmdemux.c: Properly aggregate GstFlowReturn from downstream in order to properly stop, and doing that a...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_video_packet):
Properly aggregate GstFlowReturn from downstream in order to properly
stop, and doing that as early as possible.
Fixes #532807
2008-05-13 09:33:09 +00:00
Wim Taymans
701fcfc4e5 gst/realmedia/rmdemux.c: Fix video timestamps by adjusting it with the first timestamp found.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr),
(gst_rmdemux_fix_timestamp), (gst_rmdemux_parse_video_packet),
(gst_rmdemux_parse_audio_packet), (gst_rmdemux_parse_packet):
Fix video timestamps by adjusting it with the first timestamp found.
Don't assume we have a complete fragment when flushing the adapter,
packets might have been lost or the stream might just be broken.
2008-05-06 17:53:26 +00:00
Jan Schmidt
14598caba9 gst/realmedia/: Fix some compiler warnings shown on Forte.
Original commit message from CVS:
* gst/realmedia/asmrules.c: (gst_asm_scan_parse_expression),
(gst_asm_scan_parse_condition):
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_video_packet):
Fix some compiler warnings shown on Forte.
2007-10-08 17:51:33 +00:00
Wim Taymans
3c5037ae3f gst/realmedia/rmdemux.c: Activate timestamp fixing code.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_fix_timestamp),
(gst_rmdemux_parse_video_packet):
Activate timestamp fixing code.
2007-08-07 11:50:44 +00:00
Wim Taymans
38dd0ad82b gst/realmedia/rmdemux.c: Do fragment collection in the demuxer so that we can now work with both ffmpeg and realvideo...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_reset),
(gst_rmdemux_chain), (gst_rmdemux_parse_mdpr),
(gst_rmdemux_fix_timestamp), (gst_rmdemux_parse_video_packet),
(gst_rmdemux_parse_audio_packet), (gst_rmdemux_parse_packet):
Do fragment collection in the demuxer so that we can now work with
both ffmpeg and realvideodec to decoder real video content.
2007-08-07 10:57:09 +00:00
Wim Taymans
2d5433b591 gst/realmedia/: Add simple rdt manager.
Original commit message from CVS:
* gst/realmedia/Makefile.am:
* gst/realmedia/rdtmanager.c: (find_session_by_id),
(create_session), (free_session), (gst_rdt_manager_base_init),
(gst_rdt_manager_marshal_BOXED__UINT_UINT),
(gst_rdt_manager_class_init), (gst_rdt_manager_init),
(gst_rdt_manager_finalize), (gst_rdt_manager_query_src),
(gst_rdt_manager_chain_rtp), (gst_rdt_manager_chain_rtcp),
(gst_rdt_manager_set_property), (gst_rdt_manager_get_property),
(gst_rdt_manager_provide_clock), (gst_rdt_manager_change_state),
(create_recv_rtp), (create_recv_rtcp), (create_rtcp),
(gst_rdt_manager_request_new_pad), (gst_rdt_manager_release_pad),
(gst_rdt_manager_plugin_init):
* gst/realmedia/rdtmanager.h:
* gst/realmedia/rmdemux.c: (plugin_init):
Add simple rdt manager.
2007-08-03 16:09:01 +00:00
Wim Taymans
743ea433bd gst/realmedia/: Add RealMedia RTSP extension module. It has rank NONE until it is fully functional.
Original commit message from CVS:
* gst/realmedia/Makefile.am:
* gst/realmedia/rmdemux.c: (plugin_init):
* gst/realmedia/rtspreal.c: (rtsp_ext_real_get_transports),
(rtsp_ext_real_before_send), (rtsp_ext_real_after_send), (hash),
(call_hash), (rtsp_ext_real_calc_response_and_checksum),
(rtsp_ext_real_parse_sdp), (rtsp_ext_real_stream_select),
(_do_init), (gst_rtsp_real_base_init), (gst_rtsp_real_class_init),
(gst_rtsp_real_init), (gst_rtsp_real_finalize),
(gst_rtsp_real_change_state), (gst_rtsp_real_extension_init),
(gst_rtsp_real_plugin_init):
* gst/realmedia/rtspreal.h:
Add RealMedia RTSP extension module. It has rank NONE until it is fully
functional.
2007-07-26 15:52:43 +00:00
Tim-Philipp Müller
897f7039f8 gst/realmedia/rmdemux.c: After descrambling, push the packets out as individual packets instead of one big descramble...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_descramble_cook_audio):
After descrambling, push the packets out as individual packets
instead of one big descrambled buffer. Makes cook audio decoding
work with the 'realaudiodec' decoder from gst-plugins-bad.
2007-05-16 19:15:13 +00:00
Tim-Philipp Müller
286a2c0edb gst/realmedia/rmdemux.*: Remember first timestamp encountered in stream and re-timestamp stream to start from zero (f...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_init),
(gst_rmdemux_sink_event), (gst_rmdemux_perform_seek),
(gst_rmdemux_reset), (gst_rmdemux_chain), (gst_rmdemux_add_stream),
(gst_rmdemux_parse_packet):
* gst/realmedia/rmdemux.h:
Remember first timestamp encountered in stream and re-timestamp
stream to start from zero (fixes #397219); only send one newsegment
event, not two; when seeking, send newsegment events from the
streaming thread and not from the seeking thread.
2007-05-16 19:07:45 +00:00
René Stadler
47e79a2050 gst/realmedia/rmdemux.*: Make rmdemux handle any number of logical streams. Fixes #428698.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* gst/realmedia/rmdemux.c: (find_seek_offset_bytes),
(find_seek_offset_time), (gst_rmdemux_reset),
(gst_rmdemux_get_stream_by_id), (gst_rmdemux_send_event),
(gst_rmdemux_add_stream), (gst_rmdemux_combine_flows):
* gst/realmedia/rmdemux.h:
Make rmdemux handle any number of logical streams. Fixes #428698.
2007-04-12 10:10:22 +00:00
Tim-Philipp Müller
a46c1e9621 gst/realmedia/rmdemux.c: Remove unused zlib.h include. Fixes #421594.
Original commit message from CVS:
* gst/realmedia/rmdemux.c:
Remove unused zlib.h include. Fixes #421594.
2007-03-22 21:44:45 +00:00
Sébastien Moutte
d094953671 gst/realmedia/rmdemux.c: Use gst_guint64_to_gdouble for conversions.
Original commit message from CVS:
* gst/realmedia/rmdemux.c:(gst_rmdemux_parse_indx_data):
Use gst_guint64_to_gdouble for conversions.
* gst/synaesthesia/synaescope.c:
Define M_PI and do not include <pthread.h> and
<sys/time.h> for G_OS_WIN32
* win32/vs6/libgstrealmedia.dsp:
* win32/vs6/synaesthesia.dsp:
Update projects files.
* win32/common/config.h.in:
Add config.h.in for autogen of config.h
2007-02-11 13:42:45 +00:00
Tim-Philipp Müller
a638e98a98 gst/realmedia/: Add demuxer for RealAudio files (#349779).
Original commit message from CVS:
* gst/realmedia/Makefile.am:
* gst/realmedia/rademux.c:
* gst/realmedia/rademux.h:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_descramble_dnet_audio), (gst_rmdemux_plugin_init):
* gst/realmedia/rmutils.c: (gst_rm_utils_descramble_dnet_buffer):
* gst/realmedia/rmutils.h:
Add demuxer for RealAudio files (#349779).
2007-01-11 12:49:23 +00:00
Tim-Philipp Müller
3ec4017080 gst/realmedia/rmdemux.c: Implement SEEKING query, make query function thread-safe.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_src_query),
(gst_rmdemux_src_query_types):
Implement SEEKING query, make query function thread-safe.
2006-12-15 18:25:17 +00:00
Tim-Philipp Müller
334fdce1d0 gst/realmedia/rmdemux.c: Use alignment-safe macros here too (subbuffers ...); guard against hypothetical memory acces...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_descramble_dnet_audio):
Use alignment-safe macros here too (subbuffers ...); guard against
hypothetical memory access beyond our given buffer in the case
where the buffer size is not a multiple of 2.
2006-12-15 17:59:47 +00:00
Tim-Philipp Müller
fe3357b647 gst/realmedia/rmdemux.c: Also, don't read the index for a stream a second time when operating in pull-mode and reachi...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_indx_data):
Also, don't read the index for a stream a second time when
operating in pull-mode and reaching the end of the file.
2006-12-14 11:49:39 +00:00
Roland Kay
d54f267bc4 gst/realmedia/rmdemux.c: Don't leak stream index (#385292).
Original commit message from CVS:
Patch by: Roland Kay  <roland.kay at ox compsoc net>
* gst/realmedia/rmdemux.c: (gst_rmdemux_reset):
Don't leak stream index (#385292).
2006-12-14 11:25:00 +00:00
Roland Kay
a3aa645b2d gst/realmedia/rmdemux.c: For version 4 streams, read the extra codec data size from the header instead of assuming it...
Original commit message from CVS:
Based on patch by: Roland Kay  <roland.kay at ox compsoc net>
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr):
For version 4 streams, read the extra codec data size from the
header instead of assuming it is always 16 (also read it from the
right position) (#384989). For version 4 and 5 streams, check that
the specified extra codec data size doesn't make us read beyond the
chunk boundary (#384989).
2006-12-12 10:24:40 +00:00
Josep Torra Valles
eb6d9ca631 gst/: Misc. fixes for problems discovered by Forte (different return types in function declaration and definition, po...
Original commit message from CVS:
Patch by: Josep Torra Valles  <josep at fluendo com>
* gst/iec958/ac3_padder.c: (ac3p_init):
* gst/mpegstream/gstmpegparse.c:
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse__rmf),
(gst_rmdemux_parse_prop), (gst_rmdemux_parse_mdpr),
(gst_rmdemux_parse_indx), (gst_rmdemux_parse_indx_data),
(gst_rmdemux_parse_data), (gst_rmdemux_parse_cont),
(gst_rmdemux_parse_packet):
Misc. fixes for problems discovered by Forte (different return types
in function declaration and definition, pointer arithmetics with
void pointers). Fixes #362639.
2006-10-16 18:07:23 +00:00
Wim Taymans
d170583100 gst/realmedia/rdtdepay.c: Change caps to x-rdt, because it's not x-rtp.
Original commit message from CVS:
* gst/realmedia/rdtdepay.c: (gst_rdt_depay_base_init),
(gst_rdt_depay_init), (gst_rdt_depay_setcaps),
(gst_rdt_depay_chain), (gst_rdt_depay_change_state):
Change caps to x-rdt, because it's not x-rtp.
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet),
(gst_rmdemux_plugin_init):
Activate pad before adding to the element.
Return the combined stream return values after pad_alloc.
2006-10-10 17:02:05 +00:00
Tim-Philipp Müller
03f40e53fd Printf format fixes.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_goto_title),
(gst_dvd_read_src_handle_seek_event):
* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
* ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_chain):
* ext/sidplay/gstsiddec.cc:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_parse_data):
* gst/realmedia/rmdemux.c: (gst_rmdemux_loop),
(gst_rmdemux_parse_packet):
Printf format fixes.
2006-10-05 17:07:52 +00:00
Wim Taymans
8dd0cc1db3 gst/realmedia/: Added RDT depayloader.
Original commit message from CVS:
* gst/realmedia/Makefile.am:
* gst/realmedia/rdtdepay.c: (gst_rdt_depay_base_init),
(gst_rdt_depay_class_init), (gst_rdt_depay_init),
(gst_rdt_depay_setcaps), (gst_rdt_depay_chain),
(gst_rdt_depay_set_property), (gst_rdt_depay_get_property),
(gst_rdt_depay_change_state), (gst_rdt_depay_plugin_init):
* gst/realmedia/rdtdepay.h:
Added RDT depayloader.
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr),
(gst_rmdemux_plugin_init), (plugin_init):
Remove unused function.
Added some more mime-types.
2006-10-03 10:55:42 +00:00
Tim-Philipp Müller
4711b4128c gst/realmedia/rmdemux.c: Handle audio streams with stream_version 3 properly; warn about unknown stream versions; han...
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr):
Handle audio streams with stream_version 3 properly; warn about
unknown stream versions; handle unknown fourccs a tad more
gracefully (setting bogus caps). Also, use GST_FOURCC_ARGS
with GST_FOURCC_FORMAT.
2006-08-07 19:01:40 +00:00
Tim-Philipp Müller
c4f4ae51ef gst/realmedia/: Factor out some code into rmutils.[ch]; when reading strings, don't read beyond the available data; r...
Original commit message from CVS:
* gst/realmedia/Makefile.am:
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr),
(gst_rmdemux_parse_cont):
* gst/realmedia/rmutils.c: (gst_rm_utils_read_string8),
(gst_rm_utils_read_string16), (gst_rm_utils_read_tags):
* gst/realmedia/rmutils.h:
Factor out some code into rmutils.[ch]; when reading
strings, don't read beyond the available data; read
metadata strings correctly (string length is 16 bits
here, not just 8).
2006-08-04 13:05:01 +00:00
Tim-Philipp Müller
05097283d8 gst/realmedia/rmdemux.c: Don't leak streams, strings or caps. Get rid of unnecessary getcaps() function.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_reset),
(gst_rmdemux_change_state), (gst_rmdemux_add_stream),
(gst_rmdemux_parse_cont), (gst_rmdemux_descramble_cook_audio),
(gst_rmdemux_handle_scrambled_packet), (gst_rmdemux_parse_packet):
Don't leak streams, strings or caps. Get rid of unnecessary
getcaps() function.
2006-07-28 13:28:19 +00:00
Tim-Philipp Müller
1b4d54debc gst/realmedia/rmdemux.c: Descramble cook audio streams before sending them to the decoder. Fixes #347292.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_class_init),
(gst_rmdemux_init), (gst_rmdemux_chain), (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_data),
(gst_rmdemux_stream_clear_cached_subpackets),
(gst_rmdemux_descramble_cook_audio),
(gst_rmdemux_descramble_dnet_audio),
(gst_rmdemux_handle_scrambled_packet), (gst_rmdemux_parse_packet):
Descramble cook audio streams before sending them to the
decoder. Fixes #347292.
Also miscellaneous clean-ups and log-level changes.
2006-07-27 20:34:25 +00:00
Wim Taymans
f62a03557f gst/realmedia/rmdemux.*: Cleanups, use GstSegment for seeking.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_class_init),
(gst_rmdemux_finalize), (gst_rmdemux_src_event),
(find_seek_offset_time), (gst_rmdemux_perform_seek),
(gst_rmdemux_src_query), (gst_rmdemux_change_state),
(gst_rmdemux_loop), (gst_rmdemux_chain), (gst_rmdemux_send_event),
(gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr),
(gst_rmdemux_combine_flows), (gst_rmdemux_parse_packet):
* gst/realmedia/rmdemux.h:
Cleanups, use GstSegment for seeking.
Fix error handling.
Combine flow return from all streams.
2006-07-13 11:28:32 +00:00