IMFTimecodeTranslate::Metode BeginConvertTimecodeToHNS (mfidl.h)
Memulai panggilan asinkron untuk mengonversi kode waktu Society of Motion Picture dan Television Engineers (SMPTE) menjadi 100 unit nanodetik.
Sintaks
HRESULT BeginConvertTimecodeToHNS(
[in] const PROPVARIANT *pPropVarTimecode,
[in] IMFAsyncCallback *pCallback,
[in] IUnknown *punkState
);
Parameter
[in] pPropVarTimecode
Waktu dalam kode waktu SMPTE untuk dikonversi. Anggota vt struktur PROPVARIANT diatur ke VT_I8. Anggota hVal.QuadPart berisi waktu dalam bentuk desimal berkode biner (BCD). Lihat Keterangan.
[in] pCallback
Penunjuk ke antarmuka IMFAsyncCallback dari objek panggilan balik. Pemanggil harus mengimplementasikan antarmuka ini.
[in] punkState
PPointer ke antarmuka IUnknown dari objek status, yang ditentukan oleh pemanggil. Parameter ini bisa NULL. Anda dapat menggunakan objek ini untuk menyimpan informasi status. Objek dikembalikan ke pemanggil ketika panggilan balik dipanggil.
Nilai kembali
Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.
Menampilkan kode | Deskripsi |
---|---|
|
pPropVarTimecode tidak VT_I8. |
|
Metode Matikan objek dipanggil. |
|
Aliran byte tidak dapat dicari. Kode waktu tidak dapat dibaca dari akhir aliran byte. |
Keterangan
Ketika metode asinkron selesai, metode IMFAsyncCallback::Invoke objek panggilan dipanggil. Pada saat itu, aplikasi harus memanggil IMFTimecodeTranslate::EndConvertTimecodeToHNS untuk menyelesaikan permintaan asinkron.
Nilai pPropVarTimecode adalah nilai tidak bertanda 64-bit yang ditik sebagai LONGLONG. DWORD atas berisi rentang . ( Rentang adalah serangkaian kode waktu berkelanjutan.) DWORD yang lebih rendah berisi kode waktu dalam bentuk angka heksadesimal 0xhhmmssff, di mana setiap urutan 2-byte dibaca sebagai nilai desimal.
void CreateTimeCode(
DWORD dwFrames,
DWORD dwSeconds,
DWORD dwMinutes,
DWORD dwHours,
DWORD dwRange,
PROPVARIANT *pvar
)
{
ULONGLONG ullTimecode = ((ULONGLONG)dwRange) << 32;
ullTimecode += dwFrames % 10;
ullTimecode += (( (ULONGLONG)dwFrames ) / 10) << 4;
ullTimecode += (( (ULONGLONG)dwSeconds ) % 10) << 8;
ullTimecode += (( (ULONGLONG)dwSeconds ) / 10) << 12;
ullTimecode += (( (ULONGLONG)dwMinutes ) % 10) << 16;
ullTimecode += (( (ULONGLONG)dwMinutes ) / 10) << 20;
ullTimecode += (( (ULONGLONG)dwHours ) % 10) << 24;
ullTimecode += (( (ULONGLONG)dwHours ) / 10) << 28;
pvar->vt = VT_I8;
pvar->hVal.QuadPart = (LONGLONG)ullTimecode;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | mfidl.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk