Hi,
I found that TK1 supports to decode various standards including VC1(Simple, Main and Advanced). And I also found that the gstreamer plugin also support VC1 decoder in the newest R21.6 system, as shown below:
ubuntu@tegra-ubuntu:~$ gst-inspect-1.0 /usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstomx.so
Plugin Details:
Name omx
Description GStreamer OpenMAX Plug-ins
Filename /usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstomx.so
Version 1.2.3
License LGPL
Source module gstreamer
Source release date 2014-02-08
Binary package GStreamer source release
Origin URL Unknown package origin
omxmpeg4videodec: OpenMAX MPEG4 Video Decoder
omxh264dec: OpenMAX H.264 Video Decoder
omxvp8dec: OpenMAX VP8 Video Decoder
omxmpeg2videodec: OpenMAX MPEG2 Video Decoder
omxh263dec: OpenMAX H.263 Video Decoder
omxwmvdec: OpenMAX WMV Video Decoder
omxaacdec: OpenMax AAC decoder
omxmpegaudiodec: OpenMax MP3/MP2 decoder
omxh264enc: OpenMAX H.264 Video Encoder
omxvp8enc: OpenMAX VP8 Video Encoder
nvhdmioverlaysink: OpenMax HDMI Video Sink
nvoverlaysink: OpenMax Video Sink
12 features:
+-- 12 elements
The omxwmvdec, I think, is the decoder plugin for VC1 because the property of its sink pad shows that:
Pad Templates:
SINK template: 'sink'
Availability: Always
Capabilities:
video/x-wmv
wmvversion: 3
format: { WMV3, WVC1 }
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
So, I use command below to play a WMV file:
$ gst-launch-1.0 filesrc location=FlightSimX_720p60_51_15Mbps.wmv ! asfdemux ! omxwmvdec ! nveglglessink -e
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
New buffer size = 21
NvMMLiteOpen : Block : BlockType = 263
TVMR: NvMMLiteTVMRDecBlockOpen: 5149: NvMMLiteBlockOpen
NvMMLiteBlockCreate : Block : BlockType = 263
TVMR: cbBeginSequence: 668: BeginSequence 1280x720, bVPR = 0
TVMR: cbBeginSequence: 729: VC1 Advance profile
TVMR: cbBeginSequence: 923: DecodeBuffers = 3
TVMR: cbBeginSequence: 947: Display Resolution : (1280x720)
TVMR: cbBeginSequence: 948: Display Aspect Ratio : (1280x720)
TVMR: cbBeginSequence: 1052: SurfaceLayout = 3
TVMR: cbBeginSequence: 1082: NumOfSurfaces = 7, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1
Allocating new output: 1280x720 (x 9), ThumbnailMode = 0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
TVMR: NvMMLiteTVMRDecDoWork: 4180: NVMMLITE_TVMR: EOS detected
TVMR: TVMRBufferProcessing: 3560: Processing of EOS Done
Got EOS from element "pipeline0".
Execution ended after 0:01:36.733527304
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
TVMR: TVMRFrameStatusReporting: 3925: Closing TVMR Frame Status Thread -------------
TVMR: TVMRFrameDelivery: 3781: Closing TVMR Frame Delivery Thread -------------
TVMR: NvMMDecTVMRDestroyParser: 4332: NvAvpClose
TVMR: NvMMLiteTVMRDecBlockClose: 5305: Done
(gst-launch-1.0:3952): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
Setting pipeline to NULL ...
Freeing pipeline ...
Sadly, the output window is all black. However, playing with mplayer is perfectly normal. And other gst decoder plugins, which are metinoned in ‘L4T_Jetson_TK1_Multimedia_User_Guide.pdf’, works well.
I wonder what is the problem about omxwmvdec plugin and whether there’re any other solution to decode VC1 video by hardware.
Thanks.
P.S The information of the test video file FlightSimX_720p60_51_15Mbps.wmv (http://samples.mplayerhq.hu/V-codecs/WVC1/) is:
$ mediainfo FlightSimX_720p60_51_15Mbps.wmv
General
Complete name : FlightSimX_720p60_51_15Mbps.wmv
Format : Windows Media
File size : 155 MiB
Duration : 1mn 36s
Overall bit rate mode : Constant
Overall bit rate : 13.4 Mbps
Maximum Overall bit rate : 15.4 Mbps
Encoded date : UTC 2006-05-05 20:50:40.370
Video
ID : 2
Format : VC-1
Format profile : Advanced@L3
Codec ID : WVC1
Codec ID/Hint : Microsoft
Description of the codec : Windows Media Video 9 Advanced Profile (Pre-Release)
Duration : 1mn 36s
Bit rate mode : Constant
Bit rate : 15.0 Mbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 59.940 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.272
Stream size : 173 MiB
Language : English (US)
Audio
ID : 1
Format : WMA
Format profile : Pro
Codec ID : 162
Codec ID/Info : Windows Media Audio
Description of the codec : Windows Media Audio 9.1 Professional - 384 kbps, 48 kHz, 5.1 channel 24 bit 1-pass CBR
Duration : 1mn 36s
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 6 channels
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Stream size : 4.44 MiB (3%)
Language : English (US)