mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 08:39:34 +00:00
mfplay/tests: Add tests for MF_SD_LANGUAGE.
This commit is contained in:
parent
2eecb04ca7
commit
c97b8a8f1a
|
@ -437,6 +437,75 @@ static void test_media_item(void)
|
|||
IMFPMediaPlayer_Release(player);
|
||||
}
|
||||
|
||||
#define check_media_language(player, resource_name, expected_lang) \
|
||||
_check_media_language(__LINE__, FALSE, player, resource_name, expected_lang)
|
||||
#define todo_check_media_language(player, resource_name, expected_lang) \
|
||||
_check_media_language(__LINE__, TRUE, player, resource_name, expected_lang)
|
||||
static void _check_media_language(unsigned line, BOOL todo, IMFPMediaPlayer *player,
|
||||
const WCHAR *resource_name, const WCHAR *expected_lang)
|
||||
{
|
||||
WCHAR *filename;
|
||||
IMFPMediaItem *item;
|
||||
PROPVARIANT propvar;
|
||||
const WCHAR *lang = NULL;
|
||||
HRESULT hr;
|
||||
|
||||
filename = load_resource(resource_name);
|
||||
|
||||
hr = IMFPMediaPlayer_CreateMediaItemFromURL(player, filename, TRUE, 123, &item);
|
||||
ok_(__FILE__, line)(hr == S_OK || broken(hr == MF_E_UNSUPPORTED_BYTESTREAM_TYPE) /* win8 - win10 1507 */,
|
||||
"Unexpected hr %#lx.\n", hr);
|
||||
if (hr != S_OK)
|
||||
{
|
||||
DeleteFileW(filename);
|
||||
return;
|
||||
}
|
||||
|
||||
hr = IMFPMediaItem_GetStreamAttribute(item, 0, &MF_SD_LANGUAGE, &propvar);
|
||||
ok_(__FILE__, line)(hr == S_OK || hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr);
|
||||
|
||||
if (hr == S_OK)
|
||||
{
|
||||
ok_(__FILE__, line)(propvar.vt == VT_LPWSTR, "Unexpected vt %u.\n", propvar.vt);
|
||||
if (propvar.vt == VT_LPWSTR)
|
||||
lang = propvar.pwszVal;
|
||||
}
|
||||
|
||||
todo_wine_if(todo)
|
||||
{
|
||||
if (expected_lang)
|
||||
ok_(__FILE__, line)(lang && !wcscmp(lang, expected_lang), "Unexpected value %s.\n", debugstr_w(lang));
|
||||
else
|
||||
ok_(__FILE__, line)(!lang, "Unexpected value %s.\n", debugstr_w(lang));
|
||||
}
|
||||
|
||||
PropVariantClear(&propvar);
|
||||
IMFPMediaItem_Release(item);
|
||||
DeleteFileW(filename);
|
||||
}
|
||||
|
||||
static void test_media_language(void)
|
||||
{
|
||||
IMFPMediaPlayer *player;
|
||||
HRESULT hr;
|
||||
|
||||
hr = MFPCreateMediaPlayer(NULL, FALSE, 0, NULL, NULL, &player);
|
||||
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||
|
||||
check_media_language(player, L"test-eng.mp4", L"en");
|
||||
check_media_language(player, L"test-ang.mp4", NULL);
|
||||
check_media_language(player, L"test-und.mp4", NULL);
|
||||
check_media_language(player, L"test-en-US.mp4", L"en");
|
||||
|
||||
check_media_language(player, L"test-en.wma", L"en");
|
||||
check_media_language(player, L"test-eng.wma", L"eng");
|
||||
check_media_language(player, L"test-ang.wma", L"ang");
|
||||
check_media_language(player, L"test-und.wma", L"und");
|
||||
todo_check_media_language(player, L"test-en-US.wma", L"en-US");
|
||||
|
||||
IMFPMediaPlayer_Release(player);
|
||||
}
|
||||
|
||||
static void test_video_control(void)
|
||||
{
|
||||
MFVideoNormalizedRect rect;
|
||||
|
@ -599,6 +668,7 @@ START_TEST(mfplay)
|
|||
test_create_player();
|
||||
test_shutdown();
|
||||
test_media_item();
|
||||
test_media_language();
|
||||
test_video_control();
|
||||
test_duration();
|
||||
test_playback_rate();
|
||||
|
|
|
@ -20,3 +20,30 @@
|
|||
|
||||
/* @makedep: test.mp4 */
|
||||
test.mp4 RCDATA test.mp4
|
||||
|
||||
/* @makedep: test-eng.mp4 */
|
||||
test-eng.mp4 RCDATA test-eng.mp4
|
||||
|
||||
/* @makedep: test-ang.mp4 */
|
||||
test-ang.mp4 RCDATA test-ang.mp4
|
||||
|
||||
/* @makedep: test-und.mp4 */
|
||||
test-und.mp4 RCDATA test-und.mp4
|
||||
|
||||
/* @makedep: test-en-US.mp4 */
|
||||
test-en-US.mp4 RCDATA test-en-US.mp4
|
||||
|
||||
/* @makedep: test-en.wma */
|
||||
test-en.wma RCDATA test-en.wma
|
||||
|
||||
/* @makedep: test-eng.wma */
|
||||
test-eng.wma RCDATA test-eng.wma
|
||||
|
||||
/* @makedep: test-ang.wma */
|
||||
test-ang.wma RCDATA test-ang.wma
|
||||
|
||||
/* @makedep: test-und.wma */
|
||||
test-und.wma RCDATA test-und.wma
|
||||
|
||||
/* @makedep: test-en-US.wma */
|
||||
test-en-US.wma RCDATA test-en-US.wma
|
||||
|
|
BIN
dlls/mfplay/tests/test-ang.mp4
Normal file
BIN
dlls/mfplay/tests/test-ang.mp4
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-ang.wma
Normal file
BIN
dlls/mfplay/tests/test-ang.wma
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-en-US.mp4
Normal file
BIN
dlls/mfplay/tests/test-en-US.mp4
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-en-US.wma
Normal file
BIN
dlls/mfplay/tests/test-en-US.wma
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-en.wma
Normal file
BIN
dlls/mfplay/tests/test-en.wma
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-eng.mp4
Normal file
BIN
dlls/mfplay/tests/test-eng.mp4
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-eng.wma
Normal file
BIN
dlls/mfplay/tests/test-eng.wma
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-und.mp4
Normal file
BIN
dlls/mfplay/tests/test-und.mp4
Normal file
Binary file not shown.
BIN
dlls/mfplay/tests/test-und.wma
Normal file
BIN
dlls/mfplay/tests/test-und.wma
Normal file
Binary file not shown.
Loading…
Reference in a new issue