Commit graph

30 commits

Author SHA1 Message Date
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
Jan Schmidt 34510b71ca resindvd: Don't send spurious 'close segment' events. Make a single segment
With the new 1.0 segment semantics, there's no need to close the
previous segment before sending out a new one, so don't do it.

Also, adjust the outgoing segment to just be one contiguous
timeline, with a base of 0. Fixes some repeating timestamps when
segments change.
2012-09-26 14:57:54 +10:00
Jan Schmidt c90cdadbe4 resindvd: Fix segment handling in the demuxer.
Transfer the incoming segment base time to the src
segment the demuxer sends downstream. Add some
(disabled) debug to the bin for tracking outgoing
timestamps.
2012-09-18 00:27:22 +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
Mark Nauwelaerts b807753453 ext, gst: only activate in pull mode if upstream is seekable 2012-09-11 17:47:33 +02:00
Jan Schmidt f2d0c6a89e resindvd/mpegdemux: Send both PTS and DTS downstream
Now that we can.
2012-09-01 16:09:59 -07: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
Tim-Philipp Müller 2483c82bd7 video/x-dvd-subpicture -> subpicture/x-dvd 2012-08-20 23:37:00 +01:00
Sebastian Dröge cd890c6846 Revert "resindvdbin: Apply gcc 4.5 compiler warning workaround to the mpegpsdemux copy"
This reverts commit 65b0f75d1b.
2010-04-16 19:41:46 +02:00
Sebastian Dröge 65b0f75d1b resindvdbin: Apply gcc 4.5 compiler warning workaround to the mpegpsdemux copy
Same as a331228ecc.
2010-04-15 21:40:19 +02:00
Benjamin Otte 775c7584fd gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 22:46:41 +01:00
Tim-Philipp Müller c31559841a resindvd: fix unaligned access in this copy of mpegdemux as well
See #606371.
2010-01-11 01:03:38 +00:00
Tim-Philipp Müller 02c5942325 resindvd: printf format fixes 2009-11-05 21:47:05 +00: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 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 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 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 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
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 a8736df9b5 ext/resindvd/: Add in Title/Chapter seeking, and simple but buggy audio and subtitle stream selection.
Original commit message from CVS:
* ext/resindvd/gstmpegdemux.c:
* ext/resindvd/gstmpegdemux.h:
* ext/resindvd/resindvdbin.c:
* ext/resindvd/resindvdsrc.c:
* ext/resindvd/rsnstreamselector.c:
Add in Title/Chapter seeking, and simple but buggy audio
and subtitle stream selection.
2008-09-27 01:12:30 +00:00
Jan Schmidt 95fa5e8b95 ext/resindvd/gstmpegdemux.c: Remove whitespace line.
Original commit message from CVS:
* ext/resindvd/gstmpegdemux.c:
Remove whitespace line.
* ext/resindvd/resindvdbin.c:
* ext/resindvd/resindvdbin.h:
Make it so that audio/video pads aren't added to the bin
until after data flow starts.
* ext/resindvd/resin-play:
Move video buffer queue outside resindvdbin
* ext/resindvd/resindvdsrc.c:
Check that the nav_clock_id didn't already get unscheduled.
* gst/dvdspu/gstdvdspu.c:
Remove assert that sometimes triggers erroneously.
2008-07-14 07:50:01 +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 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