Original commit message from CVS:
* ext/mad/gstid3tag.c:
* ext/mad/gstmad.c:
* gst/ac3parse/gstac3parse.c:
* gst/dvdlpcmdec/gstdvdlpcmdec.c:
* gst/synaesthesia/gstsynaesthesia.c:
Define GstElementDetails as const and also static (when defined as
global)
Original commit message from CVS:
* ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_push_titlelang_event):
Fix name of custom event (use same as dvdreadsrc).
* gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_chain),
(gst_dvd_sub_dec_sink_event), (gst_dvd_sub_dec_handle_dvd_event):
Fix event parsing (the event name is in the structure, not the
name of the structure itself); also fix indentation after
boilerplate macro.
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_change_state):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_change_state):
* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_change_state):
Do state changes correctly
Original commit message from CVS:
* gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_put),
(read_cache):
* gst/mpegstream/gstmpegpacketize.h:
g_malloc() can't fail, we don't need to handle this. Same for
gst_buffer_new_and_alloc().
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_chain):
klass->send_buffer() should have the same semantics as
gst_pad_push(), ie. ownership of the buffer is transfered,
so we never have to unref the buffer no matter what the flow
return value was.
Original commit message from CVS:
* ext/mad/gstmad.c: (index_seek):
move GstIndexEntry *entry variable declaration before
the first instruction
* ext/mad/gstmad.c:
remove debug macros with variable number of parameter by using
GST_DEBUG for WIN32
* gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_parse_subpic):
use gst_guint64_to_gdouble for conversions
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_sync_stream_to_time):
replace __FUNCTION__ which is not supported by MSVC by the current function name
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_reset):
remove LL suffix by using G_GINT64_CONSTANT
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead),(gst_mpeg_parse_get_rate):
use gst_guint64_to_gdouble for conversions
* gst/mpegstream/gstmpegparse.h:
remove LL suffix by using G_GINT64_CONSTANT
* win32/vs6:
add project files for tagac3parse, asfdemux, dvdlpcmdec, dvdsub, iec958, lame,
mad, mpegaudioparse, mpegstream, realmedia, synaesthesia
Original commit message from CVS:
Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event),
(gst_asf_demux_push_buffer):
Send newsegment event only once per pad, fixes#336550.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_event):
Don't unref event unconditionally after giving away ownership
(gst_pad_push_event(), gst_pad_send_event() and
gst_pad_event_default() take ownership of the event
passed to them). Fixes warnings/crashes caused by
navigation events.
Original commit message from CVS:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
Don't ref NULL caps (private streams have NULL caps) (#336387);
also, no need to set caps on the same buffer twice.
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event),
(gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_get_audio_stream),
(gst_dvd_demux_get_subpicture_stream):
* gst/mpegstream/gstmpegdemux.c:
(gst_mpeg_demux_sync_stream_to_time):
Don't leak element and pad names in error messages, use
GST_DEBUG_PAD_NAME instead. Add some more debug code.
Original commit message from CVS:
Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
(gst_asf_demux_process_chunk):
* gst/asfdemux/gstasfdemux.h:
Subtract first timestamp from timestamps, so that
stream starts from 0; makes live streams that don't
start at 0 work again (fixes#317310, #336097).
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_parse_cont):
Extract more tags and also post codec name tag on the
bus so this shows up in totem and nautilus.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_fill_audio_packet), (gst_rmdemux_parse_packet):
Extra data usually goes into the caps as 'codec_data', not
as first buffer into the stream.
Need to byte swap AC3 content in realmedia files for some
reason (fixes#331588).
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_init),
(gst_rmdemux_validate_offset), (gst_rmdemux_loop),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet):
When operating in pull mode, post an error message on the
bus when all source pads are unlinked or some other fatal
error occured (#323023). Regrade some recurring debug messages
to LOG level. Convert c++-style comments into C-style ones.
Original commit message from CVS:
Patch by: Michal Benes <michal dot benes at xeris dot cz>
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_init),
(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes),
(gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_reset):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
Timestamps in mpeg stream are 32-bit numbers. Therefore, with a
clock_freq of 90kHz this timestamp overflows every ~13 hours. This
situation really happens when grabbing DVB streams. Current
mpegdemuxer can not handle this situation correctly and it
restarts counting gstreamer timestamps from zero.
Fixes#326598.
Original commit message from CVS:
2006-03-11 Christophe Fergeau <teuf@gnome.org>
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* configure.ac:
* gst/xingheader/Makefile.am:
* gst/xingheader/gstxingmux.c:
* gst/xingheader/gstxingmux.h: added new element to add Xing headers
to MP3 files (this allows decoder to figure out the length of VBR
files)
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_pad_added),
(gst_mpeg_parse_handle_src_query):
Declare variables at the beginning of a block and make
gcc-2.9x happy (fixes#328957; patch by: Jens Granseuer).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_data):
Read packet size, sequence and padsize in right order again
(fixes#332796; patch by: Fabrizio Gennari).
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_plugin_init):
Push the rank up to SECONDARY+1 so that dvddemux is preferred over
mpegdemux for MPEG-2 video streams.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event):
In sink event handler, release object lock again
_before_ sending EOS event downstream (#313838).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_stream):
Do not error out on non-recognized streams. Ignore them and allow
playback of the other streams.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_file):
Take into account the file properties preroll value for
timestamping/newsegment. It's weird this value was commented out.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream):
One source pad not being linked is not an error condition when we're
still parsing the header. In this case (e.g. where we don't have a
suitable decoder installed) just pretend everything is fine, so that
the demuxer will actually go on to signal no-more-pads when done
parsing the header, otherwise decodebin/playbin will never post the
appropriate error message if decoders are not available.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_buffer):
If we haven't set caps on a source pad yet, the caps on the
pad are NULL, not un-fixed. Set caps on outgoing buffers.
Original commit message from CVS:
2006-01-22 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
Erase spurious call to gst_segment_set_newsegment.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event): Call
the superclass method when handling NEWSEGMENT events.
(gst_dvd_demux_handle_dvd_event): Get rid of dvd-audio-shutdown
and dvd-audio-restart event handling. There are currently less
hackish ways of handling the sparse audio stream problem.
Original commit message from CVS:
2006-01-20 Thomas Vander Stichele <thomas at apestaart dot org>
* ext/dvdnav/dvdnavsrc.c: (if):
* ext/dvdread/stream_labels.c:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment):
* gst/realmedia/rmdemux.c: (gst_rmdemux_loop):
fix up error domains, error strings, and use of translation
* po/POTFILES.in:
fix up this file, even though none of them are actually marked
for build yet.
Original commit message from CVS:
2006-01-19 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset)
(gst_mpeg_parse_process_event, gst_mpeg_parse_parse_packhead)
(gst_mpeg_parse_change_state):
Make timestamp adjustment somewhat milder. Actual timestamps are
now sent unmodified unless an actual gap is found in the
stream. This should fix time display when playing most MPEG
files.
Original commit message from CVS:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_query):
* ext/mad/gstid3tag.c: (gst_id3_tag_src_query):
* ext/mad/gstmad.c: (gst_mad_src_query):
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_src_query):
* ext/sidplay/gstsiddec.cc:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_query):
* gst/realmedia/rmdemux.c: (gst_rmdemux_src_query):
Pass unhandled queries upstream (useful e.g. for SEEKING query)
(fixes#325652; based on patch by: Philippe); make rmdemux return
FALSE for position queries, instead of setting -1 as value and
returning TRUE.
Original commit message from CVS:
2006-01-05 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts)
(gst_mpeg_parse_process_event, gst_mpeg_parse_pad_added): Don't
rewrite timestamps in the case segments are being set from
upstream, but use timestamps unmodified. Also send proper position
values. This allows for correct time display and makes queries
work in sink elements.
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer):
Rename flush_filter to segment_filter, which is better represents
what the arreibute does.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event):
Activate segment filtering when a timestamp discontinuity is seen.
Original commit message from CVS:
2005-12-31 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
Use the new "audio-shutdown" and "audio-restart" DVD events
instead of the "spu-still-frame" event to shutdown and restart
the audio pipeline.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts):
Check for cases where the segment-based adjustment calculation
would produce negative values (which result in an overflow) and
return GST_CLOCK_TIME_NONE instead.
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_process_event, gst_dvd_demux_send_subbuffer):
Add a mechanism to discard audio buffers with timestamps outside
the currently set segment. This was causing (sometimes serious)
synchronization problems after seeking in DVDs with LPCM audio,
since VOBUs usually contain audio material that lies outside the
timestamp range specified by the header.
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_id3_tag_get_type):
Remove lingering reference to GstID3Demux
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_pes):
Don't output debug saying padding streams are unknown type,
because they're not
Original commit message from CVS:
2005-12-27 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (AUDIO_CAPS)
(gst_dvd_demux_get_audio_stream): Use audio/x-lpcm as mimetype for
LPCM.
* gstmpegdemux.h:
* gstmpegdemux.c (gst_mpeg_demux_get_video_stream)
(gst_mpeg_demux_get_audio_stream):
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_get_video_stream)
(gst_dvd_demux_get_audio_stream)
(gst_dvd_demux_get_subpicture_stream)
(gst_dvd_demux_send_subbuffer):
Send current* pad buffers with appropriate caps.
Original commit message from CVS:
2005-12-26 Martin Soto <martinsoto@users.sourceforge.net>
* gst/iec958/ac3iec.h:
* gst/iec958/ac3iec.c:
(NORMAL_CAPS_DEF, RAW_AUDIO_CAPS_DEF, ac3iec_class_init)
(ac3iec_init, ac3iec_set_property, ac3iec_get_property): Add a
raw-audio property to ac3iec958 that allows setting the source pad
caps to raw audio instead of audio/x-iec958. This makes it
possible to use ac3iec958 together with the normal alsasink
element to drive an external receiver that autodetects AC3
content.
Original commit message from CVS:
* gst/iec958/ac3iec.c: (ac3iec_init), (ac3iec_setcaps),
(ac3iec_chain_dvd):
* gst/iec958/ac3iec.h:
Accept audio/x-ac3 and audio/ac3 to ac3iec958 element.
Original commit message from CVS:
2005-12-19 Martin Soto <martinsoto@users.sourceforge.net>
Big mpegparse clean up, second round:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
Send and EOS event down the audio pipeline when an still frame
event arrives. This prevents the pipeline from locking when a
still menu comes directly after a flush.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset):
Don't send a newsegment in reset.
(gst_mpeg_parse_adjust_ts): Check for invalid timestamps.
(gst_mpeg_parse_handle_newsegment, gst_mpeg_parse_process_event):
Move the code of handle_newsegment to process_event. Send a
NEWSEGMENT after FLUSH_STOP.
(gst_mpeg_parse_change_state): Send a NEWSEGMENT right after
moving to PAUSED.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event)
(gst_mpeg_demux_class_init): Don't override send_event.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_init)
(gst_mpeg_demux_send_event, gst_mpeg_demux_send_subbuffer)
(gst_mpeg_demux_reset):
* gst/mpegstream/gstmpegdemux.h: Get rid of just_flushed
attribute.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
Reset the mpegparse element after a flush.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment):
Don't forward events.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
handle_newsegment is not a virtual method anymore.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_send_newsegment)
(gst_mpeg_parse_reset, gst_mpeg_parse_class_init):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass): Get
rid of send_newsegment virtual method.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event): Only
handle DVD events and call the superclass method for other event
types.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event): Don't
override process_event anymore.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_event)
(gst_mpeg_parse_process_event): Move actual event processing to
process event so that subclasses can properly override or extend
it.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
Eliminate time parameter in process event.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_init)
(gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes)
(gst_mpeg_demux_send_subbuffer):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
(gst_mpeg_parse_parse_packhead, gst_mpeg_parse_event)
(gst_mpeg_parse_chain): Use the new adjust_ts method instead of
adding the value of the adjust attribute.
* gst/mpegstream/gstmpegdemux.h (struct _GstMPEGVideoStream): Get
rid of the adjust attribute. Now all timestamp adjustments are
performed by mpegparse using the current segment.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts)
(gst_mpeg_parse_class_init): Implement the adjust_ts method based
on the adjust attribute for SCR values and the current segment.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass): New
adjust_ts virtual method to adjust timestamps for outgoing
buffers.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_newsegment)
(gst_mpeg_demux_parse_packet): Don't override send_newsegment.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
(gst_dvd_demux_handle_newsegment): Don't override
handle_newsegment.
(gst_dvd_demux_process_event, gst_dvd_demux_handle_dvd_event):
Check for DVD events in process_event instead of
handle_dvd_event.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment)
(gst_mpeg_parse_send_newsegment, gst_mpeg_parse_send_event):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_process_event)
(gst_mpeg_demux_send_event):
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event)
(gst_dvd_demux_handle_dvd_event):
Eliminate the time parameter in send_event.
Original commit message from CVS:
2005-12-08 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_newsegment):
Properly handle non contiguous VOBUs by adding the segment accum
field to the adjust value.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
(gst_dvd_demux_init, gst_dvd_demux_handle_newsegment): Extend
handle_newsegment to prevent sending actual newsegment events and
use tiemstamp rewriting instead.
(gst_dvd_demux_handle_dvd_event): Don't send a newsegment after
dvd-lang-codes.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment)
(gst_mpeg_parse_event):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
Add a new parameter to handle_newsegment to allow controlling
whether newsegment events are forwarded or not.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer)
(gst_dvd_demux_reset):
last_end_ptm and discont_time aren't necessary anymore, since
timestamp adjustment is now replaced by newsegment events.
(gst_dvd_demux_init): Prevent MPEGParse from adjusting
timestamps.
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
Don't handle dvd-nav-packet events anymore, since the are now
replaced by standard newsegment events.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer)
(gst_dvd_demux_change_state):
* gst/mpegstream/gstdvddemux.h:
Get rid of the ignore_next_newmedia_discont hack.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
(gst_dvd_demux_handle_newsegment):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_class_init)
(gst_mpeg_demux_handle_newsegment): Don't override
handle_newsegment anymore. It was only necessary to handle
NEWMEDIA events.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_set_cur_audio)
(gst_dvd_demux_set_cur_subpicture):
Reactivate handling of DVD events.
* gst/mpegstream/gstmpegparse.c (normal_seek)
(gst_mpeg_parse_handle_src_event)
(gst_mpeg_parse_handle_src_query):
First attempt at reenabling seek.
* gst/mpegstream/gstmpegparse.h:
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
(gst_mpeg_parse_update_streaminfo)
(gst_mpeg_parse_get_rate)
(gst_mpeg_parse_convert, gst_mpeg_parse_get_src_query_types)
(gst_mpeg_parse_handle_src_query):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_new_output_pad):
Make queries work again.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset)
(gst_mpeg_parse_handle_newsegment)
(gst_mpeg_parse_send_newsegment, gst_mpeg_parse_pad_added)
(gst_mpeg_parse_chain, gst_mpeg_parse_handle_src_event):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
Get rid of the newsegment_pending attribute, and rely instead on
proper timestamp adjustment.
* gst/mpegstream/gstmpegparse.c
(gst_mpeg_parse_get_src_event_masks): Erase.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init):
Initialize fields before creating pads to prevent the pad creation
callback from failing.
(gst_mpeg_parse_reset): Initialize new fields, and change
initialization order to match the order in the structure.
(gst_mpeg_parse_handle_newsegment): Forward new segment events
whenever possible, and update the current segment.
(gst_mpeg_parse_send_newsegment): Update the current segment and
pending_newsegment.
(gst_mpeg_parse_pad_added): Use the current segment to send
newsegment events to new pads.
(gst_mpeg_parse_chain): Properly add adjust time to sent buffers
and events. Properly update newsegment_pending.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
New fields do_adjust and current_segment.
* gst/mpegstream/gstmpegdemux.c:
* gst/mpegstream/gstdvddemux.c:
* gst/mpegstream/gstmpegparse.h:
Rename handle_discont virtual method to handle_newsegment. Erase
some (already commented out support) for old NEW_MEDIA events.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
(gst_mpeg_parse_reset, gst_mpeg_parse_handle_discont)
(gst_mpeg_parse_pad_added, gst_mpeg_parse_parse_packhead)
(gst_mpeg_parse_event, gst_mpeg_parse_chain):
Erase the "pending_scr" field, and replace it by a slightly
different handling of the current SCR. Document code blocks in
parse_packhead and chain.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_event):
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_newsegment),
(gst_mpeg_parse_send_event):
Ref events before sending them to multiple pads, after all
gst_pad_send_event() takes ownership of events. Don't leak
events that have not been handled (fixes#322745).
Original commit message from CVS:
2005-11-28 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event)
(gst_dvd_demux_handle_dvd_event): Erase code to prevent mpegparse
from making timestamp adjustments. This will have to be re-added
in some form in the near future, but in order to do that, some nav
packet parsing will be necessary in mpegdemux.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
(g_value_set_int, gst_mpeg_parse_set_property)
Get rid of do_adjust and use_adjust. Rename max_discont to
max_src_gap.
(gst_mpeg_parse_parse_packhead): When max_scr_gap has a value of
-1, no adjustment is made.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init):
Rename max_discont property to max_scr_gap. Erase "adjust"
property.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_send_event): Don't
override send_event anymore, base class does the job.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event):
Base class now does most of the work.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_send_event):
Generalize to forwarding the event to all source pads in the
element.
* gst/mpegstream/gstmpegparse.h:
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
(gst_mpeg_parse_init, gst_mpeg_parse_set_clock)
(gst_mpeg_parse_chain, gst_mpeg_parse_get_property)
(gst_mpeg_parse_set_property):
Clock synchronization doesn't make sense anymore for a
demultiplexer.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_chain):
Proper warning statements,
Don't error if the src pad isn't linked when pushing.
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_change_state):
Proper state_change, avoids borkage when going to READY
Original commit message from CVS:
2005-11-23 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
(gst_mpeg_parse_handle_discont, gst_mpeg_parse_send_newsegment)
(gst_mpeg_parse_chain):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_class_init)
(gst_mpeg_demux_send_newsegment):
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_send_subbuffer):
* gst/mpegstream/gstmpegparse.h:
Rename send_discont method to send_newsegment and add parameters
to handle actual segments. Adapt code all around to run with the
new name and signature.
* gst/mpegstream/gstmpegdemux.c:
* gst/mpegstream/gstmpegparse.c:
* gst/mpegstream/gstdvddemux.c:
Convert to GST_BOILERPLATE.
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_process_event):
Filler events have beem removed for now.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream):
* gst/realmedia/rmdemux.c: (gst_rmdemux_chain),
(gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr):
Update for GST_FOURCC_FORMAT API change.
Original commit message from CVS:
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_raw):
* gst/realmedia/rmdemux.c: (gst_rmdemux_chain),
(gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr),
(gst_rmdemux_parse_packet):
Modifications for disapearance of GST_PAD_IS_USABLE()
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (handle_slice),
(gst_mpeg2dec_sink_event):
Set DELTA_UNIT flag on outgoing buffers if this is NOT a keyframe;
nice-ify debug message in event handler; add CHECKME.
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event),
(gst_dvd_demux_send_event), (gst_dvd_demux_process_private),
(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset),
(gst_dvd_demux_sync_stream_to_time):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
(gst_mpeg_demux_process_event), (gst_mpeg_demux_send_event),
(gst_mpeg_demux_handle_discont), (gst_mpeg_demux_new_output_pad),
(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes),
(gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_process_private),
(gst_mpeg_demux_sync_stream_to_time),
(gst_mpeg_demux_handle_src_event), (gst_mpeg_demux_reset):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_send_buffer),
(gst_mpeg_parse_process_event), (gst_mpeg_parse_send_discont),
(gst_mpeg_parse_send_event), (gst_mpeg_parse_event),
(gst_mpeg_parse_chain):
* gst/mpegstream/gstmpegparse.h:
Get rid of GST_PAD_IS_USABLE and fix GstFlowReturn vs. gboolean
return value confusion (gst_pad_push vs. gst_pad_send_event and
gst_pad_push_event); pass flow return values to caller;
miscellaneous fixes and clean-ups.
Original commit message from CVS:
2005-11-14 Martin Soto <soto@localhost.localdomain>
* gst/mpegstream/Makefile.am (noinst_HEADERS): Add
gstrfc2250enc.h.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_validate_offset),
(gst_rmdemux_perform_seek), (gst_rmdemux_src_query):
Set correct stream time in newsegment event.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_src_event),
(gst_rmdemux_perform_seek), (gst_rmdemux_loop),
(gst_rmdemux_send_event), (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet):
Real demuxer fixes. Make it more bulletproof against bad data,
identify a few more stream types.
Fix seeking so that it works (at least with the seek example
program; it still fails with totem).
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_sink_event), (gst_mp3parse_chain):
Set correct caps on buffers too.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_init),
(gst_mp3parse_sink_event), (gst_mp3parse_chain):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Put timestamps on buffers.
Original commit message from CVS:
Various changes to AC3->IEC958 framer. Mostly to make our IEC958 headers
more accurate, and to check AC3 checksums (both of them in each frame),
and dump the frame (as a probable sync failure) if they don't match.
General code cleanup, improved comments. Changed to not construct the
header backwards, and not byteswap everything else. If we end up needing
to do little-endian output, we should swap in the element doing the
output (AC3 is big-endian).
Original commit message from CVS:
Restructure LPCM decoder to not expect the demuxer to parse the LPCM
header; instead do this internally. Also support the old way, using
a different mime-type. CVS:
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event),
(gst_rmdemux_change_state), (gst_rmdemux_chain),
(gst_rmdemux_get_stream_by_id), (gst_rmdemux_send_event),
(gst_rmdemux_add_stream):
Send discont event before pushing first buffer.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c:
Don't send things to NULL PAD_PEERs
* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_chain):
Copy-on-write the incoming buffer.
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegclock.h:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead),
(normal_seek), (gst_mpeg_demux_handle_src_event):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegpacketize.h:
* gst/mpegstream/gstmpegparse.c:
(gst_mpeg_parse_update_streaminfo), (gst_mpeg_parse_reset),
(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead),
(gst_mpeg_parse_loop), (gst_mpeg_parse_get_rate),
(gst_mpeg_parse_convert_src), (gst_mpeg_parse_handle_src_query),
(gst_mpeg_parse_handle_src_event), (gst_mpeg_parse_change_state):
* gst/mpegstream/gstmpegparse.h:
* gst/mpegstream/gstrfc2250enc.h:
Various changes to the way time is computed that make seeking and
total time estimation much better here.
Use G_BEGIN/END_DECLS instead of __cplusplus
* gst/videocrop/gstvideocrop.c: (gst_video_crop_chain):
Use gst_buffer_stamp instead of only copying the TIMESTAMP
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_commit_taglist), (gst_asf_demux_process_comment),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_change_state), (gst_asf_demux_add_audio_stream),
(gst_asf_demux_add_video_stream), (gst_asf_demux_setup_pad):
* gst/asfdemux/gstasfdemux.h:
Improve metadata display, e.g. if the metadata comes before the
streams are loaded (which is perfectly valid).
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init)
Use 1/2 a second for default max_discont, as PES streams from DVB
seem to have larger spacings in the SCR.
Fix a typo.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_push),
(gst_a52dec_handle_event), (gst_a52dec_chain):
Add some debug output. Check that a discont has a valid
time associated.
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
(gst_alsa_sink_loop):
Ignore TAG events. A little extra debug for broken timestamps.
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init), (dvdnavsrc_loop),
(dvdnavsrc_change_state):
Ensure we send a discont to engage the link before we send any
other events.
* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_init),
(dvdreadsrc_finalize), (_close), (_open), (_seek_title),
(_seek_chapter), (seek_sector), (dvdreadsrc_get),
(dvdreadsrc_uri_get_uri), (dvdreadsrc_uri_set_uri):
Handle URI of the form dvd://title[,chapter[,angle]]. Currently only
dvd://title works in totem because typefinding sends a seek that ends
up going back to chapter 1 regardless.
* ext/mpeg2dec/gstmpeg2dec.c:
* ext/mpeg2dec/gstmpeg2dec.h:
Output correct timestamps and handle disconts.
* ext/ogg/gstoggdemux.c: (get_relative):
Small guard against a null dereference.
* ext/pango/gsttextoverlay.c: (gst_textoverlay_finalize),
(gst_textoverlay_set_property):
Free memory when done. Don't call gst_event_filler_get_duration on
EOS events. Use GST_LOG and GST_WARNING instead of g_message and
g_warning.
* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init),
(draw_line), (gst_smoothwave_dispose), (gst_sw_sinklink),
(gst_sw_srclink), (gst_smoothwave_chain):
Draw solid lines, prettier colours.
* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
Add a default palette that'll work for some movies.
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_init),
(gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_send_discont),
(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset):
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
(gst_mpeg_demux_parse_syshead), (gst_mpeg_demux_parse_pes):
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead):
* gst/mpegstream/gstmpegparse.h:
Use PTM/NAV events when for timestamp adjustment when connected to
dvdnavsrc. Don't use many discont events where one suffices.
* gst/playback/gstplaybasebin.c: (group_destroy),
(gen_preroll_element), (gst_play_base_bin_add_element):
* gst/playback/gstplaybasebin.h:
Make sure we remove subtitles from the same bin we put them in.
* gst/subparse/gstsubparse.c: (convert_encoding), (parse_subrip),
(gst_subparse_buffer_format_autodetect),
(gst_subparse_change_state):
Fix some memleaks and invalid accesses.
* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find),
(oggskel_type_find), (cmml_type_find), (plugin_init):
Some typefind functions for Annodex v3.0 files
* gst/wavparse/gstwavparse.h:
GstRiffReadClass is the correct parent class.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
MPEG2 has a useful rate property, so we can actually use that.
For MPEG-1, continue using the bytes/time properties.
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (gst_jpegdec_my_output_message),
(gst_jpegdec_my_emit_message), (gst_jpegdec_init):
Make jpegdec quiet on MJPEG decoding
* gst/asfdemux/README:
Fix mimetypes for MJPEG and H263
Original commit message from CVS:
* ext/dv/gstdvdec.c:
really fix bpp24/32 dvdec caps (classic rgba indeed)
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_content_desc):
don't send text tags if they are empty (bis repetita)
Original commit message from CVS:
* ext/dv/gstdvdec.c:
remove unneeded comment from dvdec
(related to DV 4CC codes in AVI files)
moved them in gstreamer/docs/random/mimetypes
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_content_desc):
don't send text tags if they are empty
fix mem leak on error path
* gst/ffmpegcolorspace/avcodec.h:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
(gst_ffmpegcsp_avpicture_fill):
* gst/ffmpegcolorspace/imgconvert.c: (img_get_alpha_info):
* gst/ffmpegcolorspace/imgconvert_template.h:
adds BGR32 and BGRA32 to ffmpegcolorspace
(still bad colors, fixing it on next commit)
helps with dvdec outputing BGR32
Original commit message from CVS:
* ext/dv/demo-play.c: (main):
xvideosink -> xvimagesink
* ext/dv/gstdvdec.c:
change rgb 32/32 caps to 24/32 (no alpha)
change nb of channels to be a list (2 or 4, not 2)
change sample rate to be a list (32, 44.1, 48 kHz) not a range
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_content_desc):
Add 'date/year' to extracted metadata list
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_content_desc):
Extract TrackNumber metadata + clean up code
* gst/games/gstvideoimage.c: (gst_video_image_draw_rectangle):
Hope this is the good fix (var used unitialised)
Original commit message from CVS:
* configure.ac:
don't compile faad plugin if a RC of 2.0 is found
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_content_desc):
try to make Solaris compiler happier
Original commit message from CVS:
* gst-libs/gst/riff/riff-ids.h:
* gst/wavenc/riff.h:
Add AMR (VBR and CBR) ids to riff.h audio codec list
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_process_object):
Retrieve more tags from ASF files (Genre, AlbumTitle, Artist)
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
(gst_dvd_demux_handle_discont):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
(gst_mpeg_demux_handle_discont):
Recreate pads on new-media (#160730).
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_new_pad):
Send discont even if manager changes timestamps (#161929).
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
(gst_dvd_demux_reset), (gst_dvd_demux_change_state):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_reset),
(gst_mpeg_demux_change_state):
Reset on ready. Fixes 160276.
Original commit message from CVS:
* gst/asfdemux/README
* gst/wavenc/riff.h
* gst-libs/gst/riff/riff-ids.h
* gst-libs/gst/riff/riff-media.c
add new 4CC codes for h263 related codecs
fixes partially bug #155163
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_loop):
Align by packetsize, and assert that we a packet available before
playing. The first makes webstreams work (they often include
trailing padding data in a packet), the second allows pausing a
ASF stream in totem without getting demux errors afterwards.
Original commit message from CVS:
* gst/synaesthesia/gstsynaesthesia.c:
(gst_synaesthesia_class_init), (gst_synaesthesia_init),
(gst_synaesthesia_dispose), (gst_synaesthesia_finalize),
(gst_synaesthesia_sink_link), (gst_synaesthesia_src_getcaps),
(gst_synaesthesia_src_link), (gst_synaesthesia_chain),
(gst_synaesthesia_change_state), (plugin_init):
Fix up synaesthesia to work under different samplerates/ buffer sizes.
Force 320x200 output, as that's the only thing the underlying
synaesthesia implementation supports. Still needs to be made
re-entrant.
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_get_caps_internal):
buffer-frames property was missing
* ext/arts/gst_arts.c:
rate missing from sinkcaps
* ext/audiofile/gstafparse.c:
* ext/audiofile/gstafsink.c:
* ext/audiofile/gstafsrc.c:
* ext/swfdec/gstswfdec.c:
int audio doesn't know buffer-frames
* ext/cdparanoia/gstcdparanoia.c:
int audio doesn't know chunksize either
* ext/nas/nassink.c:
it's endianness, not endianess
* gst-libs/gst/audio/audio.h:
make float standard pad template caps really describe float
* gst/law/mulaw.c: (linear_factory):
signed only, please
* gst/mpegstream/gstdvddemux.c:
widths of 20 are not valid
Original commit message from CVS:
* ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event):
Set EOS on the element when processing an EOS event.
* ext/speex/gstspeexdec.h:
* ext/speex/gstspeexenc.h:
Only keep a const ptr to the mode
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_audio_caps_with_data),
(gst_riff_create_audio_template_caps):
Allow WMAV3, with up to 6 channels.
* gst/asfdemux/gstasfmux.c: (gst_asfmux_request_new_pad):
Don't call gst_pad_set_event_function on a sink pad.
* gst/mpegstream/gstdvddemux.c:
(gst_dvd_demux_get_subpicture_stream),
(gst_dvd_demux_set_cur_audio), (gst_dvd_demux_set_cur_subpicture):
Copy the explicit caps that were set across to the cur_* pads,
instead of trying to use a possibly non-existent negotiated caps.
Reset the type of subpicture pads to UNKNOWN after calling init_stream,
so that the caps get set.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
Don't touch buffer if it is of size 0 (fixes#151064).
Original commit message from CVS:
- better detection of audio/video stream for files not produced by real official codec
- enable parsing of CONT sections (a text field, sort of title for the file)
- modify ac3 audio output a bit
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_handle_sink_event),
(gst_rmdemux_loop), (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr):
Don't hang on length=0 chunks. Some negotiation fixes. Signal
no-more-pads.