News:

Latest versions:
Server plugin: 0.5.1
MVP dongle: 0.5.2
Raspberry Pi client: 0.5.2
Windows client: 0.5.2-1

Main Menu

vompclient with buildin codec

Started by woodym, December 08, 2007, 03:13:36

Previous topic - Next topic

woodym

hello,

i have testet vompclient 2.6 and 2.7 on my win-xp.
the vompclient is one of the rare programs that works on dual-screen with video.
the codec-select are very hard to get the right codec. one codec works great but hangs after time. othe let flickering the video. other have long startuptimes. other problem... if i start, vompclient gets 2%-6% cpu-load. if i move the vompclient to dualscreen, it works but the cpu-load incrase to 40%-50% (6600 dualcore cpu).

4 weeks ago i have testet sdl on windows with ffmpeg. i have made a simple movie-player. the results are great. cpu-load like 4%-6% on both screens. able to play htdv (mpeg4 codec works with ffmpeg). layers (for menue) can build.

have you planed to use sdl and ffmpeg? the benefits are vompclient works on linux and windows. no codes must be installed an system. hdtv can be used with vompclient. very stable client.


MartenR

Hi,
I do not want to include any mpeg decoding into the vompclient, because
1.) I think we may ran into software patent issues for the binary version. This is no issue for linux since, most software is there distributed in source code form.
2.) I know DirectShow and Direct3D very well and this is was the reason beside the legal stuff to use it. (I have no time to learn a new framework).
3.) With DirectShow I have not to care about time and synching, because it cares about it. This very important for DVB Streams because they are not synched like mpeg files or DVD content with ffmpeg I have to this on my own.
4.) I want to make the windows port better in detail not to do an entire rewrite.

To the points you have mentioned:
1) Yes, codec selection is a real nightmare, I have the idea that it would be nice to collect users experience with codecs, so that vomp will rate the codec for selection.
2) For codec compatibility, I have to make some internal routines for passing the data to the filter better and I should support there more data types then now. Maybe additonal PES instead of simply ES streams etc.
3) The flickering video, this is just my fault in the moment, I have to add an option that you can select the deinterlacing type of the filter, so depending on  the filter it will use the default, which may be with or without deinterlacing.
4) The dual screen issue: This is really interesting! This does not have something to do with the codecs, but with the selected surface type and your graphics card. Because some video scaling options are only availiable on the primary screen on most cards, so that in a dual screen configuration maybe something had to be simulated in software.
(Also vomp does present more than 25 frames, with it can, I am really wasting cpu time for a fast response)
So maybe there will be a way, that I can improve this with adding a second way to present it with other surfaces.
Therefore I need more information about your configuration.
a) What kind of dual screen mode do you use: cloning or extending your desktop?
b) Graphics cards details like chipset, resolution, ram ...
c) Please update your graphic cards drivers and check if it is gone?
d) Your settings in the graphic cards configuration.
e) maybe some output with special tools, but we can do this later.

Marten



woodym

hello martenr,

Quote
1.) I think we may ran into software patent issues for the binary version. This is no issue for linux since, most software is there distributed in source code form.
for this i have used external dll. so ffmpeg (and sdl) isn't part of binary.

Quote2.)
I know DirectShow and Direct3D very well and this is was the reason beside the legal stuff to use it. (I have no time to learn a new framework).
yes you'r right... but only if direct3d and directshow is configured well. if you install any software it's posible this damage your good install.

Quote
3.) With DirectShow I have not to care about time and synching, because it cares about it. This very important for DVB Streams because they are not synched like mpeg files or DVD content with ffmpeg I have to this on my own.
yes, you must do sync yourself. but this is here at sourcecode. the test i made was with vdr-files witch stored by vdr. so this is async like the stream.

Quote
4.) I want to make the windows port better in detail not to do an entire rewrite.
and this is the point why so many people loves vompclient !

yes i know it's costs mutch time to reimplement the decoding-core. if you say: 'let's try' i can help you to build a version with ffmpeg. if ffmeg isn't any option than it makes not sens to spend time for this. on a short look to source i havn't find the posible entry for ffmpeg. but this is only a question of time.

Quote
The dual screen issue: This is really interesting! This does not have something to do with the codecs, but with the selected surface type and your graphics card. Because some video scaling options are only availiable on the primary screen on most cards, so that in a dual screen configuration maybe something had to be simulated in software.

i have testet this situation with sdl and cpu-time not incrased.
at vompclient the cpu-time are incrased at any sitution (like only display stream or if menu is on).

@a i extend my desktop
@b prozessor 82945G (intel onboard chipset), it uses shared memory, the memory-size are max 224m for grafik, the total memory 2g, resolution 1248*1024 on both screens (32 bit).
@c this system is an new system install 1 month ago with (i mean) new driver. but after sending this i try to update the driver and report the result.
@d which config you mean? hardware-accelorator is set to maximum i can give the report:


Intel(R) Graphics Media Accelerator Driver Report
Report Date: 12/09/2007
Report Time[hr:mm:ss]: 02:12:30
Driver Version: 6.14.10.4764
Operating System: Windows XP* Professional, Service Pack 2 (5.1.2600)
Default Language: German
DirectX* Version: 9.0
Physical Memory: 2039 MB
Minimum Graphics Memory: 8 MB
Maximum Graphics Memory: 224 MB
Graphics Memory in Use: 16 MB
Processor: x86 family 6 Model 15 Stepping 6
Processor Speed: 2319 MHZ
Vendor ID: 8086
Device ID: 2772
Device Revision: 02
*   Accelerator Information   *
Accelerator in Use: Intel(R) 82945G Express Chipset Family
Video BIOS: 1295
Current Graphics Mode: 1280 x 1024 True Color (75 Hz)
*   Devices Connected to the Graphics Accelerator   *


woodym

woodym

now i have updatet driver (newest from intel). the result is the same.

here the report:

Intel(R) Graphics Media Accelerator Driver Report
Report Date:      12/09/2007
Report Time[hr:mm:ss]:   02:29:37
Driver Version:      6.14.10.4864
Operating System:      Windows XP* Professional, Service Pack 2 (5.1.2600)
Default Language:      German
DirectX* Version:      9.0
Physical Memory:      2039 MB
Minimum Graphics Memory:   8 MB
Maximum Graphics Memory:   224 MB
Graphics Memory in Use:   16 MB
Processor:      x86 family 6 Model 15 Stepping 6
Processor Speed:      2319 MHZ
Vendor ID:      8086
Device ID:      2772
Device Revision:      02
*   Accelerator Information   *
Accelerator in Use:      Intel(R) 82945G Express Chipset Family
Video BIOS:      1295
Current Graphics Mode:   1280 x 1024 True Color (75 Hz)
*   Devices Connected to the Graphics Accelerator   *
Active Monitors: 1
Active Digital Displays: 1
*   Monitor   *
Monitor Name:      Plug und Play-Monitor
Display Type:      Analog
Gamma Value:      2,20
DDC2 Protocol:      Supported
Maximum Image Size:   Horizontal: 14,0  inches
         Vertical:   11,0  inches
Monitor Supported Modes:
640 x 480 (60 Hz)
640 x 480 (67 Hz)
640 x 480 (72 Hz)
640 x 480 (75 Hz)
720 x 400 (70 Hz)
800 x 600 (56 Hz)
800 x 600 (60 Hz)
800 x 600 (72 Hz)
800 x 600 (75 Hz)
832 x 624 (75 Hz)
1024 x 768 (60 Hz)
1024 x 768 (70 Hz)
1024 x 768 (75 Hz)
1152 x 864 (75 Hz)
1280 x 1024 (60 Hz)
1280 x 1024 (75 Hz)
Display Power Management Support:
   Standby Mode:   Not Supported
   Suspend Mode:   Not Supported
   Active Off Mode: Supported


*   Digital Display   *
Monitor Name:      Plug und Play-Monitor
Display Type:      Digital
Gamma Value:      2,20
DDC2 Protocol:      Supported
Maximum Image Size:   Horizontal: 14,0  inches
         Vertical:   11,0  inches
Monitor Supported Modes:
640 x 480 (60 Hz)
640 x 480 (67 Hz)
640 x 480 (72 Hz)
640 x 480 (75 Hz)
720 x 400 (70 Hz)
800 x 600 (56 Hz)
800 x 600 (60 Hz)
800 x 600 (72 Hz)
800 x 600 (75 Hz)
832 x 624 (75 Hz)
1024 x 768 (60 Hz)
1024 x 768 (70 Hz)
1024 x 768 (75 Hz)
1152 x 864 (60 Hz)
1152 x 864 (70 Hz)
1152 x 864 (75 Hz)
1280 x 960 (60 Hz)
1280 x 960 (70 Hz)
1280 x 960 (75 Hz)
1280 x 1024 (60 Hz)
1280 x 1024 (75 Hz)
Display Power Management Support:
   Standby Mode:   Supported
   Suspend Mode:   Supported
   Active Off Mode: Supported

*   SDVO Encoder Report   *
** Encoder 1 **
Vendor ID:   Silicon Image
Device ID:   170
Device Revision:   3
Major Version:   1
Minor Version:   1
* Other names and brands are the property of their respective owners.

MartenR

QuoteQuote
4.) I want to make the windows port better in detail not to do an entire rewrite.

and this is the point why so many people loves vompclient !

yes i know it's costs mutch time to reimplement the decoding-core. if you say: 'let's try' i can help you to build a version with ffmpeg. if ffmeg isn't any option than it makes not sens to spend time for this. on a short look to source i havn't find the posible entry for ffmpeg. but this is only a question of time.
Well, the problem is that a switch to SDL/ffmpeg, will need a rewrite of 80% of the code (everything except the remote control stuff: video, audio etc.). So for me it is no option, because it starts in the beginning, but my not use a ffmpeg DirectShow Filter, I open source DirectShowfilter that use ffmpeg and/other libraries are already out there.
If I remember right some user reported such filters already in the forum.

And in the moment a need my free time for programming time, to catch up the development on the main branches, the  new live tv playback needs a lot of performance improvement in the windows code and I want to be fast enough that the mvp version and windows version can be released at the same time.

Next point the cpu issue:
QuoteMinimum Graphics Memory:   8 MB
Maximum Graphics Memory:   224 MB
Graphics Memory in Use:   16 MB
Does this mean, that your graphics card have only 16 MB availiable or does it extend the memory dynamically?
I'm asking this because 16 MB might be not enough for a dual screen configuration, since vomp needs a lot of surfaces in graphics card memory for the actual video display stuff.
This is my first thought try to increase this.

Anyway I'm making today a lot of changes in the affected code part, since it needs them because of the new live tv and maybe the improved implemtation will be a lot cleverer.

Marten

woodym

hello martenr,

the memory incrase dynamicly. 16m are using at the moment of generating report. if any layers
defined it catches the memory from the mainmemory. 8m means that the smales block to use
(and i think the memory only changed at 8 mb block-size). and the maximum of usable memory
for grafik are 224 mb.

If you don't object i woud try to implement sdl and ffmpeg. if it's work i can send you the result.

bye woodym

MartenR

QuoteIf you don't object i woud try to implement sdl and ffmpeg. if it's work i can send you the result.
You can do this, but this will be a complete new port. 
Except for remote, you have to write new classes for Surface, Osd, Audio, Video etc. . 
Since it is not based on the DirectX function, I use for the windows port.

For the future, I think DirectShow would be more powerful, since it might be possible to integrate HDTV, Ac3, DTS with using all hardware capabilities through the availiable codecs.
Also deinterlacing will be easier, this would be actually a thing, I'm going to implement soon with the help of the decoders.
For me it would make more sense, if you try to integrate SDL and bbmpeg and stuff like this for a  linux port, since this is really missing in the moment.
Also I think, you should ask  the main author Chris, what he think about two windows ports.

Quote8m means that the smales block to use
(and i think the memory only changed at 8 mb block-size). and the maximum of usable memory
for grafik are 224 mb.

Ok, lets do two things:
1) Please do a Dual Screen Configuration with two 640x480 desktops and test it. (Maybe it is an memory issue, we can test this with a smaller desktop just to be sure.)
2)a) Can you please report, what the DirectX Caps Viewer from the DirectX SDK says about your DirectGraphics  capabilities in DualScreen and Single Screen? Maybe some stretching capabilities changes..
2) b) It might be that the parameter I passed to DirectX causes the System to use the reference rasterizer, which would be painfully slow...

Marten