@@ -484,8 +484,7 @@ flutter::EncodableValue ParseVideoTrack(const plusplayer_track_h track) {
484484 return flutter::EncodableValue (video_track_result);
485485}
486486
487- flutter::EncodableValue ParseAudioTrack (const plusplayer_track_h track,
488- plusplayer_h handle) {
487+ flutter::EncodableValue ParseAudioTrack (const plusplayer_track_h track) {
489488 flutter::EncodableMap audio_track_result = {};
490489 audio_track_result.insert_or_assign (flutter::EncodableValue (" trackType" ),
491490 flutter::EncodableValue (" audio" ));
@@ -505,16 +504,13 @@ flutter::EncodableValue ParseAudioTrack(const plusplayer_track_h track,
505504 flutter::EncodableValue (std::string (mimetype)));
506505 }
507506
508- auto language_code = plusplayer_get_track_language_code (
509- handle, PLUSPLAYER_TRACK_TYPE_AUDIO, track_index);
510-
511- std::string language;
512- if (language_code) {
513- language = std::string (language_code);
514- free ((void *)language_code);
507+ const char *language_code;
508+ if (plusplayer_get_track_lang_code (track, &language_code) ==
509+ PLUSPLAYER_ERROR_TYPE_NONE) {
510+ audio_track_result.insert_or_assign (
511+ flutter::EncodableValue (" language" ),
512+ flutter::EncodableValue (std::string (language_code)));
515513 }
516- audio_track_result.insert_or_assign (flutter::EncodableValue (" language" ),
517- flutter::EncodableValue (language));
518514
519515 int channel_count;
520516 if (plusplayer_get_track_channels (track, &channel_count) ==
@@ -533,13 +529,12 @@ flutter::EncodableValue ParseAudioTrack(const plusplayer_track_h track,
533529 LOG_DEBUG (
534530 " [PlusPlayer] audio track info : trackId : %d, mimetype : %s, "
535531 " language_code : %s, channel : %d, bitrate : %d" ,
536- track_index, mimetype, language. c_str () , channel_count, bitrate);
532+ track_index, mimetype, language_code , channel_count, bitrate);
537533
538534 return flutter::EncodableValue (audio_track_result);
539535}
540536
541- flutter::EncodableValue ParseSubtitleTrack (const plusplayer_track_h track,
542- plusplayer_h handle) {
537+ flutter::EncodableValue ParseSubtitleTrack (const plusplayer_track_h track) {
543538 flutter::EncodableMap subtitle_track_result = {};
544539 subtitle_track_result.insert_or_assign (flutter::EncodableValue (" trackType" ),
545540 flutter::EncodableValue (" text" ));
@@ -560,20 +555,18 @@ flutter::EncodableValue ParseSubtitleTrack(const plusplayer_track_h track,
560555 flutter::EncodableValue (std::string (mimetype)));
561556 }
562557
563- const char *language_code = plusplayer_get_track_language_code (
564- handle, PLUSPLAYER_TRACK_TYPE_SUBTITLE, track_index);
565- std::string language;
566- if (language_code) {
567- language = std::string (language_code);
568- free ((void *)language_code);
569- subtitle_track_result.insert_or_assign (flutter::EncodableValue (" language" ),
570- flutter::EncodableValue (language));
558+ const char *language_code;
559+ if (plusplayer_get_track_lang_code (track, &language_code) ==
560+ PLUSPLAYER_ERROR_TYPE_NONE) {
561+ subtitle_track_result.insert_or_assign (
562+ flutter::EncodableValue (" language" ),
563+ flutter::EncodableValue (std::string (language_code)));
571564 }
572565
573566 LOG_DEBUG (
574567 " [PlusPlayer] subtitle track info : trackId : %d, mimetype : %s, "
575568 " language_code : %s" ,
576- track_index, mimetype, language. c_str () );
569+ track_index, mimetype, language_code );
577570 return flutter::EncodableValue (subtitle_track_result);
578571}
579572
@@ -605,14 +598,12 @@ flutter::EncodableList PlusPlayer::GetTrackInfo(std::string track_type) {
605598 struct UserData {
606599 flutter::EncodableList *track_selections;
607600 plusplayer_track_type_e type;
608- plusplayer_h handle;
609601 };
610602
611603 flutter::EncodableList trackSelections = {};
612604 UserData data = {};
613605 data.track_selections = &trackSelections;
614606 data.type = type;
615- data.handle = player_;
616607 if (plusplayer_get_foreach_track (
617608 player_,
618609 [](plusplayer_track_h track_h, void *user_data) -> bool {
@@ -623,11 +614,9 @@ flutter::EncodableList PlusPlayer::GetTrackInfo(std::string track_type) {
623614 if (type == PLUSPLAYER_TRACK_TYPE_VIDEO) {
624615 data->track_selections ->push_back (ParseVideoTrack (track_h));
625616 } else if (type == PLUSPLAYER_TRACK_TYPE_AUDIO) {
626- data->track_selections ->push_back (
627- ParseAudioTrack (track_h, data->handle ));
617+ data->track_selections ->push_back (ParseAudioTrack (track_h));
628618 } else if (type == PLUSPLAYER_TRACK_TYPE_SUBTITLE) {
629- data->track_selections ->push_back (
630- ParseSubtitleTrack (track_h, data->handle ));
619+ data->track_selections ->push_back (ParseSubtitleTrack (track_h));
631620 }
632621 }
633622 return true ;
@@ -651,35 +640,26 @@ flutter::EncodableList PlusPlayer::GetActiveTrackInfo() {
651640 return {};
652641 }
653642
654- struct UserData {
655- flutter::EncodableList *tracks;
656- plusplayer_h handle;
657- };
658-
659643 // Use the C API to iterate over active tracks.
660644 flutter::EncodableList active_tracks;
661-
662- UserData data = {};
663- data.tracks = &active_tracks;
664- data.handle = player_;
665645 // The callback receives each active track handle.
666646 if (plusplayer_get_foreach_active_track (
667647 player_,
668648 [](plusplayer_track_h track_h, void *user_data) -> bool {
669649 plusplayer_track_type_e type;
670650 plusplayer_get_track_type (track_h, &type);
671- UserData *data = static_cast <UserData *>(user_data);
651+ flutter::EncodableList *tracks =
652+ static_cast <flutter::EncodableList *>(user_data);
672653 if (type == PLUSPLAYER_TRACK_TYPE_AUDIO) {
673- data-> tracks ->push_back (ParseAudioTrack (track_h, data-> handle ));
654+ tracks->push_back (ParseAudioTrack (track_h));
674655 } else if (type == PLUSPLAYER_TRACK_TYPE_VIDEO) {
675- data-> tracks ->push_back (ParseVideoTrack (track_h));
656+ tracks->push_back (ParseVideoTrack (track_h));
676657 } else {
677- data->tracks ->push_back (
678- ParseSubtitleTrack (track_h, data->handle ));
658+ tracks->push_back (ParseSubtitleTrack (track_h));
679659 }
680660 return true ; // Continue iteration.
681661 },
682- &data ) != PLUSPLAYER_ERROR_TYPE_NONE) {
662+ &active_tracks ) != PLUSPLAYER_ERROR_TYPE_NONE) {
683663 LOG_ERROR (" [PlusPlayer] Fail to get active track info" );
684664 return {};
685665 }
0 commit comments