Commit graph

87 commits

Author SHA1 Message Date
Luis de Bethencourt
5a4c09f791 resindvd: use GST_STIME_FORMAT for GstClockTimeDiff
No need to use G_GINT64_FORMAT for potentially negative values of
GstClockTimeDiff. Since 1.6 these can be handled with GST_STIME_FORMAT.
Plus it creates more readable values in the logs.

https://bugzilla.gnome.org/show_bug.cgi?id=757480
2015-11-05 12:17:58 +00:00
Sebastian Dröge
458bafe9e3 resindvd: Port to new GLib mutex/cond API 2015-10-02 22:57:27 +03:00
Vincent Penquerc'h
db7934233f resindvd: guard against overflow in audio subtitle streams
Turns out there was the same issue as with subtitles.

There is space for a single audio stream, but up to 255
may be used based on a uint8_t value in a struct, which may
or may not be read from the (untrusted) data.
A comment in ifo_types.h says this value is either 0 or 1, so
we can ensure this here without drawbacks.

Coverity 1139585
2014-04-08 14:24:31 +01:00
Vincent Penquerc'h
380f95ea01 resindvd: guard against overflow in menu subtitle streams
There is space for a single subtitle stream, but up to 255
may be used based on a uint8_t value in a struct, which may
or may not be read from the (untrusted) data.
A comment in ifo_types.h says this value is either 0 or 1, so
we can ensure this here without drawbacks.

Coverity 1139586
2014-04-08 14:21:53 +01:00
Tim-Philipp Müller
078b82d6d1 resindvdsrc: fix minor memory leak when creating title info message 2014-01-15 11:52:09 +00:00
Tim-Philipp Müller
4c76427ba7 resindvd: handle non-utf8 dvd disc titles better
Maybe something based on the code in bug #688367
and the language encodings would work even better
though (now it will try things based on the locale).

https://bugzilla.gnome.org/show_bug.cgi?id=690097
2013-01-07 10:37:53 +00:00
Tim-Philipp Müller
9e1b75fda3 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Tim-Philipp Müller
32ba17cd0f Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Jan Schmidt
3c1a1dfec5 resindvd: Fiddle with segment handling for DVD.
Clarify some of the terms used, and make sure to extend the
stop time when the position moves past the end of the current
segment (as for still frames, for example).

Also, make sure to reset the position value of the segment the
demuxer outputs when collecting a seamless segment.
2012-09-30 04:08:50 +10:00
Mark Nauwelaerts
578861abea replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:27:49 +02:00
Tim-Philipp Müller
a79edf27d0 gst_message_new_duration -> gst_message_new_duration_changed 2012-09-02 01:48:12 +01:00
Jan Schmidt
211828979b resindvd: Add some GAP event stuff to make still-frames start to work
And remove the dead audiomunge element. It isn't needed now, we just
send GAP events
2012-08-31 13:12:41 -07:00
Jan Schmidt
1218cff3dc resindvd: Initial partial port to 0.11 2012-08-31 12:46:29 -07:00
Vincent Penquerc'h
54f7ab5cf6 resindvd: guard against not finding some data on a DVD
May possibly help with a particular DVD.

https://bugzilla.gnome.org/show_bug.cgi?id=673118
2012-06-14 15:32:11 +01:00
Sebastian Dröge
860ccd414d Merge remote-tracking branch 'origin/0.10'
Conflicts:
	NEWS
	RELEASE
	common
	configure.ac
	docs/libs/gst-plugins-bad-libs-sections.txt
	docs/plugins/gst-plugins-bad-plugins.args
	docs/plugins/gst-plugins-bad-plugins.hierarchy
	docs/plugins/gst-plugins-bad-plugins.interfaces
	docs/plugins/inspect/plugin-adpcmdec.xml
	docs/plugins/inspect/plugin-adpcmenc.xml
	docs/plugins/inspect/plugin-assrender.xml
	docs/plugins/inspect/plugin-audiovisualizers.xml
	docs/plugins/inspect/plugin-autoconvert.xml
	docs/plugins/inspect/plugin-bayer.xml
	docs/plugins/inspect/plugin-bz2.xml
	docs/plugins/inspect/plugin-camerabin2.xml
	docs/plugins/inspect/plugin-celt.xml
	docs/plugins/inspect/plugin-dataurisrc.xml
	docs/plugins/inspect/plugin-debugutilsbad.xml
	docs/plugins/inspect/plugin-dtmf.xml
	docs/plugins/inspect/plugin-dtsdec.xml
	docs/plugins/inspect/plugin-dvbsuboverlay.xml
	docs/plugins/inspect/plugin-dvdspu.xml
	docs/plugins/inspect/plugin-faac.xml
	docs/plugins/inspect/plugin-faad.xml
	docs/plugins/inspect/plugin-gsm.xml
	docs/plugins/inspect/plugin-h264parse.xml
	docs/plugins/inspect/plugin-mms.xml
	docs/plugins/inspect/plugin-modplug.xml
	docs/plugins/inspect/plugin-mpeg2enc.xml
	docs/plugins/inspect/plugin-mpegdemux2.xml
	docs/plugins/inspect/plugin-mpegtsdemux.xml
	docs/plugins/inspect/plugin-mpegvideoparse.xml
	docs/plugins/inspect/plugin-mplex.xml
	docs/plugins/inspect/plugin-pcapparse.xml
	docs/plugins/inspect/plugin-rawparse.xml
	docs/plugins/inspect/plugin-rtpmux.xml
	docs/plugins/inspect/plugin-rtpvp8.xml
	docs/plugins/inspect/plugin-scaletempo.xml
	docs/plugins/inspect/plugin-schro.xml
	docs/plugins/inspect/plugin-sdp.xml
	docs/plugins/inspect/plugin-segmentclip.xml
	docs/plugins/inspect/plugin-shm.xml
	docs/plugins/inspect/plugin-videomaxrate.xml
	docs/plugins/inspect/plugin-videoparsersbad.xml
	docs/plugins/inspect/plugin-vp8.xml
	docs/plugins/inspect/plugin-y4mdec.xml
	ext/celt/gstceltdec.c
	ext/dts/gstdtsdec.c
	ext/modplug/gstmodplug.cc
	ext/opus/gstopusenc.c
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideodecoder.h
	gst-libs/gst/video/gstbasevideoencoder.c
	gst-libs/gst/video/gstbasevideoencoder.h
	gst/adpcmdec/Makefile.am
	gst/audiovisualizers/gstbaseaudiovisualizer.c
	gst/h264parse/gsth264parse.c
	gst/mpegdemux/mpegtsparse.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/mpegtsdemux/mpegtspacketizer.c
	gst/mpegtsdemux/mpegtsparse.c
	gst/mpegtsdemux/tsdemux.c
	gst/mpegtsdemux/tsdemux.h
	gst/mxf/mxfdemux.c
	gst/rawparse/gstaudioparse.c
	gst/videoparsers/gsth263parse.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	sys/decklink/gstdecklinksink.cpp
	sys/dvb/gstdvbsrc.c
	sys/shm/gstshmsrc.c
	sys/vdpau/h264/gstvdph264dec.c
	sys/vdpau/mpeg/gstvdpmpegdec.c
	tests/examples/opencv/gst_element_print_properties.c
	win32/common/config.h
2012-03-29 17:41:53 +02:00
Vincent Penquerc'h
9ebacafc6a rsndvdsrc: post a message with title number and durations
https://bugzilla.gnome.org/show_bug.cgi?id=672165
2012-03-16 11:27:17 +00:00
Stefan Sauer
b84271faa6 resindvd: send duration message on duration updates
When we know a new duration, report it. Add more logging.
2012-03-04 19:57:14 +01:00
Wim Taymans
1119f6ee41 Merge branch 'master' into 0.11
Conflicts:
	ext/chromaprint/gstchromaprint.c
	ext/mpeg2enc/Makefile.am
	ext/voaacenc/gstvoaacenc.c
	gst/dvbsuboverlay/gstdvbsuboverlay.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/sdp/gstsdpdemux.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	tests/examples/camerabin/gst-camera-perf.c
	tests/examples/camerabin/gst-camerabin-test.c
	tests/examples/camerabin2/gst-camerabin2-test.c
	tests/examples/mxf/mxfdemux-structure.c
	tests/examples/scaletempo/demo-main.c
2012-02-10 16:46:50 +01:00
Wim Taymans
de1f89bf07 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:37:13 +01:00
Vincent Penquerc'h
7a9fff74c6 resindvd: fix wedge in preroll when playbin2 deinterlacing is enabled
When deinterlacing is enabled, an extra colorspace element is added.
Colorspace is a basetransform, and is then the only basetransform
element on the video path. A while ago, basetransform started delaying
events till caps were set on its source pad. These things conspired
to end up sending the DVD highlight events onto a blocked pad on
subtitleoverlay.

Ensuring these highlight events are only sent once we're in playing
mode fixes the issue.

https://bugzilla.gnome.org/show_bug.cgi?id=668762
2012-02-01 12:05:26 +00:00
Vincent Penquerc'h
8147669971 plenty: fixup glib deprecations 2012-01-27 15:47:07 +00:00
Sebastian Dröge
a2a4300241 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/kate/gstkateenc.c
	gst/colorspace/colorspace.c
	gst/mpegvideoparse/mpegvideoparse.c
2012-01-25 13:22:43 +01:00
Vincent Penquerc'h
27eb76bf45 rsndvdsrc: fix leak 2012-01-23 11:04:26 +00:00
Vincent Penquerc'h
7521b597f4 various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Wim Taymans
dbdaa23742 Merge branch 'master' into 0.11
Conflicts:
	gst/colorspace/colorspace.c
2011-11-09 12:19:04 +01:00
Vincent Penquerc'h
cabc01f107 resindvdsrc: do not try to seek before the first chapter
https://bugzilla.gnome.org/show_bug.cgi?id=589064
2011-11-07 11:55:59 +00:00
Jan Schmidt
7e3472d772 resindvd: Defer pushing tag updates until streaming.
Push tag/title info updates in the streaming thread, avoiding
spurious losses of the downstream events when flushing.

See: https://bugzilla.gnome.org/show_bug.cgi?id=594222
2010-12-12 02:21:53 +11:00
Jan Schmidt
4810fa4c51 resindvd: Attempt to use glib language setting for DVD menus/audio 2010-12-12 02:21:53 +11:00
Jan Schmidt
c12fc9edda resindvd: Fix silly typo in button state tracking. 2010-12-12 02:21:53 +11:00
Stefan Kost
0387a89cad various (ext): add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2010-10-19 17:13:26 +03:00
Tim-Philipp Müller
887fc8e6e7 resindvdsrc: improve error messages on read erros
Provide i18n-ed error messages when a read error happens,
and point out that the error could be happening because the
DVD is scrambled.

https://bugzilla.gnome.org/show_bug.cgi?id=613633
2010-09-26 20:43:43 +01:00
Jan Schmidt
491a202d5c resindvd: Apply caps to generated buffers
Avoid the new warning from the core about not being able to apply caps
to NAV packet buffers, where resindvdsrc holds a ref.
2010-05-06 22:39:05 +10:00
Benjamin Otte
f96e4f1581 Add -Wmissing-declarations -Wmissing-prototypes to configure flags
And fix all warnings
2010-03-21 21:39:18 +01:00
Benjamin Otte
775c7584fd gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 22:46:41 +01:00
Jan Schmidt
2e4c26239e resindvd: Remove local basesrc copy
Use the real version of basesrc instead of a local copy now that it
supports the seamless segment feature that resin needs.
2009-11-21 17:37:31 +01:00
Jan Schmidt
6b45854967 resindvd, dvdspu: Use new still-frame API from gst-plugins-base
Replace the current custom DVD still-frame events with new event
creation/parsing API from libgstvideo.
2009-11-18 03:10:32 +00:00
Jan Schmidt
c4fb624ad9 resindvd: Guard against a divide-by-zero error.
https://bugzilla.gnome.org/show_bug.cgi?id=600263
2009-11-18 01:58:20 +00:00
Jan Schmidt
3d3d131b0f resindvd: Remove old code and obsolete comments
Remove some disabled code paths and obsolete FIXME comments
2009-11-04 23:10:16 +00:00
Jan Schmidt
bc331df7f5 resindvd: Use gst_base_src_new_seamless_segment()
When switching to a new seamless segment, use the new
gst_base_src_new_seamless_segment() function, because elements can't
send themselves seek events from the streaming thread.
2009-11-02 02:54:23 +01:00
Jan Schmidt
3e72e7b48b resindvd: Update the base source copy
This breaks seamless segment updates, causing deadlocks,
to be fixed in subsequent commits.
2009-11-02 02:54:23 +01:00
Jan Schmidt
1b03e576e1 resindvd: Avoid a deadlock. Improve chapter seek.
Avoid a potential deadlock that happens when a call to
gst_clock_id_wait_async() immediately calls the callback.
Improve previous chapter seeking slightly by avoiding 'segment
start != -1' assertions when there is no previous chapter and
the seek therefore fails.
2009-10-27 12:23:26 +00:00
Jan Schmidt
b5caf70b41 resindvd: Add a keypress mapping for switching audio track
For debugging purposes, make keys 1-8 switch audio track.
2009-10-27 12:23:25 +00:00
Jan Schmidt
68621dfa56 resindvd: Re-send audio stream select on re-configuration
When the layout of the audio streams changes, re-send the current
audio stream selection event, in order to trigger switching to the
new stream properly.

https://bugzilla.gnome.org/show_bug.cgi?id=575568
2009-10-16 11:09:14 +01:00
Jan Schmidt
53bc4d1803 resindvd: Fix a small flaw - if any audio stream exists, use it
Don't create a dummy audio stream if only non-AC3 tracks exist.
2009-10-16 11:09:14 +01:00
Stefan Kost
b7b8b7f407 build: fprintf, sprintf, sscanf need stdio.h 2009-10-07 15:26:12 +03:00
Jan Schmidt
6fd890d65f resindvd: Don't send empty language code strings
Ignore empty language codes on some poorly coded DVDs, rather than
setting empty strings into our outgoing taglist.
2009-07-13 19:30:50 +01:00
Tim-Philipp Müller
6eb167a176 Make build without warnings with debugging disabled 2009-06-19 16:21:28 +01:00
Jan Schmidt
4d5a48db97 resindvd: Create all the audio streams of all formats
Enable creation of the demuxer pads for all audio streams, even types we
don't yet support. This means that unsupported types (LPCM, DTS) are output,
but not linked to anything yet. If only unsupported streams are available,
the user hears silence instead of having the pipeline not pre-roll correctly.

This is a prerequisite for hooking up the automatic decoder switching.
2009-05-27 22:57:03 +01:00
Jan Schmidt
e62b64f1d3 resindvd: Fix the argument order in a debug statement
Make the debug statement correctly show the 'old' and 'new' button
coordinates, instead of the wrong way around.
2009-05-14 11:28:15 +01:00
Jan Schmidt
cae9db0d8c resindvd: Rework button highlight calculation slightly
When the current button number is higher than the number of available
buttons, switch to the highest numbered button rather than the lowest.

Also, don't throw errors when we fail to retrieve some button info
from libdvdnav, just reset the highlight.
2009-05-14 11:28:15 +01:00