[gstreamer-bugs] [Bug 476149] New: Fix and add needed features to dvdnavsrc
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Wed Sep 12 02:48:12 PDT 2007
If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
http://bugzilla.gnome.org/show_bug.cgi?id=476149
GStreamer | gst-plugins-ugly | Ver: HEAD CVS
Summary: Fix and add needed features to dvdnavsrc
Product: GStreamer
Version: HEAD CVS
Platform: Other
OS/Version: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-ugly
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: simone.gotti at email.it
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME version: 2.19/2.20
GNOME milestone: Unspecified
Please describe the problem:
Hi!
I worked in the past days to fix dvdnavsrc as it wasn't working (at
least for me) and missing some important features like seeking. I did an
initial patch that I'm attaching here and I'll really appreciate any
comment.
To test all I used this simple pipeline (hadn't tested subpicture
again):
gst-launch dvdnavsrc ! dvddemux name=demux .current_video ! queue ! mpeg2dec !
xvimagesink demux.current_audio ! queue ! a52dec ! audioconvert ! alsasink
Yesterday I also started testing it with dvdspu and it's working quite well! (I
need to try to fix language and subtitle selection):
gst-launch -v dvdnavsrc ! dvddemux name=demux .current_video ! queue ! mpeg2dec
! ffmpegcolorspace ! dvdspu name=mix ! ffmpegcolorspace ! xvimagesink
demux.current_audio ! queue ! a52dec ! audioconvert ! alsasink
demux.subpicture_00 ! mix.subpicture
I'll try to list all the changes I did:
*) Add still frame management:
It uses gst_clock_new_single_shot_id on the system clock to wait. The
user operation works correctly during still frames.
*) Add query convert ability.
The functions converts between sectors, bytes and time.
The sector/bytes to time conversion and the opposite con be done in 2
ways:
using the DVD time maps if available (like dvdreadsrc does) or using
time/sector interpolation.
I based the use of tmaps on dvdreadsrc and changing it based on hints from bug
#372797.
Looks like there a bug in dvdnav_get_position where the pos and length
values aren't correctly calculated. I did a patch that will fix it and
I'll submit it for discussion to the dvdnav developers. In the mean time
dvdnavsrc does a check and if the max sector reported by the tmaps is
less or equal that the one reported by dvdnav_get_position the tmaps
aren't used.
*) Add seeking ability.
*) Also the NAV packets needs to be sended to the demuxer as they
carries data.
*) Send application/x-gst-dvd as Out of Band events. As during the menus and
other functions there's no subpicture sent to the subpicture sink pad of the
spu decoder and they aren't received until the next subpicture comes.
*) Fix chapter number retrieve call (it was using
dvdnav_get_number_of_titles instead of dvdnav_get_number_of_parts).
*) In gst_dvd_nav_src_tca_seek rename program variable to chapter
variable.
*) Remove did_seek gboolean as it's not used anymore.
TODO:
*) Handle seek on title chapter angle: easy to do, I'm waiting to look
if what I did until now is right or it simply sucks :D
Steps to reproduce:
Actual results:
Expected results:
Does this happen every time?
Other information:
--
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.
You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=476149.
More information about the Gstreamer-bugs
mailing list