Original commit message from CVS:
Patch by:
Hans de Goede <j dot w dot r dot degoede at hhs dot nl>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event):
If we don't have the position to seek to in our index first try
to convert from TIME to BYTES upstream and only if that fails
too use the old hack to simply seek to an earlier position
and let the sink drop everything before segment start.
Partially fixes bug #469930.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame):
Handler buffers without valid timestamp more correctly: Don't drop
them and don't use the invalid timestamp to calculate the next
timestamp. Fixes bug #516811.
Original commit message from CVS:
Patch by: Tal Shalif <tshalif at nargila dot org>
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_create),
(gst_dvd_read_src_do_seek), (gst_dvd_read_src_do_position_query):
Add some gint64 casts to prevent 32 bit integer overflows.
Fixes bug #516989.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame):
Return GST_FLOW_UNEXPECTED if we get data that is after our
configured segment. This makes upstream go EOS immediately instead
of sending us the complete stream. Also improve debugging a bit.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c:
Fix regression in DVD seeking - when a pack we
expect to be a NAV block turns out not to be, scan forwards
for up to 2MB (at most ~1sec) until we find one.
Fixes: #516278
Original commit message from CVS:
* gst/mpegaudioparse/gstxingmux.c: (generate_xing_header):
Correctly write the size in bytes on big endian systems.
Fixes bug #515725.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:(mp3parse_time_to_bytepos):
Use gst_guint64_to_gdouble for conversion
* win32/vs6/libgstasfdemux.dsp:
* win32/vs6/libgstdvdsub.dsp:
* win32/vs6/libgstrealmedia.dsp:
Update project dependencies and add new source files
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c:
Reset decoder when handling sequence where libmpeg2 has set
frame period to 0, probably due to a corrupt packet.
Fixes bug #514297
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_caps_create),
(gst_mp3parse_chain):
Don't set new caps on the srcpad everytime the bitrate or MPEG
version changes but calculate new spf value when the MPEG version
changes.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
Add the real and rtsp elements and update the lists.
* docs/plugins/inspect/plugin-amrnb.xml:
* docs/plugins/inspect/plugin-asf.xml:
* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
* docs/plugins/inspect/plugin-dvdsub.xml:
* docs/plugins/inspect/plugin-mpegaudioparse.xml:
* docs/plugins/inspect/plugin-mpegstream.xml:
* docs/plugins/inspect/plugin-realmedia.xml:
* docs/plugins/inspect/plugin-siddec.xml:
* docs/plugins/inspect/plugin-synaesthesia.xml:
Regenerate docs.
* gst/iec958/ac3_padder.c:
* gst/iec958/ac3_padder.h:
Do not use gtk-doc style comments for non gtk-doc comments. Note -
there are functions defined using extern in the .c file - does that
make sense?
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_id3_tag_class_init):
Don't add pad templates for the base class but only in the
subclasses.
Original commit message from CVS:
* ext/lame/gstlame.c:
* ext/lame/gstlame.h:
Fix the case where you initially have stereo input, and so lame's
mode is not set to mono, and then you get input with mono audio and
soon after you get stereo input again. What happened before this
commit is that it would keep the encoding mode as mono. It should
change it back to the one requested by the app (or the default one)
if not requested.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
(mp3parse_bytepos_to_time):
Interpolate the VBRI seek table entries to get better results,
support 3 byte seek table entries and prevent overflows in the
seek table by adding the relative offsets when using the seek
table in a large enough data type.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
(gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
(mp3parse_bytepos_to_time):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Add support for seeking based on the VBRI seek table. Might make
sense to use interpolation in the table later to get hopefully a
bit more accurate values.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_event):
Use gst_util_uint64_scale instead of gst_util_uint64_scale_int
as 8 * GST_SECOND is too large for int.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
(gst_mp3parse_emit_frame), (gst_mp3parse_handle_first_frame),
(mp3parse_total_bytes), (mp3parse_total_time):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Add initial support for reading VBRI headers as found in VBR files
created by some Fraunhofer encoders. Currently we only read the
number of frames and bytes (and calculate duration, etc from this)
but there is also a seek table that we currently don't use.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at syknet dot be>
* ext/lame/gstlame.c: (gst_lame_sink_setcaps),
(gst_lame_sink_event):
Correctly set number of channels when using mono-encoding mode
and fix the duration calculation of the EOS buffer.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame):
Guard against 0 values in the Xing header as frame count and
byte count and calculate the bitrate when we have all values
we need and not before.
Original commit message from CVS:
* ext/mad/gstmad.c: (GST_TYPE_MAD_MODE),
(GST_TYPE_MAD_EMPHASIS), (GST_TAG_EMPHASIS), (CHECK_HEADER):
Call g_type_class_ref() from a thread-safe context and not
from the streaming thread to avoid GLib screwing up (see
bug #349410 and #493432). Comment out unused code.
Original commit message from CVS:
* autogen.sh:
Add -Wno-portability to the automake parameters to stop warnings
about GNU make extensions being used. We require GNU make in almost
every Makefile anyway.
* configure.ac:
Use AM_PROG_CC_C_O as a compiler that accepts both -c and -o
at the same time is required for per target flags.
Original commit message from CVS:
* ext/mad/gstmad.c: (mpg123_parse_xing_header):
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame):
Make sure that the Xing TOC starts with 0 and the entries
are increasing over time. Otherwise it's broken and should
be skipped. Fixes bug #507821.
Original commit message from CVS:
* gst/realmedia/rdtmanager.c:
(gst_rdt_manager_marshal_VOID__UINT_UINT),
(gst_rdt_manager_class_init):
* gst/realmedia/rdtmanager.h:
Implement some more signals that rtspsrc connects to.
Fixes#504671.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_sink_event), (mp3parse_handle_seek):
Don't post SEGMENT_START messages on the bus, only the element
driving the pipeline should do that.
Original commit message from CVS:
2007-11-20 Julien MOUTTE <julien@moutte.net>
* gst/realmedia/rtspreal.c: (rtsp_ext_real_parse_sdp): Fix build
on Mac OS X.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
Restore the segment handling logic.
Please don't do behavioural changes under the heading of 'leak fixes'
or 'whitespace changes', people.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_ext_content_desc):
Convert tags that come as string into the type required by
GstTagList.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame):
Remove some more broken code, it seems to clip even when it should not.
See #491305.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame):
When the element is not driving the streaming thread it is not supposed
to emit EOS or post SEGMENT done. It is allowed to return UNEXPECTED
upstream when it detects EOS. See #491305.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <mnauw at users.sourceforge.net>
* gst/dvdsub/Makefile.am:
* gst/dvdsub/gstdvdsubdec.c:
* gst/dvdsub/gstdvdsubparse.c:
* gst/dvdsub/gstdvdsubparse.h:
Add dvd subtitle parser, which just packetizes the input
stream. This is needed to mux dvd subtitles into matroska
files, since the muxer expects unfragmented and properly
timestamped input (#415754).
Original commit message from CVS:
* configure.ac:
Update requirements from past CVS versions to released
versions (0.10.14 in this case).
* ext/sidplay/gstsiddec.cc:
Fix compilation with g++-4.2.
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.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (mp3parse_time_to_bytepos),
(mp3parse_bytepos_to_time):
Use gst_util_guint64_to_gdouble for conversions.
* win32/vs6/libgstmad.dsp:
Add a link to libgstaudio.
Original commit message from CVS:
* configure.ac:
Use AG_GST_ARG_WITH_PLUGINS, AG_GST_ARG_ENABLE_EXTERNAL and
AG_GST_ARG_ENABLE_EXPERIMENTAL instead of duplicating those macros
in configure.ac.
Original commit message from CVS:
* ext/lame/gstlame.c:
Allow fixing the sample rate lame converts to by negotiating fixed
sample rate on the src pad caps.
Add docs for it.
* tests/check/Makefile.am:
* tests/check/pipelines/lame.c:
Add a check for it.
Original commit message from CVS:
* gst/iec958/ac3iec.c:
Chainup in finalize.
* tests/check/Makefile.am:
* tests/check/generic/states.c:
Improved state change unit test.
Original commit message from CVS:
* configure.ac:
Use AC_TRY_COMPILE instead of AC_TRY_RUN to check for a
define in the lame headers. This has the advantage that
it should still work when we're cross-compiling (#452025).
Original commit message from CVS:
* gst/dvdlpcmdec/gstdvdlpcmdec.c:
Add other allowed rates to the pad templates.
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_dispose):
Reset the parser to release memory in dispose.
Original commit message from CVS:
Patch by: Daniel Charles <dcharles at ti dot com>
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_bandmode_get_type),
(gst_amrnbenc_set_property), (gst_amrnbenc_get_property),
(gst_amrnbenc_base_init), (gst_amrnbenc_class_init),
(gst_amrnbenc_chain), (gst_amrnbenc_state_change):
* ext/amrnb/amrnbenc.h:
Add property to select the BandMode of the AMR encoder.
See #466442.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_sink_event), (gst_mp3parse_emit_frame):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Queue segment event and push it after we know the caps on the pad or
else an autoplugger might not have plugged the element yet and the
segment is lost.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/generic/.cvsignore:
* tests/check/generic/states.c:
Add generic state-change test suite to help to fi leaks.
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.
Original commit message from CVS:
* gst/realmedia/rtspreal.c: (rtsp_ext_real_get_transports),
(rtsp_ext_real_parse_sdp), (rtsp_ext_real_stream_select):
Disable UDP transport for now.
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstrtspwms.c: (gst_rtsp_wms_before_send),
(gst_rtsp_wms_after_send), (gst_rtsp_wms_parse_sdp),
(gst_rtsp_wms_configure_stream), (_do_init),
(gst_rtsp_wms_base_init), (gst_rtsp_wms_class_init),
(gst_rtsp_wms_init), (gst_rtsp_wms_finalize),
(gst_rtsp_wms_change_state), (gst_rtsp_wms_extension_init):
* gst/asfdemux/gstrtspwms.h:
Move WMS RTSP extension from -good to here.
Port it to the new pluggable extension interface.
Original commit message from CVS:
* configure.ac:
* ext/mad/gstmad.c: (gst_mad_chain):
Use the new buffer clipping function from gstaudio here and
require gst-plugins-base CVS.
Original commit message from CVS:
* configure.ac:
Sync liboil check with plugins-base. Add libm check.
* gst/synaesthesia/Makefile.am:
Link against libm. We're using sqrt here.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
(gst_mp3parse_emit_frame), (mp3parse_handle_seek):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Save some memory for each frame by only saving the start timestamp
and start byte position instead of additionally the stop timestamp
and stop byte position. This requires us to use a doubly-linked list
but still saves 8-12 bytes per frame.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame):
Fix a calculation that was causing mp3parse to drop every incoming
frame when upstream delivered a segment in TIME format, breaking
playback of all mpeg system streams.
Original commit message from CVS:
* Makefile.am:
* configure.ac:
* tests/Makefile.am:
Remove bogus check for libcheck, since we check for
gstreamer-check and it pulls in the required info from
and we weren't actually _using_ the information for
libcheck ourselves anyway.
Original commit message from CVS:
* ext/mad/gstmad.c: (_do_init), (gst_mad_init), (index_seek),
(normal_seek), (gst_mad_sink_event), (clip_outgoing_buffer),
(gst_mad_chain), (gst_mad_change_state):
* ext/mad/gstmad.h:
Implement buffer clipping and use GST_BOILERPLATE instead of manual
GType magic. Part one of bug #308312.
Original commit message from CVS:
* configure.ac:
* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_descramble_buffer):
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_raw):
Fix build against core CVS by not using deprecated API. Bump
requirements for new API (overdue anyway).
Original commit message from CVS:
* docs/plugins/inspect/plugin-dvdnav.xml:
* docs/plugins/inspect/plugin-realmedia.xml:
* docs/plugins/inspect/plugin-synaesthesia.xml:
Add inspect file for synaesthesia so the docs can be built even if
the plugin isn't built yet. Fixes#454311. Also add inspect files
for dvdnavsrc and realmedia.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_base_init),
(gst_mp3parse_init):
Use GST_BOILERPLATE instead of manual GType magic.
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
(mp3parse_bytepos_to_time):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Implement seeking, byte->time, time->byte conversions with the Xing
seek table if available. This allows better at least a bit more
accurate seeks and file position reporting.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame):
Copy the complete Xing seek table in the 100 byte array instead of
copying the first byte 100 times.
* gst/mpegaudioparse/gstmpegaudioparse.c: (mp3parse_total_bytes),
(mp3parse_total_time), (mp3parse_time_to_bytepos):
Add seeking support based on the Xing header but comment it out for
now as it seems to yield worse result than the other method.
Also use gst_pad_query_peer_duration() instead of getting the peer pad
ourself, creating a new GstQuery, etc.
Original commit message from CVS:
* po/POTFILES.in:
Make sure dvdnav strings get translated too (no reason not to have
them in the .po file, even if the plugin is disabled for now).
Fixes#450879.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_base_init),
(gst_amrnbdec_event), (gst_amrnbdec_chain),
(gst_amrnbdec_state_change):
* ext/amrnb/amrnbdec.h:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_base_init),
(gst_amrnbparse_loop):
Add newsegment and discont handling. Some code cleanups.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c:
If we can't read a nav packet, or it doesn't look like a nav
packet, that's an error. Previous behavior was to look at
the next packet; I can't find any justification for doing that.
Fixes: #358891.
Original commit message from CVS:
contributed by: Wenzheng Hu <db_lobster@163.com>
* po/LINGUAS:
* po/zh_CN.po:
Added Chinese (simplified) translation.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_caps_create):
Fix "pad caps are not a real subset of its template caps" warning.
Original commit message from CVS:
Patch by: Laurent Glayal <spglegle at yahoo dot fr>
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_class_init),
(gst_amrnbdec_finalize):
Don't leak the adapter, unref it in a new finalize method instead.
Fixes#448782.
Original commit message from CVS:
* ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_set_property):
Don't forget to unlock when setting the device property, or
we'll sooner or later deadlock.
Original commit message from CVS:
* gst/dvdsub/gstdvdsubdec.c:(gst_dvd_sub_dec_parse_subpic):
Use gst_util_guint64_to_gdouble for conversion.
* win32/vs6/libgstasfdemux.dsp:
Add asfpacket.c to the build.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
(gst_mp3parse_emit_frame), (gst_mp3parse_handle_first_frame):
* gst/mpegaudioparse/gstmpegaudioparse.h:
If the Xing header provides a total time, use it to calculate the
correct average bitrate immediately, instead of sending updates as
we parse the stream.
Original commit message from CVS:
Patch by by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_parse_subpic):
Use GstClockTime instead of guint for a time variable to prevent
overflows on too large subtitle durations. Fixes#444514.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_sink_event):
Clear state when handling the serialized FLUSH_STOP event instead of
the FLUSH_START event, thereby making sure we don't free buffers the
chain function is still using. Fixes dvdsubdec crashing when flusing
or seeking (#442706).
Original commit message from CVS:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
Add sanity check so we don't abort for broken or non-MPEG streams,
but instead error out. Fixes crashes/aborts for when our typefinder
wrongly identifies quicktime files as mpeg (which should be fixed in
-base now too). (#440120).
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(mp3_type_frame_length_from_header), (gst_mp3parse_reset),
(gst_mp3parse_emit_frame), (gst_mp3parse_handle_first_frame),
(gst_mp3parse_chain), (mp3parse_total_bytes),
(mp3parse_total_time):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Implement parsing of Xing headers from the first frame of the stream,
and use it to report duration correctly where possible.
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.
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.
Original commit message from CVS:
Based on patch by: Mark Nauwelaerts <manauw skynet be>
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
(gst_mpeg_demux_process_event), (gst_mpeg_streams_reset_last_flow):
* gst/mpegstream/gstmpegdemux.h:
Reset last_flow values for the various streams after a flushing
seek, otherwise we might aggregate wrong flow returns afterwards
that will make upstream pause silently. This should fix seeking
in DVDs and also fix the Thoggen cropping dialog (#438610).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_reset),
(gst_asf_demux_chain_headers),
(gst_asf_demux_parse_data_object_start), (all_streams_prerolled),
(gst_asf_demux_have_mutually_exclusive_active_stream),
(gst_asf_demux_check_activate_streams),
(gst_asf_demux_find_stream_with_complete_payload),
(gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop),
(gst_asf_demux_activate_ext_props_streams),
(gst_asf_demux_process_object):
* gst/asfdemux/gstasfdemux.h:
Activate streams (ie. add the pads to the element) depending on
whether we actually get data for those streams within the ASF
preroll value specified. Currently only done in pull-mode though
(this will fix problems with playbin hanging on mms streams once
we use this in push-mode as well).
Original commit message from CVS:
* gst/asfdemux/asfpacket.c: (gst_asf_payload_queue_for_stream):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_reset),
(gst_asf_demux_init), (gst_asf_demux_push_complete_payloads),
(gst_asf_demux_process_file):
* gst/asfdemux/gstasfdemux.h:
Make all timestamps start from zero in pull-mode too; some small
clean-ups and FIXMEs here and there.
Original commit message from CVS:
* gst/asfdemux/asfpacket.c: (gst_asf_demux_parse_payload),
(gst_asf_demux_parse_packet):
If packet size is specified within the packet and smaller than
the actual packet size, don't parse beyond the size specified in
the packet (this makes us parse some cases of packets with single
compressed payloads cleanly, see e.g stream from #431318). Also
add a sanity check when parsing compressed single payloads.
Original commit message from CVS:
* gst/asfdemux/asfpacket.c: (gst_asf_payload_queue_for_stream):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_seek_index_lookup),
(gst_asf_demux_handle_seek_event),
(gst_asf_demux_push_complete_payloads):
Seeking improvements: honour the KEY_UNIT seek flag; after a seek, only
send data from the keyframe right before the new segment start to
make sure the decoder doesn't have to decode more than absolutely
necessary.
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_reset), (gst_asf_demux_parse_data_object_start),
(gst_asf_demux_loop), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_activate_stream),
(gst_asf_demux_parse_stream_object),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_activate_ext_props_streams),
(gst_asf_demux_process_object):
* gst/asfdemux/gstasfdemux.h:
Refactor stream parse/activation a bit (stream activation heuristics
are still the same though); some more clean-ups.
Original commit message from CVS:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init):
* gst/asfdemux/gstasfdemux.h:
Init debug category before using it.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_pull_data),
(gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop):
Fix silly bug when we can't pull as much data as we want; don't
forget to announce pending tags in the new packet parsing code.
Original commit message from CVS:
* configure.ac:
* win32/MANIFEST:
Generate a win32 config.h into win32/common and add to MANIFEST so
it gets disted (#393890). Looks like win32/common/config.h.in needs
some work though.
Original commit message from CVS:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type),
(gst_amrnbparse_class_init), (gst_amrnbparse_init),
(gst_amrnbparse_pull_header), (gst_amrnbparse_loop):
Fix pull mode operation some more: send newsegment event before
sending data; handle EOS and fatal flow returns a bit better; don't
leak buffers in some cases. Misc. minor cleanups. Fixes#431707.
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/asfpacket.c: (asf_packet_read_varlen_int),
(asf_packet_create_payload_buffer),
(asf_payload_find_previous_fragment),
(gst_asf_payload_queue_for_stream), (gst_asf_demux_parse_payload),
(gst_asf_demux_parse_packet):
* gst/asfdemux/asfpacket.h:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_reset_stream_state_after_discont),
(gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop),
(gst_asf_demux_setup_pad), (gst_asf_demux_descramble_buffer),
(gst_asf_demux_process_chunk):
* gst/asfdemux/gstasfdemux.h:
New packet parsing code: should put halfway decent timestamps on
buffers, and might even set the appropriate keyframe/discont buffer
flags from time to time (and even if it doesn't, I'm at least able
to debug this code); only used in pull-mode so far. Still needs
some more work, like payload extensions parsing and proper flow
aggregation, and stream activation based on preroll. Stay tuned.
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_seek_index_lookup),
(gst_asf_demux_handle_seek_event), (gst_asf_demux_get_stream),
(gst_asf_demux_setup_pad), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_process_file), (gst_asf_demux_descramble_segment),
(gst_asf_demux_push_buffer), (gst_asf_demux_process_chunk),
(gst_asf_demux_process_segment), (gst_asf_demux_handle_data):
* gst/asfdemux/gstasfdemux.h:
Some clean-ups and small fixes: rename asf_stream_context structure to
AsfStream; inline some three-line utility functions that are only used
once anyway and get rid of their associated helper structs; make debug
category global so that it is used by the debug statements in the other
file as well; simplify gst_asf_demux_get_stream(); fix accidental
implicit initialisation of stream->last_buffer_timestamp to 0, which
would lead to missing timestamps on the first buffer; put fourcc format
into video caps to make certain proprietary wmv decoders happy (for the
case of WMVA in particular); play_time is offset by preroll as well, so
fix overreporting of duration for some files.