Originally, decoder ID was equal to decoder instance ID, so it didn't
matter what you were comparing with. However, with distinct decoder
instances, this assumption fails. Because instance IDs can't be known
in advance, and because it would make the CLI arguments even more
complex, we simply let the -A option continue to be per decoder, not per
instance. This maintains compatibility with prior behaviour, but
doesn't allow the full flexibility possible with the library.
Behaviour preserved:
Single PD, no -A flag => all annotations from PD
Single PD, -A pdid => all annotations from PD
Single PD, -A pdid=annX => annX from PD
Behaviour now added:
Duplicate PDs, no -A flag => all annotations from all PDs
Duplicate PDs, -A pdid => all annotations from all PDs of type pdid
Duplicate PDs, -A pdid=annX => all annX from all PDs of type pdid
This fixes parts of bug #868.
Signed-off-by: Karl Palsson <redacted>
* in the stack.
*/
if (!opt_pd_annotations) {
- g_hash_table_insert(pd_ann_visible, g_strdup(di->inst_id),
+ g_hash_table_insert(pd_ann_visible, g_strdup(di->decoder->id),
g_slist_append(NULL, GINT_TO_POINTER(-1)));
}
if (di_prior) {
if (!pd_ann_visible)
return;
- if (!g_hash_table_lookup_extended(pd_ann_visible, pdata->pdo->di->inst_id,
- NULL, (void **)&ann_list))
+ if (!g_hash_table_lookup_extended(pd_ann_visible, pdata->pdo->di->decoder->id,
+ NULL, (void **)&ann_list)) {
/* Not in the list of PDs whose annotations we're showing. */
return;
+ }
dec = pdata->pdo->di->decoder;
pda = pdata->data;