I'm using a pipeline that is intended to simulate dual video capture, mix the two streams into a single picture-in-picture, then write the result to a file. For now, instead of capturing two streams, I'm using a filesrc and a "tee" element to create the two source streams. The environment is the EZSDK 5_05_02_00 and GST_DM81XX_00_07_00_00.
This the pipeline:
hres=960
vres=540
hres2=`expr $hres / 2`
vres2=`expr $vres / 2`
xpos=$hres2
ypos=$vres2
framerate=30
buffers=600
gst-launch --gst-debug=1 --verbose \
omx_videomixer framerate=$framerate port-index=0 name=mix \
sink_00::outX=0 sink_00::outY=0 \
sink_00::outWidth=$hres sink_00::outHeight=$vres \
sink_01::outX=$hres2 sink_01::outY=$vres2 \
sink_01::outWidth=$hres2 sink_01::outHeight=$vres2 \
! "video/x-raw-yuv,width=$hres,height=$vres,format=(fourcc)YUY2" \
! omx_noisefilter \
! "video/x-raw-yuv,width=$hres,height=$vres,format=(fourcc)NV12" \
! omx_h264enc \
! "video/x-h264" \
! gstperf \
! avimux name=mux \
! filesink location=gopro_pnp_test33_960nf.avi \
filesrc location=/home/root/tests/GOPR0040.MP4 \
num-buffers=$buffers name=filesrc0 \
! qtdemux name=demux demux.video_00 \
! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec \
! tee name=vidsource \
vidsource. ! queue ! mix. \
vidsource. ! queue ! mix. \
demux.audio_00 ! queue ! mux.audio_0
A sample result frame looks like this:
Note the bar along the bottom of the frame; that is not intended to be there. If I replace the omx_noisefilter in the pipeline with an ffmpegcolorspace, the result looks like this:
Note that the bar along the bottom does not appear... this is the intended result.
I've found that the bar appears when using the omx_noisefilter whenever the aspect ratio of the output is 1.777 (1920x1080, 1280x720, 960x540, etc), but it does not appear when the aspect ratio is 1.666 (800x480, etc).
Is this a bug in the omx_noisefilter?