+static int mov_read_udta_string(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
+{
+ char *str = NULL;
+ int size;
+ uint16_t str_size;
+
+ if (c->itunes_metadata) {
+ int data_size = get_be32(pb);
+ int tag = get_le32(pb);
+ if (tag == MKTAG('d','a','t','a')) {
+ get_be32(pb); // type
+ get_be32(pb); // unknown
+ str_size = data_size - 16;
+ atom.size -= 16;
+ } else return 0;
+ } else {
+ str_size = get_be16(pb); // string length
+ get_be16(pb); // language
+ atom.size -= 4;
+ }
+ switch (atom.type) {
+ case MKTAG(0xa9,'n','a','m'):
+ str = c->fc->title; size = sizeof(c->fc->title); break;
+ case MKTAG(0xa9,'A','R','T'):
+ case MKTAG(0xa9,'w','r','t'):
+ str = c->fc->author; size = sizeof(c->fc->author); break;
+ case MKTAG(0xa9,'c','p','y'):
+ str = c->fc->copyright; size = sizeof(c->fc->copyright); break;
+ case MKTAG(0xa9,'c','m','t'):
+ case MKTAG(0xa9,'i','n','f'):
+ str = c->fc->comment; size = sizeof(c->fc->comment); break;
+ case MKTAG(0xa9,'a','l','b'):
+ str = c->fc->album; size = sizeof(c->fc->album); break;