Bugzilla – Bug 1109541
dtv-scan-tables differs between architectures
Last modified: 2019-11-04 14:09:08 UTC
Created attachment 784073 [details] diff seems to be a bug in the 32-bit codepath see bug 1109534 for background
dtv-scan-tables package uses dvb-format-convert from dvb-utils package (source v4l-utils) to create the data files. So I'd guess the real code problem is in v4l-utils (checking right now...)
Issue still exists in current builds (from 2019-06-12)
Note to self: unsigned int foo = atol(bar); with input bar="(unsigned int)-1" (= "0xffffffff", = "4294967295") is not a good idea on 32 bits architecture. Because it returns only "LONG_MAX", which is 0x7ffffff.
sr#745189 to devel project, letting the maintainers decide. Tomáš: I tested in home:seife:testing, with this patch the generated scan tables are identical. The stream_id field that was added before on i586 was 0x7ffffff (which is LONG_MAX) instead of 0xffffffff which is specified in input file. I have not dug completely into the code, but I guess that STREAM_ID=-1 / UINT_MAX gets filtered out as invalid while 0x7fffffff gets written to output as it is somewhat "valid". But it is not what was specified in input, but the error code of atol().