Commit graph

16 commits

Author SHA1 Message Date
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
73f77c04aa resindvd: Send commands-changed on button change and handle commands query
Send the commands-changed navigation message when the set of available
DVD menu button actions changes, and handle the commands navigation
query so that (e.g.) Totem can know about the available navigation
commands.
2009-05-14 11:28:14 +01:00
Jan Schmidt
4204b644ef resindvd: Manage timed still sequences better
Make timed still frames work better by extending the current segment
when needed, and restarting the still sequence with the correct
remaining duration when the wait it interrupted by activation of a
highlight NAV packet.
2009-05-11 17:04:10 +01:00
Jan Schmidt
86d908589c resindvd: Send title info message when current angle is switched.
Make sure we send an update title tag when the current angle or available
angles changes.
2009-05-11 17:04:07 +01:00
Jan Schmidt
270cd7c421 resindvd: Implement navigation command change message and query
Send messages when the available DVD navigation commands changes, and
handle navigation commands and angles queries.
2009-05-11 17:04:06 +01:00
Jan Schmidt
a5fbb123ca resindvd: Send a title tag when we change chapter/menu/angle
Allow apps like Totem to display a nicer title that reflects the current
position on the disc.
2009-05-06 21:26:25 +01:00
Jan Schmidt
491583b648 resindvd: send angles-changed messages when appropriate
When the current angle changes, or the number of available angles changes,
send an angles-changed message to let the app know.
2009-05-06 21:21:37 +01:00
Tim-Philipp Müller
e55f069fe6 resindvd: require libdvdnav >= 4.1.2 for dvdnav_get_current_time()
Fixes #577864.
2009-04-03 18:13:00 +01:00
Jan Schmidt
0cf5e27b5b resindvd: Use new GstNavigation functionality.
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.
2009-04-02 14:49:39 +01:00
Jan Schmidt
8244a3d688 resindvd: Add faststart, and work around some multi-angle issues
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.
2009-04-02 14:46:35 +01:00
Jan Schmidt
672051c5eb ext/resindvd/: Add support for time based seeking.
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
2009-01-08 12:42:18 +00:00
Jan Schmidt
e74c4fe4c7 ext/resindvd/resindvdsrc.*: Better fix for #546319 and similar cases by explicitly registering when we're in playing ...
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.
2008-10-30 13:38:19 +00:00
Jan Schmidt
9a392ef442 docs/plugins/.cvsignore: Ignore *-undeclared.txt
Original commit message from CVS:
* docs/plugins/.cvsignore:
Ignore *-undeclared.txt
* ext/resindvd/rsnaudiomunge.c:
Turn g_print's into debug statements.
* ext/resindvd/resin-play:
* ext/resindvd/Makefile.am:
* ext/resindvd/resindvdbin.c:
* ext/resindvd/resindvdbin.h:
* ext/resindvd/rsnparsetter.c:
* ext/resindvd/rsnparsetter.h:
* ext/resindvd/rsnwrappedbuffer.c:
* ext/resindvd/rsnwrappedbuffer.h:
Add a bloated implementation of a really simple idea: Replace the
pixel-aspect-ratio in the output video with a prescribed one when
necessary. There must be an easier way.
Split the dvdspu out of the resindvdbin and put out the subpicture
stream on the subpicture pad.
* ext/resindvd/gstmpegdemux.c:
Send video-aspect events down the pipe from the demuxer.
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/resindvdsrc.h:
Handle timed-stills somewhat using g_cond_timed_wait, with a FIXME
to make it use clock-waiting later.
* ext/resindvd/rsnbasesrc.c:
Don't overwrite the last_stop in the basesrc segment after a seamless
seek.
2008-07-11 14:06:08 +00:00
Jan Schmidt
debbed3bff ext/resindvd/resindvdsrc.*: Schedule NAV packets and activate them with an async clock callback at the right moment. ...
Original commit message from CVS:
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/resindvdsrc.h:
Schedule NAV packets and activate them with an async clock callback
at the right moment. This makes delayed menu highlights appear
at the correct time and fixes Back To The Future.
When outputting new segment in do_seek(), calculate our position
value properly, so we report the right time when popping in and
out of the menus.
* ext/resindvd/rsnbasesrc.c:
When handling a non-flushing seek, accumulate the segment,
rather than having every seek start from 0 and messing with sync
2008-06-20 13:07:56 +00:00
Sebastian Dröge
aacf6838eb Make resindvd work with libdvdnav >= 4.0.0.
Original commit message from CVS:
* configure.ac:
* ext/resindvd/resindvdsrc.h:
Make resindvd work with libdvdnav >= 4.0.0.
2008-06-17 10:53:35 +00:00
Jan Schmidt
0951e00dc0 configure.ac: Check for libdvdnav to build resindvd.
Original commit message from CVS:
* configure.ac:
Check for libdvdnav to build resindvd.
* ext/Makefile.am:
* ext/resindvd/Makefile.am:
* ext/resindvd/gstmpegdefs.h:
* ext/resindvd/gstmpegdemux.c:
* ext/resindvd/gstmpegdemux.h:
* ext/resindvd/gstmpegdesc.c:
* ext/resindvd/gstmpegdesc.h:
* ext/resindvd/gstpesfilter.c:
* ext/resindvd/gstpesfilter.h:
* ext/resindvd/plugin.c:
* ext/resindvd/resin-play:
* ext/resindvd/resindvdbin.c:
* ext/resindvd/resindvdbin.h:
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/resindvdsrc.h:
* ext/resindvd/rsnaudiomunge.c:
* ext/resindvd/rsnaudiomunge.h:
* ext/resindvd/rsnbasesrc.c:
* ext/resindvd/rsnbasesrc.h:
* ext/resindvd/rsnpushsrc.c:
* ext/resindvd/rsnpushsrc.h:
* ext/resindvd/rsnstreamselector.c:
* ext/resindvd/rsnstreamselector.h:
First commit of DVD-Video playback component 'rsndvdbin'
and helper elements.
Use --enable-experimental for now, but feel free to give it a
try using the resin-play script.
* gst/dvdspu/gstdvdspu.c:
Add some extra guards for malformed events.
2008-06-17 01:08:14 +00:00