+#if DR_0A_API_VER >= 2
+ pid->es->fmt.psz_language = malloc( 4 );
+ memcpy( pid->es->fmt.psz_language,
+ p_decoded->code[0].iso_639_code, 3 );
+ pid->es->fmt.psz_language[3] = 0;
+ msg_Dbg( p_demux, "found language: %s", pid->es->fmt.psz_language);
+ switch( p_decoded->code[0].i_audio_type ) {
+ case 0:
+ pid->es->fmt.psz_description = NULL;
+ break;
+ case 1:
+ pid->es->fmt.psz_description =
+ strdup(_("clean effects"));
+ break;
+ case 2:
+ pid->es->fmt.psz_description =
+ strdup(_("hearing impaired"));
+ break;
+ case 3:
+ pid->es->fmt.psz_description =
+ strdup(_("visual impaired commentary"));
+ break;
+ default:
+ msg_Dbg( p_demux, "unknown audio type: %d",
+ p_decoded->code[0].i_audio_type);
+ pid->es->fmt.psz_description = NULL;
+ break;
+ }
+ pid->es->fmt.i_extra_languages = p_decoded->i_code_count-1;
+ pid->es->fmt.p_extra_languages =
+ malloc( sizeof(*pid->es->fmt.p_extra_languages) *
+ pid->es->fmt.i_extra_languages );
+ for( i = 0; i < pid->es->fmt.i_extra_languages; i++ ) {
+ msg_Dbg( p_demux, "bang" );
+ pid->es->fmt.p_extra_languages[i].psz_language =
+ malloc(4);
+ memcpy(pid->es->fmt.p_extra_languages[i].psz_language,
+ p_decoded->code[i+1].iso_639_code, 3 );
+ pid->es->fmt.p_extra_languages[i].psz_language[3] = '\0';
+ switch( p_decoded->code[i].i_audio_type ) {
+ case 0:
+ pid->es->fmt.p_extra_languages[i].psz_description =
+ NULL;
+ break;
+ case 1:
+ pid->es->fmt.p_extra_languages[i].psz_description =
+ strdup(_("clean effects"));
+ break;
+ case 2:
+ pid->es->fmt.p_extra_languages[i].psz_description =
+ strdup(_("hearing impaired"));
+ break;
+ case 3:
+ pid->es->fmt.p_extra_languages[i].psz_description =
+ strdup(_("visual impaired commentary"));
+ break;
+ default:
+ msg_Dbg( p_demux, "unknown audio type: %d",
+ p_decoded->code[i].i_audio_type);
+ pid->es->fmt.psz_description = NULL;
+ break;
+ }
+
+ }
+#else