GNOME Bugzilla – Bug 576378
[matroskamux] add support for WMA2 and WMV2
Last modified: 2009-08-10 11:48:32 UTC
Been testing various transcoding pipelines in conjuction with writing Transmageddon. Using the ffmpeg plugins I am not able to put WMA2 and WMV2 into a Matroska container which I assume should work: gst-launch-0.10 filesrc location=/home/cschalle/Videos/gravity.mpg ! decodebin2 name="decode" decode. ! ffmpegcolorspace ! ffenc_wmv2 ! queue ! qtmux name=mux ! gnomevfssink location=file:///tmp/test8.mkv decode. ! audioconvert ! ffenc_wmav2 ! queue ! mux. 0:00:00.330910354 6346 0x954a050 ERROR GST_PIPELINE ./grammar.y:524:gst_parse_perform_link: could not link queue0 to mux 0:00:00.331826532 6346 0x954a050 ERROR GST_PIPELINE ./grammar.y:524:gst_parse_perform_link: could not link ffenc_wmav20 to queue1 WARNING: erroneous pipeline: could not link queue0 to mux Caught SIGSEGV accessing address 0x40 ./any-to-ogg2: line 1: 6346 Killed gst-launch-0.10 filesrc location=/home/cschalle/Videos/gravity.mpg ! decodebin2 name="decode" decode. ! ffmpegcolorspace ! ffenc_wmv2 ! queue ! qtmux name=mux ! gnomevfssink location=file:///tmp/test8.mkv decode. ! audioconvert ! ffenc_wmav2 ! queue ! mux.
You talk about matroskamux, but your pipelines show qtmux. Also, gst-inspect-0.10 matroskamux has no sign of WMV/WMA support, so I guess this is supposed to be an enhancement request? (It can hardly fail at something it doesn't even claim to support)
Sorry about having tested with the wrong manual pipeline. The real error message is: 0:00:00.199171893 9828 0x813c050 ERROR GST_PIPELINE ./grammar.y:524:gst_parse_perform_link: could not link ffenc_wmav20 to queue1 WARNING: erroneous pipeline: could not link ffenc_wmav20 to queue1 Caught SIGSEGV accessing address 0x40 ./any-to-ogg2: line 1: 9828 Killed gst-launch-0.10 filesrc location=/home/cschalle/Videos/gravity.mpg ! decodebin2 name="decode" decode. ! ffmpegcolorspace ! ffenc_wmv2 ! queue ! matroskamux name=mux ! gnomevfssink location=file:///tmp/test8.mkv decode. ! audioconvert ! ffenc_wmav2 ! queue ! mux. And yes, this was meant as an enhancement request.
Can someone assign this to me? I've started implementing and WMV is already in place. WMA still doesn't work (some unknown bug I'm investigating).
Created attachment 140174 [details] [review] Adds wmv support
Created attachment 140175 [details] [review] Adds wma support
I attached patches here for wma/wmv support. We should get those reviewed before we freeze on monday.
I just understood that gst_riff_strf_auds omits the cbSize field (from the ms waveformatex docs[1]) and uses wBitsPerSample with the name size. I thought that it omitted the wBitsPerSample. (Thus the commit message from the wma patch).
Forgot the link: [1] http://msdn.microsoft.com/en-us/library/ms713497(VS.85).aspx
If it works, just commit it. Minor nitpick: in GST_WARNING_OBJECT (mux, "Unexpected WMA version: %" G_GUINT16_FORMAT, wmaversion) the G_GUINT16_FORMAT isn't needed, since wmaversion is a normal int and any (u)int16 would be promoted to a normal (u)int anyway because of the printf/debug varargs.
Fixed by commits: Module: gst-plugins-good Branch: master Commit: df442b47272295a2f5ec3e41023d5a0cf1b9c7a0 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=df442b47272295a2f5ec3e41023d5a0cf1b9c7a0 Author: Thiago Santos <thiagoss@embedded.ufcg.edu.br> Date: Thu Aug 6 20:15:17 2009 -0300 matroskamux: adds support for wmv family Adds support to WMV1, WMV2, WMV3 and other family formats that are signaled by the 'format' field in the caps (i.e. WVC1). Partially fixes #576378 Module: gst-plugins-good Branch: master Commit: 08862850a70674c3a2380a4f8232c0dee91dbd96 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=08862850a70674c3a2380a4f8232c0dee91dbd96 Author: Thiago Santos <thiagoss@embedded.ufcg.edu.br> Date: Sat Aug 8 00:47:48 2009 -0300 matroska: Adds support to muxing/demuxing WMA Adds support for muxing wma audio family and fixes demuxing of wma family in matroskademux. matroskademux was broken because it missed codec_data.
Could you notify the Matroska guys about how you're putting WMA/WMV into Matroska? They probably want to add it to their codec specs... otherwise other people will probably invent something incompatible ;)
I followed the spec here: http://matroska.org/technical/specs/codecid/index.html that points to http://haali.cs.msu.ru/mkv/codecs.pdf. I used codec_ids V_MS/VFW/FOURCC (video) and A_MS/ACM (audio).