Commit graph

75 commits

Author SHA1 Message Date
Jan Schmidt e6165520b9 resindvdbin: Use autoconvert in rsnaudiodec and build a list of possible decoders
Partially fixes bug #582779.
2009-09-26 17:25:58 +02:00
Sebastian Dröge 07f9536476 rsnstreamselector: Use new single object iterator for the internally linked pads
This prevents an ugly deadlock.
2009-09-25 11:07:49 +02:00
Sebastian Dröge a9e05725d2 resindvdbin: Don't block the external ghost pads but only their targets 2009-09-25 10:51:45 +02:00
Sebastian Dröge 07bd0d87aa rsnstreamselector: Use iterate internal links instead of deprecated get internal links 2009-08-31 08:14:10 +02:00
Руслан Ижбулатов 09b2abf87b resindvd, rawparse: fix LDFLAGS for gst-plugins-base libs
Fixes #593063.
2009-08-25 23:55:41 +01: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 8f70498c89 resindvd: LPCM streams are only from 0xa0 to 0xaf.
Fix the same bug as the previous commit, but in resindvd's copy of
mpegdemux.
2009-05-26 21:07:47 +01:00
Jan Schmidt 19d450a164 resindvd: Fix subpicture timing in some cases
Make sure we send events to all pads. Unmark the notlinked flag on
freshly selected pads to ensure they get data.
2009-05-26 15:31:53 +01:00
Jan Schmidt 59a3abfdf3 resindvd: Try a different approach to segment filling.
Restore the old segment update behaviour, and instead extend the
close segment stop time if the SCR (last_stop) overruns the calculated
stop position.
2009-05-26 15:31:52 +01:00
Jan Schmidt 462419f279 resindvd: Minor change to inline a function in the demuxer 2009-05-26 15:31:52 +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 13694cd654 resindvd: Make segment updates less aggressive.
When updating a pad, send the update to half a second behind the SCR,
which avoids ever updating the start time for a pad to beyond the end of
the cell. Also, remember the last actual new-segment start time for each
pad, and use it when closing the segment.
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
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 d9fef92ea0 resindvd: Fix a leak of the DVD title string 2009-05-14 11:28:14 +01:00
Jan Schmidt b769f22404 resindvd: Fix raciness in rsndvdbin when initially creating pads
Protect pad exposure with a preroll lock to avoid situations
where no-more-pads is fired more than once, or fired just before
the last pad is actually added.
2009-05-14 11:28:14 +01:00
Jan Schmidt 11a7e37325 resindvd: Modify the segment update logic
Send segment updates to the audio and subpicture pads more frequently,
but less often to the video pad, where timestamps appear less often.
This helps with gap filling on some DVDs.
2009-05-11 17:50:41 +01:00
Jan Schmidt d7cabb0801 resindvd: Increase the amount of filler audio generated
When creating a filler audio buffer in rsnaudiomunge, generate
a bit more, as audio sinks don't seem to preroll otherwise. This
needs a better algorithm in general, to intelligently fill the
gap, rather than hard-coding a value.
2009-05-11 17:04:10 +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 79f653fde8 resindvd: Change the audiomunge debug output.
Make sure we always show information about the segment events passing through,
even when pre-roll audio buffers aren't going to be needed.
2009-05-11 17:04:09 +01:00
Jan Schmidt 64b6d247d4 resindvd: Rename the audio munger debug category
Rename a debug category: rsn_audiomunge -> rsnaudiomunge.
2009-05-11 17:04:08 +01:00
Jan Schmidt c0854113a1 resindvd: Ensure we send a title tag in the first play section. 2009-05-11 17:04:08 +01:00
Jan Schmidt f2f79cd410 resindvd: Simplify some stuff. Remove an unnecessary LOG message.
Skip attempting to schedule a nav block unless we're in PLAYING. Take a lock
slightly later, when we actually need it. Remove a noisy LOG message.
2009-05-11 17:04:07 +01:00
Jan Schmidt 9f01bd6434 resindvd: Remove per-menu description from the TITLE tag
The part number reported while in a menu doesn't reflect the selected
menu, so it's pointless to use it to report which menu we're in (Audio,
Angle etc). Just report "DVD Menu" in the title tag instead.
2009-05-11 17:04:07 +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 77aefd5870 resindvd: Don't open all VTS ifo at the start
Load each VTS ifo the first time the disc enters that VTS,
rather than scanning them all at the start.
2009-05-06 21:48:30 +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 f7fad4a88b resindvd: Don't send highlight-reset messages when not needed
Fix a small bug that results in the SPU highlight being reset more often
than is necessary - ie, clearing it when it's already cleared.
2009-05-06 21:21:42 +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
Jan Schmidt 874549b536 resindvd: Make the next/prev angle switching cycle at the ends
When the current angle is 1 and prev_angle is requested, loop to the
maximum angle and vice versa for next_angle
2009-05-06 20:19:48 +01:00
Jan Schmidt e62dc2c1ab resindvd: Convert some g_print to GST_LOG_OBJECT and friends, remove some others
Trim down the g_print verbosity.
2009-04-29 21:31:21 +01:00
Jan Schmidt febe0c15d0 resindvd: Add DVDFASTSTART env var to making some testing easier 2009-04-29 21:02:16 +01:00
Jan Schmidt 243f58f2fc resindvd: Remove redundant modulo operation in the demuxer 2009-04-29 21:02:16 +01:00
Jan Schmidt eedf313156 resindvd: Map audio and subpicture logical streams to physical.
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.
2009-04-29 21:02:15 +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 70bdf00200 resindvd: Send both the logical and physical substream ID in the stream change.
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.
2009-04-02 14:49:54 +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 97a1f14fc0 resindvd: Switch to using a hard-coded mpeg2dec, and change pad blocking a bit.
Change the pad blocking behaviour during startup, and use a hard-coded mpeg2dec (for the moment), in order to make things work with playbin2.
2009-04-02 14:49:24 +01:00
Jan Schmidt 1c6529e93e resindvd: Add newline to debug g_print statement 2009-04-02 14:49:20 +01:00
Jan Schmidt b9c4db5d53 resindvd: Make highlights work when jumping into menus
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.
2009-04-02 14:49:20 +01:00
Jan Schmidt 85db327e82 resindvd: Support multiangle titles.
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.
2009-04-02 14:49:19 +01:00
Jan Schmidt 5f789d3075 resindvd: Add back in support for using hardcoded a52dec 2009-04-02 14:49:04 +01:00
Jan Schmidt 2e4c08fbbe resindvd: Add some debug when creating the output pads in the demuxer 2009-04-02 14:48:23 +01:00
Jan Schmidt 4a320ec12a resindvd: More hacking on the audio decoder. 2009-04-02 14:48:12 +01:00
Jan Schmidt 12625af8d8 resindvd: Trim back the g_print debug - convert to GST_DEBUG and GST_LOG 2009-04-02 14:48:09 +01:00
Jan Schmidt 09b41120e4 resindvd: Extend the Resin audio decoder element, and switch rsndvdbin to use it 2009-04-02 14:48:00 +01:00
Jan Schmidt 7d33cf22a9 resindvd: First part of the re-plugging audio decoder 2009-04-02 14:46:54 +01:00