[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