MPEG4Extractor.cpp: handle chunk_size > SIZE_MAX

chunk_size is a uint64_t, so it can legitimately be bigger
than SIZE_MAX, which would cause the subtraction to underflow.

https://code.google.com/p/android/issues/detail?id=182251

Bug: 23034759
Change-Id: Ic1637fb26bf6edb0feb1bcf2876fd370db1ed547

static void hexdump(const void *_data, size_t size) {
 const uint8_t *data = (const uint8_t *)_data;
 size_t offset = 0;
 while (offset < size) {
        printf("0x%04zx  ", offset);

 size_t n = size - offset;
 if (n > 16) {
            n = 16;
 }

 for (size_t i = 0; i < 16; ++i) {
 if (i == 8) {
                printf(" ");
 }

 if (offset + i < size) {
                printf("%02x ", data[offset + i]);
 } else {
                printf("   ");
 }
 }

        printf(" ");

 for (size_t i = 0; i < n; ++i) {
 if (isprint(data[offset + i])) {
                printf("%c", data[offset + i]);
 } else {
                printf(".");
 }
 }

        printf("\n");

        offset += 16;
 }
}

static void hexdump(const void *_data, size_t size) {
 const uint8_t *data = (const uint8_t *)_data;
 size_t offset = 0;
 while (offset < size) {
        printf("0x%04zx  ", offset);

 size_t n = size - offset;
 if (n > 16) {
            n = 16;
 }

 for (size_t i = 0; i < 16; ++i) {
 if (i == 8) {
                printf(" ");
 }

 if (offset + i < size) {
                printf("%02x ", data[offset + i]);
 } else {
                printf("   ");
 }
 }

        printf(" ");

 for (size_t i = 0; i < n; ++i) {
 if (isprint(data[offset + i])) {
                printf("%c", data[offset + i]);
 } else {
                printf(".");
 }
 }

        printf("\n");

        offset += 16;
 }
}
