AnsweredAssumed Answered

vpuenc framerate data missing (vui parameters, timing_info)

Question asked by Joseph Olivier on Apr 3, 2014
Latest reply on Apr 25, 2014 by Adrian Alonso
Branched to a new discussion

I am using the VPU on the imx6 to generate H.264-encoded video that is ultimately displayed on digital televisions. The H.264 stream is packaged into an MPEG transport stream and then udp-streamed to the destination.

 

Display on many TV's is jerky and ugly. I believe this is because the H.264 stream lacks framerate data. Specifically, in the H.264 SPS (sequence parameter set) packet, the vui_parameters_present_flag is always false. Videos which display properly always have this flag set, and correct values in the timing_info structure (timing_info_present_flag, num_units_in_tick, time_scale). It appears that this data is not being generated properly by the VPU (or vpuenc gstreamer plugin).

 

My pipeline uses an appsrc to produce frames instead of the videotestsrc below, but is otherwise identical to:

 

gst-launch              \

     videotestsrc       \

   ! video/x-raw-rgb,bpp=16,depth=16,endianness=1234,red_mask=63488,green_mask=2016,blue_mask=31,width=1280,height=720,framerate=30/1 \

   ! mfw_ipucsc \

   ! vpuenc codec=6 seqheader-method=3 framerate-nu=30000 framerate-de=1000 \

   ! mpegtsmux \

   ! udpsink host=[host-ip] port=7890

 

Here's the version output for my imx/fsl gstreamer plugins:

 

IPU_CSC_CORE_LIBRARY_VERSION_INFOR_01.00.

 

MFW_GST_IPU_CSC_PLUGIN 3.0.7 build on Jan  8 2014 15:20:51.

[INFO] Product Info: i.MX6Q/D/S

vpuenc versions

plugin: 3.0.7

wrapper: 1.0.35(VPUWRAPPER_ARM_LINUX Build on Jan  8 2014 14:33:14)

vpulib: 5.4.12

firmware: 2.1.9.36350

 

I'm using Yocto Poky Dylan 9.0.0.

Outcomes