Original commit message from CVS:
Patch by: Xavier B. <xavierb gmail com>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_guid),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_process_data),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_segment), (gst_asf_demux_handle_data):
Guard places where we assume that a certain amount of data is
available better against less data being available (should fix
infamous assertion crasher bug #336370). Also fixes a small
memory leak.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
All sample-rates < 32khz come from the LSF extensions, which only
use 1 granule. Fixes parsing of 22.05khz, 24khz and 16khz files.
Use gst_util_uint64_scale because we can.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
add a comment about a future change
* tests/check/elements/amrnbenc.c: (setup_amrnbenc),
(cleanup_amrnbenc):
* tests/check/elements/mpeg2dec.c: (setup_mpeg2dec),
(cleanup_mpeg2dec):
consistent pad (de)activation
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.
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.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event),
(gst_asf_demux_process_data), (gst_asf_demux_process_file),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Don't crash in the seek event handling code when playtime is 0,
as may be the case with live streams (#386218). Implement SEEKING
query so applications can query seekability without second-guessing
based on whether we have a duration or not.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
Use our alignment-safe macros here too, since we can't assume that
GST_BUFFER_DATA is aligned (these are subbuffers we're dealing with
here).
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.
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).
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: Use the GST_READ macro I meant
to in the previous checkin. see #385192. You can have your
cheese back now.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: Fix unaligned load that loads
from the dereferenced integer, not the pointer itself. Fixes
#385192.
I'm takin ur cheese!
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).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_audio_stream):
The availability of extra codec data isn't something that
warrants debug messages at WARNING level (see #376958).
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init),
(gst_dvd_demux_class_init), (gst_dvd_demux_combine_flows),
(gst_dvd_demux_send_subbuffer):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
(gst_mpeg_demux_init_stream), (gst_mpeg_demux_parse_packet),
(gst_mpeg_demux_parse_pes), (gst_mpeg_demux_combine_flows),
(gst_mpeg_demux_send_subbuffer):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
(gst_mpeg_parse_chain):
Fix flow value combination; this fixes playbin/totem locking up if
a VobSub file is specified as subtitle file (#334322). Flow value
combination should only happen once we are fairly sure we've got all
pads that are available for now. Since there isn't a well-specified
time when this is the case in MPEG, we'll just assume this is the
case once there has been a certain number of packets for each
stream we've found so far.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(mp3_type_frame_length_from_header), (gst_mp3parse_reset),
(gst_mp3parse_init), (gst_mp3parse_dispose),
(gst_mp3parse_sink_event), (gst_mp3parse_chain), (head_check),
(gst_mp3parse_change_state):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Make timestamp handling in mp3parse saner; now works for at least
simple cases.
Original commit message from CVS:
* gst/mpegaudioparse/Makefile.am:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(mp3_type_frame_length_from_header), (gst_mp3parse_class_init),
(gst_mp3parse_reset), (gst_mp3parse_init), (gst_mp3parse_dispose),
(gst_mp3parse_sink_event), (gst_mp3parse_chain), (head_check),
(gst_mp3parse_change_state), (plugin_init):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Bring mp3parse into the 21st century.
Use its own debug category, use gstadapter, format nicely to 80
columns, and fix incorrect handling of 32 kHz and less files.
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.
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.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_segment):
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream),
(gst_dvd_demux_get_subpicture_stream):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
(gst_mpeg_demux_get_audio_stream),
(gst_mpeg_demux_get_private_stream):
Active pads before adding them to the running element. Don't assert
on non-BYTE format newsegment events in asfdemux.
Original commit message from CVS:
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (update_timestamps):
If an incoming timestamp is within one sample of our current
timestamp, then keep it. This prevents imprecision in the
PTS (which only has 90khz granularity) from affecting our stream.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_query):
Reflow code so that compiler doesn't complain about possible use
of uninitialised variable any longer; but just in case, initialise
it anyway; also take object ref in query function and do peer pad
stuff in a more thread-safe way.
Original commit message from CVS:
* ext/mad/gstid3tag.c:
* gst/mpegstream/gstrfc2250enc.h:
* gst/synaesthesia/gstsynaesthesia.c:
More G_OBJECT macro fixing.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
Erm, lets properly fix it. The only non-text tag that we support is
the track-number and that is an UINT. asfdemux was returning a GValue
initialized as INT. Further the Track and not the TrackNumber tag
(the latter is a string too).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
Skip tags that are unknown (was producing an uninialized GValue).
Original commit message from CVS:
* ext/lame/Makefile.am:
* ext/mpeg2dec/Makefile.am:
* gst/dvdlpcmdec/Makefile.am:
* gst/dvdsub/Makefile.am:
* gst/mpegaudioparse/Makefile.am:
Add missing GST_LIBS to the link flags
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream):
Use static pad templates with ANY caps for the source pads for
simplicity and to avoid warnings when creating pads for unhandled
codec IDs (#351795).
Original commit message from CVS:
* gst/dvdsub/gstdvdsubdec.c: (plugin_init):
Set rank to NONE for the time being until we make playbin handle
subtitle pictures again (dvdsubdec seems to be a bit shaky at
times when seeking, so it's probably better if it doesn't get
autoplugged for the time being).
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.
Original commit message from CVS:
Patch by: Frédéric Riss <frederic.riss at gmail com>
* gst/dvdsub/gstdvdsubdec.c: (gst_send_subtitle_frame):
Don't set negative durations on outgoing buffers (#350044),
which happens when you use macros that got changed during
the last unstable cycle because they were thought not to
be used anywhere.
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).
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (plugin_init):
* po/POTFILES.in:
Make custom error messages translatable.
* gst/asfdemux/gstasf.c: (plugin_init):
Remove setlocale() call, doesn't seem to be needed or recommended for
plugins, at least not according to gstreamer/docs/random/i18n.
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_object):
Error out when the stream is encrypted (rather than feeding
garbage to the decoders). Fixes#349025.
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.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_ext_stream_props_for_stream),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_change_state):
Find language codes for audio streams if they are available.
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_obj_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Parse extended stream properties objects and stream objects
hidden inside them (but delay creation of the appropriate
pads until after all the 'normal' stream objects have been
dealt with) (#343763). Also parse language list object.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
Skip chunks for unknown streams properly. Fixes broken sound
and/or video for files that have additional streams that
we don't recognise yet (e.g. if they are embedded in extended
stream properties). Partly fixes#343763.
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_identify_guid),
(gst_asf_demux_process_header), (gst_asf_demux_push_obj),
(gst_asf_demux_pop_obj), (gst_asf_demux_process_object),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Add some more GUIDs and make debug log more readable
and easier to follow when parsing the headers.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_push_buffer):
* gst/asfdemux/gstasfdemux.h:
Handle unknown codec IDs/fourccs properly (#345879); send tag
events after newsegment event; fix use of GST_FOURCC_FORMAT
macro.
Original commit message from CVS:
* gst/mpegstream/gstmpegpacketize.c:
(gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_put):
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_chain):
Also flush packetizer cache when we get a buffer that has the
DISCONT flag set; update current byte position from buffer
offset after a flush.