| @@ -1186,6 +1186,7 @@ typedef struct { | |||||
| int descr_count; | int descr_count; | ||||
| int max_descr_count; | int max_descr_count; | ||||
| int level; | int level; | ||||
| int predefined_SLConfigDescriptor_seen; | |||||
| } MP4DescrParseContext; | } MP4DescrParseContext; | ||||
| static int init_MP4DescrParseContext(MP4DescrParseContext *d, AVFormatContext *s, | static int init_MP4DescrParseContext(MP4DescrParseContext *d, AVFormatContext *s, | ||||
| @@ -1321,8 +1322,9 @@ static int parse_MP4SLDescrTag(MP4DescrParseContext *d, int64_t off, int len) | |||||
| descr->sl.degr_prior_len = lengths >> 12; | descr->sl.degr_prior_len = lengths >> 12; | ||||
| descr->sl.au_seq_num_len = (lengths >> 7) & 0x1f; | descr->sl.au_seq_num_len = (lengths >> 7) & 0x1f; | ||||
| descr->sl.packet_seq_num_len = (lengths >> 2) & 0x1f; | descr->sl.packet_seq_num_len = (lengths >> 2) & 0x1f; | ||||
| } else { | |||||
| } else if (!d->predefined_SLConfigDescriptor_seen){ | |||||
| avpriv_report_missing_feature(d->s, "Predefined SLConfigDescriptor"); | avpriv_report_missing_feature(d->s, "Predefined SLConfigDescriptor"); | ||||
| d->predefined_SLConfigDescriptor_seen = 1; | |||||
| } | } | ||||
| return 0; | return 0; | ||||
| } | } | ||||