strukturag / libde265.js

JavaScript-only version of libde265 HEVC/H.265 decoder.
GNU Lesser General Public License v3.0
603 stars 163 forks source link

iOS Safari iPhone 4s and 5s #2

Closed rebotnix closed 9 years ago

rebotnix commented 10 years ago

I debugged libde265.js on my iPhone 4s and was wondering why i can´t see HEVC content, cause it worked fine under iOS with my iPad AIR, both devices were running iOS 7.1.

The safari debugger brings light on this, i added a console.log output to my iOS Safari browser (iPhone 4s):

[Log] 268435456 (libde265.js, line 1085)

RangeError: ArrayBuffer size is not a small enough positive integer. anonyme Funktion) (libde265.js, line 1087)

It seems an error in sizeof the buffer array near (Searched for "Initialize the runtime's memory in libde265.js- cause the debugger doenst show the right line number as my javscript IDE") - i founded it and showed me these lines of code where i add the console.log(TOTAL_MEMORY) to see why we have this size Array error, see:

// Initialize the runtime's memory // check for full engine support (use string 'subarray' to avoid closure compiler confusion) assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), 'JS engine does not provide full typed array support'); console.log(TOTAL_MEMORY); var buffer = new ArrayBuffer(TOTAL_MEMORY);

So TOTAL_MEMORY seems to be 268435456, and that is too high value for the new ArrayBuffer.

I do not know if this is fixable, cause the generated code is done by emscripten i think.

What do you think?

Gary

fancycode commented 10 years ago

The value is set during building (see build.sh, line 17). Could you please check which value works for you? Emscripten supports dynamic allocation, but this decreases performance quite largely.

fancycode commented 10 years ago

@garybruckheimer did you manage to find out which value worked for you?

rebotnix commented 10 years ago

hi,

i tried several types of values/numbers, but all gave me the same error.

Its really a strange issue. I have the same issue on an iPad 2,3 but not on iPad AIR. Same on iPhone 3,4,4s but no issue on 5s. All devices have iOS7 installed.

I have to find another way to debug this. As a registered iOS developer i open a ticket to apple as well, but i received no feedback on this yet. I download the iOS8 beta yesterday and will see if i have the same on this beta OS. If you have any idea what i can try, please let me know.

Currently i´m also debugging an bug under IE Windows, where i have a security cross domain error on "BLOB-creation". As soon as i have light on this, i will report and maybe open another ticket.