Skip to content

Commit 6ccbed8

Browse files
committed
1.0.0.3
Moved _MFP_ConvertString functions from internal to external usage: MFPConvertString Added MFPMediaItem_StreamTable function Added media type equates for StreamTable
1 parent 1b90d6b commit 6ccbed8

24 files changed

+2967
-503
lines changed

MFPlayer-x64/MFPlayer.asm

+1,262-172
Large diffs are not rendered by default.

MFPlayer-x64/MFPlayer.inc

+148-1
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,17 @@ MFPMediaItem_GetMetadata PROTO pMediaItem:QWORD, ppMetadataStore:QWORD
9999

100100
MFPMediaItem_SetStreamSink PROTO pMediaItem:QWORD, dwStreamIndex:DWORD, pMediaSink:QWORD
101101

102-
; Misc
102+
; Media Information
103+
MFPMediaItem_StreamTable PROTO pMediaItem:QWORD, lpdwStreamCount:QWORD, lpqwStreamTable:QWORD
104+
103105
; Misc
104106
MFPConvertMSTimeToTimeStringA PROTO dwMilliseconds:DWORD, lpszTime:QWORD, dwTimeFormat:DWORD
105107
MFPConvertMSTimeToTimeStringW PROTO dwMilliseconds:DWORD, lpszTime:QWORD, dwTimeFormat:DWORD
106108

109+
MFPConvertStringToAnsi PROTO lpszWideString:QWORD
110+
MFPConvertStringToWide PROTO lpszAnsiString:QWORD
111+
MFPConvertStringFree PROTO lpString:QWORD
112+
107113
IFDEF __UNICODE__
108114
MFPMediaPlayer_CreateMediaItem EQU <MFPMediaPlayer_CreateMediaItemW>
109115
MFPMediaItem_GetURL EQU <MFPMediaItem_GetURLW>
@@ -139,6 +145,35 @@ IFNDEF HRESULT
139145
HRESULT TYPEDEF DWORD
140146
ENDIF
141147

148+
STREAMLANG_LENGTH EQU 28
149+
STREAMNAME_LENGTH EQU 28
150+
151+
IFNDEF MFP_STREAM_RECORD
152+
MFP_STREAM_RECORD STRUCT 8
153+
dwStreamID DD ?
154+
bSelected DD ? ; bool
155+
szStreamLang DB (STREAMLANG_LENGTH+4) DUP (?)
156+
szStreamName DB (STREAMNAME_LENGTH+4) DUP (?)
157+
dwMajorType DD ? ; Video, Audio, etc
158+
dwSubType DD ? ; Video or Audio subtype
159+
dwBitRate DD ? ; kilobits per second: kbps
160+
UNION
161+
STRUCT
162+
dwChannels DD ? ; 6 = 5.1 etc
163+
dwSpeakers DD ? ; positioning of speakers
164+
dwBitsPerSample DD ? ; bitdepth for lossless
165+
dwSamplesPerSec DD ? ; kHz
166+
ENDS
167+
STRUCT
168+
dwFrameRate DD ? ; fps
169+
dwFrameWidth DD ? ; px
170+
dwFrameHeight DD ? ; px
171+
dwInterlace DD ? ; mode
172+
ENDS
173+
ENDS
174+
MFP_STREAM_RECORD ENDS
175+
ENDIF
176+
142177
IFNDEF MFP_EVENT_HEADER
143178
MFP_EVENT_HEADER STRUCT
144179
eEventType MFP_EVENT_TYPE ?
@@ -423,6 +458,118 @@ MFVideoARMode_NonLinearStretch EQU 4h
423458
MFVideoARMode_Mask EQU 7h
424459

425460

461+
; MFVideoInterlaceMode
462+
MFVideoInterlace_Unknown EQU 0
463+
MFVideoInterlace_Progressive EQU 2
464+
MFVideoInterlace_FieldInterleavedUpperFirst EQU 3
465+
MFVideoInterlace_FieldInterleavedLowerFirst EQU 4
466+
MFVideoInterlace_FieldSingleUpper EQU 5
467+
MFVideoInterlace_FieldSingleLower EQU 6
468+
MFVideoInterlace_MixedInterlaceOrProgressive EQU 7
469+
470+
;---------------------------------------------------------------------------------------------------------------------------
471+
; Media Major Type | Description | Subtype
472+
;---------------------------------------------------------------------------------------------------------------------------
473+
MFMT_None EQU 0 ; None. None.
474+
MFMT_Audio EQU 1 ; Audio. Audio Subtype GUIDs.
475+
MFMT_Video EQU 2 ; Video. Video Subtype GUIDs.
476+
MFMT_Stream EQU 3 ; Multiplexed stream or elementary stream. Stream Subtype GUIDs
477+
MFMT_Metadata EQU 4 ; Metadata stream. None.
478+
MFMT_Protected EQU 5 ; Protected media. The subtype specifies the content protection scheme.
479+
MFMT_SAMI EQU 6 ; SAMI captions. None.
480+
MFMT_Image EQU 7 ; Still image stream. WIC GUIDs and CLSIDs.
481+
MFMT_Binary EQU 8 ; Binary stream. None.
482+
MFMT_HTML EQU 9 ; HTML stream. None.
483+
MFMT_Perception EQU 10 ; Streams from a camera sensor None.
484+
MFMT_FileTransfer EQU 11 ; A stream that contains data files. None.
485+
MFMT_Script EQU 12 ; Script stream. None.
486+
487+
;---------------------------------------------------------------------------------------------------------------------------
488+
; Audio Format Subtype | Description
489+
;---------------------------------------------------------------------------------------------------------------------------
490+
MFAF_Unknown EQU 0 ; Unknown
491+
MFAF_MP3 EQU 1 ; MPEG Audio Layer-3 (MP3). MPEG-4 Part 3, AAC (ISO/IEC 14496-3)
492+
MFAF_AAC EQU 2 ; Advanced Audio Coding (AAC).
493+
MFAF_ALAC EQU 3 ; Apple Lossless Audio Codec (ALAC).
494+
MFAF_Dolby_AC3 EQU 4 ; Dolby Digital (AC-3).
495+
MFAF_Dolby_AC3_SP EQU 5 ; Dolby AC-3 audio over Sony/Philips Digital Interface (S/PDIF).
496+
MFAF_Dolby_DDPlus EQU 6 ; Dolby Digital Plus. EAC3
497+
MFAF_Dolby_AC4 EQU 7 ; Dolby (AC-4).
498+
MFAF_Dolby_AC4_V1 EQU 8
499+
MFAF_Dolby_AC4_V2 EQU 9
500+
MFAF_Dolby_AC4_V1_ES EQU 10
501+
MFAF_Dolby_AC4_V2_ES EQU 11
502+
MFAF_DTS EQU 12 ; Digital Theater Systems (DTS) audio.
503+
MFAF_DTS_RAW EQU 13
504+
MFAF_DTS_HD EQU 14 ; DTS-HD Master Audio
505+
MFAF_DTS_XLL EQU 15 ; DTS-HD Master Audio Lossless
506+
MFAF_DTS_LBR EQU 16
507+
MFAF_DTS_UHD EQU 17
508+
MFAF_DTS_UHDY EQU 18
509+
MFAF_WMAudio_LL EQU 19 ; Windows Media Audio 9 Lossless codec or Windows Media Audio 9.1 codec. (WMALOSSLESS)
510+
MFAF_WMAudioV8 EQU 20 ; Windows Media Audio 8 codec, Windows Media Audio 9 codec, or Windows Media Audio 9.1 codec. (WMAV2)
511+
MFAF_WMAudioV9 EQU 21 ; Windows Media Audio 9 Professional codec or Windows Media Audio 9.1 Professional codec. (WMAPRO)
512+
MFAF_WMASPDIF EQU 22 ; Windows Media Audio 9 Professional codec over S/PDIF.
513+
MFAF_FLAC EQU 23 ; Free Lossless Audio Codec (FLAC).
514+
MFAF_PCM EQU 24 ; Uncompressed PCM audio.
515+
MFAF_LPCM EQU 25 ; DVD audio data
516+
MFAF_MPEG EQU 26 ; MPEG-1 audio payload. (MP1)
517+
MFAF_MPEGH EQU 27
518+
MFAF_MPEGH_ES EQU 28
519+
MFAF_MSP1 EQU 29 ; Windows Media Audio 9 Voice codec (WMAVOICE)
520+
MFAF_AMR_NB EQU 30 ; Adaptive Multi-Rate Narrowband (AMR_NB)
521+
MFAF_AMR_WB EQU 31 ; Adaptive Multi-Rate Wideband (AMR_WB)
522+
MFAF_AMR_WP EQU 32 ; Adaptive Multi-Rate Wideband Plus (AMR_WP)
523+
MFAF_DRM EQU 33 ; Encrypted audio data used with secure audio path.
524+
MFAF_Vorbis EQU 34 ; VORBIS
525+
MFAF_Opus EQU 35 ; Opus
526+
MFAF_Float EQU 36 ; Uncompressed IEEE floating-point audio.
527+
MFAF_Float_SO EQU 37 ; Uncompressed IEEE floating-point audio.
528+
MFAF_RAW_AAC1 EQU 38 ; Advanced Audio Coding (AAC). In AVI
529+
MFAF_QCELP EQU 39 ; QCELP (Qualcomm Code Excited Linear Prediction) audio.
530+
MFAF_Dolby_AC3_HDCP EQU 40 ; Dolby Digital (AC-3) (HDCP)
531+
MFAF_AAC_HDCP EQU 41
532+
MFAF_PCM_HDCP EQU 42
533+
MFAF_ADTS_HDCP EQU 43 ; Advanced Audio Coding (AAC) in Audio Data Transport Stream (ADTS) format (HDCP)
534+
MFAF_ADTS EQU 44 ; Advanced Audio Coding (AAC) in Audio Data Transport Stream (ADTS)
535+
536+
537+
;---------------------------------------------------------------------------------------------------------------------------
538+
; Video Format Subtype | Description
539+
;---------------------------------------------------------------------------------------------------------------------------
540+
MFVF_Unknown EQU 0 ;
541+
MFVF_M4S2 EQU 1 ; 'M4S2' MPEG-4 part 2 video.
542+
MFVF_MP4V EQU 2 ; 'MP4V' MPEG-4 part 2 video.
543+
MFVF_H264 EQU 3 ; 'H264' H.264 video.
544+
MFVF_H265 EQU 4 ; 'H265' H.265 video.
545+
MFVF_H264_ES EQU 5 ; Not applicable H.264 elementary stream.
546+
MFVF_WMV1 EQU 6 ; 'WMV1' Windows Media Video codec version 7.
547+
MFVF_WMV2 EQU 7 ; 'WMV2' Windows Media Video 8 codec.
548+
MFVF_WMV3 EQU 8 ; 'WMV3' Windows Media Video 9 codec.
549+
MFVF_MP4S EQU 9 ; 'MP4S' ISO MPEG 4 codec version 1.
550+
MFVF_AV1 EQU 10 ; 'AV01' AV1 video.
551+
MFVF_VP80 EQU 11 ; 'MPG1' VP8 video.
552+
MFVF_VP90 EQU 12 ; 'MPG1' VP9 video.
553+
MFVF_HEVC EQU 13 ; 'HEVC' The HEVC Main profile and Main Still Picture profile.
554+
MFVF_HEVC_ES EQU 14 ;'HEVS' This media type is the same as MFVF_HEVC, except media samples contain a fragmented HEVC bitstream.
555+
MFVF_H263 EQU 15 ; 'H263' H.263 video.
556+
MFVF_MSS1 EQU 16 ; 'MSS1' Windows Media Screen codec version 1.
557+
MFVF_MSS2 EQU 17 ; 'MSS2' Windows Media Video 9 Screen codec.
558+
MFVF_MJPG EQU 18 ; 'MJPG' Motion JPEG.
559+
MFVF_MPG1 EQU 19 ; 'MPG1' MPEG-1 video.
560+
MFVF_MPEG2 EQU 20 ; Not applicable MPEG-2 video. (Equivalent to MEDIASUBTYPE_MPEG2_VIDEO in DirectShow.)
561+
MFVF_DV25 EQU 21 ; 'dv25' DVCPRO 25 (525-60 or 625-50).
562+
MFVF_DV50 EQU 22 ; 'dv50' DVCPRO 50 (525-60 or 625-50).
563+
MFVF_DVC EQU 23 ; 'dvc ' DVC/DV Video.
564+
MFVF_DVH1 EQU 24 ; 'dvh1' DVCPRO 100 (1080/60i, 1080/50i, or 720/60P).
565+
MFVF_DVHD EQU 25 ; 'dvhd' HD-DVCR (1125-60 or 1250-50).
566+
MFVF_DVSD EQU 26 ; 'dvsd' SDL-DVCR (525-60 or 625-50).
567+
MFVF_DVSL EQU 27 ; 'dvsl' SD-DVCR (525-60 or 625-50).
568+
MFVF_WVC1 EQU 28 ; 'WVC1' SMPTE 421M ("VC-1").
569+
MFVF_420O EQU 29 ; '420O' 8-bit per channel planar YUV 4:2:0 video.
570+
MFVF_MP43 EQU 30 ; 'MP43' Microsoft MPEG 4 codec version 3. This codec is no longer supported.
571+
572+
426573

427574

428575

MFPlayer-x64/MFPlayer.lib

12.7 KB
Binary file not shown.

MFPlayer-x64/MFPlayer.rap

+18-18
Original file line numberDiff line numberDiff line change
@@ -61,26 +61,26 @@ Group=Assembly,Misc
6161
6=2
6262
7=2
6363
[AutoLoad]
64-
AutoLoad=2,1,6
64+
AutoLoad=2,1,6,3
6565
[Size]
6666
5=
6767
4=
68-
3=0,0,0,0,1519
69-
1=0,0,0,0,59663
68+
3=0,0,0,0,2336
69+
1=0,0,0,0,894
7070
7=0,0,0,0,0
71-
6=0,0,0,0,1643
72-
2=0,0,0,0,5929
71+
6=0,0,0,0,3992
72+
2=0,0,0,0,22566
7373
[Find]
74-
1="dwUserData"
75-
2="pdwUserData"
76-
3="dwUserData:DWORD"
77-
4="qw"
78-
5="bVideo"
79-
6="bVideo:QWORD"
80-
7="mov rax, dwState"
81-
8="dwState:QWORD"
82-
9="qwState"
83-
10="_MFP_utoa_ex"
74+
1="MFI_GetVideoSubType"
75+
2="MFI_GetAudioSubType"
76+
3="MFI_GetMajorType"
77+
4=".IF eax == 16"
78+
5="RtlCompareMemory"
79+
6="MP_STREAM_RECORD"
80+
7="DEBUG32"
81+
8="_MFP_ConvertStringToWide"
82+
9="_MFP_ConvertStringFree"
83+
10="_MFP_ConvertStringToAnsi"
8484
[RADebugBP]
8585
2=
8686
1=
@@ -94,7 +94,7 @@ MilestoneOnTime=2
9494
MilestoneOnDate=0
9595
MilestoneOnDateWhen=1
9696
MilestoneOnDateStatus=0
97-
MilestoneOnDateDate=1
97+
MilestoneOnDateDate=11
9898
MilestoneOnDateTimeYear=2024
9999
MilestoneOnDateTimeMonth=8
100100
MilestoneOnDateTimeDate=25
@@ -118,9 +118,9 @@ ProductVer2Range=0
118118
ProductVer3Range=0
119119
ProductVer4Range=0
120120
[PTimer]
121-
PTimer=31754439
121+
PTimer=38287470
122122
[Collapse]
123-
1=65552,306783232,153391689,1227133512,613566756,1149838482,273219588,143804424,75514400,2
123+
1=142879024,131072,,,268585252,306713161,122713345,613566756,297234,1074274450,1109397796,133376,
124124
3=
125125
7=
126126
6=

MFPlayer-x64/uasm64ApiCall.api.txt

+6
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ MFPConvertMSTimeToTimeString,dwMilliseconds,lpszTime,dwTimeFormat
7272
MFPConvertMSTimeToTimeStringA,dwMilliseconds,lpszTime,dwTimeFormat
7373
MFPConvertMSTimeToTimeStringW,dwMilliseconds,lpszTime,dwTimeFormat
7474

75+
MFPConvertStringToAnsi,lpszWideString
76+
MFPConvertStringToWide,lpszAnsiString
77+
MFPConvertStringFree,lpString
78+
79+
MFPMediaItem_StreamTable,pMediaItem,lpdwStreamCount,lpqwStreamTable
80+
7581
IUnknown_QueryInterface,pThis,riid,ppvObject
7682
IUnknown_AddRef,pThis
7783
IUnknown_Release,pThis

MFPlayer-x64/uasm64ApiStruct.api.txt

+1
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ IMFPMPCallback,QueryInterface,AddRef,Release,OnMediaPlayerEvent
2626
IMFPMediaPlayerVtbl,QueryInterface,AddRef,Release,Play,Pause_,Stop,FrameStep,SetPosition,GetPosition,GetDuration,SetRate,GetRate,GetSupportedRates,GetState,CreateMediaItemFromURL,CreateMediaItemFromObject,SetMediaItem,ClearMediaItem,GetMediaItem,GetVolume,SetVolume,GetBalance,SetBalance,GetMute,SetMute,GetNativeVideoSize,GetIdealVideoSize,SetVideoSourceRect,GetVideoSourceRect,SetAspectRatioMode,GetAspectRatioMode,GetVideoWindow,UpdateVideo,SetBorderColor,GetBorderColor,InsertEffect,RemoveEffect,RemoveAllEffects,Shutdown
2727
IMFPMediaItemVtbl,QueryInterface,AddRef,Release,GetMediaPlayer,GetURL,GetObject,GetUserData,SetUserData,GetStartStopPosition,SetStartStopPosition,HasVideo,HasAudio,IsProtected,GetDuration,GetNumberOfStreams,GetStreamSelection,SetStreamSelection,GetStreamAttribute,GetPresentationAttribute,GetCharacteristics,SetStreamSink,GetMetadata
2828

29+
MFP_STREAM_RECORD,dwStreamID,bSelected,szStreamLang,szStreamName,dwMajorType,dwSubType,dwBitRate,dwChannels,dwSpeakers,dwBitsPerSample,dwSamplesPerSec,dwFrameRate,dwFrameWidth,dwFrameHeight,dwInterlace

0 commit comments

Comments
 (0)