hmmlib2 2.0.7: Add uncredit attribute
This commit is contained in:
parent
0f67d4e658
commit
d1440a7ac6
|
@ -28,6 +28,9 @@ typedef struct {
|
||||||
HMML_Credit* credits;
|
HMML_Credit* credits;
|
||||||
size_t credit_count;
|
size_t credit_count;
|
||||||
|
|
||||||
|
HMML_Credit* uncredits;
|
||||||
|
size_t uncredit_count;
|
||||||
|
|
||||||
HMML_VideoCustomMetaData* custom;
|
HMML_VideoCustomMetaData* custom;
|
||||||
size_t custom_count;
|
size_t custom_count;
|
||||||
|
|
||||||
|
@ -697,6 +700,20 @@ static void _hmml_parse_annotations(struct _hmml_parser* p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static HMML_Credit _hmml_parse_credit(struct _hmml_parser* p, struct _hmml_str value)
|
||||||
|
{
|
||||||
|
HMML_Credit credit = {};
|
||||||
|
char* colon = strchr(value.ptr, ':');
|
||||||
|
if(colon) {
|
||||||
|
*colon = '\0';
|
||||||
|
credit.name = _hmml_persist_str(p, (struct _hmml_str){ value.ptr, colon - value.ptr });
|
||||||
|
credit.role = _hmml_persist_str(p, (struct _hmml_str){ colon+1, value.len - ((colon+1) - value.ptr) });
|
||||||
|
} else {
|
||||||
|
credit.name = _hmml_persist_str(p, value);
|
||||||
|
}
|
||||||
|
return credit;
|
||||||
|
}
|
||||||
|
|
||||||
static void _hmml_parse_video(struct _hmml_parser* p)
|
static void _hmml_parse_video(struct _hmml_parser* p)
|
||||||
{
|
{
|
||||||
struct str_attr {
|
struct str_attr {
|
||||||
|
@ -735,19 +752,14 @@ next_attr:
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_hmml_str_eq(key, HSTR("credit"))) {
|
if(_hmml_str_eq(key, HSTR("credit"))) {
|
||||||
HMML_Credit credit = {};
|
HMML_Credit credit = _hmml_parse_credit(p, value);
|
||||||
|
_hmml_persist_array(p, &p->out.metadata.credits, &p->out.metadata.credit_count, credit);
|
||||||
char* colon = strchr(value.ptr, ':');
|
goto next_attr;
|
||||||
if(colon) {
|
|
||||||
*colon = '\0';
|
|
||||||
credit.name = _hmml_persist_str(p, (struct _hmml_str){ value.ptr, colon - value.ptr });
|
|
||||||
credit.role = _hmml_persist_str(p, (struct _hmml_str){ colon+1, value.len - ((colon+1) - value.ptr) });
|
|
||||||
} else {
|
|
||||||
credit.name = _hmml_persist_str(p, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_hmml_persist_array(p, &p->out.metadata.credits, &p->out.metadata.credit_count, credit);
|
if(_hmml_str_eq(key, HSTR("uncredit"))) {
|
||||||
|
HMML_Credit uncredit = _hmml_parse_credit(p, value);
|
||||||
|
_hmml_persist_array(p, &p->out.metadata.uncredits, &p->out.metadata.uncredit_count, uncredit);
|
||||||
goto next_attr;
|
goto next_attr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -801,7 +813,7 @@ void hmml_free(HMML_Output* out)
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct HMML_Version hmml_version = {
|
const struct HMML_Version hmml_version = {
|
||||||
2, 0, 6
|
2, 0, 7
|
||||||
};
|
};
|
||||||
|
|
||||||
#undef HSTX
|
#undef HSTX
|
||||||
|
|
Loading…
Reference in New Issue