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;
|
||||
size_t credit_count;
|
||||
|
||||
HMML_Credit* uncredits;
|
||||
size_t uncredit_count;
|
||||
|
||||
HMML_VideoCustomMetaData* custom;
|
||||
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)
|
||||
{
|
||||
struct str_attr {
|
||||
|
@ -735,19 +752,14 @@ next_attr:
|
|||
}
|
||||
|
||||
if(_hmml_str_eq(key, HSTR("credit"))) {
|
||||
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);
|
||||
HMML_Credit credit = _hmml_parse_credit(p, value);
|
||||
_hmml_persist_array(p, &p->out.metadata.credits, &p->out.metadata.credit_count, credit);
|
||||
goto next_attr;
|
||||
}
|
||||
|
||||
_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;
|
||||
}
|
||||
|
||||
|
@ -801,7 +813,7 @@ void hmml_free(HMML_Output* out)
|
|||
}
|
||||
|
||||
const struct HMML_Version hmml_version = {
|
||||
2, 0, 6
|
||||
2, 0, 7
|
||||
};
|
||||
|
||||
#undef HSTX
|
||||
|
|
Loading…
Reference in New Issue