Jetson TK1 VC1 decode in hardware

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)

Hi zhssmail,
https://developer.nvidia.com/embedded/dlc/l4t-Jetson-TK1-Driver-Package-Documents-R21-5

Please refer to Notes in [Software Features] → [Decoders] → [Video Decoders]

* Use of this decoder requires a BSP add-on component available only to customers with Windows Media Component licensing. For more information see http://wmlicense.smdisp.net/wmcomponents/.

Hi DaneLLL,

Thanks for your reply. It’s no wonder the output is black since it’s a license issue.

But would you tell me more about how to use the license if I got one, please ? I have no idea about the ‘BSP add-on component’. I mean which format of this component, where to store it and how to tell the decoder to use it.

Thanks

Hi,
Do you have contact with Microsoft?