Commit graph

103 commits

Author SHA1 Message Date
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
Tim-Philipp Müller
02c5942325 resindvd: printf format fixes 2009-11-05 21:47:05 +00:00
Jan Schmidt
7d53c39237 resindvd,autoconvert: Avoid depending on 0.10.26 API
Wait until after the next release to bump the core requirement.
Until then, don't use gst_plugin_feature_list_copy and
gst_pad_peer_get_caps_refed.
2009-11-04 23:17:33 +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
f7b832d19b resindvd: Fix an oversight from updating the copy of basesrc
Plugins need gst-i18n-plugin.h, not gst-i18n-lib.h
2009-11-02 10:22:41 +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
d0e4331648 resindvd: Add gst_base_src_new_seamless_segment() to GstBaseSrc copy
Add a new function to the internal copy of GstBaseSrc for starting a new
seamless segment.
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
4a394cd8cf resindvd: Remove extra new-segment in rsnstreamselector. Send discont.
All the input pads for the resin stream selectors have the same source,
and receive/send the same segment info, so there's no need to send a
segment when switching and activating a different pad. Removing it makes
on-the-fly audio track switching work properly.

After switching audio track, mark the next buffer discont.
2009-10-27 12:23:26 +00: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
0c7d5bb1d8 resindvd: lower a debug message to log level. 2009-10-27 12:23:25 +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
f33a906157 resindvd: Set the new initial-identity property on autoconvert
https://bugzilla.gnome.org/show_bug.cgi?id=599469
2009-10-27 12:23:24 +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
Jan Schmidt
cb2d8b984d resindvd: Fix decoder pad template to allow LPCM
The pad template in the new switching decoder is too restrictive,
preventing the LPCM decoder from being selected.

https://bugzilla.gnome.org/show_bug.cgi?id=575568
2009-10-15 22:35:40 +01:00
Jan Schmidt
30845f1118 resindvd: Don't leak a reference to the parent in rsnaudiomunge
Don't leak a reference to the pad parent in the sink pad event handler
in rsnaudiomunge.

https://bugzilla.gnome.org/show_bug.cgi?id=598263
2009-10-13 15:10:09 +01:00
Stefan Kost
b7b8b7f407 build: fprintf, sprintf, sscanf need stdio.h 2009-10-07 15:26:12 +03:00
Sebastian Dröge
5df38440d0 resindvdbin: If no suitable audio decoder is found play the DVD without audio 2009-10-01 15:09:27 +02:00
Sebastian Dröge
5d74676294 resindvdbin: Also post missing element messages if any other element is missing 2009-10-01 14:54:43 +02:00
Sebastian Dröge
b67bc258c8 resindvdbin: Post missing decoder messages if one is missing
For video this is an error, for audio only a warning.
2009-10-01 14:52:06 +02:00
Sebastian Dröge
02fbd5b42a resindvdbin: Use the new video decoder
This makes resindvdbin work with other MPEG video decoders than
mpeg2dec, for example the FFMPEG or Fluendo MPEG decoders.
2009-10-01 14:42:36 +02:00
Sebastian Dröge
157a6a7856 resindvdbin: Rename files 2009-10-01 14:37:43 +02:00
Sebastian Dröge
e998a22d0c resindvdbin: Refactor audio decoder and add a (MPEG) video decoder 2009-10-01 14:36:23 +02:00
Sebastian Dröge
3fe4b2106d rsnaudiodec: Get desired sink caps from the pad template 2009-10-01 13:29:03 +02:00
Sebastian Dröge
d96defb164 resindvdbin: Create external srcpads from the static pad templates 2009-09-30 15:49:02 +02:00
Sebastian Dröge
0171e32944 resindvdbin: Use gst_caps_can_intersect() because it's faster 2009-09-26 17:25:59 +02:00
Sebastian Dröge
bf1b64fab0 rsnaudiodec: Use ghost pads and always forward application/x-gst-dvd events immediately
Fixes bug #582779.
2009-09-26 17:25:59 +02:00
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