VideoPlayer

From Official Kodi Wiki
(Redirected from DVDPlayer)
Jump to navigation Jump to search
Cleanup.png This page or section may require cleanup, updating, spellchecking, reformatting and/or updated images. Please improve this page if you can. The discussion page may contain suggestions.


Kodi's "VideoPlayer" (formelly XBMC's "DVDPlayer") is Kodi's internal video player that all video playback is defaulted to be played in unless custom external player is configured or addons make use of a other video player.

Kodi's internal VideoPlayer is capable of playing DVD-Video and Blu-ray Disc as well as most other popular video formats. VideoPlayer supports DVD-Video with menus, from CD/DVD-media, harddrive, network, ISO/IMG-images and RAR/ZIP archives (and even RARed ISO/IMG-images as long as they are in 'stored/archive' mode and not compressed).

Currently Supported Codecs

Known Issues

For every release, the internal VideoPlayer in Kodi is becoming more and more usable/stable for the average end-user. However, there is still a lot of work that can be done on it: For one thing there are still quite a few bugs left in it that should be found and fixed, something we really need your help with. Another thing is that not all features that you might expect from stand-alone DVD-Video or Blue-ray Disc player hardware are implemented yet. Some of these features are listed below under "Unimplemented Features" and are not considered to be bugs, that does not mean that features not listed below under can be reported as bugs (something that happens too many times)!

Known Bugs

The official list/tracker of known bugs can be found trac

Bug Reporting

When reporting bugs or problems there are a few things to keep in mind before posting your bug report(s). Bug-reports should be reported at sourceforge.net, this way we are able to track all bugs on one tracker which makes our lifes a lot easier. However, before posting a bug-report there, make sure it is a valid bug-report and not a feature-request or something that is your own fault (i.e. user-error). To do that you can start a new topic thread on the Kodi bug-discussion forum to verify this with others. But most importantly, use the search functions first here and here, to make sure you are not posting duplicate bug reports. Duplicate reports/posts of the same bug makes it much harder for us to keep track of all the bug-reports/posts, not doing so will also save you a lot of work.

When reporting a bug there are a few things we will need, if these things are not provided, it will be much harder (and many times impossible) to replicate the problem and find the bug. In the case of an invalid bug-report the report will be closed without us even looking at it.

Some things that should be in a bug report:

  • A clear description of the problem and what you did (step-by-step) to see it so that we can then replicate it if and when we have the same DVD-Video disc media or a sample (see “Sample” below).
  • A log file (see Log_file below)
  • The Kodi version you are using (exact build date)
  • Did you build Kodi yourself (from GIT) or...?
  • Audio output mode (analog stereo, passthrough, ...)
  • Video output mode (output resolution, PAL or NTSC...)
  • The amount of free memory! See the “log file” chapter below on how to enable free memory display!
    • Before playing the DVD
    • During the problem
    • After the problem (if Kodi did not crash and just went back to the normal GUI)
  • If it is a non-menu related problem
    • Can you play the .vob file correctly with the VideoPlayer? (select VideoPlayer with the 'play with dialog')
  • Other information you think that might be relevant

Please have a look at HOW-TO:Submit_a_bug_report for additional information.

Kodi Log File

Kodi is able to create a log file that provides us with a lot of useful information when trying to locate a bug. See Log_file for more information.

Sample

While it sometimes can be complicated to provide us with samples, it is usually worth the effort. With samples that show the problem we are able to fix bugs much easier and quicker, because with a sample we can very simply replicate the bug ourselves in our own debug enviroment, and most of the time these bugs can be fixed the same day if there is a developer with some free time available and willing. Without a sample, it will take much longer because we cannot replicate the bug ourselves and we will have to try a lot of things (which can break the current working version again).

Simplest is to just to snail-mail one of the developers a 1:1 copy of the DVD-Video disc media (or the original retail DVD-Video disc media if the bug has something to do with encryption problems), you can create a such 1:1 copy on your PC using software's like “DVDDecrypter”. Another possibility is to compress (ZIP/RAR) the sample and send it over the internet, (since most DVDs are a bit to big to send over the internet you can try to strip unneeded data out of it (read the section below about “DVD-menu related problems”). If you have the possibility to either snail-mail the disc (shipping the actual disc) or send a sample over the internet please post so in your bug-repost. Note! Please understand that if you send in a DVD-disc (copy or original) we can not send it back!

For DVD-menu related problems, the next can be done:

strip all non-menu related vob files.
These files take up most of the space. What is needed are the ifo and bup files, together with all menu vobs. If you are lucky the DVD has a few 1GB big vob files (these are probably the main movie and thus not needed) and one or two small vob files. These small vob files are needed. RAR or ZIP those vobs together with the ifo and bug files and provide them to us. Upload them to an upload site or find another way (like posting them on your own website or creating a torrent).

If the problem has something to do with the main movie, the only thing left todo is to take the problematic vob file and to strip it as much as is possible.

In all cases you must first test the sample yourself before you send it to the XBMC developer/team, the sample needs to have the same problem as the original DVD, (since it is not of much use otherwise).

Development

See the VideoPlayer Development subforum for now.

Help is always wanted, so if you can program C++ and C, please feel free to code and submit a patch.

Technical Details

See the VideoPlayer Development subforum for now.

Classes

  • InputStreams
    • FactoryInputStream, creates an inputstream based on the filename
    • File, general file access (hd, cdrom, samba)
    • Http
    • Navigator, for accessing dvd
  • Demuxers
    • FactoryDemuxer, creates a demuxer based on inputstream information
    • FFmpeg, ffmpeg demuxer wrapper (supports all ffmpeg demuxers)
    • Shoutcast, for demuxing shoutcast streams
  • Codecs
    • FactoryCodec, creates audio and video codecs based upon demuxer information
    • Audio
      • FFmpeg, ffmpeg audio decoder wrapper
      • Liba52, liba52 wrapper
      • LibDts, libdca wrapper
      • LibFaad, libfaad wrapper
      • LibMad, libmad wrapper (for mp1, mp2, mp3 decoding)
      • LPcm, lpcm decoding
      • Passthrough, for digital passthrough
    • Video
      • LibMpeg2
      • FFmpeg, ffmpeg video decoder wrapper
  • Subtitles

Modules

The player is divided up into a few modules

Main Module

Runs in a separate thread Reads data from one of the input streams and sends it over to one of the other modules listed below Handle DVD events (such as audio / subtitle / video stream changes) Handle events from Kodi (such as audio / subtitle changes)

Audio Module

Runs in a separate thread. Decodes audio data

Video Module

Runs in a separate thread. Decodes raw video data into video frames

Subtitle Module

Process subtitles

Building Libraries (Audio / Video Codecs)

The dvdplayer depends on other libraries to function. These libraries are included in SVN by default as dll's under the "XBMC/system/players/dvdplayer" subfolder. The full source code of these libraries can be found under the "/docs/sources/dvdplayer/" subfolder in the SVN. To build these dll's yourself you need to have the following installed, (the .dll's must be then be placed under the "[XBMCFOLDER]/system/players/dvdplayer" subfolder).