Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Read-Only ByteBuffer & Error Codes #3

Merged
merged 1 commit into from
Feb 28, 2022

Conversation

M-Wong
Copy link
Contributor

@M-Wong M-Wong commented Feb 28, 2022

No description provided.

@M-Wong M-Wong changed the base branch from main to develop February 28, 2022 14:55
image.height,
false
)
val source = try {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die Lösung bekämpft im Prinzip die Symptome und nicht die Ursache oder? Ist für mich ok, aber könnte man nicht verhindern, dass es überhaupt zu der Exception kommt?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jein. Das Problem das zur BufferUnderflowException führte, war wenn zwei ImageDecoders (also GlobalHistogram und Hybrid) parallel auf den gleichen Plane Buffer im ImageProxy zugegriffen haben. ByteBuffer ist nicht wirklich Threadsafe weil intern die Leseposition als State gespeichert wird. Die wichtige Zeile ist also auf Zeile 45 wo mit .asReadOnlyBuffer() eine Kopie des ByteBuffers (mit gleichem Inhalt, aber separiertem State) erstellt wird bevor diese an die LuminanceSource mitgegeben wird. Das Try-Catch hab ich sicherheitshalber eingebaut, damit dem Client bei einem einzelnen fehlerhaften Frame keine Exception sondern ein DecodingState.Error geliefert wird.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok, den change hab ich übersehen. Dann passts. Danke!

@gallmann-ubique gallmann-ubique merged commit c6bef79 into develop Feb 28, 2022
@gallmann-ubique gallmann-ubique deleted the bugfix/zxing-parallel-decoding branch February 28, 2022 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants