GNOME Bugzilla – Bug 570009
Request: PVN demuxer
Last modified: 2013-07-23 13:13:43 UTC
It seems like GStreamer doesn't support the PVN format. It would be wonderful if it did. This is essentially just a file with many PNM's, so the format is really simple. It is documented at http://www.cse.yorku.ca/~jgryn/research/pvnspecs.html -- this site also contains source code for working with PVN files. The format is popular in research areas such as Video Processing since it is easy to dump your data in to a PVN file. Coriander (a nice Free program for working with Firewire cameras) also dumps movies in this format, which is another reason why it would be nice if GStreamer supported this format. Thanks for your great effort :-)
It is indeed a simple format, although I couldn't find any samples on the internet. Can you upload some? Possibly of the various image formats?
I recorded a small movie for you using 'Coriander'. Due to the lack of compression these files quickly becomes quite large, so I've compressed it and uploaded it to http://image.diku.dk/hauberg/test-0000000000.pvn.bz2 Thanks
Created attachment 146260 [details] [review] Adds a PVN demux to pnm plugin. Quickly wrote one for testing, I know there are some things to improve in it. The spec says that little endian machines should reorder its pixels, but I don't know if this is to be in pvndemux or in pnmdec. What do you think? Do pnm files have endianness restrictions? Are they all big endian as in pvn?
Nevermind, I understood the spec, the endianness change is only needed when each pixel uses more than a byte, which is not the case. Still, the output is with its colors mixed and I don't know why. Could you help me out here?
Soren, could you help and answer the question?
Sadly, I don't know the answer. I've stumbled upon the format as I use Coriander for recording purposes. One solution would be to look at the Coriander code and see how it writes data to disk.
If you have a link for Coriander please add it here for reference.
Ohh, sorry about that. You can find Coriander at http://damien.douxchamps.net/ieee1394/coriander/
Thiagos, what about adding this to git?
ping?
søren, could you please regenerate the patch. > git am 0001-pnm-adds-pvndemux.patch Applying: pnm: adds pvndemux /home/ensonic/projects/gstreamer/0.10/gst-plugins-bad/.git/rebase-apply/patch:455: trailing whitespace. #define GST_PVNDEMUX_HEADER_MAGIC 0 /home/ensonic/projects/gstreamer/0.10/gst-plugins-bad/.git/rebase-apply/patch:456: trailing whitespace. #define GST_PVNDEMUX_HEADER_WIDTH 1 /home/ensonic/projects/gstreamer/0.10/gst-plugins-bad/.git/rebase-apply/patch:457: trailing whitespace. #define GST_PVNDEMUX_HEADER_HEIGHT 2 /home/ensonic/projects/gstreamer/0.10/gst-plugins-bad/.git/rebase-apply/patch:458: trailing whitespace. #define GST_PVNDEMUX_HEADER_DEPTH 3 /home/ensonic/projects/gstreamer/0.10/gst-plugins-bad/.git/rebase-apply/patch:459: trailing whitespace. #define GST_PVNDEMUX_HEADER_MAXCOLOUR 4 error: patch failed: gst/pnm/Makefile.am:1 error: gst/pnm/Makefile.am: patch does not apply error: patch failed: gst/pnm/gstpnm.c:22 error: gst/pnm/gstpnm.c: patch does not apply Patch failed at 0001 pnm: adds pvndemux
IIRC there was an issue with colorspaces with this code. Everything looked blue-ish. Didn't have time to check coriander and fix this properly.
Let's close this for now, nobody seems to be interested enough to port the patch to 1.0 and try to get it included.