[mythtv-commits] Ticket #1043: Internal DVD Menu Support and Position Bar Support.

MythTV mythtv at cvs.mythtv.org
Mon Jan 16 06:10:45 UTC 2006

#1043: Internal DVD Menu Support and Position Bar Support.
 Reporter:  skamithi at gmail.com  |       Owner:  ijr
     Type:  defect              |      Status:  new
 Priority:  minor               |   Milestone:     
Component:  mythtv              |     Version:     
 Severity:  medium              |  
 Brief list of features added, and some of the problems I tried to fix.
 Some problems I encountered I can't figure out. Hope the feature works for
 most folks.
 Please help fix some of the problems I've encountered.

 To Jump the annoying still frames at the start of a dvd, use the JUMPFFWD

 Pause , forwarding and rewinding is disabled in a dvd menu. If enabled,
 things don't work right.

 Bookmarking, currently breaks DVD menus. So I disabled that. Would like to
 on this in the future.

 For still frame support, most of the changes deal with:
  * NuppelVideoPlayer::OutputVideoLoop()
  * NuppelVideoPlayer::DisplayVideoFrame()
  * AvFormatDecoder::OpenFile()
  * AvFormatDecoder::GetFrame()

 For dvd button support and dvd button navigation check out
 the following functions

  * ''(new function)'' NuppelVideoPlayer::DisplayDVDButton
  * NuppelVideoPlayer::DisplayVideoFrame()
  * NuppelVideoPlayer::DisplayPauseFrame()
  * Most of the changes made to tv_play.cpp

 Position bar support
  * NuppelVideoPlayer::calcSliderPos()

 I couldn't figure out a way to use the FFmpeg dvdsub.c subtitle
 decoding functions. So I just ported what I needed to
 DVDRingBufferPriv.cpp. If there is a better way to do this,
 please share.

 __Problems I tried to solve___

 Had problems with Audio Stuttering/sync each time an audio track is
 To try and resolve it I did the following:
  *  Run NVP::ResetPlaying , each time a Audio Track is Selected
  *  Resync the position map in AvFormatDecoder::Reset() so as not to
 affect ffw/rew

 When starting a feature from the chapter list or scene selection, can't
 forward or rewind
 after that. To resolve it, in AVFormatDecoder::GetFrame() , check if the
 title number changed. If so, resync the position map.

 __Problems I cannot solve__

  * DVD Button colors are wrong. I suck at this CLUT thing. So if someone
 can figure it out, please do.

  * DVD Button Positioning isn't quite right. If the button covers a word,
 it doesn't cover the word properly.

  * DVD Nav issues. Some DVDs do something weird. DVD has 8 parts in a
 title. You play part 1, then you decide to jump to next part. The next
 part doesn't work and you get a DVD_STOP. Screen goes black. If it runs
 ClearAfterSeek() , I get a segv fault. Xine just does the right thing and
 jumps to the next program or skips the part. Can't figure out how xine
 does that.

  * If I get a VideoOutputXv: InputChanged() event occurs and I was moving
 from a regular stream to a still frame, DiscardVideoFrames, clears the
 still frame from the queue , so I get a blank screen. I figure, one way to
 solve this is to get the DVD player to just replay the Cell with the still
 frame. Can't figure out how to do that.

  * For the position bar, some DVD split the main title into 2 PGCs. Like
 King's Ransom. Haven't figured out how to get the complete title length.
 Right now, all I do is read the PGC length and assume that it is the total
 length of the whole feature. Xine gets it right.

Ticket URL: <http://svn.mythtv.org/trac/ticket/1043>
MythTV <http://www.mythtv.org/>

More information about the mythtv-commits mailing list