Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the board
Thread view  Mix view  Order
DOS386

18.04.2009, 10:55
 

Bugs in HX / DKRNL32 (FFMPEG, MPLAYER, MediaInfo) (DOSX)

I'd like to point a few bugs or compatibility problems with HX / DKRNL32:

1. FFMPEG + derivatives like MENCODER, FFMPEG2THEORA, FFMPEG2DIRAC (except -vo yuv4mpeg in MPLAYER) don't work. Output file is garbage (usually ridiculously small), bitrate is reported as ZERO, and muxing overhead is -100%. All recent "unofficial" binaries (by Sherpya and others) are affected. Same test fine in XP (they still have bugs crashing in other tests in XP too of course).

Evil binary (one of many): http://freefile.kristopherw.us/uploads/temp/ffw2.zi7

Evil input video (encode into AVI, OGG/OGV crashes in XP too):
http://freefile.kristopherw.us/uploads/temp/ffx3yuv.zi7

2. MPLAYER doesn't work anymore (screen output, GUI problem). Compatibility broken on MPLAYER's side. Also working old versions of MPLAYER are very slow, same problem on ME, fine on XP.

3. MediaInfo doesn't work with HX, either crash or silent exit, fine in XP:

http://sourceforge.net/projects/mediainfo

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Japheth

Homepage

Germany (South),
23.04.2009, 08:08

@ DOS386

Bugs in HX / DKRNL32 (FFMPEG, MPLAYER, MediaInfo)

> I'd like to point a few bugs or compatibility problems with HX / DKRNL32:
>
> 1. FFMPEG + derivatives like MENCODER, FFMPEG2THEORA, FFMPEG2DIRAC (except
> -vo yuv4mpeg in MPLAYER) don't work. Output file is garbage (usually
> ridiculously small), bitrate is reported as ZERO, and muxing overhead is
> -100%. All recent "unofficial" binaries (by Sherpya and others) are
> affected. Same test fine in XP (they still have bugs crashing in other
> tests in XP too of course).
>
> Evil binary (one of many):
> http://freefile.kristopherw.us/uploads/temp/ffw2.zi7
>
> Evil input video (encode into AVI, OGG/OGV crashes in XP too):
> http://freefile.kristopherw.us/uploads/temp/ffx3yuv.zi7

What's the exact cmd to start this test case? It seems Fabrice Bellard hasn't heart of the SSSO principle yet - OTOH I don't want to find out by "trial and error" amongst 500 options the "correct" combination.

---
MS-DOS forever!

DOS386

26.04.2009, 02:34

@ Japheth

GSGO - good source, garbage output vs Fabrice Bellard

> What's the exact cmd to start this test case?

Heh ? :confused:

MediaInfo:

MI --help

^^^ Surprised ?

MI blah.ext

FFMPEG:

ffw2 -i G.YUV G.AVI

G.YUV is the source file, G.AVI is / will be the output file

FFMPEG2THEORA:

fft24 g.yuv

> It seems Fabrice Bellard hasn't heart of the SSSO principle yet

And you did ? :surprised:

> OTOH I don't want to find out by "trial and error" amongst 500
> options the "correct" combination.

See above, I listed all 500 "correct" (failing with HX) combinations for you :-)

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Japheth

Homepage

Germany (South),
26.04.2009, 08:00

@ DOS386

GSGO - good source, garbage output vs Fabrice Bellard

> FFMPEG:
>
> ffw2 -i G.YUV G.AVI

I ran it in DOS, and it's reported that AVICAP32.DLL wasn't found. That sound's pretty comprehensible to me. There is no bug.

---
MS-DOS forever!

Laaca

Homepage

Czech republic,
26.04.2009, 09:43

@ DOS386

GSGO - good source, garbage output vs Fabrice Bellard

Why you don't use the DOS port of FFMPEG by Michael Kostylev?

BTW:
It is really cool program, I love it.

---
DOS-u-akbar!

DOS386

27.04.2009, 10:03

@ Japheth

HX is dead :-( ............. ---> R.I.P. <---

Japheth wrote:

> I ran it in DOS, and it's reported that AVICAP32.DLL wasn't found. That
> sound's pretty comprehensible to me. There is no bug.

I have both AVICAP32.DLL and AVIFIL32.DLL, they are NOT used and NOT source of the problem. So YES, there is a BUG in HX preventing those to run correctly in DOS. Also, MediaInfo doesn't need those 2 and still doesn't run.

Laaca wrote:

> Why you don't use the DOS port of FFMPEG by Michael Kostylev?

I can also use it, but a few problems:

1. Last version from 2008-Dec, no updates anymore
2. Theora encoding is broken
3. Not useful to replace FFMPEG2THEORA or FFMPEG2DIRAC

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Khusraw

E-mail

Bucharest, Romania,
27.04.2009, 10:12
(edited by Khusraw, 27.04.2009, 10:54)

@ DOS386

HX is dead :-( ............. ---> R.I.P. <---

> I can also use it, but a few problems:
>
> 1. Last version from 2008-Dec, no updates anymore
> 2. Theora encoding is broken
> 3. Not useful to replace FFMPEG2THEORA or FFMPEG2DIRAC

The latest version of Michael Kostylev's port is dated 5 March 2009 10 January 2009.

---
Glory to God for all things

DOS386

27.04.2009, 10:16

@ Khusraw

HX is dead :-( ............. ---> R.I.P. <--- | Mik's page

> The latest version of Michael Kostylev's port is dated 5 March 2009.

Where did you get it ?

http://mik.mkw.ru/dos-stuff/ -> 410 Gone nginx/0.7.24

http://mik.dyndns.org/dos-stuff/ -> Can't resolve address

http://glennmcc.org/download/mik/ -> Version from 2008-Dec

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Khusraw

E-mail

Bucharest, Romania,
27.04.2009, 10:41

@ DOS386

HX is dead :-( ............. ---> R.I.P. <--- | Mik's page

> Where did you get it ?

From Michael Kostylev's page, but now is no longer available.
If you are interested, I uploaded it here.

EDIT: Actually it dates from January 10, not from March 5, as you can clearly see.:-(

---
Glory to God for all things

Japheth

Homepage

Germany (South),
27.04.2009, 11:28

@ DOS386

HX is dead :-( ............. ---> R.I.P. <---

> I have both AVICAP32.DLL and AVIFIL32.DLL, they are NOT used and
> NOT source of the problem. So YES, there is a BUG in HX
> preventing those to run correctly in DOS.

I copied AVICAP32.DLL and AVIFIL32.DLL from \WinXP\system32 to the current directory and FFW2.EXE still failed to load due to unresolved externals in AVICAP32.DLL. So I gave up.

> Also, MediaInfo doesn't need those 2 and still doesn't run.

I didn't try MediaInfo yet.

---
MS-DOS forever!

DOS386

27.04.2009, 14:50

@ Japheth

FFMPEGxxxx on HX: spectacular progress in BUG-fixing

> I copied AVICAP32.DLL and AVIFIL32.DLL from \WinXP\system32

Bad idea :crying:

> to the current directory and FFW2.EXE still failed to load due to
> unresolved externals in AVICAP32.DLL. So I gave up.

:clap:

AVI.ZIP Download now (769 Bytes)

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

rr

Homepage E-mail

Berlin, Germany,
28.04.2009, 20:24

@ DOS386

FFMPEGxxxx on HX: spectacular progress in BUG-fixing

> > I copied AVICAP32.DLL and AVIFIL32.DLL from \WinXP\system32
>
> Bad idea :crying:

Please explain!

---
Forum admin

Japheth

Homepage

Germany (South),
29.04.2009, 08:31

@ DOS386

FFMPEGxxxx on HX: spectacular progress in BUG-fixing

> > to the current directory and FFW2.EXE still failed to load due to
> > unresolved externals in AVICAP32.DLL. So I gave up.
>
> :clap:
>
> AVI.ZIP Download
> now (769 Bytes)

Self-made Win32 binaries - was this little detail not worth to be mentioned in your first post?

Anyways, ffw2.exe runs now in DOS and the file size of the output file G.AVI is indeed significantly smaller than in Windows.

Running it with a debug version of DKRNL32.DLL shows that ffw2 calls the Win32 API function SetFilePointer() with an 'origin' parameter value of 10000h. This is invalid, SetFilePointer() is expected to return -1 then, but DKRNL32 currently doesn't verify this param and calls DOS with the low byte of 'origin' and returns a 'valid' result.

---
MS-DOS forever!

Zyzzle

01.05.2009, 00:29

@ Khusraw

HX is dead :-( ............. ---> R.I.P. <--- | Mik's page

> > Where did you get it ?
>
> From Michael Kostylev's page, but now is no longer available.
> If you are interested, I uploaded it
> here.
>
> EDIT: Actually it dates from January 10, not from March 5, as you can
> clearly see.:-(

I can't access your download link, the connection always times out. Is there anyone else who has a link to the Jan 10th 2009 version? Latest I can find for the dos port is Dec 25th 2008.

Khusraw

E-mail

Bucharest, Romania,
01.05.2009, 00:55

@ Zyzzle

HX is dead :-( ............. ---> R.I.P. <--- | Mik's page

> I can't access your download link, the connection always times out. Is
> there anyone else who has a link to the Jan 10th 2009 version? Latest I
> can find for the dos port is Dec 25th 2008.

Try again. I just tested the link and it still works without any problem.

---
Glory to God for all things

Laaca

Homepage

Czech republic,
01.05.2009, 08:34

@ Khusraw

HX is dead :-( ............. ---> R.I.P. <--- | Mik's page

> Try again. I just tested the link and it still works without any problem.

I have to same problem. The download doesn't work for me. Could you to upload it to some another place please?

---
DOS-u-akbar!

Khusraw

E-mail

Bucharest, Romania,
01.05.2009, 10:39

@ Laaca

HX is dead :-( ............. ---> R.I.P. <--- | Mik's page

> I have to same problem. The download doesn't work for me. Could you to
> upload it to some another place please?

Very strange, I can download it without any problems with both Opera and Wget.
But for your convenience, I reuploaded it here.

---
Glory to God for all things

Laaca

Homepage

Czech republic,
01.05.2009, 14:16

@ Khusraw

HX is dead :-( ............. ---> R.I.P. <--- | Mik's page

> But for your convenience, I reuploaded it
> here.

Thanks! This link worked without problems.

---
DOS-u-akbar!

DOS386

05.05.2009, 14:23

@ Japheth

FFMPEG on HX: imbecility on both sides | MinGW garbage I/O

Laaca wrote:

> I have to same problem. The download doesn't work for me.
> Could you to upload it to some another place please?

The original link is dead. But this "new" version has very little value anyway, just 10 days younger and 2 important fixes are NOT included:
- FFMPEG 0.5 from 2009-Mar
- Theora encoding fix (was NOT fixed until 2009-Mar, no idea when if ever ...)

Japheth wrote:

> Self-made Win32 binaries - was this little detail not worth to be mentioned in your first post?

Sorry forgot them ... I had been having them for centuries in my "DOS" directory ... oops, look at this :clap:

> Running it with a debug version of DKRNL32.DLL

Any chance to get this debug version included in next HX ?

> shows that ffw2 calls the Win32 API function SetFilePointer() with an 'origin'
> parameter value of 10000h. This is invalid

excellent :clap: BUG of FFMPEG or MinGW

> SetFilePointer() is expected to return -1 then,
> but DKRNL32 currently doesn't verify this param and calls DOS with the low
> byte of 'origin' and returns a 'valid' result.

I see :crying:

BTW, source of DKRNL32 already has one funny hack preventing stupid apps or compilers to seek below ZERO, while DOS is too stupid too to reject such NO-GO's :crying: ... what compilers or apps are affected by this BUG ?

After having notoriously criticized DGJPP for garbage I/O and advertising MinGW in the past the time has come to have a look on MinGW now for possible garbage I/O activity ... but I need a debug version of DKRNL32 :-|

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

ecm

Homepage E-mail

Düsseldorf, Germany,
05.05.2009, 17:52

@ DOS386

Signed Seeking System Operation - SSSO ?

> preventing stupid apps or compilers to seek below zero, while DOS is too
> stupid too to reject such no-goes

This is not a bug, it's a feature. Seeking "below zero" actually wraps around to a high position, so -1 means 4 GiB less one byte. It's all about "signed" and unsigned values.

---
l

Japheth

Homepage

Germany (South),
05.05.2009, 21:18

@ DOS386

FFMPEG on HX: imbecility on both sides | MinGW garbage I/O

> > Running it with a debug version of DKRNL32.DLL
>
> Any chance to get this debug version included in next HX ?

No, but you can create it on your own. In the DKRNL32 directory, enter

NMAKE debug=1

(one location where to get NMAKE is http://website.masm32.com/microsft.htm)

---
MS-DOS forever!

DOS386

06.05.2009, 05:33

@ Japheth

Debug version of DKRNL32 | NMAKEUP | Linker

> > Any chance to get this debug version included in next HX ?
> No

:crying:

> but you can create it on your own.

Are you sure ? I lack the proprietary tools required for this task :-(

> In the DKRNL32 directory, enter
> NMAKE debug=1
> (one location where to get NMAKE is website.masm32.com/microsoft.htm

Thanks, but:

1. I lack the license for NMAKEUP

2. Even I got a "good" assembler (is JAWASM good enough ???) and NMAKEUP (see [1]), there is still one important point missing: the LINKER :-(

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

DOS386

06.05.2009, 05:39

@ ecm

Signed Seeking System Operation - SSSO ?

> This is not a bug, it's a feature.

As usual :clap:

> Seeking "below zero" actually wraps around to a high position,
> so -1 means 4 GiB less one byte. It's all about "signed" and unsigned

OK, you are probably right here, so seeking from 0.5 GiB by -1 GiB AKA +3 GiB should go up to 3.5 GiB in DOS ... and in Win32 use SetFilePointerEx ?

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Japheth

Homepage

Germany (South),
06.05.2009, 07:09

@ DOS386

Debug version of DKRNL32 | NMAKEUP | Linker

> Thanks, but:
>
> 1. I lack the license for NMAKEUP

Ok, then download VC++ EE 2008. This also includes a copy of nmake. IIRC the download is just about 300 MB. :-)

> 2. Even I got a "good" assembler (is JAWASM good enough ???) and NMAKEUP
> (see [1]), there is still one important point missing: the LINKER

VC++ EE 2008 also includes a LINK.EXE. :-) :-)

Optionally just modify Makefile to make it compatible with WMake and WLink. Should be no problem. :-) :-) :-)

---
MS-DOS forever!

DOS386

09.05.2009, 08:57
(edited by DOS386, 09.05.2009, 09:13)

@ Japheth

Debug version of DKRNL32 | NMAKEUP | Linker | HX 2.15

rr wrote:

> > > I copied AVICAP32.DLL and AVIFIL32.DLL from \WinXP\system32
> > Bad idea :crying:
> Please explain!

The idea IS bad and there are at least 3 reasons why:

1. ways too obvious to justify further wasting time and bloating forum database with it (Hint: (C) )
2. TIY and see
3. There are better versions available :-)

Japheth wrote:

> Ok, then download VC++ EE 2008. This also includes a copy of nmake.
> IIRC the download is just about 300 MB

:clap:

> VC++ EE 2008 also includes a LINK.EXE

With all its (technical and legal) flaws and its infamous BUG's ...

> Optionally just modify

who ?

> Makefile to make it compatible with WMake and WLink. Should be no problem.

?????????? really ??????????

Japheth wrote (almost 1 year ago):

> I want 2 things to be added for 2.15
> 1. Making DKRNL32 aware of multi-core cpus and use them - optionally

> 2. Supply a JWasm/Wlink Makefile for at least HDPMI, DPMILDR and the
> four basic Win32 emulation dlls (DKRNL32, DADVAPI, DUSER32 and DGDI32).
> Regretably current Wlink isn't really usable for linking dlls with huge amounts
> of exports. It might be necessary to make a JWlink... :-|

Voila :clap:

> :-) :-) :-)

What's the point of only 3 happy smilies ??? :confused:

Oops, I see: above you suggested me to download 300 MiB of wormed crap and now 3 happy smiles, so 100 MiB of bloat cost just 1 smilie.

Accordingly, marcov's FreePASCAL costs only 1/2 happy smilie: [image]

And the biggest file I have (downloaded in DOS, 21 GiB) costs just 210 happy smilies:

:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)

PS: Sherpya released new Win32 binaries of MPLAYER, MENCODER, and FFMPEG on 2009-04-29. Theora encoding is NOT fixed (now garbage output also in XP instead of PageFault), no retest of seek bug yet.

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Rugxulo

Homepage

Usono,
10.05.2009, 03:34

@ Japheth

Debug version of DKRNL32 | NMAKEUP | Linker

> VC++ EE 2008 also includes a LINK.EXE. :-) :-)
>
> Optionally just modify Makefile to make it compatible with WMake and
> WLink. Should be no problem. :-) :-) :-)

I know you hate suggestions, but I'd recommend using something a bit more friendly like CBuild (which builds with MSVC or DJGPP) and/or saving the output of "nmake -n" so that mere mortals can understand what is supposed to happen.

Japheth

Homepage

Germany (South),
10.05.2009, 07:38

@ Rugxulo

Why there are some hurdles...

> I know you hate suggestions, ...

I love suggestions and would like to fulfill everyone's wishes and be everybody's darling, but sometimes I have to be a little rigid and say 'No', like a caring father does to his unwise child.

> ...but I'd recommend using something a bit more
> friendly like CBuild
> (which builds with MSVC or DJGPP) and/or saving the output of "nmake -n"
> so that mere mortals can understand what is supposed to happen.

No. The little hurdles in HX's make procedure are "by design", it's an aptitude test. They are small, tiny, almost not worth to be mentioned, but they are sufficient to keep the pure "Dampfplauderers" (a beautiful German word which I don't want to translate because it most likely will become a very lame translation) out.

---
MS-DOS forever!

DOS386

23.05.2009, 02:10

@ Japheth

Why there are some "pure Dampfplauderers" ...

> they are sufficient to keep the pure "Dampfplauderers" (a beautiful
> German word which I don't want to translate because it most

DAMPFPLAUDERER = A damn evil person lacking the proprietary malware from MacroSoft either completely or at least a valid license for them

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

DOS386

23.05.2009, 10:24

@ Japheth

origin_type=$0001'0000 | The chief DAMPFPFLAUDERER fixed it

> Running it with a debug version of DKRNL32.DLL shows that ffw2 calls the
> Win32 API function SetFilePointer() with an 'origin' parameter value of
> 10000h. This is invalid, SetFilePointer() is expected to return -1 then,
> but DKRNL32 currently doesn't verify this param and calls DOS with the low
> byte of 'origin' and returns a 'valid' result.

Fixed:

http://freefile.kristopherw.us/uploads/temp/dkrnl32.zip (43 KiB)
http://freefile.kristopherw.us/uploads/temp/avi.zip (769 Bytes)

:-)

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

rr

Homepage E-mail

Berlin, Germany,
23.05.2009, 18:28

@ DOS386

Why there are some "pure Dampfplauderers" ...

> > they are sufficient to keep the pure "Dampfplauderers" (a beautiful
> > German word which I don't want to translate because it most
>
> DAMPFPLAUDERER = A damn evil person lacking the proprietary malware
> from MacroSoft either completely or at least a valid license for them

Your style is so special again, that I recommend you writing to your own board.

---
Forum admin

Japheth

Homepage

Germany (South),
24.05.2009, 22:36

@ DOS386

origin_type=$0001'0000 | The chief DAMPFPFLAUDERER fixed it

> > Running it with a debug version of DKRNL32.DLL shows that ffw2 calls the
> > Win32 API function SetFilePointer() with an 'origin' parameter value of
> > 10000h. This is invalid, SetFilePointer() is expected to return -1
> then,
> > but DKRNL32 currently doesn't verify this param and calls DOS with the
> low
> > byte of 'origin' and returns a 'valid' result.
>
> Fixed:
>
> http://freefile.kristopherw.us/uploads/temp/dkrnl32.zip (43 KiB)
> http://freefile.kristopherw.us/uploads/temp/avi.zip (769 Bytes)

C-coool! Did you use MS link to create the binary? :surprised:

---
MS-DOS forever!

marcov

25.05.2009, 14:54

@ DOS386

Why there are some "pure Dampfplauderers" ...

> > they are sufficient to keep the pure "Dampfplauderers" (a beautiful
> > German word which I don't want to translate because it most
>
> DAMPFPLAUDERER = A damn evil person lacking the proprietary malware
> from MacroSoft either completely or at least a valid license for them

I think you just demonstrated Japeth's point.

Back to the board
Thread view  Mix view  Order
22049 Postings in 2034 Threads, 396 registered users, 241 users online (0 registered, 241 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum