|
Posted
over 17 years
ago
by
jpsaman
As part of his internship at M2X dionoea got VLC to run on Neuros OSDv2.0 hardware. VLC 0.8.6 now can encode and decode using the DSP codecs. There are still some rough edges but it is a start. If you want to see it with your own eyes, then look at this video.
|
|
Posted
over 17 years
ago
by
JBK
Release
The release of 0.9.0 is closer, and we have many nice stuff to show.
However I have sad news for old OSes:
We are dropping support for:
Mac OS X.3 (panther)
Windows 98/ME (Windows 2000 is needed now)
BeOS
Sorry to tell you that.
|
|
Posted
over 17 years
ago
by
Geoffroy Couprie
I just got VLC compiled for Windows CE! That's certainly not working, but I'm happy!
|
|
Posted
over 17 years
ago
by
Geoffroy Couprie
Windows CE is a wonderful platform, but there are some problems I encountered that are worth mentioning. I use mingw32ce from the cegcc project, which means I don't use newlib. All calls in the program go through a mingw dll and are redirected to
... [More]
the system libraries. With this configuration, I have to use functions from Windows CE, and that's sometimes very tricky.
Missing functions
rewind(file) can be replaced by fseek(file, 0L, SEEK_SET); clearerr(file);
GetVersion is not present, but can be replaced by GetVersionEx both on Windows NT and Windows CE (and even older versions):
if (GetVersion() < 0x80000000)
replaced by
OSVERSIONINFO osinf;
ZeroMemory(&osinf, sizeof(OSVERSIONINFO));
osinf.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osinf);
if(osinf.dwPlatformId == VER_PLATFORM_WIN32_NT || osinf.dwPlatformId == VER_PLATFORM_WIN32_CE)
or
if(osinf.dwPlatformId >1)
to keep compatibility with future versions.
_wopen is replaced by _open
_wunlink is replaced by _unlink
_wstati64 replaced by _stat
These three functions are replaced by their ANSI version because their implementation in cegcc uses Unicode. As an example, see unlink.c in cegcc. You can easily reimplement the unicode version of these functions.
asprintf and vasprintf are missing, and this is really painful, as they are widely used. Both are implemented in VLC, but there's a trick in vasprintf. Here's the old code:
static inline int vasprintf (char **strp, const char *fmt, va_list ap)
{
int len = vsnprintf (NULL, 0, fmt, ap) + 1;
char *res = (char *)malloc (len);
if (res == NULL)
return -1;
*strp = res;
return vsprintf (res, fmt, ap);
}
And now I'm crying loudly, because the behaviour of vsnprintf is different on different platforms. In glibc 2.1, vsnprintf returns the size it would have needed to store the string copied. BUT, in glibc 2.0 and in the Win32 API, vsnprintf returns -1 if it couldn't copy. So here's my workaround:
static inline int vasprintf (char **strp, const char *fmt, va_list ap)
{
int n, size = 50;
char *res, *np;
if ( (res = (char *) malloc (size)) == NULL )
return -1;
while (1) {
n = vsnprintf (res, size, fmt, ap);
/* If that worked, return the string. */
if (n > -1 && n < size)
{
*strp = res;
return n;
}
/* Else try again with more space. */
size *= 2; /* twice the old size */
if ( (np = (char *) realloc (res, size)) == NULL )
{
free(res);
return -1;
}
else
{
res = np;
}
}
}
Again, it's buggy, so wait for the new version.
strcoll can be replaced by wcscmp
tmpfile: i replaced
if ( (file = tmpfile ()) == NULL )
by
if(GetTempFileName(strpath,strprefix,0,buf) || ( (file = fopen(buf,"wb+")) ==NULL ))
Missing headers
There's no errno.h for Windows CE. I had to copy the errno.h from cegcc.
There are not the same signals. I had to copy signal.h from cegcc
Multithreading
I don't have SignalObjectAndWait, and it's painful. I tried the SetEvent solution from this website, but I'm not sure of the consequences, as I'm not a multithreading expert.
Unicode
Windows CE is full Unicode, I had to replace the ASCII functions by the Unicode ones.
UPDATES:
30/09/08-: _open and _unlink are internally unicode
Bugfix: vasprintf implementation - changed if( n > -1) to if( n == -1). [Less]
|
|
Posted
over 17 years
ago
by
JBK
Just a small post about VideoLAN presence at WWDC in San Francisco this year.
Felix and I will be there all week long. If you want to meet, contact us.
|
|
Posted
over 17 years
ago
by
JonLech
I will be attending WWDC next week. If anyone wants to meet up, send me an email. We (doubleTwist) are still looking for a full-time Cocoa developer to work out of our San Francisco office.
|
|
Posted
over 17 years
ago
by
Geoffroy Couprie
VLC media player is a powerful multimedia player, which can play nearly all video and audio formats, can be used as a streaming server and client, ca reencode various formats, etc. It can be used on a large number of OS, but the Windows CE has been
... [More]
broken for a long time, and now, I'm here to fix it!
Windows CE is one of Microsoft's OS, and is designed for embedded devices. It is highly configurable, and can be used on many types of hardware. Windows Mobile, the OS for PDAs and Smartphones, is based on Windows CE. This system is a bit different from the other Windows, so I'll have some work this summer!
The difficulty here is that VLC media player must be used on various plateforms, so I must not break the code for other systems. I also have to recompile for Windows CE all the libraries used. I'll use the cegcc development tools. I have chosen to use the Visual Studio remote tools and gdb combined with the Device simulator. With that, I'll be able to check the behaviour of my port on various virtual machines. And of course, I'll use it on my phone :) [Less]
|
|
Posted
over 17 years
ago
by
JBK
Hello to everyone.
Just a short post to mention that a port to Syllable has been done.
Look at it on our website.
Thanks to the porting team.
|
|
Posted
over 17 years
ago
by
jpsaman
In a joint effort, "Neuros Technology" and "M2X" will, as part of the "TI-Neuros Open Source Bounties" , port VLC to the "next generation of Neuros OSD" solution. The "VLC" porting project was kicked off on May 28, 2008, with developers directly
... [More]
from VLC community. Jean-Paul Saman, one of the VLC maintainers, will be leading this porting effort.
Aiming to get an efficient and powerful multimedia framework on its Davinci Linux based Open Internet Television HD Platform, a highly optimized multimedia platform based on an ARM-DSP dual core system, Neuros has chosen to use VLC among many other alternatives due to its extensive multimedia functionality, openness, and portability.
The role of VLC in Neuros HDPlatform architecture is to be the playback and encoding engine for all multimedia contents. For codecs, VLC uses plugins to carry out its video decoding/encoding on DSP, while all audio operations are done on ARM side. For Audio/Video I/O, VLC interfaces with the system by directly working with its standard Linux A/V system, for example, frame buffer for video output and V4L2 for video capturing. On application side, VLC implements MPRIS specification and exposes a DBUS interface thus to cleanly separate the multimedia core from applications.
This porting will be based on VLC stable version 0.8.6g (in fact, porting starts with 0.8.6-bugfix, a branch that includes some bugfixes for 0.8.6g since it was released), porting will be carried out in phases, from basic multimedia platform bring up, to full playback and full recording support, with complete system integration done in Q3 of 2008.
As 'open' itself states, all VLC source code files, new or modified during the porting, will be submitted to the central source code repository of the VideoLAN team, under the same license GPLV2 as the rest of the VLC source code.
<!--break--> [Less]
|
|
Posted
over 17 years
ago
by
jpsaman
The VideoLAN project will have a presence at LinuxTag in Berlin this year. LinuxTag is held on 28th till 31st until May 2008, It is the first time the team visits Berlin and we are looking forward to meet all those German VLC-fans.
Hope to see you there.
Jean-Paul Saman.
|