I will re-read some of this, but to answer some of your feedback, it ISN'T all about the actual filename, the derivation is and can partially be derived by the actual player's ability to read and interpret the meta information, specifically things like the video.resolution...etc.
As far as the web-dl flag, there are MULTIPLE schools of thought here and it will be derivative on how you name your files. Some are extremely rigid on naming (myself) and other's not so much ( to each their own ), but I say this with light hearted humor..... This is where opinions are like butts, everyone has one.... and I'm perfectly ok with it and will do my best to accommodate the best I can for the masses without sacrificing logical operation.
Here is my structures of how I handle all of the naming of my files using Media Companion:
So you can see here, your inquiry of "How did..." and "not enough..." inquiries are invalid because the metadata comes from within the file and parsed by Kodi and the selection matrix is done accordingly. You can't specifically depend solely on the filename to determine what the media flag outcomes are because there are other dependencies and Boolean logic that sets the outcome on known outcomes of what truly is happening and what the file is.
One example you see here is "hurricane" > Kodi's lowest resolution flag logic will only output the 480p flag based on Kodi's internal logic even though the file is physically/actually 360p which is why you see it in the list of tests.... and did you notice that it shows as 360p? Well there you go, that is part of the saucers spinning on sticks game I have to play to make this work...and in that case IS filename dependent. It is also worth noting here, that file is a music video and not part of my media libraries, so if I were to include it as a scanned source, it would show up as 480p because I have not coded in "look at video.resolution = 360" and set flag, right now, all of this is literally, point the "player" and let it parse and load the flags based on what it sees in some random folder. So really I'm only "half way" there. But once I get the player side right, it is just a matter of copying over the logic to the media side with some tweaks since the filenames will NOT have things like (360p) in the filename as shown here.
Now, take a look at the visual example of 300 - Rise of empires.....it is not shown in the video example...…but pause here and what would you expect to see for the "web-dl" flag? …. wait...wait...
Ok, the answer is..... no one knows.... why? Because it is skin dependent..... the data exists in the meta data (Look at Media Companion Source field > WebDL), but not in the filename.... A large majority of my files are web, but do I "want" to see web-dl flag on every single file? … well, here comes the butt thing..... probably not...… how about you? …. maybe so..... how do I balance that equation?
I will say this and it may be a very unpopular statement, but I will say, I really don't care..... anyone says to me.... "well the "scene"...… you can stop right there...… I don't care one bit....about "the scene"..... if the scene doesn't like what is happening, they are free to use another skin or fork this and carry on elsewhere. The few that have expressed interested in this version of revival is what I'm focused on (and specifically because it is for my own use daily across multiple devices) and all other input is noise and honestly..... I just don't care. Does that mean I'll purposely do this wrong.... hell no, but I'm not going to be pushed into make changes by the moving winds of change for the sake of change unless it is meaningful and useful. I only have so much time and family and this has been a large time suck between the tooling, learning and just getting here, so I'm not trying to be divisive, just laying out where my headspace is right now.... 6 months from now, I may be more receptive.
Here is a snippet of the code that determines what you saw in the video:
Code:
<variable name="PlayerVideoCodecFlagVar"> <!-- Main Menu (Videos) Player VIDEOCODEC Flags -->
<value condition="!Skin.HasSetting(SourceFlags)">$VAR[MediaFlagsPathVar]$INFO[VideoPlayer.VideoCodec,videocodec/,.png]</value>
<value condition="String.IsEqual(VideoPlayer.VideoResolution,4k) +
[String.Contains(Player.Filename,bluray) |
String.Contains(Player.Filename,blu-ray) |
String.Contains(Player.Filename,bdrip) |
String.Contains(Player.Filename,brrip) |
String.Contains(Player.filename,UHD) |
String.Contains(Player.filename,2160) |
String.IsEqual(Player.FileExtension,bdmv)]">$VAR[MediaFlagsPathVar]videocodec/4k.png</value>
<value condition="String.IsEqual(VideoPlayer.VideoResolution,4k) +
String.Contains(Player.filename,264)">$VAR[MediaFlagsPathVar]videocodec/h264.png</value>
<value condition="String.IsEqual(VideoPlayer.VideoResolution,1080) |
String.IsEqual(VideoPlayer.VideoResolution,720)">$VAR[MediaFlagsPathVar]videocodec/bluray.png</value>
<value condition="Integer.IsLessOrEqual(ListItem.VideoResolution,540) +
String.Contains(Player.filename,480) |
String.Contains(Player.filename,360)">$VAR[MediaFlagsPathVar]videocodec/x264.png</value>
<value condition="Player.IsStereoscopic | String.Contains(Player.filename,3D)">$VAR[MediaFlagsPathVar]videocodec/bluray3d.png</value>
<value condition="String.Contains(Player.filename,pdtv) |
String.Contains(Player.filename,sdtv) |
String.Contains(Player.filename,sd-tv) |
String.Contains(Player.filename,sd tv)">$VAR[MediaFlagsPathVar]videocodec/sdtv.png</value>
<value condition="String.Contains(Player.Filename,hdtv) |
String.Contains(Player.Filename,hd-tv) |
String.Contains(Player.Filename,hd tv)">$VAR[MediaFlagsPathVar]videocodec/hdtv.png</value>
<value condition="String.Contains(Player.Filename,hddvd) | String.Contains(Player.Filename,hd-dvd)">$VAR[MediaFlagsPathVar]videocodec/hddvd.png</value>
<value condition="String.Contains(Player.Filename,dvd) |
String.IsEqual (Player.FileExtension,iso) |
String.IsEqual (Player.FileExtension,ifo)">$VAR[MediaFlagsPathVar]videocodec/dvd.png</value>
<value>$VAR[MediaFlagsPathVar]$INFO[VideoPlayer.VideoCodec,videocodec/,.png]</value>
</variable>
Here (link below) you can see all of the possibilities of how the tags of the file itself can be used to help determine how to set the flags, right now it is heavily using the filename, but the gating item is watching for video.resolution being equal to 4K and inclusion of a filename attribute to make the choice....etc.:
https://xbmc.github.io/docs.kodi.tv/mast...ideoplayer
So there is more work to be done, but right now, I'm just trying to get things work to follow how other skins are doing things where others don't seem to have a problem with. I've actually documented what the flags are being used in other skins and mirroring that...so that will establish a proper baseline before tweaks are made.
Anyway, I appreciate the feedback, there is a lot of things all happening simultaneously like flags overlapping, buttons not working, other operational issues, deprecated methods, so I'm racing just get things stable and now that Omega is out....can only imagine what that will bring.