liba52 in a52dec-0.7.4 does not have any MMX, MMXEXT or 3DNOW based
IMDCT transform acceleration. It does however have a software based
acceleration using the djbfft library (D.J. Bernstein's library for
fourier transforms - Extremely fast library for floating-point
convolution). So allow liba52 to use it through the MM_ACCEL_DJBFFT
flag.
The liba52 copy in MPlayer sources does have SSE, 3dnowext, 3dnow
and AltiVec implementations, but those are checked for first, and
djbfft is chosen only if none of those is available - good in the
case of some distributions including a port of the MPlayer changes
in their system a52dec library.
The down and upmix code in liba52 doesn't seem to be disturbed by
this additional MM_ACCEL flag and will still use MMX, SSE or 3DNOW
versions if passed from oil_cpu_get_flags (SSE currently is not).
Fixes bug #592787.
Perform some cleanups based on the dtsdec code such as using the boilerplate
macro and static pad template functions.
Add some documentation. Don't register a change in flags until we synch on
another frame successfully.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c:
* ext/a52dec/gsta52dec.h:
Fix channel re-negotiation on a change of the incoming stream.
Patch By: Thijs Vermeir <thijsvermeir@gmail.com>
Fixes: #551660
Original commit message from CVS:
* ext/a52dec/gsta52dec.c:
Set up a default time segment for output when receiving
an incoming byte segment (as for raw AC3 files).
Fixes: #548194
Original commit message from CVS:
* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
* ext/a52dec/gsta52dec.c:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c:
* ext/amrnb/amrnbparse.c:
* ext/lame/gstlame.c:
* ext/mad/gstmad.c:
* ext/sidplay/gstsiddec.cc:
* gst/asfdemux/gstrtspwms.c:
* gst/mpegaudioparse/gstxingmux.c:
* gst/realmedia/rademux.c:
* gst/realmedia/rdtmanager.c:
* gst/realmedia/rtspreal.c:
* gst/synaesthesia/gstsynaesthesia.c:
Add missing elements to docs. Restore alphabetical order in section
file. Document mad (it was included in docs already).
Fix doc-markup: use convinience syntax for examples
(produces valid docbook), add several refsec2 when we have several
titles. Fix some types.
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:
* docs/plugins/gst-plugins-ugly-plugins.args:
* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
* docs/plugins/gst-plugins-ugly-plugins.interfaces:
* docs/plugins/inspect/plugin-a52dec.xml:
* docs/plugins/inspect/plugin-amrnb.xml:
* docs/plugins/inspect/plugin-asf.xml:
* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
* docs/plugins/inspect/plugin-dvdread.xml:
* docs/plugins/inspect/plugin-dvdsub.xml:
* docs/plugins/inspect/plugin-iec958.xml:
* docs/plugins/inspect/plugin-lame.xml:
* docs/plugins/inspect/plugin-mad.xml:
* docs/plugins/inspect/plugin-mpeg2dec.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:
* ext/a52dec/gsta52dec.c:
Random doc of the day. Also print human readable format of newsegment
in log message if we complain about it.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_init), (gst_a52dec_push),
(gst_a52dec_sink_event), (gst_a52dec_handle_frame),
(gst_a52dec_chain), (gst_a52dec_change_state):
* ext/a52dec/gsta52dec.h:
Mark discont on outgoing buffers after receiving a DISCONT buffer or
when we have a decoding error.
We don't need to clear the cache when we receive a NEWSEGMENT event.
Clear buffer cache in DISCONT.
Add beginnings of GstSegment handling.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_mode_get_type),
(gst_a52dec_class_init), (gst_a52dec_init), (gst_a52dec_channels),
(gst_a52dec_handle_frame), (gst_a52dec_change_state),
(gst_a52dec_set_property), (gst_a52dec_get_property):
* ext/a52dec/gsta52dec.h:
Patch from from Michal Benes <michal.benes@itonis.tv>:
Add two things to a52dec: configure the exact output format for ac3
decoding through properties, if desired.
By default, configure an output format preferred by downstream. Now
that audioconvert lists caps by preference, this means that a52dec
can do downmixing (iff required) rather than audioconvert, so it can
use the ac3 downmix levels from the bitstream.
Original commit message from CVS:
Patch by: Wim Taymans <wim at fluendo dot com>
* ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event):
Instead of forwarding the event in the wrong format, unref it and set
a boolean that we still need to send it in the streaming thread.
Fixes#350554
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_chain):
When the first_access is 1 or 0, we should copy the timestamp from
the incoming buffer if there is one.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (gst_a52dec_push),
(gst_a52dec_reneg), (gst_a52dec_handle_frame), (gst_a52dec_chain):
Use GST_ELEMENT_ERROR for error reporting; post errors in some
more places; remove superfluous newlines from debug statements.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (plugin_init):
Call the channel positions get_type() method in plugin_init
to ensure that it isn't simultaneously called later from
multiple threads.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (plugin_init):
Treat dual-mono as stereo. It should really be output on 2 separate
pads, but isn't for now.
Original commit message from CVS:
* ext/a52dec/Makefile.am:
... and then he said "When you go and fix the build you
better make sure you have some spare backslashes in your
pocket".
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:
* ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event),
(gst_a52dec_chain_raw), (gst_a52dec_change_state):
* ext/a52dec/gsta52dec.h:
Fix#334550: failure to play raw AC3 files due to segment problems.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_init),
(gst_a52dec_sink_setcaps), (gst_a52dec_chain),
(gst_a52dec_chain_raw):
* ext/a52dec/gsta52dec.h:
Accept AC3 in audio/x-private1-ac3 format, which includes
DVD-specific headers, as well as raw AC3, for compatibility with
some demuxers.
Original commit message from CVS:
* ext/a52dec/Makefile.am:
* ext/a52dec/gsta52dec.c: (gst_a52dec_base_init),
(gst_a52dec_class_init), (gst_a52dec_sink_event),
(gst_a52dec_change_state):
* ext/a52dec/gsta52dec.h:
Re-enable CPU flags, use liboil to get them.
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:
* ext/a52dec/gsta52dec.c: (gst_a52dec_init),
(gst_a52dec_handle_event), (gst_a52dec_update_streaminfo),
(gst_a52dec_handle_frame), (gst_a52dec_chain),
(gst_a52dec_change_state), (plugin_init):
* ext/a52dec/gsta52dec.h:
Do something useful with timestamps. Make chain-based (since
there's really no reason to be loopbased).
* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
Update current_byte/frame correctly.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_loop),
(gst_a52dec_change_state):
Don't do sample adjusting anymore, we use float audio now.
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
Don't fixate to non-existing properties.
Original commit message from CVS:
second batch :
remove ',' at end of enums as they could confuse older gcc, foreign compilers (forte) and gtk-doc
(in gst-plugins/ext/ this time)
Original commit message from CVS:
* ext/a52dec/gsta52dec.c : mark audio/a52, audio/ac3 as deprecated in a comment
* gst/ac3parse/gstac3parse.c : audio/ac3 => audio/x-ac3
* gst/realmedia/rmdemux.c : audio/a52 => audio/x-ac3
Original commit message from CVS:
a52dec: Use a debug category, Output timestamps correctly
Emit tag info, Handle events, tell liba52dec about cpu
capabilities so it can use MMX etc.
dvdec: Fix a crasher accessing invalid memory
dvdnavsrc:Some support for byte-format seeking.
Small fixes for still frames and menu button overlays
mpeg2dec: Use a debug category. Adjust the report level of several items to
LOG. Call mpeg2_custom_fbuf to mark our buffers as 'custom buffers'
so it doesn't lose the GstBuffer pointer
navseek: Add the navseek debug element for seeking back and forth in a
video stream using arrow keys.
mpeg2subt:Pretty much a complete rewrite. Now a loopbased element. May still
require work to properly synchronise subtitle buffers.
mpegdemux:
dvddemux: Don't attempt to create subbuffers of size 0
Reduce a couple of error outputs to warnings.
y4mencode:Output the y4m frame header correctly
Original commit message from CVS:
2004-02-03 Benjamin Otte <in7y118@public.uni-hamburg.de>
* common/m4/ax_create_stdint_h.m4:
* configure.ac:
add AX_CREATE_STDINT_H to get correct type definitions for a52dec in
_stdint.h.
* Makefile.am:
remove generated _stdint.h in DISTCLEANFILES
* ext/a52dec/gsta52dec.c:
include _stdint.h for a52dec. (should fix#133064)
Original commit message from CVS:
Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes from several source files
Original commit message from CVS:
merge TYPEFIND branch. Major changes:
- totally reworked type(find) system
- all typefind functions are in gst/typefind now
- more typefind functions then before
- some plugins might fail to compile now because I don't have them installed and they
a) require bytestream or
b) haven't had their typefind fixed.
Please fix those plugins and put the typefind functions into gst/typefind if they don't have dependencies
Original commit message from CVS:
New typefind system:
* bytestream is now part of the core
* all plugins have been modified to use this new typefind system
* asf typefinding added
* mpeg video stream typefiding removed because it's broken
* duplicate typefind entries removed
* extra id3 typefinding added, because we've seen 4 types of files
(riff/wav, flac, vorbis, mp3) with id3 headers and each of these needs
to work. Instead, I've added an id3 element and let it redo typefiding
after the id3 header. this needs a hack because spider only typefinds
once. We can remove this hack once spider supports multiple typefinds.
* with all this, mp3 typefinding is semi-rewritten
* id3 typefinding in flac/vorbis is removed, it's no longer needed
* fixed spider and gst-typefind to use this, too.
* Other general cleanups
Original commit message from CVS:
New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as described in the previous commit's document. Note: some plugins will break, some pipelines will break, expect HEAD to be broken or at least not 100% working for a few days, but don't forget to report bugs
Original commit message from CVS:
compatibility fix for new GST_DEBUG stuff.
Includes fixes for missing includes for config.h and unistd.h
I only ensured for plugins I can build that they work, so if some of them are still broken, you gotta fix them yourselves unfortunately.
Original commit message from CVS:
add ranks only for plugins who participate in autoplugging. If you have a file that used to autoplug but doesn't anymore, then let me know or add a rank to the missing element.
Original commit message from CVS:
* a hack to work around intltool's brokenness
* a current check for mpeg2dec
* details->klass reorganizations
* an element browser that uses details->klass
* separated cdxa parse out from the avi directory
Original commit message from CVS:
* removal of //-style comments
* don't link plugins to core libs -- the versioning is done internally to the plugins with the plugin_info struct,
and symbol resolution is lazy, so we can always know if a plugin can be loaded by the plugin_info data. in theory.
Original commit message from CVS:
s/@GST_PLUGIN_LDFLAGS@/$(GST_PLUGIN_LDFLAGS)/
@-substitued variables variables are defined as make variables automagically,
and this gives the user the freedom to say make GST_PLUGIN_LDFLAGS=-myflag