<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/llimage/llimagej2c.cpp, branch 26.1.1</title>
<subtitle>Megapahit's fork of the Second Life viewer.
</subtitle>
<id>https://www.megapahit.org/viewer.git/atom?h=26.1.1</id>
<link rel='self' href='https://www.megapahit.org/viewer.git/atom?h=26.1.1'/>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/'/>
<updated>2025-05-05T07:00:36Z</updated>
<entry>
<title>calcDataSizeJ2C Adjust curve for more than 6 layers (#4018, #4020)</title>
<updated>2025-05-05T07:00:36Z</updated>
<author>
<name>TommyTheTerrible</name>
<email>81168766+TommyTheTerrible@users.noreply.github.com</email>
</author>
<published>2025-05-05T07:00:36Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=ac5d59b9392dbd107ff6e8ac05ab8a3cd48fd694'/>
<id>urn:sha1:ac5d59b9392dbd107ff6e8ac05ab8a3cd48fd694</id>
<content type='text'>
KDU is uploading 2k files with 7 and 8 layers which is shifting the location of discard 1 and 2.

To accommodate, this commit adds a max_layer check based on max_dimension and the MAX_BLOCK_SIZE to allow the extra layers for 2k.

Also shifted the starting size to the MIN_LAYER_SIZE instead of MAX_BLOCK_SIZE's area to allow smaller files to be decoded at discard 5 completely.

Finally able to walk around Fantasy Faire without any gray blobs!</content>
</entry>
<entry>
<title>Update calcDataSizeJ2C to stop undersized blocks (#2525)</title>
<updated>2024-09-09T09:31:00Z</updated>
<author>
<name>TommyTheTerrible</name>
<email>81168766+TommyTheTerrible@users.noreply.github.com</email>
</author>
<published>2024-09-09T09:31:00Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=2f692fbac36117e1b3c5f2ec214fd188c7e73da7'/>
<id>urn:sha1:2f692fbac36117e1b3c5f2ec214fd188c7e73da7</id>
<content type='text'>
The initial block area for the pyramid walk should not be smaller than the max_block_size area so need an llmax to not allow multiplication below 1.

This was causing decode errors for complex small images (128x128 or smaller) on discard 1 and 2.</content>
</entry>
<entry>
<title>Update LLImageJ2C::calcDataSizeJ2C for better 2k image support (#2406)</title>
<updated>2024-08-24T04:21:03Z</updated>
<author>
<name>TommyTheTerrible</name>
<email>81168766+TommyTheTerrible@users.noreply.github.com</email>
</author>
<published>2024-08-24T04:21:03Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=17f515cd3e4239d3c6e1958d998e455a8300da90'/>
<id>urn:sha1:17f515cd3e4239d3c6e1958d998e455a8300da90</id>
<content type='text'>
Adjusted calculations based on dimensions and assumed maximum block size so that higher discards (4-5) of 2048x2048 images can be decoded with aux/alpha.

(It should also work for dimensions larger than 2048.)

This function will now return a reliable discard 5 data size for unknown dimensions (w and/or h equals 0), which could be used in LLTextureFetch::createRequest to skip the header fetch and go right to a discard 5 decode.

Tested on OpenJPEG 2.5 with partial decode support (opj_decoder_set_strict_mode set to false).

Should work on KDU fine but might be a good idea to test.</content>
</entry>
<entry>
<title>Clean up boost includes and remove compiler warning pragma for unreachable code in PCH (#2361)</title>
<updated>2024-08-20T15:41:48Z</updated>
<author>
<name>Ansariel Hiller</name>
<email>Ansariel@users.noreply.github.com</email>
</author>
<published>2024-08-20T15:41:48Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=9f7dd0177201fe080c287144b99a70125be1fb2b'/>
<id>urn:sha1:9f7dd0177201fe080c287144b99a70125be1fb2b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>calcDataSizeJ2C adjusted to use maximum possible components (#2073)</title>
<updated>2024-07-20T10:37:23Z</updated>
<author>
<name>TommyTheTerrible</name>
<email>81168766+TommyTheTerrible@users.noreply.github.com</email>
</author>
<published>2024-07-20T10:37:23Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=bffd4a12b8e6677d8cd8bec2e38909e5200b69dd'/>
<id>urn:sha1:bffd4a12b8e6677d8cd8bec2e38909e5200b69dd</id>
<content type='text'>
Previous pyramid walking calculation (#2032) assumed the incoming components variable can be accurate but unfortunately the needs_aux is only set to true if the face has an alpha mask setting.

Without this information we must assume the J2C files have the maximum component size of four so that alpha channels are found when decoding both the color and aux textures.</content>
</entry>
<entry>
<title>Remove unnecessary code and (re-)add some more compile time constants (#2057)</title>
<updated>2024-07-18T07:48:24Z</updated>
<author>
<name>Ansariel Hiller</name>
<email>Ansariel@users.noreply.github.com</email>
</author>
<published>2024-07-18T07:48:24Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=6535ce51fd1e3f2b0efdc650310ec75a7638f6f9'/>
<id>urn:sha1:6535ce51fd1e3f2b0efdc650310ec75a7638f6f9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix: Update calcDataSizeJ2C to pyramid-base file size estimation (#2032)</title>
<updated>2024-07-17T01:02:57Z</updated>
<author>
<name>TommyTheTerrible</name>
<email>81168766+TommyTheTerrible@users.noreply.github.com</email>
</author>
<published>2024-07-17T01:02:57Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=2f83b0aed2ad123b86faad5b4cb1b55abc0a3a85'/>
<id>urn:sha1:2f83b0aed2ad123b86faad5b4cb1b55abc0a3a85</id>
<content type='text'>
* Fix: Update calcDataSizeJ2C to pyramid-base file size estimation

Used the loop from the previous LayerFactored method to create a more accurate file size estimation by walking up the pyramid tiles.

Sizes are much larger in many cases and eliminate partial decoder issues with OpenJPEG.

KDU not tested but expected to produce better files as well.

Should also stop decode failures on tiny or very rectangular dimensions.



---------

Co-authored-by: Andrey Lihatskiy &lt;alihatskiy@productengine.com&gt;</content>
</entry>
<entry>
<title>Fix line endlings</title>
<updated>2024-05-22T19:40:26Z</updated>
<author>
<name>Ansariel</name>
<email>ansariel.hiller@phoenixviewer.com</email>
</author>
<published>2024-05-22T19:25:21Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=e2e37cced861b98de8c1a7c9c0d3a50d2d90e433'/>
<id>urn:sha1:e2e37cced861b98de8c1a7c9c0d3a50d2d90e433</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A</title>
<updated>2024-05-22T17:04:52Z</updated>
<author>
<name>Ansariel</name>
<email>ansariel.hiller@phoenixviewer.com</email>
</author>
<published>2024-05-22T17:04:52Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=1b67dd855c41f5a0cda7ec2a68d98071986ca703'/>
<id>urn:sha1:1b67dd855c41f5a0cda7ec2a68d98071986ca703</id>
<content type='text'>
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/llaudio/llaudioengine_fmodstudio.h
#	indra/llaudio/lllistener_fmodstudio.cpp
#	indra/llaudio/lllistener_fmodstudio.h
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llimage/tests/llimageworker_test.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llprimitive/llgltfmaterial.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.cpp
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llimpanel.cpp
#	indra/newview/llimpanel.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelprofile.h
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
#	indra/test/test.cpp
</content>
</entry>
<entry>
<title>#824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed</title>
<updated>2024-04-29T04:56:09Z</updated>
<author>
<name>Andrey Lihatskiy</name>
<email>alihatskiy@productengine.com</email>
</author>
<published>2024-04-29T04:43:28Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=1b68f71348ecf3983b76b40d7940da8377f049b7'/>
<id>urn:sha1:1b68f71348ecf3983b76b40d7940da8377f049b7</id>
<content type='text'>
</content>
</entry>
</feed>
