Hello,
I am trying to encode h264 files using gstreamer on the TX2 platform. Since we need to improve the video quality, we need to enable the two-pass-cbr mode. But there is a segment fault, the log is as follows:
gst-launch-1.0 filesrc location=dump_720p_v300_6.264 ! 'video/x-h264,stream-format=byte-stream,framerate=(fraction)30/1' ! h264parse ! queue ! omxh264dec ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420,framerate=(fraction)30/1' ! omxh264enc iframeinterval=90 EnableTwopassCBR=1 control-rate=2 preset-level=3 profile=8 num-B-Frames=2 bitrate=900000 ! 'video/x-h264,stream-format=byte-stream' ! filesink location=dump_720p_v300_6_test.264
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
NvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 7905: NvMMLiteBlockOpen
NvMMLiteBlockCreate : Block : BlockType = 261
TVMR: cbBeginSequence: 1224: BeginSequence 1280x720, bVPR = 0
TVMR: LowCorner Frequency = 100000
TVMR: cbBeginSequence: 1623: DecodeBuffers = 2, pnvsi->eCodec = 4, codec = 0
TVMR: cbBeginSequence: 1694: Display Resolution : (1280x720)
TVMR: cbBeginSequence: 1695: Display Aspect Ratio : (1280x720)
TVMR: cbBeginSequence: 1763: ColorFormat : 5
TVMR: cbBeginSequence:1777 ColorSpace = NvColorSpace_YCbCr601
TVMR: cbBeginSequence: 1905: SurfaceLayout = 3
TVMR: cbBeginSequence: 2006: NumOfSurfaces = 9, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
TVMR: cbBeginSequence: 2008: BeginSequence ColorPrimaries = 1, TransferCharacteristics = 13, MatrixCoefficients = 1
Allocating new output: 1280x720 (x 9), ThumbnailMode = 0
OPENMAX: HandleNewStreamFormat: 3464: Send OMX_EventPortSettingsChanged : nFrameWidth = 1280, nFrameHeight = 720
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
===== MSENC blits (mode: 1) into tiled surfaces =====
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Caught SIGSEGV
#0 0x0000007f83b44030 in __GI___poll (fds=0x66ffd0, nfds=2,
#1 0x0000007f83c453ac in ?? () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#2 0x000000000049fad0 in ?? ()
Spinning. Please run 'gdb gst-launch-1.0 6574' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
If I set the profile to baseline or set the B frame to 0 there is no segment fault.
The SDK version I am using is R28.1.0.
I do not know why.
Also, ask, can the two-pass-cbr mode be supported in tegra_multimedia_api?
Thank you for your help