[gst-devel] matroskamux can't handle variable resolution

Farkas Levente lfarkas at lfarkas.org
Wed Feb 24 12:03:09 CET 2010

in the latest version of matroskamux it's changed to require a caps with 
the actual resolution of the input stream eg. h264. which is very 
problematic if i try to put a variable resolution h264 stream into a 
matroska container. currently gstreamer not bale to handle caps 
re-negotiation while the pipeline in PLAY state. so if i've live video 
input stream where the resolution can be change (eg. most ip camera can 
change the resolution on the fly) i've to stop and start the pipeline. 
which means i'll lose a few frames, what's more if it's a rtsp ip camera 
i can't detect the resolution change just only the first frame with 
different resolution arrive in the rtp stream. and since i can't 
re-negotiate the running pipelines caps i have to drop this (and a few 
more next) frame stop the pipeline, rewrite the cap filter in the 
pipeline and restart it.

it'd be useful if we can add more section to a matroska file (since it's 
possible in a matroska file), but it'd be useful if matroskamux or 
h264parse can handle this ie. if h264parse recognize a new resolution 
than change the caps and if matroskamux see that the caps change then 
start a new section or as it was before this version use the same 
session in the matoska file but change the frames resolution (which 
would be the best solution).

currently i can only use:
gst-launch filesrc location=resolution_variable.h264 ! h264parse 
split-packetized=true ! capsfilter 
caps="video/x-h264,width=352,height=288,framerate=1/1" ! matroskamux ! 
filesink location=out.mkv
while if i can use this pipeline:
gst-launch filesrc location=resolution_variable.h264 ! h264parse 
split-packetized=true ! matroskamux ! filesink location=out.mkv
and h264parse always set the proper caps or matroskamux always set the 
proper resolution in the file than it's can be done realtime. currently 
matroskamux fill the matroska's resolution with dummy 0 x 
<verylargenumber> resolution.

is there any solution to this?

anybody has nay tipp?
thanks in advance.

ps. i also fill a bugzilla #610923

   Levente                               "Si vis pacem para bellum!"

More information about the gstreamer-devel mailing list