summaryrefslogtreecommitdiff
path: root/cesar/mac/common
diff options
context:
space:
mode:
authorNicolas Schodet2013-04-18 17:05:14 +0200
committerNicolas Schodet2013-04-25 10:29:02 +0200
commit874067680dd852594a703b96bdc154e21730a5f3 (patch)
treef8adc51428414a4730fd4dd2d19c36270b369dd2 /cesar/mac/common
parentbfa7e63c0c950e1d50b6bcf8fdd510930d9c53cc (diff)
cesar/ce, cesar/mac/common: add group interval nb in mac tonemap configuration
Diffstat (limited to 'cesar/mac/common')
-rw-r--r--cesar/mac/common/interval.h4
-rw-r--r--cesar/mac/common/src/interval.c4
-rw-r--r--cesar/mac/common/test/interval/src/test_interval.c9
-rw-r--r--cesar/mac/common/tonemap.h4
4 files changed, 16 insertions, 5 deletions
diff --git a/cesar/mac/common/interval.h b/cesar/mac/common/interval.h
index ef9d560be3..b6d0659faa 100644
--- a/cesar/mac/common/interval.h
+++ b/cesar/mac/common/interval.h
@@ -50,9 +50,11 @@ mac_interval_append (tonemaps_t *tms, u16 end_offset_atu, u8 tmi);
/**
* Switch intervals list to the temporary intervals list.
* \param tms the tone maps structure.
+ * \param group_intervals_nb number of intervals per group, or 0 if no
+ * group.
* This function swap the pointers of intervals and intervals_temp.
*/
void
-mac_interval_commit_changes (tonemaps_t *tms);
+mac_interval_commit_changes (tonemaps_t *tms, u8 group_intervals_nb);
#endif /* mac_common_interval_h */
diff --git a/cesar/mac/common/src/interval.c b/cesar/mac/common/src/interval.c
index b09c5bf60f..d6662c7c7b 100644
--- a/cesar/mac/common/src/interval.c
+++ b/cesar/mac/common/src/interval.c
@@ -55,13 +55,15 @@ mac_interval_append (tonemaps_t *tms, u16 end_offset_atu, u8 tmi)
}
void
-mac_interval_commit_changes (tonemaps_t *tms)
+mac_interval_commit_changes (tonemaps_t *tms, u8 group_intervals_nb)
{
/* Check parameters. */
dbg_assert (tms);
dbg_assert (tms->intervals_temp);
dbg_assert (tms->intervals);
+ /* Fill extra parameters. */
+ tms->intervals_temp->group_intervals_nb = group_intervals_nb;
/* Update intervals version before switching intervals. */
tms->intervals_temp->version = tms->intervals->version + 1;
/* Atomic switch of intervals list. */
diff --git a/cesar/mac/common/test/interval/src/test_interval.c b/cesar/mac/common/test/interval/src/test_interval.c
index 2f27f03f02..62b3b64553 100644
--- a/cesar/mac/common/test/interval/src/test_interval.c
+++ b/cesar/mac/common/test/interval/src/test_interval.c
@@ -47,7 +47,7 @@ interval_usage_test (test_t t)
test_fail_if (tms->intervals_temp->intervals_nb != int_nb);
test_fail_if (tms->intervals->version != int_version);
/* Commit changes. */
- mac_interval_commit_changes (tms);
+ mac_interval_commit_changes (tms, j);
int_version++;
test_fail_if (tms->intervals->intervals_nb != int_nb);
test_fail_if (tms->intervals_temp->intervals_nb != 0);
@@ -58,6 +58,7 @@ interval_usage_test (test_t t)
!= i * 2 + 1);
}
test_fail_if (tms->intervals->version != int_version);
+ test_fail_if (tms->intervals->group_intervals_nb != j);
}
} test_end;
@@ -79,7 +80,7 @@ interval_usage_test (test_t t)
test_fail_if (tms->intervals_temp->intervals_nb != TONEMAP_INTERVAL_NB);
test_fail_if (tms->intervals->version != int_version);
/* Commit changes. */
- mac_interval_commit_changes (tms);
+ mac_interval_commit_changes (tms, 0);
int_version++;
test_fail_if (tms->intervals->version != int_version);
test_fail_if (tms->intervals->intervals_nb != TONEMAP_INTERVAL_NB);
@@ -89,6 +90,7 @@ interval_usage_test (test_t t)
test_fail_if (tms->intervals->interval[i].end_offset_atu
!= i * 2 + 1);
}
+ test_fail_if (tms->intervals->group_intervals_nb != 0);
} test_end;
test_begin (t, "add no interval")
@@ -101,11 +103,12 @@ interval_usage_test (test_t t)
test_fail_if (tms->intervals_temp->intervals_nb != 0);
test_fail_if (tms->intervals->version != int_version);
/* Commit changes. */
- mac_interval_commit_changes (tms);
+ mac_interval_commit_changes (tms, i);
int_version++;
test_fail_if (tms->intervals->intervals_nb != 0);
test_fail_if (tms->intervals_temp->intervals_nb != 0);
test_fail_if (tms->intervals->version != int_version);
+ test_fail_if (tms->intervals->group_intervals_nb != i);
}
} test_end;
diff --git a/cesar/mac/common/tonemap.h b/cesar/mac/common/tonemap.h
index d57d68a1d5..3fd4ebbd56 100644
--- a/cesar/mac/common/tonemap.h
+++ b/cesar/mac/common/tonemap.h
@@ -142,6 +142,10 @@ struct tonemap_intervals_t
* have the correct index in the table of intervals.
*/
u8 intervals_nb;
+ /**
+ * Number of interval in a group, or 0 if no group.
+ */
+ u8 group_intervals_nb;
/** Intervals. */
tonemap_interval_t interval[TONEMAP_INTERVAL_NB];
};