| | 371 | QString programId = QString(""); |
| | 372 | QString seriesId = QString(""); |
| | 373 | QString rating = QString(""); |
| | 374 | QString rating_system = QString(""); |
| | 375 | QString advisory = QString(""); |
| | 376 | float stars = 0.0; |
| | 377 | |
| | 378 | if (EITFixUp::kFixDish & fix) |
| | 379 | { |
| | 380 | const unsigned char *mpaa_data = |
| | 381 | MPEGDescriptor::Find(list, DescriptorID::dish_event_mpaa); |
| | 382 | if (mpaa_data) |
| | 383 | { |
| | 384 | DishEventMPAADescriptor mpaa(mpaa_data); |
| | 385 | stars = mpaa.stars(); |
| | 386 | |
| | 387 | if (stars) // Only movies for now |
| | 388 | { |
| | 389 | rating = mpaa.rating(); |
| | 390 | rating_system = "MPAA"; |
| | 391 | advisory = mpaa.advisory(); |
| | 392 | } |
| | 393 | } |
| | 394 | |
| | 395 | if (!stars) // Not MPAA rated, check VCHIP |
| | 396 | { |
| | 397 | const unsigned char *vchip_data = |
| | 398 | MPEGDescriptor::Find(list, DescriptorID::dish_event_vchip); |
| | 399 | if (vchip_data) |
| | 400 | { |
| | 401 | DishEventVCHIPDescriptor vchip(vchip_data); |
| | 402 | rating = vchip.rating(); |
| | 403 | rating_system = "VCHIP"; |
| | 404 | advisory = vchip.advisory(); |
| | 405 | } |
| | 406 | } |
| | 407 | |
| | 408 | if (!advisory.isEmpty() && !rating.isEmpty()) |
| | 409 | rating += ", " + advisory; |
| | 410 | else if (!advisory.isEmpty()) |
| | 411 | { |
| | 412 | rating = advisory; |
| | 413 | rating_system = "advisory"; |
| | 414 | } |
| | 415 | |
| | 416 | const unsigned char *tags_data = |
| | 417 | MPEGDescriptor::Find(list, DescriptorID::dish_event_tags); |
| | 418 | if (tags_data) |
| | 419 | { |
| | 420 | DishEventTagsDescriptor tags(tags_data); |
| | 421 | seriesId = tags.seriesid(); |
| | 422 | programId = tags.programid(); |
| | 423 | } |
| | 424 | |
| | 425 | const unsigned char *properties_data = |
| | 426 | MPEGDescriptor::Find(list, DescriptorID::dish_event_properties); |
| | 427 | if (properties_data) |
| | 428 | { |
| | 429 | DishEventPropertiesDescriptor properties(properties_data); |
| | 430 | subtitle_type |= properties.SubtitleProperties(descCompression); |
| | 431 | audio_props |= properties.AudioProperties(descCompression); |
| | 432 | } |
| | 433 | } |
| | 434 | |
| 375 | | ContentDescriptor content(content_data); |
| 376 | | category = content.GetDescription(0); |
| 377 | | category_type = content.GetMythCategory(0); |
| | 439 | if ((EITFixUp::kFixDish & fix) || (EITFixUp::kFixBell & fix)) |
| | 440 | { |
| | 441 | DishContentDescriptor content(content_data); |
| | 442 | category_type = content.GetTheme(); |
| | 443 | if (EITFixUp::kFixDish & fix) |
| | 444 | category = content.GetCategory(); |
| | 445 | } |
| | 446 | else |
| | 447 | { |
| | 448 | ContentDescriptor content(content_data); |
| | 449 | category = content.GetDescription(0); |
| | 450 | category_type = content.GetMythCategory(0); |
| | 451 | } |