- case VLC_FOURCC('c','o','o','k'):
- psz_codec = "cook.so.6.0";
- break;
- case VLC_FOURCC('2','8','_','8'):
- psz_codec = "28_8.so.6.0";
- break;
- case VLC_FOURCC('1','4','_','4'):
- psz_codec = "14_4.so.6.0";
- break;
- default:
- return VLC_EGENERIC;
+ HKEY h_key;
+ DWORD i_type, i_data = MAX_PATH + 1, i_index = 1;
+ char *p_data;
+
+ p_data = psz_win32_real_codecs;
+ if( RegOpenKeyEx( HKEY_CLASSES_ROOT,
+ _T("Software\\RealNetworks\\Preferences\\DT_Codecs"),
+ 0, KEY_READ, &h_key ) == ERROR_SUCCESS )
+ {
+ if( RegQueryValueEx( h_key, _T(""), 0, &i_type,
+ (LPBYTE)p_data, &i_data ) == ERROR_SUCCESS &&
+ i_type == REG_SZ )
+ {
+ int i_len = strlen( p_data );
+ if( i_len && p_data[i_len-1] == '\\' ) p_data[i_len-1] = 0;
+ ppsz_path[i_index++] = p_data;
+ msg_Err( p_dec, "Real: %s", p_data );
+ }
+ RegCloseKey( h_key );
+ }
+
+ p_data = psz_win32_helix_codecs;
+ if( RegOpenKeyEx( HKEY_CLASSES_ROOT,
+ _T("Helix\\HelixSDK\\10.0\\Preferences\\DT_Codecs"),
+ 0, KEY_READ, &h_key ) == ERROR_SUCCESS )
+ {
+ if( RegQueryValueEx( h_key, _T(""), 0, &i_type,
+ (LPBYTE)p_data, &i_data ) == ERROR_SUCCESS &&
+ i_type == REG_SZ )
+ {
+ int i_len = strlen( p_data );
+ if( i_len && p_data[i_len-1] == '\\' ) p_data[i_len-1] = 0;
+ ppsz_path[i_index++] = p_data;
+ msg_Err( p_dec, "Real: %s", p_data );
+ }
+ RegCloseKey( h_key );
+ }