This page is a wiki. Please login or create an account to begin editing.


23 posts / 0 new
Last post
SkyCapt's picture
Offline
Joined: 2017 Jan 11
the CoreVideo framework for Tiger thread

This topic is about the CoreVideo (System/Library/Frameworks/CoreVideo.framework) for Mac OS X 10.4 Tiger operating system. CoreVideo was a new thing when Tiger was being made. For the CoreVideo in OS X 10.5 Leopard see this other page here Leopard CoreVideo.

Comments

SkyCapt's picture
Offline
Joined: 2017 Jan 11

Started this because I find little good info about it, and I have a Macintosh system with which I can see the effects of the CoreVideo framework onscreen. If I had to describe CoreVideo in one word I'd say "smooth". It reduces roughness seen in animations, improves the color crispness vs.washout, addresses 'tearing' seen between frames, and potentially speeds up rendering. For all of wikipedia's many problems at least its page for "Core Video" has the word "smooth" in the description.

Next comes how you define "Video". Core IMAGE is also new technology introduced in Tiger, and the name is based on the success of "Core Audio" in the previous OS X 10.3 Panther. Beyond Core Image, "Core Video applies concepts similar to Core Image to video, allowing video filters and effects to benefit from hardware acceleration" -from the book Mac OS X Internals by Amit Singh page 98 section 2.10.1.4 ~ but, video in the case of CoreVideo is NOT in reference only to video data-file playback (so, Core Player software product has zero relation to CoreVideo framework). Instead the Video in CoreVideo means video signal, signal generator, the video port(s) leading from the computer system/graphics card. CoreVideo framework applies to Everything, including the Desktop and everything on the Desktop, anything opening its own windows and fullscreens. Applications do not need to be specially programmed to use CoreVideo's smoothing, all applications automatically hook into CoreVideo smoothing through the Mac OS X if the framework is active. A fast CoreImage class graphics card may be required to see effective smoothing.

CoreVideo does not run in OSX Panther 10.3.9 (wikipedia is very wrong, Singh writes "... beginning with Mac OS X 10.4"). And CoreVideo is not a proper part of "QuickTime 7" it is part of OS X 10.4 Tiger, tho beginning with QuickTime version 7.1.6 the QuickTime installer packages contain CoreVideo framework updates for Tiger (framework is not written when QT7 gets installed on Panther).

CoreVideo.framework has three versions for Mac OS X 10.4 Tiger and you can go to "System Profiler" > Software > Frameworks to see which. It's ok if you haven't got CoreVideo, that is the fourth possibility. And don't get the idea that Leopard is helpful like this, it isnt. Leopard has like a dozen different CV frameworks all named v1.5.0

CoreVideo.framework v1.4.0
...is installed by Mac OS X 10.4.9 Update, 10.4.10 Combo Update, 10.4.11 Combo Update, and QuickTime 7.1.6 (requiring at least 10.4.9 to install).

CoreVideo.framework v1.4.1
...is installed by QuickTime 7.2.0 (requiring at least 10.4.9 to install).

CoreVideo.framework v1.4.2
...is installed by QuickTime 7.3.1 thru 7.6.4 (requiring at least 10.4.9 or higher to install). With so many QuickTime installer versions, there might be multiple CoreVideo v1.4.2 like Leopard has multiple v1.5.0

I test CoreVideo framework v1.4.1 performs the best, better than v1.4.2 - and Tiger Server may or may not make alterations to the Client CV framework, so capturing both Server and Client versions of the CV framework could be recommended, though I tested they are functioning when interchanged between Server and Client OSes.

Singh and wikipedia both say CoreVideo is "part of" the QuartzCore framework, but I find the CV smoothing algorithm exists solely within the CoreVideo framework.

OSX 10.4.8 and older don't come with the CV framework but you can add it (any version 1.4.0 thru 1.4.2) yourself by copying the desired captured CoreVideo.framework folder to your System/Library/Frameworks/ folder. There is no need to repair the CV framework ownership permissions, CV the ONLY framework I know of that executes without proper permission (in Tiger). There is no need to reboot, just Logout and Log back in. Or, you don't even have to do that when testing an app which opens its own fullscreen, just Quit the app, alter your CV framework, relaunch the app ~ logging out and in again is for ensuring the Desktop itself is updated for CV windows not fullscreen. I found that OSX 10.4.0 does not put the CV framework to use, but starting with OSX 10.4.1 it does. OSX 10.4.9 thru 10.4.11 require the presence of the CV framework, so if you wish to remove the CV framework from these OSes then you must modify their QuartzCore framework.

Since in OSX 10.4.9 the supplied CV framework is version dot-zero, that was the first release. OSX 10.4.1 thru 10.4.8 allow the CV framework to be added manually for pre-release testing purposes, and by not having to repair permissions shows Apple wanted even novices to help in testing. I've often said OSX 10.4.8 is more reliable/stable than higher, and NOT having the new and complicated CoreVideo smoothing is one of the many reasons, but it sure LOOKS good to add CoreVideo smoothing into OSX 10.4.8 where ive also updated to QuickTime v7.1.5 the highest allowed in 10.4.8 ~ and my display screen resolution is relatively big, 1920x1080 or more is ensuring I can see these differences.

SkyCapt's picture
Offline
Joined: 2017 Jan 11

Q: Is my Graphics Card supporting CoreImage?
An easy way to find out is: open Dashboard using OSX Tiger or Leopard, and then add an offline 'Widget' to become active. If you get wavy water ripples flowing out from the new widget's window, then your graphics card is CoreImage class. Non or pre-CoreImage gfx has no water ripples programmed for this specific situation.

note: opening Dashboard hitches a ton of software threads into Mac OS X. If you want to "Close" Dashboard after using it this way, or in any way like after bumping against the Open Dashboard hotkey by accident... type "killall Dock" in Terminal to Close the Dashboard.

-----

Q: how can QuartzCore.framework be modified so that CoreVideo.framework can be deleted?
It's a hack, but one I've been using for many years. In OSX 10.4.8 which comes with QuartzCore "v1.4.9" how seen in System Profiler > Software > Frameworks , the CoreVideo.framework can be deleted. In OSX 10.4.9 thru 10.4.11 it has QuartzCore "v1.4.12" which is requiring CoreVideo.framework AND also draws noticeably slower on my system. By rolling back OSX 10.4.11's QuartzCore from v1.4.12 down to that which came with OSX 10.4.8 (QuartzCore.framework v1.4.9) I get both a speed boost and the option to run with no CoreVideo.framework whatsoever. I still find that having CoreVideo v1.4.1 looks great. When you modify an Extension or a Framework (except CoreVideo), you need to Repair Permission. Open Terminal or Disk Utility BEFORE making the modification, because the kinds of extensions we're talking about are ones which affect windows when they open. Disk Utility will spend a lot of time repairing every permission, so it's better to tell Terminal the specific one bundle to repair.

Terminal command to repair these ownership permissions:
sudo chown -R root:wheel /System/Library/Frameworks/QuartzCore.framework

...then reboot, and it goes without saying you should have backups and recovery means in the event anything fails.

SkyCapt's picture
Offline
Joined: 2017 Jan 11

Versions of the CoreVideo aren't right! There are 14 versions for Tiger, not 3. The 14 are located in all QuickTime installers 7.1.6 thru 7.6.4 plus the OSX 10.4.9 thru 10.4.11 Combo updates and the 10.4.9 incremental update. Together, all 14 versions declare just 3 unique version numbers. It gets strange(r) see here.

Forget what I said earlier about CoreVideo version and a performance/speed relationship. I'm retesting CV and getting different results. What stands out is every time corevideo framework is INSTALLED the file CoreVideo is RANDOMLY EDITED such that performance changes, ranging anywhere from painfully slow or ugly to hypnotical fast and crisp. Only a handful of bytes get edited, but performance can be affected drastically. The impression I get as to how that's possible is the few bytes edited are setting the "priorities" of CV or library calls CV uses. Priority means the percentage of CPU cycles multitasking-wise which CV gets allowed. The few bytes difference is affecting speed of performance in obvious ways, and, it's freaking random speed set at install time. It's virus-like behavior.

I shortcut captured every CV version without having to reboot between installers, by force quitting the installers when they prompted for reboot, copying the /System/Library/Frameworks/CoreVideo.framework, then, erasing the framework AFTER STARTING the NEXT installer to ensure the next framework comes entirely from each individual installer.

I captured one that's giving me better looking video quality & speed than I ever seen before! Who else wants to fool around in corevideo with me? Is random speed on install just me, like, am I being punished by a codeworm because I triggered something somehow?

SkyCapt's picture
Offline
Joined: 2017 Jan 11

Testing confirms, corevideo installs with a random speed every time. I can run the same installer repeatedly and get a different CoreVideo file every time.

I analyzed what's happening and learned how to edit any version of CoreVideo framework to give it the highest speed or the lowest speed for comparison. I compared every version when set to max to find the one installed by QuickTime v7.4.5 seems the best one. Here's how to edit CoreVideo.framework to make it fastest:

(For expert tinkerers)
Drill into the CoreVideo.framework folder to get at the file "CoreVideo" and drag it onto the HexEdit utility icon, or otherwise open CoreVideo with a hex editor.
All versions of CoreVideo look similar, begin scrolling down past the first block of mostly zeros, keep scrolling down past a bunch of "__TEXT" entries and past a bunch of "__DATA" entries and then before the next big block of zeros is a series of seven filenames. These are corevideo's libraries and their attributes, for PowerPC or the PowerPC half of a universal binary. EDIT the 32-bits (4 bytes) found 12 bytes in front of the start of each filename. Looks like this (typically near the $1500 thru $1800 range of offset within the file):

5D 0A C5 FE .. /System/Library/Frameworks/CoreVideo
5A C5 4D FE .. /System/Library/Frameworks/ApplicationServices
5A C5 4D FE .. /usr/lib/libobjc
5A C5 4D FE .. /System/Library/Frameworks/OpenGL
5A C5 4D FE .. /System/Library/Frameworks/IOKit
5D 0A C5 FE .. /usr/lib/libmx
5A C5 4D FE .. /usr/lib/libSystem

Save changes. Quit everything and erase the existing /System/Library/Frameworks/CoreVideo.framework folder then copy the altered CoreVideo.framework folder to the /System/Library/Frameworks & you can reboot, but you don't always have to reboot. If your benchmark or video test software opens its own fullscreen output then you are able to simply relaunch your program to see the difference CoreVideo makes.

That above is for best speed. For slowest speed, change the seven "$FE" bytes into $01. Know that a typical randomized install creates a corevideo framework that's somewhere in between these best and worst forcible edits.

Now armed with a new best CoreVideo framework (from QT v7.4.5 & edited), I find I can tolerate actually using QT updates up to v7.4.5 and when I install the best CV framework onto my OSX 10.4.8 volume, the video is improved by it, whereas a typical randomized CV framework doesnt do much positive for OSX 10.4.8

I can try fooling with the intel half of CV, I have intel hardware running Tiger. Will take some time...

SkyCapt's picture
Offline
Joined: 2017 Jan 11

This edit works awesome (still, the whole while).
I use this single edited CoreVideo framework in both OSX 10.4.11 and OSX 10.4.8 and it's hard to say which of the two OSX 10.4 has the best display.

SkyCapt's picture
Offline
Joined: 2017 Jan 11

Halt the presses.
Ignore the version editing recommendations above,
and just do this:
https://macintoshgarden.org/apps/corevideo-tiger

Antonin29's picture
Offline
Joined: 2018 Apr 10

Does it hit the GPU harder or seems to just be benefical to any Tiger install?

SkyCapt's picture
Offline
Joined: 2017 Jan 11

I don't know if it can overwork a GPU. There are too many variables, this topic is experimental. I've been having wonderful success for many years, but only dealing with my sparse hardware. My PowerMac has its GPU with no direct fan and the card is upside-down, yet heat hasn't been a problem. My only thermal sensor is the CPU but I have Not noticed added heat from playing with CoreVideo.

SkyCapt's picture
Offline
Joined: 2017 Jan 11

New findings, CoreVideo.framework and QuartzCore.framework must be grouped together as a team. Turns out they BOTH install with nasty self-modifying code adjusting their execution priorities. The latest download above is the fastest CoreVideo and one that does NOT self modify. But it relies on the QuartzCore of OS 10.4.8 (QuartzCore v1.4.9) which DOES self-modify during installation. So this topic remains a big mess.

Fortunately there is only one QuartzCore v1.4.9 for PPC/Intel/Universal/Client/Server. The differences observed are just coming from the self modification activity. Unfortunately, the QuartzCore v1.4.9 "ripped" from the updaters (using Pacifist) defaults to a slow priority, so any unmodified version of the QuartzCore is undesirable.

This means when you install OS X on a particular machine, it becomes self modified custom tailored to that particular machine. Then when you shuttle the post-install bootable volume to any other machine, you are instantly corrupting the OS relative to the 2nd machine. Who knew?

I'm being forced to upload a fast post-installed QuartzCore to accompany the CoreVideo download. I'd like people to see what this can do, and can only share what I know works right. This QuartzCore I'll share was naturally made on my PowerMac, never hand-edited.

adespoton's picture
Offline
Joined: 2015 Feb 15

So should we wait for a new QuartzCore before installing the CoreVideo, or is it all on the dmg now?

SkyCapt's picture
Offline
Joined: 2017 Jan 11

The paired QuartzCore & CoreVideo are together in the dL with instructions.

When I first added Snow Lep onto my Core2Duo it looked so fast I wondered if it was switching to 64 (or 128) bit rendering. But now with this CoreVideo... Tiger reclaims its title Fastest OSX. SL might just optimize their CoreVideo to look the way it does.

adespoton's picture
Offline
Joined: 2015 Feb 15

Finally got a chance to try the upgrade... Wow! You're not kidding about the difference!

I run my main 10.4 machine headless, and the VNC redraw alone is more than 2x the speed. Not only that, the antialiasing is crisp and the alpha channel refresh is really really snappy.

[edit] Hmm... I just realized something else. Since I'm currently running headless and don't have my mini monitor plugged in, that means that the graphics accellerator is actually disabled and I'm using the software compositer on my Mini.

This means that the change here actually improves the non-accelerated video as well as the accelerated video. Food for thought.

galgot's picture
Offline
Joined: 2014 May 7

I tested it on a Ti 867Mhz ,10.4.11. Indeed it's faster.
I had one problem tho. On the same system I installed and tested successfully Wicknix's Mplayer build for 10.4.
https://forums.macrumors.com/threads/standalone-mplayer-for-10-4-10-5.22...
But when I wanted to run it with these QuartzCore & CoreVideo installed, it wouldn't launch.
Sorry , don't have the machine running right now to re-test and see the error msg.
But when I reinstalled the previous QuartzCore & CoreVideo and Mplayer worked back again... so these were indeed the problem.
Maybe you could try installing that Mplayer build see if it runs on your system with these QuartzCore & CoreVideo ?

SkyCapt's picture
Offline
Joined: 2017 Jan 11

I didn't know of any app incompatible. And it's a video file player at that, interesting. The video file players I use are all working: Apple DVD Player, QuickTime Player, iMovie, VLC, CorePlayer, Windows Media Player all working.

Can you narrow it down to which half is the issue? Don't run the 10.4.9 10.4.10 10.4.11 QuartzCore (v1.4.12) in conjunction with the 9A241 CoreVideo - it was unbootable here with me. But the 10.4.8 QuartzCore (v1.4.9) drives any retail Tiger CoreVideo, it also can be run without the CoreVideo framework, and v1.4.9 performs nicely faster than v1.4.12 independent of CoreVideo.

Use the wondrous 1.4.9 QC with your official CV to launch MPlayer and pls let us know which of the halves is incompatible or it could even be both pieces are each incompatible but I doubt it.

galgot's picture
Offline
Joined: 2014 May 7

Will try next week and report results. Don't have access to the machine right now.

galgot's picture
Offline
Joined: 2014 May 7

Hi Captain,
So I took time to try installing this QuartzCore v.1.4.9 only this morning.
But then got into permissions problems and it wouldn’t want to move it in /System/Library/Frameworks. Even with authentication or with sudo in term, no way. Was giving me an error with a long number…
So, as I had already moved the original QuartzCore out of there, I tried moving it back into /System/Library/Frameworks/. Same error.
Now without a QuartzCore.Framework the system would boot , but hang before the loging window…
Tried mounting the disk in firewire target mode on another Mac to move the QuarztCore back in place, but it wouldn’t mount…
So I removed the drive, placed it in an USB adapter , and from another Mac moved the original QuarztCore back in place. By that time I was a bit fed up of this.
It rebooted back normally after that. Think I’ll keep it as is, as it was a perfectly working system.

Anyway, all is not lost from that, cause I had saved the crash report from when I’d launch Mplayer while with CoreVideo 9v241 and QuartzCore v1.4.9 installed.
Here, if that can help :
https://we.tl/t-Q6rGeyjLsP

Cheers

adespoton's picture
Offline
Joined: 2015 Feb 15

My method for moving was to sudo mv from the command line. Worked for me first try, although I scripted all the moving into a single ; delimited command line, so that the old files were moved out and the new ones moved in and the permissions set appropriately all at once.

galgot's picture
Offline
Joined: 2014 May 7

Ah yes, thks. I used sudo mv too, but one cmd at a time for each component... Maybe that is why it was failing.
Anyway, will keep it like this for the time being Wink
More on Wallstreets these days, trying to reinstall tiger on one, and just the stock Tiger install on these is buggy enough to keep busy.

adespoton's picture
Offline
Joined: 2015 Feb 15

This AnandTech writeup is interesting in this context: https://www.anandtech.com/show/3142 -- it's ruminations about Tiger Core Image support on the G4 Mini.

SkyCapt's picture
Offline
Joined: 2017 Jan 11

There's something like ten more Developer Previews or Public Betas of "Leopard" came after 9A241 and before the official 10.5.0 - it's dozens of GigaBytes and I don't know how to make Mega downloads happen. Their CoreVideo frameworks must eventually turn sour like the official release but perhaps they became a little better before diving. Maybe one of the CoreVideo framework to come soon after 9A241 will both remain fast and remain compatible with the MPlayer, for example?

Protocol 7's picture
Offline
Joined: 2010 Aug 7

I only have three other pre-release builds of Leopard here (9a321, 9a343 and 9a466). The first two contain CoreVideo version 1.4 (albeit different build versions). 9a466 (which was the WWDC build) contains 1.5.

I've copied the CoreVideo and QuartzCore frameworks from each of them (directly from the /System/Library/Frameworks directory on the install discs). Hopefully this helps.

https://www.dropbox.com/s/gzbs6u7ghhtp7hu/corevideos.zip?dl=1

SkyCapt's picture
Offline
Joined: 2017 Jan 11

Thanx. So not to exaggerate "ten" I count 8 so far, 9A241 9A303 9A321 9A343 9A410 9A466 9A499 9A559. There will be many different "1.4" and "1.5" CoreVideo frameworks. Eventually these Leopard pre-releases will shift from Tiger compatible to incompatible, maybe some later builds could benefit in Leopard.