tegra3 video playback issues

I have been evaluating a tegra3 board. And have run into several issues with video playback:

  1. Using nvgstplayer I can get an MPEG4 video to play, but not a VC1 video. nvgstplayer will open the video, create a window, and just not display anything. This is the output of the application:

nvgstplayer --no-audio -i Wildlife.wmv
Runtime Commands:
q quit the application
h print help
Up Key, ] goto next track
c restart current track
Down Key, [ goto previous track
spos query for position
sdur query for duration
s seek to position in seconds, eg “s5.120”
v seek to percent of the duration, eg “v54”
f seek by seconds, relative to current position eg “f23.901”
Left Key, < seek backwards by 10 seconds
Right Key, > seek forward by 10 seconds
p pause playback
r start/resume the playback
z stop the playback
i: enter a single URI

1 r
** Message: main:5206 iterating…
** Message: <goto_next_track:1236> uriCount: 0, uriTotal: 1
** Message: <on_input:918> pausing
NvxLiteH264DecoderInit : Opening TVMR H264 block
NvxLiteH264DecoderInit : Opening TVMR H264 block
** Message: <cb_newpad:2392> creating the pipe for “video/x-raw-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ I420, YUY2, UYVY }; video/x-nv-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ I420, YUY2, UYVY }; video/x-nv-overlay, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ I420, YUY2, UYVY }; video/x-raw-gl, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ RGBA }; video/x-nvrm-yuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ I420, YUY2, UYVY }”
** Message: <cb_newpad:2392> creating the pipe for “audio/x-wma, wmaversion=(int)2, bitrate=(int)192040, depth=(int)16, rate=(int)44100, channels=(int)2, block_align=(int)4459, codec_data=(buffer)008800000f0000000000”

** (nvgstplayer:2478): WARNING **: <cb_newpad:2504> decoder pipeline for “audio/x-wma” not created <0>
Advanced Profile
NvMMLiteOpen : Block : BlockType = 263
++++++ NvAvpOpen +++++++
++++++++++++ TVMRFrameDelivery +++++++++++++++
NvMMLiteBlockCreate : Block : BlockType = 263
BeginSequence 1280x720
VC1 Advance profile
pnvsi->nDecodeBuffers = 3
Display Resolution : (1280x720)
Display Aspect Ratio : (1280x720)
cbBeginSequence@433: SurfaceLayout = 2
pStreamInfo->NumOfSurfaces = 7, MaxDPB = 24, InteraceStream = 0, InterlaceEnabled = 0
Allocating new output: 1280x720 (x 9)
NVMMLITE_TVMR: EOS detected
TVMR: Processing of EOS
TVMR: Sending Stream End Event
TVMR: Processing of EOS Done
** Message: <bus_call:1409> eos, END OF STREAM
NvMMDecTVMRDestroyParser Begin
--------- Closing TVMR Frame Delivery Thread -------------
------- NvAvpClose -------
NvMMDecTVMRDestroyParser Done
NvMMLiteTVMRDecPrivateClose Done
** Message: <goto_next_track:1236> uriCount: 1, uriTotal: 1
** Message: <goto_next_track:1239> done playing all URIs
** Message: <goto_next_track:1253> quitting the app
aborting active playback if any…
aborted!
application terminated!

I have the codec package installed from https://developer.nvidia.com/linux-tegra. Am I missing something ? According to the documentation VC1 should be supported. The video I’m using is the sample Wildlife video which comes with Windows.

  1. Seeing that xvinfo showed the xvideo extension to be supported by the tegra X driver. I decided to use that, testing this out with mplayer resulted in very stuttery playback. The video plays for a couple of seconds, then freezes for a couple of seconds, then freezes for a couple of seconds …

Playing the same video without any sort of acceleration (so mplayer -vo x11), results in smooth video (at the cost of more cpu usage of course).

Also sometimes when using xvideo, you get a BadAlloc error for each frame. It seems to me that this xvideo support is very buggy.

Hi,

Responses below:

  1. VC1 / WMV acceleration is supported for Tegra 3, however we do not include the same in the public release due to licensing constraints.

  2. Now related to Xvideo, we do plan to support in the future L4T releases soon. For now please proceed to use the NvXVimageSink which is provided as part of L4T package.

usage : nvgstplayer -i --svs=“nvxvimagesink”

Thanks
Kaustubh

  1. VC1 / WMV acceleration is supported for Tegra 3, however we do not include the same in the public
    release due to licensing constraints.

So how do we obtain the codec ? Do we need to pay some kind of licensing fee ?

EsJoris, please send an email to linux-tegra-bugs at nvidia.com describing your project and we can discuss with you.

Thanks,
Eric