• 1
  • 25
  • 26
  • 27(current)
  • 28
  • 29
  • 523
Kodi DSPlayer – DirectShow Player for Windows
Common Video Source Specifications

Sources: DVD, Blu-ray, UHD Blu-ray, HDTV, 4K UHD HDR TV.

Quick Definition of Additive RGB Color Model | Quick Definition of Y'CbCr - Luminance and Chrominance - Encoding

Detailed Definitions of Hue, Value (Luminance) and Saturation

DVD:
  • Resolution: 720 x 480 (NTSC) -> 720 x 576 (PAL)
  • Frame rate: 29.97 fps (NTSC) / 25 fps (PAL)
  • Signal Type: interlaced
  • Color Space: Y'CbCr Limited (16-235)
  • Codec: MPEG-2 (H.262), MPEG-1
  • Chroma Subsampling: 4:2:0
  • Bit depth: 8-bits (per color)
  • Primaries: BT.601 (EBU/PAL/SMPTE-C)
  • Peak Luminance: 100 nits (SDR gamma)

Blu-ray:
  • Resolution: 1920 x 1080
  • Frame rate: 23.976 fps -> 24 fps
  • Signal Type: progressive
  • Color Space: Y'CbCr Limited (16-235)
  • Codec: MPEG-4 AVC (H.264), MPEG-2 (H.262), VC-1
  • Chroma Subsampling: 4:2:0
  • Bit depth: 8-bits (per color)
  • Primaries: BT.709
  • Peak Luminance: 100 nits (SDR gamma)
  • Other Features: MPEG4-MVC 3D

UHD Blu-ray:
  • Resolution: 3840 x 2160
  • Frame rate: 23.976 fps -> 60 fps
  • Signal Type: progressive
  • Color Space: Y'CbCr Limited (64-940)
  • Codec: HEVC (H.265)
  • Chroma Subsampling: 4:2:0
  • Bit depth: 10-bits (per color)
  • Primaries: DCI-P3 -> BT.2020
  • Peak Luminance: 1,000 -> 10,000 nits (HDR PQ)
  • Other Features: High Dynamic Range (HDR10, HDR10+ & Dolby Vision)

HDTV:
  • Resolution: 1280 x 720p / 1920 x 1080i
  • Frame rate: 29.97 fps -> 59.94 fps (NTSC) / 25 fps -> 50 fps (PAL)
  • Signal Type: progressive or interlaced
  • Color Space: Y'CbCr Limited (16-235)
  • Codec: MPEG-4 AVC (H.264), MPEG-2 (H.262), VC-1
  • Chroma Subsampling: 4:2:0
  • Bit depth: 8-bits (per color)
  • Primaries: BT.709
  • Peak Luminance: 100 nits (SDR gamma)

4K UHD HDR TV:
  • Resolution: 3840 x 2160
  • Frame rate: 29.97 fps -> 59.94 fps (NTSC) / 25 fps -> 50 fps (PAL)
  • Signal Type: progressive
  • Color Space: Y'CbCr Limited (64-940)
  • Codec: HEVC (H.265)
  • Chroma Subsampling: 4:2:0
  • Bit depth: 10-bits (per color)
  • Primaries: DCI-P3 -> BT.2020
  • Peak Luminance: 1,000 -> 10,000 nits (Hybrid Log Gamma & HDR PQ)
  • Other Features: High Dynamic Range (HLG, HDR10 & Dolby Vision)

Source Legend

Resolution: Total number of pixels: width x height. Short-form uses the vertical resolution (e.g 1080p, 2160p).

Image

Frame rate: The source frame frequency in frames per second. An interlaced source is measured in fields per second, as interlaced video displays each frame as two half-frames. The frame rate is equal to half the field rate (e.g., 60i = 30 fps).

The frame rate of a video must be converted to match the refresh rate of the display (e.g., 23.976 fps = 23.976 Hz). The source frame rate may be telecined (interpolated), duplicated, sped up (PAL speedup) or slowed down to match the display refresh rate. Displays in North American (NTSC) and European (PAL) countries employ different native refresh rates. Standard media in those countries is mastered with frame rates to match NTSC displays with a 59.94 Hz native refresh rate or PAL displays with a 50 Hz native refresh rate.  

Image

Signal Type: The method of displaying an image. Interlaced sources store images as odd and even horizontal lines or fields. The display draws the odd lines in one pass and then the even. Progressive images are shown in a single pass, where every line is drawn in succession. Interlacing was originally designed for cathode ray tube (CRT) televisions.

Interlacing is still used today in many HDTV broadcasts to reduce transmitted bandwidth. Interlaced sources must be deinterlaced to be shown on progressive scan displays. While progressive signals require more bandwidth, they produce fewer artifacts, offer higher vertical resolution and remove the need to deinterlace at the player or display level.

Image

Color Space: The method of describing a set of colors. RGB is a computer color space that uses a full range or limited range of RGB values. YCbCr is a video color space that can also represent a limited range or full range of RGB values. In most applications, RGB is full range (0-255 at 8-bits) and YCbCr is limited range (16-235 at 8-bits).

Image

Codec: The compression algorithm used to encode the video source. As a general rule, DVD codecs are less efficient than Blu-ray codecs; UHD codecs are more efficient than Blu-ray codecs.

Video is commonly captured or converted from camera sensors into four formats: Raw, Log, RGB or YCbCr. In YCbCr or RGB, each color channel is defined by a fixed sample rate and bit depth, not unlike audio sampling. The sample rate is expressed in thousands of samples per second. The CbCr channels are sampled at a lower rate than the Y channel. Each sample is assigned a bit depth of 8-bits, 10-bits or 12-bits that represents the number of color shades per YCbCr or RGB color channel, and the average of all samples for each pixel becomes the digital Y'CbCr or R'G'B pixel value. This is uncompressed HD video and not what is seen in the final video. A codec (e.g., HEVC) is used to reduce the size of the uncompressed video by selectively removing redundant pixels across groups of similar frames. The video decoder reconstructs the missing Y'CbCr pixels to give a complete set of pixel values to the video renderer. The amount of pixel data removed is defined by the bitrate of the encoder.

Image

Chroma Subsampling: The method of reducing the amount of information in the chroma (CbCr) channel of a Y'CbCr source. This is used to reduce data transmission rates or required data storage.

The luma channel (Y') carries the full resolution (4:x:x) while the chroma layer is reduced in one or both dimensions. This compromise takes advantage of the human visual system's lower acuity for color differences than for luminance. The most commonly used chroma subsampling type is 4:2:0.

Chroma upscaling can be used to return the chroma layer to the resolution of the luma layer. Most displays convert all subsampling types to 4:2:2 or 4:2:0 or convert subsampled inputs directly to RGB. RGB displayed with chroma subsampling shares neighboring chroma pixels with Y values missing Cb and Cr pixels that has the effect of lowering chroma resolution by blurring certain chroma planes.

Image

Bit Depth: The number of bits per channel (RGB) used to represent a color gamut. An 8-bit source uses 256 color shades per RGB channel. A 10-bit source uses 1,024 color shades per RGB channel. The bit depth is represented by a gradient consisting of individual steps between each color shade that cover the entire color gamut volume. Increasing the number of color values makes gradients appear smoother and more detailed by creating finer transitions between color shades.

Image

Primaries: The maximum saturation of each primary color: red, green and blue. This represents a triangle to form a color gamut. Each color gamut allows for different ranges of red, green and blue as well as secondary colors cyan, magenta and yellow. These primaries are used as the base to create all other colors. The least saturated colors are located towards the middle of the gamut near white (D65) and the most saturated colors are located along the gamut edges.

As the gamut becomes larger, the bit depth used to represent it should also increase, but color gamuts can be encoded with any number of bits. Not all colors are highly-saturated, so a larger gamut does not imply all colors will be more saturated, as only the furthest points of the gamut increase the available saturations for each primary color. 

Image

Peak Luminance: The brightness range used to master content. Standard dynamic range (SDR) content such SMPTE-C and BT.709 uses a peak luminance of 100 nits. A display that is brighter can extend this range, but as brightness increases, the output will only become increasingly distorted and overall contrast remains unchanged. One nit can be considered equivalent to one lit candle. High dynamic range (HDR) content uses a brightness range from 0 to 10,000 nits — with most HDR content topping out at 1,000 to 4,000 nits. 

Related to peak luminance is the Electro-Optical Transfer Function (EOTF) or gamma. RGB values are linear, regular color integers. R'G'B' are non-linear, gamma corrected color values. Gamma correction is designed to map each bit to a color value (0-255) that tells the display how much voltage is required to produce a prescribed amount of light or luminance. Standard RGB values, on the other hand, do not map directly to the brightness of standard consumer displays because a monitor's power output does not directly correlate to its perceived brightness; 50% voltage from a monitor does not equal 50% perceived brightness. Proper gamma to grayscale tracking ensures each step (0-255) represents a discrete change in brightness to the viewer. Gamma is a relative standard offering a choice of several tone curves with the added ability to increase or decrease the brightness of the 100 nit source master by stretching it at the end display.

While a standard pure power curve is sufficient for SD/HD color gamuts, an UHD/HDR gamut needs a transfer function suitable for a much larger range of luminance values. This new transfer function is defined as SMPTE 2084 Perceptual Quantizer (PQ), which replaces gamma for HDR10 and Dolby Vision sources.

Unlike gamma, PQ is a fixed tone curve that defines specific code values to each luminance level. The majority of the bits are distributed towards the darker portions of the curve with fewer code values assigned to brightness peaks to mimic our eye's greater sensitivity to dark detail versus bright detail across a larger spectrum of luminance. The PQ EOTF is not designed to be increased in brightness to account for ambient light in a room like gamma. Instead, the display is asked to clip or tone map values too bright for the display at the top of the curve and display all other mastered values 1:1 at the low end of the curve. 

Some approximate PQ code values for a 10-bit (64-940) RGB source:
  • HDR ST.2084 100 Nits =  White Point Clipping at 519 
  • HDR ST.2084 400 Nits = White Point Clipping at 668 
  • HDR ST.2084 1000 Nits = White Point Clipping at 769 
  • HDR ST.2084 2000 Nits = White Point Clipping at 847 
  • HDR ST.2084 4000 Nits (Dolby Pulsar) = White Point Clipping at 924

Clipping at the display level is rarely done in favor applying a tone mapping curve against the PQ curve. The majority of tone mapping algorithms will compress the entire range into the available luminance of the display (e.g., 4,000 nits peak white -> 700 nits peak white). Lower code values tend to remain the same with reasonably bright displays, while others are adjusted relative to each other.

Hybrid Log Gamma (HLG) is another standard HDR format that bears more resemblance to SDR. Jointly developed by UK broadcaster the BBC and Japanese broadcaster NHK, HLG is aimed at HDR TV broadcasts because it allows both SDR and HDR signals to be sent in the same stream. What differentiates HLG from PQ is that it uses a combination of a standard SDR gamma curve and a logarithmic curve that contains the extra brightness information for HDR. Both of these curves scale with the brightness of the display; therefore, there is no tone mapping or clipping like PQ. Reference (SDR) white is defined as 75% of the input signal. Because the HDR logarithmic curve is compressed, this will scale differently depending on the brightness of the display. With a 1,000 nit display, reference (diffuse) white would be rendered at around 175 nits. The HLG standard is a compromise solution to deliver HDR content without requiring a separate SDR capture. HLG can handle a brightness range up to 5,000 nits with no needed metadata beyond the information supplied in the gamma and logarithmic curves.

Image

Any display should be calibrated to show standard consumer media accurately by adjusting its primary colors to match its native gamut. It is also important to have an accurate grayscale and transfer function curve suitable for the viewing room. A correct grayscale should show a perfect balance of red, green and blue from 0 to peak white at D6500 (6500 Kelvins), the white point that represents the temperature of white light at mid-day that falls towards the middle of a CIE xy chromaticity diagram.

The (xy) coordinates of a chromaticity diagram map out the hue (h) and saturation (s) of all colors in a gamut independent of its luminance. This forms a triangle with red, green and blue occupying each corner and white in the middle. When luminance (Y) is added to xy, 3D color volume is created (xyY), which best approximates the way colors are represented by a consumer display device.

Most digital displays offer individual controls for each of these qualities: tint (hue), color (saturation), primary colors (RGB), brightness (black), contrast (white) and backlight (luminance).

xyY Color Space:
Image

In motion, the video renderer converts the frame rate of the video to the desktop refresh rate (e.g., 24 fps -> 60 Hz). Or the GPU refresh rate is changed to match the source frame cadence (e.g., 24 fps -> 24 Hz). This process can also involve upscaling or downscaling the input pixel count to match the resolution of the display (e.g., 1920 x 1080p -> 3840 x 2160p).

24 fps Film Played at 48 Hz, 60 Hz, 72 Hz and 120 Hz:
Image

Lossless vs. Lossy Conversions

Video processing conversions can be divided into two types: lossless and lossy. Lossless conversions retain the same information as the input values. Lossy conversions will alter the source values or lose some of the original information.

Lossless
A conversion from YCbCr 4:2:0 -> YCbCr 4:2:0 can be lossless if the video player handles the conversion correctly. Going from YCbCr 4:2:0 -> 4:4:4 -> 4:2:0 is also lossless; you just remove the pixels you added. 

Lossy
Conversions from YCbCr 4:2:0 -> YCbCr 4:2:2, or YCbCr 4:2:0 -> YCbCr 4:4:4 -> RGB are lossy. The original information is permanently altered or lost.

Lossy conversions should be carried out at a higher bit depth than the source (typically, 16-bit - 32-bit) and dithered down to the output bit depth. This will create more accurate conversions and allow for the possibility of retaining some information from the higher bit depth to the actual output bit depth. 

For example, upsampling 4:2:0 chroma to 4:4:4 in a 0-255, 8-bit color space may involve an averaging of neighboring chroma pixels such as 62 and 63. The resulting value, 62.5, does not create a valid 0-255, 8-bit integer, which necessitates the need to round to 62 or 63

If the averaged value was instead converted to a 32-bit floating point number (62.5/255) it equals: 0.245098. That is a lot more precise than 62.5, and allows for the resulting rounding error to be distributed to neighboring pixels to eliminate the possibility of introducing any color banding not found in the original source values. This type of rounding works well for any interpolated pixels, especially for a PC where the input and output color spaces (YCbCr & RGB) do not match.

HDMI 2.0 4K Output Limitations

HDMI 2.0 bandwidth is limited for carrying 4K UHD media through HDMI cables. This makes configuring a PC for 4K UHD 60 fps output less simple than choosing the matching bit depth, RGB/4:4:4 output and the highest desktop frame rate. Bandwidth restrictions require a reduction in one or more of those variables for proper transmission. HDMI 2.0a/b is restricted to 18.0 Gbits/sec; HDMI 1.4 provides up to 10.2 Gbits/sec.

HDMI 2.0a/b (maximum output - 3840 x 2160 - 18.0 Gbps):
  • 10-bit RGB/YCbCr 4:4:4 at 30 Hz
  • 12-bit YCbCr 4:2:2 at 60 Hz
  • 8-bit RGB/YCbCr 4:4:4 at 60 Hz

HDMI 1.4 (maximum output - 3840 x 2160 - 10.2 Gbps):
  • 8-bit RGB/YCbCr 4:4:4 at 30 Hz
  • 12-bit YCbCr 4:2:2 at 30 Hz

It is a viable option to output 10-bit 4K UHD content at 8-bit RGB at 60 Hz. The color gamut is not compressed. Rather, additional dithering is added to the image to simulate the higher bit depth. The conversion from 10-bits to 8-bits should be carried out by the video renderer and not the graphics driver.

The visible dithering noise will be lower on a 4K UHD display compared to a 1080p display. Unless there is an underlying need for 10-bit output above 30 Hz, it is best to use 8-bit RGB, as this will preserve the chroma upscaling done by the video renderer and avoid an unnecessary color conversion from R'G'B' to Y'CbCr.

HDMI 2.0a/b UHD Support:
Image
Black fonts indicate formats supported by HDMI 1.4.
HDMI 2.0 supports 4:2:2 at 4K60.


*Cable lengths of 15' or greater require the use of an active HDMI cable to support 18.0 Gbits/s signals.
Reply
work fine with that rule for me

youtube dsplayer
Image

vevo dsplayer
Image

the strange things in your case it's that kodi continue to automatically play internet video with dvdplayer... there should be a rule for that if dsplayer it's set as default player

p.s.

when you edit a rule by "dvdplayer mertis" in dsplayer menu, kodi reloads the rules in playercorefactory.xml but if you delete this file without restart kodi will continue to use these rule even if you delete the file
Reply
I can't get it to work. I have to go to my part-time job (I am a student), but I attached a debug log.

Most video addons play with DVDPlayer, even without any rules for Internet content.

HD Trailers seems to follow the rules set, but the trailer will not load.

Debug log: See next post

Here are my settings:
Image

I must be missing a filter.

I wanted to update the guide because I've been telling everyone to play this content with DVDPlayer.

Lastly, I have also been telling people to install AV Splitter to allow for chapter support with mkv files. I tried LAV Splitter as a test and chapters are still working. Is there any disadvantage to using LAV Splitter for all content over AV Splitter?
Reply
post deleted.
Reply
@Warner306

you have to put the list of protocols in "- protocols" no in file types

it's easy to miss this because usually we using the file types

(2015-04-30, 18:25)djoole Wrote:
(2015-04-29, 14:42)neeto33 Wrote:
(2015-04-28, 15:35)oldpoem Wrote: It just don't work with some DVD structure even with using other directshow based player (MPC-HC etc.). Since DVD Navigator filter is not in development anymore and no replacement filter for it, that's the end of dvd ifo playback.

Ok here's the answer - it will & does work fine for DVD structures on the local host with the following configs

<rule filetypes="ifo">
<source filter="dvdnavigator" />
<splitter filter="dvdnavigator" />
<video filter="lavvideo" />
<audio filter="lavaudio" />
</rule>

But there is catch - it must be a local structure. If it is on my NAS I get the following:

When I have "ERROR: CFGLoader::InsertSourceFilter Failed loading dvd directory." error, further in the log file is line
ERROR: Playlist Player: skipping unplayable item: 0, path [smb://NAS04/movies/The Very Best of XYZVIDEO_TS/VIDEO_TS.IFO]

I believe this is an error with how this file path is being passed to the filter.
i.e. the "smb:" should not be on the front of the path name.

(2015-04-29, 14:45)oldpoem Wrote: It works for some structure not all. I had many that doesn't work right while DVDPlayer plays it fine. Also it should be VIDEO_TS.IFO not VIDEO_TS.INF.

All my media are streaming with SMB protocol so it shouldn't be the problem. My suggestion is convert it and save the hustle, noone develops DVD Navigator filter anymore so can't expect any fixes on that part anytime.

It's not a DVD Navigator filter issue (well at least regarding DVD structure).
I play all my DVDs with MPC-BE using DVD Navigator, and not one is playing with DSPlayer.

I think neeto33 found the problem : working in local drive, not working on NAS. Systematic, not depending on DVDs.

Aracnoz what's your position on this issue? Is there any way to change the path sent to the filter in order to remove smb: ?

I have a huge amount of DVDs on my NAS, would love to play them with filters support.



EDIT : an idea just popping out in my mind.
Maybe use Coreplayerfactory, to use a BATCH as an external player for IFO's only, and passing it the path with smb: removed, the BATCH calling DSPLAYER Smile

ok i fixed this issue for the next release, but as has said oldpoem some other things can fails with dvds
Reply
Nice!! Thanks very much!
If you need someone to test it I'm there!
Reply
Kodi with dsplayer with madVR got featured on lifehacker!

http://lifehacker.com/how-to-get-better-...1700412363

and @Warner306 your guide was linked as well!
Reply
anyone figured out how to get rid of the gui lag when opening videos?
Reply
(2015-05-01, 02:22)Shogunreaper Wrote: anyone figured out how to get rid of the gui lag when opening videos?

No, as stated previously, this lag cannot be completely eliminated due to the frame buffer used by madVR. This is a compromise of this software.
Reply
I have a question:

I mentioned in the guide that AV Splitter is needed for mkv chapter support, Matroska Editions and title selection. Today, I gave LAV Splitter a try, and low and behold, mkv chapters are now supported. Can the same be said for Matroska Editions and title selection? I don't have any to test.

I am wondering if AV Splitter is needed at all anymore. There is no consequence to using or not using it, of course. But it seems pointless to install AV Splitter if it's not needed.
Reply
(2015-05-01, 01:20)spencerjford Wrote: Kodi with dsplayer with madVR got featured on lifehacker!

http://lifehacker.com/how-to-get-better-...1700412363

and @Warner306 your guide was linked as well!

That article drove 400-500 people to the set-up guide today and likely double that to this forum. I don't read LifeHacker, but that was good publicity.
Reply
(2015-04-30, 11:04)aracnoz Wrote: i don't know if it's only for my cases but with this rule i can play every video

trailer, youtube or others video addon

Image

Can someone else try this? I still can't get it to work. I know this rule will not guarantee all streaming content is played by DSPlayer, but even the content that is played automatically will not load. I don't think the first filter (File Source (URL)) is working on my system, but there is no place to download or configure it. It is a Microsoft filter.
Reply
(2015-05-01, 08:21)Warner306 Wrote:
(2015-05-01, 01:20)spencerjford Wrote: Kodi with dsplayer with madVR got featured on lifehacker!

http://lifehacker.com/how-to-get-better-...1700412363

and @Warner306 your guide was linked as well!

That article drove 400-500 people to the set-up guide today and likely double that to this forum. I don't read LifeHacker, but that was good publicity.

it was tweeted. thats how i saw it! i follow a couple of the authors, mostly the tech related guys.
Reply
For those who DO NOT bitstream and prefer audio to be decoded in the PC, there is now no need for the dtsdecoderdll.dll to decode DTS-HD audio streams. LAV Audio filters are now capable of decoding DTS-HD streams.

@Warner306 - don't know if this is mentioned in your guide, but might want to add/amend as you see fit.
Reply
Thanks for the hard work in bringing all this to Kodi. I used this thread and its sister configuration guide thread to get everything up and running in no time at all.

I love having a Plex back-end for easy streaming to other devices, both locally and away from home, while having Kodi as the front-end on my main HTPC. Does anyone else use PleXBMC with this fork? I'm currently having a couple of issues with it.

For some reason when accessing videos through PleXMBC, only some play in DSPlayer. The others all play in the usual DVDPlayer. When I load the same video library directly in Kodi, everything is being picked up by DSPlayer and plays accordingly. Does anyone have any inklings what might be causing this?
Reply
  • 1
  • 25
  • 26
  • 27(current)
  • 28
  • 29
  • 523

Logout Mark Read Team Forum Stats Members Help
Kodi DSPlayer – DirectShow Player for Windows47