mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 08:54:05 +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);
|
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)
|
static void test_video_control(void)
|
||||||
{
|
{
|
||||||
MFVideoNormalizedRect rect;
|
MFVideoNormalizedRect rect;
|
||||||
|
@ -599,6 +668,7 @@ START_TEST(mfplay)
|
||||||
test_create_player();
|
test_create_player();
|
||||||
test_shutdown();
|
test_shutdown();
|
||||||
test_media_item();
|
test_media_item();
|
||||||
|
test_media_language();
|
||||||
test_video_control();
|
test_video_control();
|
||||||
test_duration();
|
test_duration();
|
||||||
test_playback_rate();
|
test_playback_rate();
|
||||||
|
|
|
@ -20,3 +20,30 @@
|
||||||
|
|
||||||
/* @makedep: test.mp4 */
|
/* @makedep: test.mp4 */
|
||||||
test.mp4 RCDATA 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