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.
Original commit message from CVS:
* gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_new),
(gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_destroy),
(gst_mpeg_packetize_read):
* gst/mpegstream/gstmpegpacketize.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
(gst_mpeg_parse_change_state):
Flush packetizer cache when we get a FLUSH_STOP event;
remove unused source pad member from packetizer; add debug
category for packetizer.
Original commit message from CVS:
* win32/MANIFEST:
Add a manifest for futures ugly win32 releases.
* gst/iec958/ac3iec.c: (ac3iec_chain_raw):
Move bufcaps declaration at the begining of the instructions
block.
Original commit message from CVS:
* gst/asfdemux/gstasf.c: (plugin_init):
Call gst_riff_init() so the riff debug category gets set up
before it is being used.
Original commit message from CVS:
* gst/iec958/ac3_padder.c: (ac3p_parse):
* gst/iec958/ac3_padder.h:
* gst/iec958/ac3iec.c: (ac3iec_init), (ac3iec_set_property),
(ac3iec_chain_raw), (ac3iec_change_state):
* gst/iec958/ac3iec.h:
Write rate into the caps, for the allowed ac3 rates. Some minor
cleanups.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_chain):
Add more debug
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcm_reset),
(gst_dvdlpcmdec_init), (update_timestamps),
(gst_dvdlpcmdec_chain_dvd), (gst_dvdlpcmdec_chain_raw),
(dvdlpcmdec_sink_event):
* gst/dvdlpcmdec/gstdvdlpcmdec.h:
If we have a first_access offset but no current timestamp (might
happen after a seek), then calculate a start time for the first
portion so that it will align with the timestamp given for the
first_access portion.
If a new-segment arrives with format time, store the start
time as a failsafe timestamp in case we never get any further
timestamp info (unlikely)
Mask out the 'frame number' section of the incoming header so
that we don't consider it to be changing on every buffer and
reset the caps constantly.
Use gst_util_uint64_scale for duration calculation
Original commit message from CVS:
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_dvd):
Fix timestamping for cases where the first_access parameter is 4.
Ensure we don't overrun buffers in other cases.
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.