I have compiled qcom_video_codec_sample_1_3_1 and when i am running qcom_omx_sample with different frame rates.But i couldnt see any defference in video(ex.flickering etc..).I think it is always taking some default framerate and not updating any user defined values.
I tried with 30Fps and 10 Fps.For both frame rates encoded video stream is same when played via vlc player on device. This what i did:
/data/data/qcom_omx_sample -e /sdcard/sample.176x144.yuv /sdcard/test.dat 176 144 20
it generates test.dat file. When i play this test.dat file using vlc player installed in my dragonboard, i couldn't observe any difference. The video is same for 10fps as well as for 30fps, when i play. I also checked with Qmediainfo, it doesn't show any entry for fps. How can i check the framerate of encoded stream.
Below is the logcat of the command:
E/ ( 1881): QCOMOMXINTERFACE - ENCODER CREATE: SETUP INPUT PORT PARAMS (320 x 240 @ 15 fps)
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): WARNING: Requested i/p bufsize[40960],Driver's updated i/p bufsize = 116736
E/OMX-VENC-720p( 117): bool venc_dev::venc_validate_profile_level(OMX_U32*, OMX_U32*): Returning with eProfile = 1Level = 4
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): bool venc_dev::venc_set_param(void*, OMX_INDEXTYPE)(): Profile/Level setting success
E/OMX-VENC-720p( 117): bool venc_dev::venc_validate_profile_level(OMX_U32*, OMX_U32*): Returning with eProfile = 1Level = 2
E/OMX-VENC-720p( 117): Calling set level (Framerate) with 21
E/OMX-VENC-720p( 117): bool venc_dev::venc_validate_profile_level(OMX_U32*, OMX_U32*): Returning with eProfile = 1Level = 2
E/OMX-VENC-720p( 117): Calling set level (Bitrate) with 21
E/ ( 1881): QCOMOMXINTERFACE - ENCODER CREATE: SETUP OUTPUT PORT BIT RATE (512000)
E/OMX-VENC-720p( 117): bool venc_dev::venc_validate_profile_level(OMX_U32*, OMX_U32*): Returning with eProfile = 1Level = 2
E/OMX-VENC-720p( 117): Calling set level (Framerate) with 21
E/OMX-VENC-720p( 117): bool venc_dev::venc_validate_profile_level(OMX_U32*, OMX_U32*): Returning with eProfile = 1Level = 8
E/OMX-VENC-720p( 117): Calling set level (Bitrate) with 23
E/ ( 1881): QCOMOMXINTERFACE - ENCODER CREATE: SETUP OUTPUT PORT RATE CONTROL (3, 512000)
E/OMX-VENC-720p( 117): bool venc_dev::venc_validate_profile_level(OMX_U32*, OMX_U32*): Returning with eProfile = 1Level = 8
E/OMX-VENC-720p( 117): Calling set level (Bitrate) with 23
E/ ( 1881): QCOMOMXINTERFACE - ENCODER CREATE COMPLETE, value 71912
E/ ( 1881): QCOMOMXINTERFACE::INIT - CREATE FRAME OUTPUT THREAD
E/ ( 1881): QCOMOMXINTERFACE::INIT - CREATE DATA OUTPUT THREAD
E/ ( 1881): QCOMOMXINTERFACE::INIT - ALLOCATE BUFFERS
E/ ( 1881): QCOMOMXINTERFACE::allocateBuffersOnPort 0 BEGIN
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 0 buffer size 116736
E/OMX-VENC-720p( 117): use_input_buffer: port = 0 appData = 0x40819cd0 bytes = 116736 buffer = 0x40540000
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 0 buffer size 116736
E/OMX-VENC-720p( 117): use_input_buffer: port = 0 appData = 0xbec79ac0 bytes = 116736 buffer = 0x4055c800
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 0 buffer size 116736
E/OMX-VENC-720p( 117): use_input_buffer: port = 0 appData = 0x40cc3cd0 bytes = 116736 buffer = 0x40579000
E/ ( 1881): QCOMOMXINTERFACE::allocateBuffersOnPort 0 COMPLETE
E/ ( 1881): QCOMOMXINTERFACE::allocateBuffersOnPort 1 BEGIN
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 1 buffer size 118784
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Inside use_output_buffer()
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 1 buffer size 118784
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Inside use_output_buffer()
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 1 buffer size 118784
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Inside use_output_buffer()
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 1 buffer size 118784
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Inside use_output_buffer()
E/ ( 1881): QCOMOMXINTERFACE - Memory dealer allocation for port 1 buffer size 118784
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Inside use_output_buffer()
E/ ( 1881): QCOMOMXINTERFACE::allocateBuffersOnPort 1 COMPLETE
E/ ( 1881): QCOMOMXINTERFACE::INIT - WAIT FOR IDLE STATE (2)
E/ ( 1881): QCOMOMXINTERFACE - OnMessage :: message.type = 0
E/ ( 1881): OMX MESSAGE: EVENT: 0, data1 0, data2 2
E/ ( 1881): QCOMOMXINTERFACE::INIT - SEND TO EXECUTION STATE (3)
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): unsigned int venc_dev::venc_start()(): Check Profile/Level set in driver before start
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): unsigned int venc_dev::venc_start()(): Driver Profile[6]/Level[23] successfully SET
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: Codec: 3, Profile 6, level : 23
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: Width: 320, Height:240, Fps: 15
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: Bitrate: 512000, RC: 2, I-Period: 1701080931
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: qpI: -1485605150, qpP: -1485740904, qpb: 0
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: VOP_Resolution: 272, Slice-Mode: 777538895, Slize_Size: 1836016497
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: EntropyMode: 1685414190, CabacModel: 1697541993
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: DB-Mode: 1685021550, alpha: 1697542757, Beta: 6517366
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): ENC_CONFIG: IntraMB/Frame: 391056, HEC: -1345035028
E/OMX-VENC-720p( 117): Width 320, Height 240, w_round 320, h_round 240, yuv_size 147456 alignment 8192 count 2
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Allocated virt:0x4081b000, FD: 88 of size 147456
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Allocated virt:0x4081b000, FD: 88 of size 147456 at index: 0
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Allocated virt:0x40974000, FD: 89 of size 147456
E/OMX-VENC-720p( 117):
E/OMX-VENC-720p( 117): Allocated virt:0x40974000, FD: 89 of size 147456 at index: 1
Below are the logs whe i play this file using vlc player:
E/OMX-VDEC-1080P( 117): omx_vdec::component_init(): Start of New Playback
I/ActivityManager( 175): Displayed org.videolan.vlc/.gui.video.VideoPlayerActivity: +321ms
E/OMX-VDEC-1080P( 117):
E/OMX-VDEC-1080P( 117): omx_vdec::component_init(): Open returned fd 23
E/OMX-VDEC-1080P( 117): omx_vdec: message thread start
E/OMX-VDEC-1080P( 117):
E/OMX-VDEC-1080P( 117): omx_vdec::component_init() success
E/OMX-VDEC-1080P( 117): omx_vdec: Async thread start
D/vlc ( 2278): loaded component OMX.qcom.video.decoder.h263 of role video_decoder.h263
D/vlc ( 2278): found 0 audio ports
D/vlc ( 2278): found 0 image ports
D/vlc ( 2278): found 2 video ports
E/OMX-VDEC-1080P( 117): get_parameter: unknown param 01000006
D/vlc ( 2278): -> input 0 (0 streams) (2:1:1048576 buffers) (0,0) enabled
D/vlc ( 2278): -> video H263 [email protected] (3,0) (1920,1088)
E/OMX-VDEC-1080P( 117): get_parameter: unknown param 01000006
D/vlc ( 2278): -> output 1 (0 streams) (3:3:3137536 buffers) (0,0) enabled
D/vlc ( 2278): -> video [email protected] (0,2141391875) (1920,1088)
D/vlc ( 2278): component standard role set to video_decoder.h263
E/OMX-VDEC-1080P( 117): set_parameter: frame rate set by omx client : 29
D/vlc ( 2278): OMX color format 2141391875 not supported
E/OMX-VDEC-1080P( 117):
E/OMX-VDEC-1080P( 117): Playback Ended - PASSED
E/OMX-VDEC-1080P( 117):
E/OMX-VDEC-1080P( 117): ALL output buffers are freed/released
E/OMX-VDEC-1080P( 117):
E/OMX-VDEC-1080P( 117): Close the driver instance
E/OMX-VDEC-1080P( 117):
E/OMX-VDEC-1080P( 117): omx_vdec::component_deinit() complete