Yesterday, I began working on my second collaboration for the exhale xHE-AAC USAC encoder. This time, I worked on adding an argument to print the software version on the console.
The above is the main software, printing its information as well as how to use it.
There was no option to print the version only. Ideally, I just wanted a way to print something like
exhale version 1.0.3 .....so that I can easily parse it as I do with other tools like Opusenc and Flac. Because of this, I began working on adding this functionality.
The code that performs this will check if there is just one argument (actually 2, since the first one is the executable filename). It also checks if the argument is either
-V. If this is true, we print the software information to the user:
This is the result:
A very simple and minimalistic output. Thanks to this, I can parse it and use on tools like my upcoming exchale GUI:
This Merge Request was approved and merged and is ready to use for everyone. As for the GUI, expect it in the next couple of days!
Yesterday, I collaborated on the exhale xHE-AAC Audio Encoder to add compatibility to compile the project on MinGW on Windows.
The exhale project is an Open-Source xHE-AAC USAC encoder. It allows you to encode wave (WAV) files to M4A using this specific codec.
Originally, compilation on Windows was done using Visual Studio, and this worked fine, but when compiling it on MSYS2/MinGW, it gave some issues, specifically:
H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp: In function 'int main(int, char**)': H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp:246:85: error: '_SH_DENYWR' was not declared in this scope 246 | if (_sopen_s (&inFileHandle, inFileName, _O_RDONLY | _O_SEQUENTIAL | _O_BINARY, _SH_DENYWR, _S_IREAD) != 0) | ^~~~~~~~~~ H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp:320:100: error: '_SH_DENYRD' was not declared in this scope 320 | if (_sopen_s (&outFileHandle, outFileName, i | _O_SEQUENTIAL | _O_CREAT | _O_EXCL | _O_BINARY, _SH_DENYRD, _S_IWRITE) != 0) | ^~~~~~~~~~ make: *** [../makefile.base:112: ../../build/exhaleApp.d.o] Error 1 make: Leaving directory '/build/exhale-git/src/app' make: *** [makefile:18: all] Error 2
It also complained about
fprintf_s, so some changes needed to be done on the code.
To solve the
_SH_DENYRD not declared issue, we had to include the
Next, to solve the
fprintf_s issue, I surrounded this on an
#if !defined block to check if we were compiling on MinGW. If we are, we simply skip this declaration:
After these changes were done, the software compiled successfully.
Next, I did some additional changes to the
makefile.base file to allow the Media Autobuild Suite project to pass its
LDFLAGS variable to exhale:
These changes got merged into the project.
My inspiration to add this tool to the Media Autobuild Suite came as a user requested this tool to be added to it. So, I worked on it and submitted a Pull Request, where I refined it further to apply some recommendations.
The Pull Request was merged into the suite and is now available for everyone to build and use.
Yesterday, I received my very first BDXL media. These are way more expensive than BD-R and about twice the cost of BD-R DL media.
For my first BDXL recordable media, I decided to get the Verbatim 10-pack spindle. These seem to be one of the lowest-priced media when compared to 3-packs or 5-packs variants of other manufacturers.
These BDXL discs are rated at 4x, but my LG WH14NS40 crossflashed to the WH16NS60 firmware detects them as having a write speed of up to 8x.
The Media ID is VERBAT-IMk-000.
On my Panasonic UJ260, these have a maximum write speed of just 2x.
I added files to burn using ImgBurn, and made sure to use the most space possible. I then started the burning process on my WH14NS14 at the maximum supported speed of 8x.
Añadí archivos a ImgBurn y me aseguré de llenar el disco lo más posible. Luego, comencé a quemarlos con mi LG WH14NS14 a la velocidad máxima de 8x.
It seems the drive use a Z-CLV (Zoned Constant Linear Velocity) strategy to burn these discs. The write pattern was as follows:
- Layer 0: 4x -> 6x -> 8x
- Layer 1: 8x -> 6x -> 4x
- Layer 2: 4x -> 6x -> 8x
We can see the pattern below:
Some times, when the writing was at 4x, the drive would go down to 3.3x for about 1 second or 2:
The same happened when the drive was recording at 6x, going down to 5x for a second or 2:
The drive successfully burned this media, having an average speed of 5.7x:
Verification was slower than the writing itself, as it limited the read speed to 6x:
The verification was successful and no errors were reported:
The average read speed was 4.3x, slower than the 5.7x average when writing to it. It also seems that while ImgBurn set a read speed of up to 6x, the drive went all the way to 9x, according to the Maximum Verify Rate.
Here, we can see the written disc with its Z-CLV zones:
These discs seem to be compatible with the LG WH14NS40 Blu-Ray writer. They also burn at a faster 8x speed which is more than its rated speed of 4x. The drive was able to successfully burn them and read them. These discs, while expensive, allow us to write up to 100GB (about 93GB of actual storage) on a single medium. It would have taken us 4 25GB BD-R or 2 50GB BD-R DL media to write an equivalent amount of data.
Unfortunately, I don’t have any BDXL scanner I can use to test the quality, but the media can be read back on the LG drive as well as on my Panasonic UJ260. The latter seems to read the disc in Z-CLV too, but it was able to read the data back successfully too. It is just slower than the LG drive.
If we compare the price of having 10x 100GB Blu-Ray discs to owning a 1TB Hard Disk Drive, we can see that the BDXL media is a couple dollars more:
The BDXL media on eBay (It was at $53.15 at the time of puchase):
On Amazon. They seem to have lowered the price to $49.99 at the time I took this screenshot:
The price of 1TB Hard Disk Drives on Amazon:
Ultimately, it all would depend on your needs. Personally, I like to write data that will not be used frequently on optical media, while having frequently-changing data on the discs. I’ve also had a bad experience of having Hard Drives fail, and while I’ve had optical media fail too (Some bad Blu-Ray batches that deteriorated in a couple of years), the data loss is not as much as losing a whole hard drive. Remember to back-up your data!
I’ve recently upgraded my Lenovo Y720 RAM to 64GB. This laptop came with 16GB initially, but it’s very easy to upgrade it.
I was browsing Amazon and found that the Samsung 32GB DDR4 SODIMM modules were the cheapest available, so I went ahead and ordered 2 of them.
Upgrading it was as easy as removing the back cover:
We can see the 2x 8GB RAM modules installed in the laptop here:
And here they are removed:
The part number is M471A1K43CB1-CRC.
We will be replacing them with 2x 32GB Samsung DDR4 SODIMM modules with part number M471A4G43MB1-CTD:
Here we insert them in the laptop:
A vew of the laptop’s motherboard with the new RAM modules:
And it booted!
Here’s the Task Manager reporting the 64GB of RAM:
While the RAM should go up to 2666Mhz, the laptop’s CPU only supports it up to 2400Mhz. It also seems that CPU-Z could not read the RAM details, as the SPD tab is empty:
The most important thing is that now my laptop has 64GB of RAM which will be plenty for a very long time.
On Saturday, I received the LG WH14NS40 Blu-Ray Writer Drive. This is my 3rd Blu-Ray writer and it will replace my LiteOn iHBS112 which was causing several bad burns. The other drive is the Panasonic UJ-260, which is a slim drive that burns discs successfully.
This drive is one of the cheapest Blu-Ray XL writers available on Amazon. It is also able to read and burn CDs and DVDs.
Here, we will see the drive unboxed and teared down.
The drive came in this simple box:
There’s no branding. Just a box with the part number printed on a label.
Opening the box we see the drive:
Just the drive. No cables or software are included.
The drive is protected in bubble wrap:
Also also comes inside a plastic bag:
Taking it off we see the drive itself:
Now, let’s take a look at the top, where we will find some useful information:
The drive is the WH14NS40, with SVC code NS50. It was manufactured on January 2020 and comes with firmware 1.04:
Finally, this is the drive with the tray opened:
We will begin the teardown by removing the 4 screws on the bottom:
We can then remove the bottom cover:
Let’s take a closer look at the drive chipset:
It is using a MediaTek MT1959HWDN chip.
Let’s now see the Eject Button, LED and Tray Motor board:
A look at the bottom tray mechanism:
The internal tray loading mechanism and Optical Pickup Unit:
A closer look to the Optical Pickup Unit:
And finally, here’s how the drive looks in my Desktop PC:
This Blu-Ray writer can be crossflashed to the WH16NS60 16x variant. In fact, that was the first thing I did.
The drive is identified as HL-DS-ST BD-RW WH16NS60.
Here is the drive capabilities according to ImgBurn:
So far, I was able to successfully burn a BD-R with media code RITEK-BR2-00 and a BD-R DL with media code RITEK-DR3-000. Both discs were burned with ImgBurn and verified successfully.
Look forward as I test Blu-Ray media with this drive!
In the past few days, I brought a LiteOn iHAS524 C DVD drive on eBay. This drive is quite rare and was being sold as used, but the unit seems to be in good conditions.
The reason to have this drive is due to its unique LabelTag feature. This allows you to create labels on the data side of a CD-R and DVD+/-R. It, of course, will consume space, but the advantage is that you don’t have to manually label the discs as long as there is enough storage. It can also be created as soon as the data is burned given you use Nero Express with the LabelTag software present.
I also currently have the LiteOn iHAS524 A, which had its optical pickup unit replaced with the one used in the B revision. They are compatible with the A units and have been working great. However, the C unit laser is NOT compatible with the A unit, and I guess the same is true with the B units.
Here, I’ll present you with a side by side comparison of the internals as well as its exterior photos.
LiteOn iHAS524 C External Photos
We start with the front of the drive:
As is usual with DVD drives, you get to see the CD and DVD logos; and because this drive also features LabelTag, it has the logo in the front too.
Here is a closer look at the top:
And the back:
This C unit was manufactured on August 2012.
LiteOn iHAS524 A Exterior Photos
Now, let’s take a look at the exterior photos of the iHAS524 A. This drive has been with me since its release in 2010, so it doesn’t have the same condition as the iHAS524 C:
Again, we see the CD, DVD, and LabelTag logos.
Here is the top:
And the bottom of the drive:
It has a missing screw which I lost some time ago when I replaced the drive optical pickup unit. This drive was manufactured on June 2010.
Here, we will see the internals side by side. We will start with the top cover interior:
Now, a look at the drive’s inside:
Both drives looks almost identical, with a few diferences.
This is the iHAS524 B Optical Pickup Unit. The part number is SF-DS1XD. It is compatible with the LiteOn iHAS524 A and is the one it’s using.
And here’s the iHAS524 C Optical Pickup Unit:
The part number is SF-DS1X1. It doesn’t have the small potentiometer on the lower left. Other than that, it looks almost the same.
The back also looks similar. The board from the A model is a bit bigger than the C model.
Here, we see both drives internals with the disc tray opened, giving us a better look at the reader mechanisms.
Unfortunately, the iHAS524 C Optical Pickup Unit is not compatible with the iHAS524 A. The drive refused to turn on, but it seems that what really happened was that there was a short circuit. This caused the ribbon cable to burn:
The iHAS524 A didn’t suffer any damage other than the burned ribbon cable. The SF-DS1X1 laser didn’t get damaged and the iHAS524C was able to work fine. After I made sure it worked, I placed its ribbon cable to the iHAS524 A and it started working with the SF-DS1XD OPU again. Phew!
Long story short, the SF-DS1X1 OPU is not compatible with the iHAS524 A. Use the SF-DS19L (The one that should be used in the A revision) or the SF-DS1XD (For B units, but also works with the A units).
This is the SF-DS19L Optical Pickup Unit which I replaced with the SF-DS1XD:
If you need one of these Optical Pickup Units, you can find them on AliExpress.
Today, I took the opportunity to take photos of this squirrel who was in my back yard today, testing the Samsung Galaxy S20 Ultra camera which has received some updates.
The Camera app version used is 10.0.03.2 and the Galaxy S20 Ultra firmware ends with ATD6. It is also the Snapdragon version.
The photos were taken in standard mode, in 4:3 ratio, with a zoom of 20x to 26x.
Click on a photo to see the larger version: