comparison src/alac/demux.c @ 2942:233cb5dffbf7

Fix tags for ALAC files. For some reason, the tag can occour a second time, but this time empty. Always use the first tag we found.
author Jonathan Schleifer <js@webkeks.org>
date Sat, 27 Sep 2008 19:04:32 +0200
parents 2c9d1eb6e8a6
children 87b0c47089e5
comparison
equal deleted inserted replaced
2941:c57d9b5754b3 2942:233cb5dffbf7
569 case MAKEFOURCC(0xA9,'c','m','t'): 569 case MAKEFOURCC(0xA9,'c','m','t'):
570 udta_tgt = UDTA_CMT; 570 udta_tgt = UDTA_CMT;
571 bptr += 4; 571 bptr += 4;
572 break; 572 break;
573 case MAKEFOURCC('d','a','t','a'): 573 case MAKEFOURCC('d','a','t','a'):
574 /* Don't compare to NULL in the following ifs!
575 * NULL may be -1 on some system, but we used memset to set it
576 * to 0!
577 */
574 switch(udta_tgt) 578 switch(udta_tgt)
575 { 579 {
576 case UDTA_NAM: 580 case UDTA_NAM:
577 qtmovie->res->tuple.nam = g_strdup(bptr + 12); 581 if (qtmovie->res->tuple.nam == 0)
578 break; 582 qtmovie->res->tuple.nam = g_strdup(bptr + 12);
583 break;
579 case UDTA_ART: 584 case UDTA_ART:
580 qtmovie->res->tuple.art = g_strdup(bptr + 12); 585 if (qtmovie->res->tuple.art == 0)
581 break; 586 qtmovie->res->tuple.art = g_strdup(bptr + 12);
587 break;
582 case UDTA_ALB: 588 case UDTA_ALB:
583 qtmovie->res->tuple.alb = g_strdup(bptr + 12); 589 if (qtmovie->res->tuple.alb == 0)
584 break; 590 qtmovie->res->tuple.alb = g_strdup(bptr + 12);
591 break;
585 case UDTA_DAY: 592 case UDTA_DAY:
586 qtmovie->res->tuple.day = g_strdup(bptr + 12); 593 if (qtmovie->res->tuple.day == 0)
587 break; 594 qtmovie->res->tuple.day = g_strdup(bptr + 12);
595 break;
588 case UDTA_CMT: 596 case UDTA_CMT:
589 qtmovie->res->tuple.cmt = g_strdup(bptr + 12); 597 if (qtmovie->res->tuple.cmt == 0)
590 break; 598 qtmovie->res->tuple.cmt = g_strdup(bptr + 12);
599 break;
591 case UDTA_GEN: 600 case UDTA_GEN:
592 qtmovie->res->tuple.gen = g_strdup(bptr + 12); 601 if (qtmovie->res->tuple.gen == 0)
593 break; 602 qtmovie->res->tuple.gen = g_strdup(bptr + 12);
594 default: 603 break;
595 break;
596 } 604 }
597 605
598 bptr += 12; 606 bptr += 12;
599 bptr += strlen(bptr); 607 bptr += strlen(bptr);
600 break; 608 break;