6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6328
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Nov 29, 2016 12:17 pm

Timing overall, possibly via the EDID, but I think the VIC effectively specifies that anyway.

If you think about it, the TC is likely to have minimal internal RAM. The CSI pixel clock therefore has to roughly match the HDMI frame otherwise the internal buffer is going to either overflow or underflow. At present nothing I'm changing is directly affecting the pixel clock rate. I was half hoping that it would be automatic, but I'm not convinced.

Looking at the kernel driver there are functions such as
tc358743_set_pll - https://github.com/raspberrypi/linux/bl ... 743.c#L558
tc358743_set_csi - https://github.com/raspberrypi/linux/bl ... 743.c#L683
tc358743_s_dv_timings - https://github.com/raspberrypi/linux/bl ... 43.c#L1357
As usual there is little information around how this is meant to work, and the datasheet isn't obvious. PLL and CSI are the most likely pair.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

VanVogh
Posts: 1
Joined: Tue Jan 10, 2017 2:14 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Jan 10, 2017 2:19 pm

Been reading this whole thread and have a question. :) So, how close is it to working condition? I am looking at raspberry to use for streaming video for drone live feed but being limited to 1080p25 is pretty bad. I need at least most popular 1080p and 720p formats with different fps support.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6328
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Jan 11, 2017 7:34 am

Orbital6 has managed to get most resolutions advertised in the EDID working. That's
VIC 04 [email protected] (native)
VIC 19 [email protected]
VIC 03 [email protected]
VIC 02 [email protected]
VIC 18 [email protected]
VIC 17 [email protected]
VIC 01 [email protected]
VIC 32 [email protected]
VIC 33 [email protected]
VIC 34 [email protected]
VIC 60 [email protected]
VIC 61 [email protected]
VIC 62 [email protected]
The exception is 1080P30 - it looks like it needs a tweak to a register as it looks like the internal FIFO is overflowing. Hopefully that can be fixed so it works across all resolutions, otherwise it'll be an extra tweak.
Code at https://github.com/orbitinstasis/userla ... mi_in_hack.
There are a couple of cleanups required and then I'll merge it back into my main branch. Ideally we want to pull in some of the features of raspivid too, like command line parsing, and writing out motion vectors and timestamps.

This isn't the kernel driver yet, but does seem to be reasonably reliable.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
RaTTuS
Posts: 10174
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Jan 11, 2017 8:01 am

VanVogh wrote:Been reading this whole thread and have a question. :) So, how close is it to working condition? I am looking at raspberry to use for streaming video for drone live feed but being limited to 1080p25 is pretty bad. I need at least most popular 1080p and 720p formats with different fps support.
this hardware is not needed for streaming video when you can use the raspberry camera and wifi broadcasting
See https://befinitiv.wordpress.com/wifibro ... ideo-data/
How To ask Questions :- http://www.catb.org/esr/faqs/smart-questions.html
WARNING - some parts of this post may be erroneous YMMV

1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX
Covfefe

Orbital6
Posts: 140
Joined: Sat Aug 08, 2015 6:32 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Jan 11, 2017 6:46 pm

6by9 wrote:Orbital6 has managed to get most resolutions advertised in the EDID working. That's
..clipped..
The exception is 1080P30 - it looks like it needs a tweak to a register as it looks like the internal FIFO is overflowing. Hopefully that can be fixed so it works across all resolutions, otherwise it'll be an extra tweak.
Code at https://github.com/orbitinstasis/userla ... mi_in_hack.
There are a couple of cleanups required and then I'll merge it back into my main branch. Ideally we want to pull in some of the features of raspivid too, like command line parsing, and writing out motion vectors and timestamps.

This isn't the kernel driver yet, but does seem to be reasonably reliable.
Thanks. I do intend to request a pull after cleaning up my code and adding command line parsing, have been bogged down by another project.

IIRC my test proved all resolutions worked though i didn't test 1080p25. As mentioned 1080p30 didn't work but i think if someone (might be looking at you 6by9!) can do the heavily lifting with the right timings then i can modify the code to get it working neatly with the other resolutions - the current setup i've got should make that addition relatively easy.

WIX
Posts: 7
Joined: Mon Jan 16, 2017 10:45 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Jan 17, 2017 12:10 am

This is my first post, I'm new to RPI world, sorry about any obvious answer or ignored forum rule.
I try to use code posted by samsonx on their post of Sat Oct 22, 2016 8:02 pm. When I try samsonx's code with camera modules V1 and V2 versions on updated RPI3 I can't get any image on display. I get no errors, code execution seems OK but I try many width and height combinations without any image on preview. Any help will be appreciated.

User avatar
RaTTuS
Posts: 10174
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Jan 17, 2017 8:21 am

WIX wrote:This is my first post, I'm new to RPI world, sorry about any obvious answer or ignored forum rule.
I try to use code posted by samsonx on their post of Sat Oct 22, 2016 8:02 pm. When I try samsonx's code with camera modules V1 and V2 versions on updated RPI3 I can't get any image on display. I get no errors, code execution seems OK but I try many width and height combinations without any image on preview. Any help will be appreciated.
Unless you are using a TC358743 or other HDMI input device this thread is not for you
if you are using a camera on the CSI port then post a new thread in viewforum.php?f=28 detailing as much info as possible and what you have done what images you are using
How To ask Questions :- http://www.catb.org/esr/faqs/smart-questions.html
WARNING - some parts of this post may be erroneous YMMV

1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX
Covfefe

WIX
Posts: 7
Joined: Mon Jan 16, 2017 10:45 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Jan 17, 2017 9:28 am

Thank you RaTTuS , may be I need to start new thread but I start here because what I need is get raw video from camera module V2 , resize in real time inside isp module and preview in real time. This is exactly the things Samsonx's source code is seems to do. I know this thread is mainly intended for Toshiba HDMI to CSI converter but to peoples who need gpu processing disable and real time video (I have weird distortion on my images due lens shading , AWB, etc because I change camera lens but when I get RAW full FOV images from camera they are OK instead processed images have hue distortion with my lens). Samsonx's code on this thread seems to be the closest place to get raw image from camera, real time resize inside isp and preview that's why I start here but I can't get any preview on that code. I think vc.ril.rawcam is not activating camera module and I need to do manually by I2C, that's right? I need to use vc.ril.rawcam and custom I2C communication to camera? What are the capabilities of vc.ril.rawcam component? Which image you suggest to use on RPI3 to get this working(I need vc.ril.isp module with resize capability and vc.ril.rawcam working with 2x2 binned Full FOV 1640x922 on imx219 sensor( cam mod V2)? Thanks for any help and sorry about obvious questions I was deep searching but get ambiguous results and death repo branches on this topic. But with 6by9 isp advances I think is possible now raw real time video on RPI so users can do basic custom processing on real time without gpu enhancements (who works fine but are undesirables on certain circumstances).

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6328
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Jan 17, 2017 10:16 am

WIX wrote:Thank you RaTTuS , may be I need to start new thread but I start here because what I need is get raw video from camera module V2 , resize in real time inside isp module and preview in real time. This is exactly the things Samsonx's source code is seems to do. I know this thread is mainly intended for Toshiba HDMI to CSI converter but to peoples who need gpu processing disable and real time video (I have weird distortion on my images due lens shading , AWB, etc because I change camera lens but when I get RAW full FOV images from camera they are OK instead processed images have hue distortion with my lens). Samsonx's code on this thread seems to be the closest place to get raw image from camera, real time resize inside isp and preview that's why I start here but I can't get any preview on that code. I think vc.ril.rawcam is not activating camera module and I need to do manually by I2C, that's right? I need to use vc.ril.rawcam and custom I2C communication to camera? What are the capabilities of vc.ril.rawcam component? Which image you suggest to use on RPI3 to get this working(I need vc.ril.isp module with resize capability and vc.ril.rawcam working with 2x2 binned Full FOV 1640x922 on imx219 sensor( cam mod V2)? Thanks for any help and sorry about obvious questions I was deep searching but get ambiguous results and death repo branches on this topic. But with 6by9 isp advances I think is possible now raw real time video on RPI so users can do basic custom processing on real time without gpu enhancements (who works fine but are undesirables on certain circumstances).
Samsonx's code is for the TI ds90uh929 and ds90uh940 chips, as noted at viewtopic.php?f=38&t=120702&start=100#p1045163
It will not work at all with OV5647 (V1) or IMX219 (V2) camera modules, nor the TC358743 HDMI to CSI chip.

vc.ril.isp does NOT currently support Bayer input, so it can't do anything useful with Bayer sensors such as the OV5647 or IMX219. Adding that is still on my to-do list, but Bayer throws in so many more configuration items that absolutely have to be addressed that it's not as simple as RGB or YUV input.

If you're wanting to discuss interfacing to the camera modules please use the thread in the Camera forum. This one is specifically about the TC358743 HDMI to CSI chip.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

WIX
Posts: 7
Joined: Mon Jan 16, 2017 10:45 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Jan 17, 2017 11:00 am

Thank you 6by9 for clarify me. I'll move to suggested thread in the Camera forum.

sandmen
Posts: 2
Joined: Tue Jan 17, 2017 9:02 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Tue Jan 17, 2017 9:09 pm

Gent's, short question.
I need to print out the Image size to stdout.
For RaspiCam, I found where the application is writing to stdout Buffer.
But when I Connect the TC-HDMI Bridge, it seems the Raspivid, use a other function, to print out the stream to stdout.
I didn't find the correct position... :-(

A hint would be very nice.

Thanks

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6328
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Jan 18, 2017 9:57 am

sandmen wrote:Gent's, short question.
I need to print out the Image size to stdout.
For RaspiCam, I found where the application is writing to stdout Buffer.
But when I Connect the TC-HDMI Bridge, it seems the Raspivid, use a other function, to print out the stream to stdout.
I didn't find the correct position... :-(

A hint would be very nice.
Raspivid with the TC358743 is not a supported configuration. It works as it was done for a demo, but is not supported for any further work.
It only supports 720P input, but then the ISP block inside the BCM283x will resize that image to whatever you ask for (-w and -h command line parameters).
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

sandmen
Posts: 2
Joined: Tue Jan 17, 2017 9:02 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Jan 18, 2017 4:03 pm

Thanks for the answer.
I know, that this bridges are no really supported. But my RaspiCam got damaged, and during the wait time,
I want to proceed.....

I modify the raspivid source, during the use with the raspi cam, to print out the image size, before the binary data comes.
The application, is transmitting this bytes, and it works nice.
If I know the image size, I can optimize hopefully my transmission and encoding stuff.

Why ever, my raspi cam died :-(, now I thought, use the HDMI Bridge. In general it works, but the write function to stdout,
is not on the same place where it was with raspicam.

That is the reason, why I ask, where is the function which print the data to stdout, when this bridge is used with raspivid and the option "-o -" ?

Thanks
Peter
6by9 wrote:
sandmen wrote:Gent's, short question.
I need to print out the Image size to stdout.
For RaspiCam, I found where the application is writing to stdout Buffer.
But when I Connect the TC-HDMI Bridge, it seems the Raspivid, use a other function, to print out the stream to stdout.
I didn't find the correct position... :-(

A hint would be very nice.
Raspivid with the TC358743 is not a supported configuration. It works as it was done for a demo, but is not supported for any further work.
It only supports 720P input, but then the ISP block inside the BCM283x will resize that image to whatever you ask for (-w and -h command line parameters).

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6328
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Fri Jan 20, 2017 9:09 pm

sandmen wrote:Thanks for the answer.
I know, that this bridges are no really supported. But my RaspiCam got damaged, and during the wait time,
I want to proceed.....

I modify the raspivid source, during the use with the raspi cam, to print out the image size, before the binary data comes.
The application, is transmitting this bytes, and it works nice.
If I know the image size, I can optimize hopefully my transmission and encoding stuff.

Why ever, my raspi cam died :-(, now I thought, use the HDMI Bridge. In general it works, but the write function to stdout,
is not on the same place where it was with raspicam.

That is the reason, why I ask, where is the function which print the data to stdout, when this bridge is used with raspivid and the option "-o -" ?
I don't see what the issue is here. If you're using the unsupported HDMI to CSI GPU driver, then exactly the same raspivid code is valid, as the data comes through exactly the same path.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

Realizator
Posts: 25
Joined: Thu Jul 14, 2016 12:53 pm
Contact: Website

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Fri Feb 03, 2017 7:19 am

Dear 6by9, i have a question with TC358743 and stereoscopic mode (viewtopic.php?f=43&t=85012&start=75).
I can simultaneously connect and work with two devices - native Pi cameras or HDMI-in capture devices. Also I can take a video in two ways - as independent simultaneous stream from both devices, or in stereo mode.
When I connect two Pi cameras - it works perfect in all cases (stereo or independent capture).
When I connect one camera and one TC358743 - it also work great in both modes.
But when I connect two HDMI-in TC358743, I have this error in each mode:

Code: Select all

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
What am I doing wrong?

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6328
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Fri Feb 03, 2017 9:13 am

Realizator wrote:But when I connect two HDMI-in TC358743, I have this error in each mode:

Code: Select all

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
What am I doing wrong?
Trying to do something totally inappropriate with an unsupported driver?
What do you think two TC358743 boards being treated as stereoscopic does for you?
The camera modules can be synchronised (even if it isn't perfect), but HDMI inputs just aren't. So running them in stereoscopic mode just won't work. And as there are no AGC or AWB control loops, there's no need to have the tuners slaved together

As I've stated before, I'm not going to be making changes to the GPU blob for TC358743 - it is unsupported. At a guess increasing gpu_mem may help.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

Realizator
Posts: 25
Joined: Thu Jul 14, 2016 12:53 pm
Contact: Website

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Fri Feb 03, 2017 10:28 am

6by9 wrote: Trying to do something totally inappropriate with an unsupported driver?
What do you think two TC358743 boards being treated as stereoscopic does for you?
The camera modules can be synchronised (even if it isn't perfect), but HDMI inputs just aren't. So running them in stereoscopic mode just won't work. And as there are no AGC or AWB control loops, there's no need to have the tuners slaved together

As I've stated before, I'm not going to be making changes to the GPU blob for TC358743 - it is unsupported. At a guess increasing gpu_mem may help.
We don't plan to use two HDMI in stereo mode - we use it as two independent cameras. That's why we don't need synchronization of AGC, AWB etc. We just try to capture video from both devices simultaneously. It works in all configurations by starting two raspivid, except two TC358743 modules.
As for memory increase - I'll try this, thank you!

Orbital6
Posts: 140
Joined: Sat Aug 08, 2015 6:32 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Mon Feb 06, 2017 4:46 pm

Dear all,

Here is a fork of the app which (with the help of 6by9) allows all resolutions to work up to 1080p30 (not inclusive).

please call the app with -h to see further details on how to use it.

Summary:
*auto soft-resets the toshiba ic at execution
*ctrl+c handles cleanup and exit correctly;
*All resolutions should work; and,
*command line flags for:
**time (no time flag defaults to infinite playback), '0' plays back indefinitely;
**output file name (with a default); and,
**a flag to not save an output file.

I hope to merge it with 6by9's repo if accepted.
Last edited by Orbital6 on Sun Feb 12, 2017 9:51 pm, edited 1 time in total.

snazbaz
Posts: 37
Joined: Sun Jun 02, 2013 11:08 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Sun Feb 12, 2017 5:44 pm

Orbital6 wrote:Dear all,

Here is a fork of the app which (with the help of 6by9) allows all resolutions to work up to 1080p30 (not inclusive).
Nice one! FYI I've tested this and had good results with a Sony A6000 (720p50), Sony A7R (720p50) and Apple TV (720p60) so far.

Orbital6
Posts: 140
Joined: Sat Aug 08, 2015 6:32 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Sun Feb 12, 2017 9:52 pm

snazbaz wrote:
Orbital6 wrote:Dear all,

Here is a fork of the app which (with the help of 6by9) allows all resolutions to work up to 1080p30 (not inclusive).
Nice one! FYI I've tested this and had good results with a Sony A6000 (720p50), Sony A7R (720p50) and Apple TV (720p60) so far.
That's great to hear, thanks for testing.

snazbaz
Posts: 37
Joined: Sun Jun 02, 2013 11:08 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Feb 15, 2017 4:19 pm

I have found that if left for some period of time, a './raspi_tc358743 -n' will always stop processing data at some point in my setup.

By 'stop processing data', more specifically encoder_buffer_callback() just stops getting called and I don't see any errors logged.

Has anyone seen this on their setup, and/or got any ideas of what I could/should do to debug this further?

I don't believe it's triggered by my input sources dropping out or anything like that (but can't rule this out yet either).

I also haven't been able to figure out any significant pattern for how long it survives, it can be anywhere from a 5 seconds to 1 hour but most commonly I find it'll in the 10-20 minute range.

Restarting raspi_tc3586743 immediately afterwards and it's always fine again until the next time.

Orbital6
Posts: 140
Joined: Sat Aug 08, 2015 6:32 pm

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Feb 15, 2017 4:34 pm

snazbaz wrote:I have found that if left for some period of time, a './raspi_tc358743 -n' will always stop processing data at some point in my setup.

By 'stop processing data', more specifically encoder_buffer_callback() just stops getting called and I don't see any errors logged.

Has anyone seen this on their setup, and/or got any ideas of what I could/should do to debug this further?

I don't believe it's triggered by my input sources dropping out or anything like that (but can't rule this out yet either).

I also haven't been able to figure out any significant pattern for how long it survives, it can be anywhere from a 5 seconds to 1 hour but most commonly I find it'll in the 10-20 minute range.

Restarting raspi_tc3586743 immediately afterwards and it's always fine again until the next time.
Thanks for testing.

Were the 'stop processing data' problems always linked to when you were using -n, or did it happen when you omitted -n, and used something like -t 0 as well?

-n isn't fantastically implemented and i might drop it, or let someone else have a go as it's not critical.

it's very likely the problem you're getting is linked to how i implemented -n, if you could possibly test out your setup with it omitted using -t 0 instead then let me know if the problem continues, if it doesn't then i'll omit -n / do something about it.

snazbaz
Posts: 37
Joined: Sun Jun 02, 2013 11:08 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Feb 15, 2017 4:37 pm

Orbital6 wrote: Were the 'stop processing data' problems always linked to when you were using -n, or did it happen when you omitted -n, and used something like -t 0 as well?

-n isn't fantastically implemented and i might drop it, or let someone else have a go as it's not critical.

it's very likely the problem you're getting is linked to how i implemented -n, if you could possibly test out your setup with it omitted using -t 0 instead then let me know if the problem continues, if it doesn't then i'll omit -n / do something about it.
Ah, no the pattern seems to be the same even if I'm writing the output somewhere, I just fell back to -n to try and isolate the problem to a more minimal case.

snazbaz
Posts: 37
Joined: Sun Jun 02, 2013 11:08 am

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Feb 15, 2017 4:40 pm

I should also mention that it's sitting happily in the while(called_quit != 1) loop when this happens. It will also happily accept a ctrl-c signal and exit gracefully.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6328
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: HDMI to CSI-2 via TC358743 on kernel 4.1

Wed Feb 15, 2017 4:54 pm

snazbaz wrote:I have found that if left for some period of time, a './raspi_tc358743 -n' will always stop processing data at some point in my setup.

By 'stop processing data', more specifically encoder_buffer_callback() just stops getting called and I don't see any errors logged.

Has anyone seen this on their setup, and/or got any ideas of what I could/should do to debug this further?

I don't believe it's triggered by my input sources dropping out or anything like that (but can't rule this out yet either).

I also haven't been able to figure out any significant pattern for how long it survives, it can be anywhere from a 5 seconds to 1 hour but most commonly I find it'll in the 10-20 minute range.

Restarting raspi_tc3586743 immediately afterwards and it's always fine again until the next time.
I'm assuming that the image on screen stalls as well? At the same as the callbacks stop, or a smidgen afterwards?
What firmware are you running? "vcgencmd version". There was a fix required for video_encode (https://github.com/raspberrypi/firmware/issues/728), so rpi-update between 30 Dec and 13 Feb will stall in video_encode after a while :oops:
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

Return to “Graphics, sound and multimedia”