The logical audio and subpicture stream number doesn't always correspond
with the physical substream it is coming from. When configuring the demuxer
pads, use the mapping table provided in each PGC to get the layout and
ensure the demuxer creates the correct pads.
modplug's sndfile.h conflicts with libsndfile's sndfile.h, so
we'll access it directly using modplug/sndfile.h. Fixes#573849
Signed-off-by: David Schleef <ds@schleef.org>
No need to unref buffers if pad_push returns something non-FLOW_OK.
In fact, this will cause assertions or crashes. However, we do need
to unref the input buffer whenever we don't pass it downstream. Also,
a non-OK flow return is not an error, so don't post error messages on
the bus - the pipeline may just be shutting down. Miscellaneous other
clean-ups and crack removal. Plenty of work left for those who feel
like it.
When sending the stream change message(s) to the demuxer, also include the
logical stream id along with the physical ID, so that the demuxer can remap
logical->physical MPEG stream ID.
Handle the new DVD commands, so that we can handle commands from a player
to change angle, jump to menus etc. Use the new GstNavigation event parsing
functions, instead of hand-rolled stuff.
Send GstNavigation notification messages when the mouse enters a button
or leaves it, so UI can turn the mouse cursor to a hand icon.
Make the highlights re-appear correctly when jumping back into menus
by making sure to set the flushing_seek flag for user-action initiated
seeks.
Fiddle some debug related to tracking down the issue.
Add a workaround for an apparent libdvdnav bug where it loses nav packets
during multiangle titles, and add some keypress bindings to switch the angle.
Add a 'fast-start' property to the rsndvdsrc element, that attempts to
jump directly to the DVD menu when starting. Doesn't work correctly on all
titles yet.
Add workarounds for issues with multiple angles in libdvdnav: Use a heuristic
to avoid detecting discontinuities during multiple-angle titles, it seems
caused by libdvdnav losing some NAV packets in multiangle titles. Fix
seeking in multi-angle titles by aligning our sector calculation logic
with libdvdnav's. Also, use libdvdnav's dvdnav_get_current_time() method
to determine the logical position of the current cell when it changes, as the
cell_start value in the cell_change event provides a number that doesn't
compensate for angle cell blocks.
Add a new connection mode to jacksrc and jacksink. In this new auto-force
connection mode jack will create as many ports as requested/needed in the
pipeline and will then connect as many physical ports as possible, possibly
leaving some ports unconnected.
Also get rid of some leftover g_print.
Fixes#575284.
Sprinkle more debug log statements into the code. Move some repeaded string
constant into header files and use sizeof instead of manually counted bytes. Add
comments.
First do not build the plugin, if we have none of the backend, as it won't work
then. Fix the miniobject_unref error in the test. Sprinkle a first handful of
debug logs into the element code.
Use glib defines for searchpath separators. Filter searchpath to avoid scanning
path entries twice. Fix the return in ladspa_plugin_directory_search to return
wheter we found a plugin.
Move the two function from search.c into gstladspa.c and make them static.
Remove non needed arguments from function prototypes. Use glib api for
simplicity and portability.
Internally BPMDetect assumes that at most 2048 samples are passed
to it at once and stores those in a stack allocated static sized
array. If we pass too many samples this will result in a buffer overflow
resulting in heavy stack corruption and a crash. Fixes bug #570996.
Use gst_element_klass_set_details_simple(), install properties
with static strings, create pads directly from the static pad
templates, directly put the segment into the instance struct,
use GST_MSECOND instead of numbers.
The PAR is a GstFraction and not a double, use gst_structure_get_fraction().
Simplify setcaps() functions.
Always build the modplug plugin against the system modplug library
and remove our own copy. Using the system version has advantages
if security issues or other critical bugs are found in libmodplug
and our own copy wasn't really maintained anyway.
Also our copy only contained some patches to use GLib types and functions.
Fixes bug #568837.
Original commit message from CVS:
* ext/resindvd/resindvdsrc.c:
Additional patch for resin fixes time-based seeking in titles
that don't start at sector 0 in the VTS, and fixes interpretation
of the cell elapsed time, so that it reports the correct time after
the seek completes.
Really fixes#566957.
Original commit message from CVS:
Based on Patch by: Brian Cameron <brian dot cameron at sun dot com>
* ext/ladspa/search.c: (LADSPAPluginSearch):
Avoid searching (null) paths or crashing on platforms where printing a
NULL string segfaults. Fixes#567004.
Original commit message from CVS:
* ext/resindvd/resindvdbin.c:
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/resindvdsrc.h:
* ext/resindvd/rsnaudiomunge.c:
Add support for time based seeking.
Make setting dvd:// reset to the default device.
Make the 'audiomunge' element send any new segment start before
the 'gap filler' buffer it generates, and any segment closes
after.
Fixes: #566957
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
(gst_x264_enc_header_buf), (gst_x264_enc_encode_frame):
Use hyphen in property name, perform safety buffer size check
prior to mem access, and some more parentheses in macro.
Original commit message from CVS:
* ext/apexsink/Makefile.am:
Link against -lgcrpyto for RSA_new and RSA_free.
* ext/faac/gstfaac.c:
* ext/x264/gstx264enc.c:
Fix compiler warnings.
Original commit message from CVS:
* ext/celt/gstceltenc.c:
* ext/celt/gstceltenc.h:
* ext/metadata/gstmetadatamux.c:
* gst/qtmux/gstqtmux.c:
* gst/qtmux/gstqtmux.h:
Totally remove the internal taglists and fully use tagsetter. Fixes
various tag muxing issues.
Original commit message from CVS:
* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps):
* ext/jp2k/gstjasperenc.c: (gst_jasper_enc_reset),
(gst_jasper_enc_set_src_caps), (gst_jasper_enc_init_encoder),
(gst_jasper_enc_sink_setcaps), (gst_jasper_enc_get_data):
* ext/jp2k/gstjasperenc.h:
Add image/x-jpc caps name for real, raw JPEG2000 codestream data.
In 0.11 we should merge image/x-j2c and image/x-jpc and simply drop
the non-standard boxing in the jasper elements and handle it in
qtmux/qtdemux.
image/x-jpc will be used by mxfdemux later.
Also add support for JP2 output in jp2kenc.
Original commit message from CVS:
* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps):
Don't unref the element instance if we don't own a reference.
Original commit message from CVS:
Patch by: Jonathan Matthew <notverysmart at gmail dot com>
* ext/spc/gstspc.c: (gst_spc_dec_sink_event), (spc_setup):
Post an error and push EOS when we can't start playback for some reason.
also avoid a crash when fed an empty file. Fixes#480543.
Original commit message from CVS:
* ext/jack/gstjackaudiosink.c:
* ext/jack/gstjackaudiosrc.c:
Query port latencies for sink/src delays.
* ext/jack/gstjackbin.c:
No printf please.
Original commit message from CVS:
Patch by: Tal Shalif <tshalif at nargila dot org>
* ext/resindvd/resindvdsrc.c:
(rsn_dvdsrc_prepare_streamsinfo_event):
Fix format string. Fixes bug #561992.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps):
Construct source caps in more conventional (and correct) manner.
Original commit message from CVS:
* ext/dirac/gstdiracenc.cc:
Set pixel-aspect-ratio correctly in the encoder API, as well
as some default gstreamerish colorspace properties. Also,
apparently, change a bunch of indentation.
Original commit message from CVS:
* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_init),
(gst_jasper_dec_reset), (gst_jasper_dec_negotiate),
(gst_jasper_dec_get_picture):
* ext/jp2k/gstjasperdec.h:
Make pad template caps reflect the supported formats.
Add or modify some debug statements, and slightly simplify image
passing to encoding library.
Original commit message from CVS:
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/resindvdsrc.h:
Better fix for #546319 and similar cases by explicitly
registering when we're in playing state or not.
Original commit message from CVS:
* ext/ladspa/gstladspa.c:
Whitespace.
* ext/ladspa/gstsignalprocessor.c:
Add a FIXME:. not sure if this code does the forwarding correctly.
Original commit message from CVS:
* ext/resindvd/resindvdsrc.c:
Make sure to start the NAV packet processing when changing
state to PLAYING by passing a flag that indicates the state
change is in progress.
Fixes: #546319
Original commit message from CVS:
* ext/resindvd/resin-play:
Remove $@ to fix parse_launch warning
* ext/resindvd/resin-play2:
Add a version that uses deinterlace and xvimagesink.
Original commit message from CVS:
* ext/apexsink/gstapexplugin.c: (plugin_init):
Set apexsink's rank to NONE so it doesn't get used by
autoaudiosink (there's no point really). (#556588)
Original commit message from CVS:
* ext/apexsink/gstapexraop.c: (gst_apexraop_connect),
(gst_apexraop_set_volume):
Fix format string compiler warnings.