if (INTEXTRA_IS_SPLIT(pl->intextra)) {
htsmsg_add_u32(m, "intsplit", pl->intextra);
} else {
- htsmsg_add_s32(m, "intmax", INTEXTRA_GET_MAX(pl->intextra));
- htsmsg_add_s32(m, "intmin", INTEXTRA_GET_MIN(pl->intextra));
- htsmsg_add_s32(m, "intstep", INTEXTRA_GET_STEP(pl->intextra));
+ if (pl->type == PT_U32) {
+ htsmsg_add_u32(m, "intmax", INTEXTRA_GET_UMAX(pl->intextra));
+ htsmsg_add_u32(m, "intmin", INTEXTRA_GET_UMIN(pl->intextra));
+ } else {
+ htsmsg_add_s32(m, "intmax", INTEXTRA_GET_MAX(pl->intextra));
+ htsmsg_add_s32(m, "intmin", INTEXTRA_GET_MIN(pl->intextra));
+ }
+ htsmsg_add_u32(m, "intstep", INTEXTRA_GET_STEP(pl->intextra));
}
}
#define INTEXTRA_GET_STEP(e) (((e)>>24)&0x7f)
#define INTEXTRA_GET_MAX(e) ((e)&(1<<23)?-(0x800-(((e)>>12)&0x7ff)):(((e)>>12)&0x7ff))
#define INTEXTRA_GET_MIN(e) ((e)&(1<<11)?-(0x800-((e)&0x7ff)):((e)&0x7ff))
+#define INTEXTRA_GET_UMAX(e) (((e)>>12)&0xfff)
+#define INTEXTRA_GET_UMIN(e) ((e)&0xfff)
/*
* Property definition