Jump to content


Photo

GStreamer 1.0

gstreamer 1.0 openpli

  • Please log in to reply
2520 replies to this topic

Re: GStreamer 1.0 #221 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 5 November 2014 - 13:12

@Sjaaky

#2210 - no this patch is not required anymore

 

@littlesat

as Sjaaky explains

 

I'm not C proficient, any suggestions are welcome

 

In attachment is updated patch

- dts_avail variable was not explicitly initialized to FALSE

- fixed typo GST_DTS_BUFFER(buffer) was used instead of GST_DTS_BUFFER(self->prev_frame) when creating "packed" xvid/divx

 

Attached Files



Re: GStreamer 1.0 #222 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 5 November 2014 - 13:32

Sorry for next post, but cannot edit previous one

update:

- removed some whitespaces

 

Attached Files



Re: GStreamer 1.0 #223 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 5 November 2014 - 15:29

@athoik

 

I put xvid avi to mp4 and to mov format, but in that process was fourcc changed from xvid to plain mpeg4, so no xvid caps were detected and playback of video was not smooth anymore because of mpeg4 streamtype.

This is completely logical, because when put into another container, the avi-specific workarounds are no longer applicable.


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: GStreamer 1.0 #224 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 5 November 2014 - 20:00

@athoik
 
I put xvid avi to mp4 and to mov format, but in that process was fourcc changed from xvid to plain mpeg4, so no xvid caps were detected and playback of video was not smooth anymore because of mpeg4 streamtype.

This is completely logical, because when put into another container, the avi-specific workarounds are no longer applicable.


I cannot confirm the case with mkv container(video/x-matroska -> video/x-xvid).
 
GST_DEBUG="*dvbvideosink*:6" gst-launch-1.0 playbin uri=file:///file.mkv -v 2>&1 | grep "video/"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-matroska
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:src_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:src_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstPad:src: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink.GstProxyPad:proxypad7: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink.GstProxyPad:proxypad10: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:src: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:sink.GstProxyPad:proxypad8: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstIdentity:identity.GstPad:src: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:src: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
0:00:00.607000963   989   0x515d20 DEBUG           dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1308:gst_dvbvideosink_set_caps:<dvbvideosink0> set_caps video/x-xvid, framerate=(fraction)24000/1001, width=(int)640, height=(int)272, pixel-aspect-ratio=(fraction)1/1
0:00:00.607190037   989   0x515d20 INFO            dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1474:gst_dvbvideosink_set_caps:<dvbvideosink0> MIMETYPE video/x-xvid -> VIDEO_SET_STREAMTYPE, 10
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstSelectorPad:sink_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0.GstGhostPad:src_0.GstProxyPad:proxypad4: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ pixel-aspect-ratio\=\(fraction\)1/1"
mp4/mov/m4v etc (video/quicktime -> video/mpeg, mpegversion=4)
 
GST_DEBUG="*dvbvideosink*:6" gst-launch-1.0 playbin uri=file:///file.mp4 -v 2>&1 | grep "video/"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = "video/quicktime\,\ variant\=\(string\)iso"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstPad:src: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink.GstProxyPad:proxypad7: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink.GstProxyPad:proxypad10: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:src: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:sink.GstProxyPad:proxypad8: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstIdentity:identity.GstPad:src: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:src: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
0:00:00.455323555  1046   0x515720 DEBUG           dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1308:gst_dvbvideosink_set_caps:<dvbvideosink0> set_caps video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, profile=(string)advanced-simple, level=(string)5, codec_data=(buffer)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634, width=(int)640, height=(int)272, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1
0:00:00.458506296  1046   0x515720 INFO            dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1337:gst_dvbvideosink_set_caps:<dvbvideosink0> MIMETYPE video/mpeg4 -> VIDEO_SET_STREAMTYPE, 4
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstSelectorPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0.GstGhostPad:src_0.GstProxyPad:proxypad4: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ systemstream\=\(boolean\)false\,\ profile\=\(string\)advanced-simple\,\ level\=\(string\)5\,\ codec_data\=\(buffer\)000001b0f5000001b5090000010000000120088685770307d31404221463000001b244697658353033623133393370000001b25876694430303634\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
GST_DEBUG="*dvbvideosink*:6" gst-launch-1.0 playbin uri=file:///file.mov -v 2>&1 | grep "video/"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/quicktime
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:src_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstPad:src: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink.GstProxyPad:proxypad7: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:src: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:sink.GstProxyPad:proxypad8: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
0:00:00.550711111  1089   0x515720 DEBUG           dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1308:gst_dvbvideosink_set_caps:<dvbvideosink0> set_caps video/mpeg, mpegversion=(int)4, width=(int)640, height=(int)272, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1
0:00:00.550932481  1089   0x515720 INFO            dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1337:gst_dvbvideosink_set_caps:<dvbvideosink0> MIMETYPE video/mpeg4 -> VIDEO_SET_STREAMTYPE, 4
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstSelectorPad:sink_0: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0.GstGhostPad:src_0.GstProxyPad:proxypad4: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0.GstGhostPad:src_0.GstProxyPad:proxypad4: caps = "video/mpeg\,\ mpegversion\=\(int\)4\,\ width\=\(int\)640\,\ height\=\(int\)272\,\ framerate\=\(fraction\)24000/1001\,\ pixel-aspect-ratio\=\(fraction\)1/1"
Here is the original avi file (video/x-msvideo -> video/x-xvid)
 
GST_DEBUG="*dvbvideosink*:6" gst-launch-1.0 playbin uri=file:///file.avi -v 2>&1 | grep "video/"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-msvideo
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:sink_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstPad:src: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink.GstProxyPad:proxypad7: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink.GstProxyPad:proxypad10: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
0:00:00.722865778  1003   0x515ec0 DEBUG           dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1308:gst_dvbvideosink_set_caps:<dvbvideosink0> set_caps video/x-xvid, framerate=(fraction)24000/1001, width=(int)640, height=(int)272
0:00:00.723025518  1003   0x515ec0 INFO            dvbvideosink /opt/openpli/openpligst/build/tmp/work/formuler1-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r69/git/gstdvbvideosink.c:1474:gst_dvbvideosink_set_caps:<dvbvideosink0> MIMETYPE video/x-xvid -> VIDEO_SET_STREAMTYPE, 10
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin.GstGhostPad:sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstPlaySink:playsink.GstGhostPad:video_sink: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstInputSelector:inputselector0.GstSelectorPad:sink_0: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0.GstGhostPad:src_0.GstProxyPad:proxypad4: caps = "video/x-xvid\,\ framerate\=\(fraction\)24000/1001\,\ width\=\(int\)640\,\ height\=\(int\)272"
So xvid seems to work just fine with avi and mkv container using 0001-Revert-video-x-xvid-video-mpeg-mpegversion-4.patch patch.

For mp4/mov/m4v (quicktime) formats xvid is not recognized.


Also with latest patch 0001-dvbmediasink-add-all-available-timestamps-DTS-PTS-to.patch xvid seems to work without problems any more ;)
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #225 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 5 November 2014 - 20:36

If you re-encapsulate divx video with b frames to mkv (using mkvmerge), it will complain but "do the right thing", it will "unpack" the "packed" frames and store them independently with the proper PTS and DTS values. Did you know mkv video doesn't have a framerate? It all comes down to the timestamps. I am not 100% sure about mp4, but afaik it's quite similar.


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: GStreamer 1.0 #226 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 6 November 2014 - 07:00

What is Packed Bitstream?

Many Xvid encoded movies are encoded using Packed Bitstream. 
What is it? 
First of all, for me it's important since 
I have a stand-alone DVD player that can play Xvid encoded avi files,
but only if they don't use packed bitstream...

http://itsjustonesandzeros.blogspot.com/2007/01/what-is-packed-bitstream.html
 
So most probably our problem is to detect packed bitstream.

Edited by athoik, 6 November 2014 - 07:02.

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #227 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 6 November 2014 - 09:37

So doesn't gstreamer detect that itself then? You must dive deep into avi to detect it, I think it's gstreamer's job...


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: GStreamer 1.0 #228 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 6 November 2014 - 10:33

 

@athoik

 

I put xvid avi to mp4 and to mov format, but in that process was fourcc changed from xvid to plain mpeg4, so no xvid caps were detected and playback of video was not smooth anymore because of mpeg4 streamtype.

This is completely logical, because when put into another container, the avi-specific workarounds are no longer applicable.

 

Well I look a bit closer and only in AVI is used fourcc identificator, in MP4 there is nothing like fourcc, so this explains detected mpeg4 caps after remux to mp4. - http://forum.doom9.o...ad.php?p=511311

It looks like mp4 was not smooth anymore(low fps) because it stayed "packed" after remux - http://forum.videohe...y-AVI-MP4-issue

 

 

What is Packed Bitstream?

Many Xvid encoded movies are encoded using Packed Bitstream.
What is it?
First of all, for me it's important since
I have a stand-alone DVD player that can play Xvid encoded avi files,
but only if they don't use packed bitstream...

http://itsjustonesan...-bitstream.html
So most probably our problem is to detect packed bitstream.

 

If I understand this correctly in gstdvbvideosink.c render function, there is routine that packs unpacked xvid/divx5, which means that decoder handles packed xvid/divx5 just fine. There is also detection if stream is packed or unpacked, for now all of my AVI xvid were already packed:

root@et4x00:~# GST_DEBUG=dvbvideosink:5 gst-launch-1.0 playbin --gst-debug-no-color uri='file:///media/net/DOMA/Serialy/Cheers - Season 10/cheers.s10e01.Baby Balk.avi'
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
gstdvbvideosink.c:1816:gst_dvbvideosink_change_state:<dvbvideosink0> GST_STATE_CHANGE_NULL_TO_READY
gstdvbvideosink.c:1703:gst_dvbvideosink_start:<dvbvideosink0> start
0:00:03.163727368   445   0x516f20 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:1819:gst_dvbvideosink_change_state:<dvbvideosink0> GST_STATE_CHANGE_READY_TO_PAUSED
WARNING: from element /GstPlayBin:playbin0/GstPlaySink:playsink: No volume control found
Additional debug info:
/home/marko/git/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0-plugins-base/1.4.3-r7/gst-plugins-base-1.4.3/gst/playback/gstplaysink.c(2862): gen_audio_chain (): /GstPlayBin:playbin0/GstPlaySink:playsink:
Volume/mute is not available
0:00:06.702009107   445 0x76d94260 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:384:gst_dvbvideosink_event:<dvbvideosink0> EVENT stream-start
0:00:06.737982477   445 0x76d94260 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:384:gst_dvbvideosink_event:<dvbvideosink0> EVENT caps
0:00:06.747735144   445 0x76d94260 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:1308:gst_dvbvideosink_set_caps:<dvbvideosink0> set_caps video/x-xvid, framerate=(fraction)24000/1001, width=(int)544, height=(int)400
0:00:06.754324663   445 0x76d94260 INFO            dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:1474:gst_dvbvideosink_set_caps:<dvbvideosink0> MIMETYPE video/x-xvid -> VIDEO_SET_STREAMTYPE, 10
0:00:06.771527700   445 0x76d94260 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:384:gst_dvbvideosink_event:<dvbvideosink0> EVENT segment
0:00:06.776201070   445 0x76d94260 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:481:gst_dvbvideosink_event:<dvbvideosink0> GST_EVENT_NEWSEGMENT rate=1.000000

0:00:06.779715774   445 0x76d94260 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:384:gst_dvbvideosink_event:<dvbvideosink0> EVENT tag
0:00:06.784301403   445 0x76d94260 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:384:gst_dvbvideosink_event:<dvbvideosink0> EVENT tag
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
0:00:07.001813440   445   0x50f1a0 DEBUG           dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:1828:gst_dvbvideosink_change_state:<dvbvideosink0> GST_STATE_CHANGE_PAUSED_TO_PLAYING
0:00:07.014489033   445 0x76d94260 INFO            dvbvideosink /home/marko/git/openpli-oe-core/build/tmp/work/et4x00-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+27b18f56cf-r71/git/gstdvbvideosink.c:811:gst_dvbvideosink_render:<dvbvideosink0> DivX503b1393p seen... already packed!
New clock: GstSystemClock

I think there is now only one issue left with xvid and that is not detected xvid caps in AVI container. This means that streamtype 4(mpeg4) is used instead of streamtype 10(AVI - xvid(packed)).

 

I can see these four solutions:

 

1. try to convince gstreamer devs to use xvid mimetype again or add some info to mpeg4 caps

2. revert gstreamer patch which removes xvid mimetype

3. add "fourcc" field when creating mpeg4 caps, (exactly as wmv is done), use "fourcc" field for xvid detection and update caps for dvbvideosink

4. try to get fourcc info in dvbvideosink, (maybe use upstream elements?)

 

1 - preffered solution, already tried by athoik

2 - more gstreamer commits to revert, possible conflicts in future gstreamer updates

3 - quite clean and easy to make patch for gstreamer, also we can quickly adjust it in case gstreamer devs in future add some info about xvid to mpeg4 caps

4 - this is hacking, we should get this info from caps

 

I prefer 1.) and 3.) solution.

 

What do you think?


Edited by mx3L, 6 November 2014 - 10:36.


Re: GStreamer 1.0 #229 pieterg

  • PLi® Core member
  • 32,766 posts

+245
Excellent

Posted 6 November 2014 - 11:11

I prefer 1 and 3 as well



Re: GStreamer 1.0 #230 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 6 November 2014 - 11:27

I prefer 1 and 3 as well. Also we can try close ticket related with 1 by providing a patch for 3.

Raspberry Pi (another broadcom product) also used to have problem with packed B frames, they workaround it in the player and later a fix was provided in the PI firmware.

[rbp/omxplayer] fixed playback of mpeg4 with packed B frames. thx popcornmix for the workaround
https://github.com/xbmc/xbmc/commit/e08fee30d1c9ca755ddb5c9833a19b8d1cbabff5

[rbp/omxplayer] reverted e08fee3 the PI firmware handles this now. 
https://github.com/xbmc/xbmc/commit/f868fc4808e19bee60d7a83e8aa5f09b3bc861c2

// avi files with packed B frames have "not-coded" dummy frames that decoder doesn't like
if (m_codingType == OMX_VIDEO_CodingMPEG4 && iSize <= 7)
  return true;
So i just wondering, maybe we can do the same? And not unpack packed B frames any more?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #231 littlesat

  • PLi® Core member
  • 57,166 posts

+698
Excellent

Posted 6 November 2014 - 14:43

I prefer 3 and of and when 1 is doen revert 3

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: GStreamer 1.0 #232 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 6 November 2014 - 16:07

"fourcc" is something you will only find in AVI anyway.


Edited by Erik Slagter, 6 November 2014 - 16:08.

* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: GStreamer 1.0 #233 addybo

  • Senior Member
  • 45 posts

0
Neutral

Posted 6 November 2014 - 17:35

mhm gst1 doenst build for me...

 

some problem with libungif giflib, they are in  conflict in building



Re: GStreamer 1.0 #234 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 6 November 2014 - 18:55

@mx3L,

Can you try the following patch (with 0001-dvbmediasink-add-all-available-timestamps-DTS-PTS-to.patch also applied) and give results ;)

diff --git a/gstdvbvideosink.c b/gstdvbvideosink.c
index d8d5635..c0cd85a 100755
--- a/gstdvbvideosink.c
+++ b/gstdvbvideosink.c
@@ -76,7 +76,7 @@
 #include <gst/gst.h>
 #include <gst/base/gstbasesink.h>

-#define PACK_UNPACKED_XVID_DIVX5_BITSTREAM
+#undef PACK_UNPACKED_XVID_DIVX5_BITSTREAM

 #include "common.h"
 #include "gstdvbvideosink.h"
@@ -1304,10 +1304,10 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
                                {
                                        GST_INFO_OBJECT (self, "MPEG4 have codec data");
                                        self->codec_data = gst_value_get_buffer(codec_data);
-                                       self->codec_type = CT_MPEG4_PART2;
                                        gst_buffer_ref (self->codec_data);
                                }
-                               streamtype = 4;
+                               streamtype = 10;
+                               self->codec_type = CT_MPEG4_PART2;
                                GST_INFO_OBJECT (self, "MIMETYPE video/mpeg4 -> VIDEO_SET_STREAMTYPE, 4");
                        }
                        break;
@@ -1442,6 +1442,7 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
        else if (!strcmp (mimetype, "video/x-xvid"))
        {
                streamtype = 10;
+               self->codec_type = CT_MPEG4_PART2;
 #ifdef PACK_UNPACKED_XVID_DIVX5_BITSTREAM
                self->must_pack_bitstream = TRUE;
 #endif

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #235 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 6 November 2014 - 21:02

@athoik,

 

good idea! Found one video which is not smooth now - it's XVID AVI unpacked, other versions worked.

 

When enabled packing, every XVID (AVI(packed), AVI(unpacked), MPEG4(unpacked) works smoothly. We need to test also other mpeg4 standard codecs(3ivx,..) with streamtype 10.

diff --git a/gstdvbvideosink.c b/gstdvbvideosink.c
index d8d5635..5ed78b7 100755
--- a/gstdvbvideosink.c
+++ b/gstdvbvideosink.c
@@ -1304,10 +1304,13 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
                                {
                                        GST_INFO_OBJECT (self, "MPEG4 have codec data");
                                        self->codec_data = gst_value_get_buffer(codec_data);
-                                       self->codec_type = CT_MPEG4_PART2;
                                        gst_buffer_ref (self->codec_data);
                                }
-                               streamtype = 4;
+                               streamtype = 10;
+                               self->codec_type = CT_MPEG4_PART2;
+#ifdef PACK_UNPACKED_XVID_DIVX5_BITSTREAM
+                               self->must_pack_bitstream = TRUE;
+#endif
                                GST_INFO_OBJECT (self, "MIMETYPE video/mpeg4 -> VIDEO_SET_STREAMTYPE, 4");
                        }
                        break;
@@ -1441,6 +1444,7 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
        }
        else if (!strcmp (mimetype, "video/x-xvid"))
        {
+               self->codec_type = CT_MPEG4_PART2;
                streamtype = 10;
 #ifdef PACK_UNPACKED_XVID_DIVX5_BITSTREAM
                self->must_pack_bitstream = TRUE;


Re: GStreamer 1.0 #236 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 6 November 2014 - 21:33

Sorry, ment that unpacked xvid in MP4 format works :)


Edited by mx3L, 6 November 2014 - 21:33.


Re: GStreamer 1.0 #237 littlesat

  • PLi® Core member
  • 57,166 posts

+698
Excellent

Posted 6 November 2014 - 22:00

So all (ex)samples you tried do work now?

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: GStreamer 1.0 #238 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 6 November 2014 - 22:01

So using streamtype = 10 and unpack packed bitstream we are ok?

Do we still need to get back xvid now?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: GStreamer 1.0 #239 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 6 November 2014 - 22:37

@littlesat

yes, xvid samples worked smoothly

 

@athoik

So with this change we tell decoder that every mpeg4 video should be treated like mpeg4(xvid). This could work(looks like it) for most videos since divx/xvid are probably the most widespread mpeg4 standard codecs.

 

Codecs with these fourcc should be tested, since before this change streamtype 4 would be used.

    case GST_MAKE_FOURCC ('3', 'I', 'V', '1'):
    case GST_MAKE_FOURCC ('3', 'I', 'V', '2'):
    case GST_MAKE_FOURCC ('E', 'M', '4', 'A'):
    case GST_MAKE_FOURCC ('E', 'P', 'V', 'H'):
    case GST_MAKE_FOURCC ('F', 'V', 'F', 'W'):
    case GST_MAKE_FOURCC ('I', 'N', 'M', 'C'):
    case GST_MAKE_FOURCC ('D', 'I', 'G', 'I'):
    case GST_MAKE_FOURCC ('D', 'M', '2', 'K'):
    case GST_MAKE_FOURCC ('D', 'C', 'O', 'D'):
    case GST_MAKE_FOURCC ('M', 'V', 'X', 'M'):
    case GST_MAKE_FOURCC ('P', 'M', '4', 'V'):
    case GST_MAKE_FOURCC ('S', 'M', 'P', '4'):
    case GST_MAKE_FOURCC ('D', 'X', 'G', 'M'):
    case GST_MAKE_FOURCC ('V', 'I', 'D', 'M'):
    case GST_MAKE_FOURCC ('M', '4', 'T', '3'):
    case GST_MAKE_FOURCC ('G', 'E', 'O', 'X'):
    case GST_MAKE_FOURCC ('M', 'P', '4', 'V'):
    case GST_MAKE_FOURCC ('m', 'p', '4', 'v'):

So after testing, streamtype = 10 with pack unpacked bitstream set, should be enough, we don't need to revert xvid-mimetype patch



Re: GStreamer 1.0 #240 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 7 November 2014 - 09:43

Patches for third solution

--- a/gst-libs/gst/riff/riff-media.c
+++ b/gst-libs/gst/riff/riff-media.c
@@ -486,7 +486,8 @@ gst_riff_create_video_caps (guint32 codec_fcc,
     case GST_MAKE_FOURCC ('R', 'M', 'P', '4'):
       caps = gst_caps_new_simple ("video/mpeg",
           "mpegversion", G_TYPE_INT, 4,
-          "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
+          "systemstream", G_TYPE_BOOLEAN, FALSE,
+          "fourcc", G_TYPE_UINT, codec_fcc, NULL);
       if (codec_name)
         *codec_name = g_strdup ("MPEG-4");
       break;

diff --git a/gstdvbvideosink.c b/gstdvbvideosink.c
index d8d5635..e6f8002 100755
--- a/gstdvbvideosink.c
+++ b/gstdvbvideosink.c
@@ -1299,6 +1299,22 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
                        break;
                        case 4:
                        {
+                               streamtype = 4;
+#if GST_VERSION_MAJOR >= 1
+                               guint32 fourcc = 0;
+                               gst_structure_get_uint(structure, "fourcc", &fourcc);
+                               switch (fourcc)
+                               {
+                                       case GST_MAKE_FOURCC('R', 'M', 'P', '4'):
+                                       case GST_MAKE_FOURCC('x', 'v', 'i', 'd'):
+                                       case GST_MAKE_FOURCC('X', 'V', 'I', 'D'):
+                                               streamtype = 10;
+#ifdef PACK_UNPACKED_XVID_DIVX5_BITSTREAM
+                                               self->must_pack_bitstream = TRUE;
+#endif
+                                       break;
+                               }
+#endif
                                const GValue *codec_data = gst_structure_get_value(structure, "codec_data");
                                if (codec_data)
                                {
@@ -1307,8 +1323,7 @@ static gboolean gst_dvbvideosink_set_caps(GstBaseSink *basesink, GstCaps *caps)
                                        self->codec_type = CT_MPEG4_PART2;
                                        gst_buffer_ref (self->codec_data);
                                }
-                               streamtype = 4;
-                               GST_INFO_OBJECT (self, "MIMETYPE video/mpeg4 -> VIDEO_SET_STREAMTYPE, 4");
+                               GST_ELEMENT_INFO (self, STREAM, FORMAT, (NULL), ("MIMETYPE video/mpeg4 -> VIDEO_SET_STREAMTYPE, %d",streamtype));
                        }
                        break;
                        default:


Edited by mx3L, 7 November 2014 - 09:46.




4 user(s) are reading this topic

0 members, 4 guests, 0 anonymous users