Giter Club home page Giter Club logo

Comments (7)

kingslay avatar kingslay commented on September 23, 2024

AVDisplayCriteria 有两个初始化方法,一个是tvOS17 才有的 AVDisplayCriteria(refreshRate: refreshRate, formatDescription: formatDescription)。 displayCriteriaFormatDescriptionEnabled这个开关就是用来控制这个初始化方法的。 另一个是AVDisplayCriteria(refreshRate: refreshRate, videoDynamicRange: videoDynamicRange)。 你应该是有重载了preferredDisplayCriteria,然后走了AVDisplayCriteria(refreshRate: refreshRate, videoDynamicRange: videoDynamicRange) 这个方法吧。

from ksplayer.

matteogobbi avatar matteogobbi commented on September 23, 2024

I understand that, and I already have the logic to do so. The problem is infrastructural. I don't want the player to automatically set the display criteria. There should be an option to decide this.

Also, when setting the criteria on live streams with KSMEPlayer, the stream goes bad.

As part of this problem there's also the fact that if the user wants to disable and then reenable the matching content while watching a stream, I don't have access to the MetalPlayView formatDescription, because is private. Therefore I can't set again that format description. Only the track's one.

These are all design problems that can be easily solved.

from ksplayer.

matteogobbi avatar matteogobbi commented on September 23, 2024

So imagine I have my custom player, which use your engine under the hood.

I want to be able to enable and disable content matching whenever I want, with my logic.
Therefore I need:

  1. Get informed when MetalView generated the format description, which is the only one working well enough for lives;
  2. Have access to MetalView generated format description;
  3. Be able to disable the KS inner logic to set display criteria.

One big step for this project is to well separate the concept of "Player" and "Controller". I use the Player, but I have my Controller. So things can't be mixed up.

To help, take in consideration "AVPlayer" and "AVPlayerController".

from ksplayer.

UnknownCoder807 avatar UnknownCoder807 commented on September 23, 2024

The commit you posted for this has broken 4K 50fps playback. it's losing loads of frames and is now jerky/stuttering playback - totally unwatchable.

from ksplayer.

kingslay avatar kingslay commented on September 23, 2024

The commit you posted for this has broken 4K 50fps playback. it's losing loads of frames and is now jerky/stuttering playback - totally unwatchable.

displayCriteriaFormatDescriptionEnabled 这个值是为false吗?

from ksplayer.

UnknownCoder807 avatar UnknownCoder807 commented on September 23, 2024

The commit you posted for this has broken 4K 50fps playback. it's losing loads of frames and is now jerky/stuttering playback - totally unwatchable.

displayCriteriaFormatDescriptionEnabled 这个值是为false吗?

It was set to true. tried with false and now it's ok.

from ksplayer.

matteogobbi avatar matteogobbi commented on September 23, 2024

@kingslay you missed this

    `UIApplication.shared.windows.first?.avDisplayManager.preferredDisplayCriteria = nil`

It should also be covered by the flag.

Screenshot 2023-10-15 at 01 38 55

from ksplayer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.