Commit graph

10 commits

Author SHA1 Message Date
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