Enigma2 dvbmediasink video/x-xvid -> video/mpeg,mpegversion=4

Αθανάσιος Οικονόμου athoik at gmail.com
Fri Oct 24 09:45:49 PDT 2014


Hello,


Enigma2 (Opensource framebuffer GUI from STB) uses a custom video and
audio sink named dvbmediasink[1] that make use of hardware drivers
(with hardware acceleration).

We are trying to port dvbmediasink to GStreamer 1.0 and now we have
one more problem to solve.

Back to GStreamer 0.10 days xvid was reveived by dvbmediasink as
video/x-xvid. But this is not hapening any more because of the
following commits:

video/x-xvid -> video/mpeg,mpegversion=4
http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/gst-libs/gst/riff/riff-media.c?id=ba7d738d9e53b33907c607b8003014f7b5b0cb7f
http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9bf90f47cf789876c91d807bc70866f23875d3a5

Now we are receiving video/mpeg and dvbmediasink uses wrong ioctl
against hardware drivers, causing xvid videos not playing smoothly any
more. (video/mpeg
http://sourceforge.net/p/openpli/gst-plugin-dvbmediasink/ci/gst-1.0/tree/gstdvbvideosink.c#l1297
informs drivers with ioctl 4 and video/x-xvid
http://sourceforge.net/p/openpli/gst-plugin-dvbmediasink/ci/gst-1.0/tree/gstdvbvideosink.c#l1455
informs drivers with ioctl 10)

We tried to get initial fourcc information using the following ways
inside gst_dvbvideosink_set_caps:

const char* fourccc = gst_structure_get_string(structure, "format");
fourcc = GST_STR_FOURCC(value);

GstVideoInfo vinfo;
gst_video_info_from_caps (&vinfo, caps)
fourcc = gst_video_format_to_fourcc (GST_VIDEO_INFO_FORMAT(&vinfo));

But unfortunatelly none of the above returned something in fourcc.

Reverting the "video/x-xvid -> video/mpeg,mpegversion=4" changes makes
video/x-xvid received in gst_dvbvideosink_set_caps.

Is there any other way to find that video/mpeg, mpegversion=4 is
actually from video/x-xvid? Or the only solution is to revert above
changes?


[1] http://sourceforge.net/p/openpli/gst-plugin-dvbmediasink/ci/gst-1.0/tree/


More information about the gstreamer-devel mailing list