After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 598610 - [matroskademux] Support push mode operation
[matroskademux] Support push mode operation
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.x
Other Linux
: Normal enhancement
: 0.10.18
Assigned To: Mark Nauwelaerts
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-10-15 19:34 UTC by Alex Werle Baule
Modified: 2009-12-16 11:51 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Alex Werle Baule 2009-10-15 19:34:54 UTC
I report this bug too to the Ubuntu Team, because i use Ubuntu...But is a problem in Gnome, so..here i am!

The BUG in Ubuntu
https://bugs.launchpad.net/ubuntu/+source/totem/+bug/451788

Binary package hint: totem

i have a Strange issue with Totem.

I Have a UPNP server in my WRT610N...its have musics and Movies files.

Well, when i play a mkv video from the Upnp, The totem don't Play it...including using the totem plugin for Firefox...

If i got the movie, save locally, and play it from my computer, the videos play OK.

So, i enter in Totem homepage from gnome and get some tricks to debug this and send to here.

The First thing is the HTTP request:

http://192.168.254.1:9000/disk/video/O0$3$24I7459/%27Transformers_Revenge_of_the_Fallen%27%5BSUPB00000050%5D.mkv

GET /disk/video/O0$3$24I7459/%27Transformers_Revenge_of_the_Fallen%27%5BSUPB00000050%5D.mkv HTTP/1.1
Host: 192.168.254.1:9000
User-Agent: Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.3) Gecko/20091007 Ubuntu/9.10 (karmic) Firefox/3.5.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://192.168.254.1:9000/webbrowse/O0$3$31$10244
If-Modified-Since: Mon, 28 Sep 2009 01:01:05 GMT

HTTP/1.x 200 OK
Content-Type: video/x-matroska
Content-Length: 11153414
Date: Wed, 14 Oct 2009 21:17:52 GMT
Pragma: no-cache
Cache-Control: no-cache
Last-Modified: Mon, 28 Sep 2009 01:01:05 GMT
Accept-Ranges: bytes
Connection: keep-alive
Server: Linux/2.x.x, UPnP/1.0, pvConnect UPnP SDK/1.0
----------------------------------------------------------

We can see the content-type, is a video/x-matroska....

See the attached files....

http://launchpadlibrarian.net/33691746/LOG

This is the FAIL play.... by HTTP connection.

This is the output from command, and the attachment is the debug from error output.

alex@pczao:~$ gst-launch-0.10 --gst-debug-level=5 -v playbin uri="http://192.168.254.1:9000/disk/NON-DLNA/video/O0$3$24I7459/%27Transformers_Revenge_of_the_Fallen%27%5BSUPB00000050%5D.mkv" 2> LOG
Deixando a conexão como PAUSADA ...
A conexão está fazendo PREROLL ...
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-matroska
ERRO: do elemento /GstPlayBin:playbin0/GstDecodeBin:decodebin0: Um plugin Demultiplexador Matroska é necessário para tocar esse stream, mas não está instalado.
Informação de depuração adicional:
gstdecodebin.c(986): close_pad_link (): /GstPlayBin:playbin0/GstDecodeBin:decodebin0:
No decoder to handle media type 'video/x-matroska'
Deixando a conexão em NULL ...
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL
Liberando a fila de processamento...

===============================================================================

http://launchpadlibrarian.net/33698499/LOGOK

This is when PLAYS OK the file locally....

This is the output from command, and the error output is the Attachment.

alex@pczao:~$ gst-launch-0.10 --gst-debug-level=5 -v playbin uri="file:///home/alex/Transformers.mkv" 2> LOGOK
Deixando a conexão como PAUSADA ...
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-matroska
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstMatroskaDemux:matroskademux0.GstPad:sink: caps = video/x-matroska
A conexão está fazendo PREROLL ...
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src1: active-pad = NULL
/GstPlayBin:playbin0/GstStreamSelector:selector_video_src0: active-pad = (GstPlaybinSelectorPad) sink0
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:sink: caps = video/x-h264, codec_data=(buffer)014d4033ffe10017674d40339a73009e08742000007d2000177011e306334001000468ee3c80, width=(int)1264, height=(int)528, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)1000000000/41708333
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:src: caps = video/x-h264, codec_data=(buffer)014d4033ffe10017674d40339a73009e08742000007d2000177011e306334001000468ee3c80, width=(int)1264, height=(int)528, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)1000000000/41708333
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2.GstPad:sink: caps = audio/x-vorbis, channels=(int)2, rate=(int)48000
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2.GstPad:src: caps = audio/x-vorbis, channels=(int)2, rate=(int)48000
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstVorbisDec:vorbisdec0.GstPad:sink: caps = audio/x-vorbis, channels=(int)2, rate=(int)48000
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src1: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstVorbisDec:vorbisdec0.GstPad:src: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/ffdec_h264:ffdec_h2640.GstPad:sink: caps = video/x-h264, codec_data=(buffer)014d4033ffe10017674d40339a73009e08742000007d2000177011e306334001000468ee3c80, width=(int)1264, height=(int)528, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)1000000000/41708333
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = video/x-raw-yuv, width=(int)1264, height=(int)528, framerate=(fraction)1000000000/41708333, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/ffdec_h264:ffdec_h2640.GstPad:src: caps = video/x-raw-yuv, width=(int)1264, height=(int)528, framerate=(fraction)1000000000/41708333, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src1.GstPlaybinSelectorPad:sink0: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, width=(int)32
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src1.GstProxyPad:proxypad2: caps = audio/x-raw-float, rate=(int)48000, channels=(int)2, endianness=(int)1234, wid....

===============================================================================
Comment 1 Thiago Sousa Santos 2009-10-16 02:30:46 UTC
matroskademux only operates in pull mode and the http source element only provides push mode.
Either we make matroskademux operate also in push mode, or make an http source element operate in pull mode to fix this.
Comment 2 Sebastian Dröge (slomo) 2009-10-16 06:25:12 UTC
(In reply to comment #1)
> Either we make matroskademux operate also in push mode, or make an http source
> element operate in pull mode to fix this.

First solution would be a rewrite of matroskademux (good idea, but then let's do it correct from the beginning), the second solution would kill HTTP servers (pull mode => random access... and oggdemux and others do all kinds of weird things then that would mean some load for HTTP servers).

If you want to add push mode support to matroskademux please talk to me first
Comment 3 Mark Nauwelaerts 2009-12-16 11:51:16 UTC
Turns out this was feasible without a rewrite a matroskademux (which is not to say that would be bad thing ;) ):

commit 900ff7247e2192ce7dc4437c6f917847b8e90116
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Wed Dec 16 12:43:27 2009 +0100

    matroskademux: support push based mode

    Fixes #598610.