x264enc: user of uninitialized reported by valgrind
@gdesmott
Submitted by Guillaume Desmottes Link to original bug (#749232)
Description
Running gst-validate transcoding scenarios such as validate.file.transcode.to_mp3_and_h264_in_mp4.raw_h264_0_mp4 with valgrind reports loads of invalid read memory bugs. It's not clear if those are actual gst bugs, x264 issues or just false positives but it would be good to investigate those at some point.
Some examples:
==21695== Use of uninitialised value of size 8
==21695== at 0xFAD98E5: x264_log2 (common.h:343)
==21695== by 0xFAD98E5: x264_adaptive_quant_frame (ratecontrol.c:394)
==21695== by 0xFB31FF5: ??? (in /tmp/264/lib/libx264.so.146)
==21695== by 0xFAFEFF2: x264_encoder_encode (encoder.c:3291)
==21695== by 0xF873CC3: gst_x264_enc_encode_frame (gstx264enc.c:2048)
==21695== by 0xF876809: gst_x264_enc_handle_frame (gstx264enc.c:1988)
==21695== by 0x5570186: gst_video_encoder_chain (gstvideoencoder.c:1380)
==21695== by 0x4C2B468: gst_validate_pad_monitor_chain_func (gst-validate-pad-monitor.c:2009)
==21695== by 0x5A69503: gst_pad_chain_data_unchecked (gstpad.c:4038)
==21695== by 0x5A69503: gst_pad_push_data (gstpad.c:4271)
==21695== by 0x57D6CD4: gst_base_transform_chain (gstbasetransform.c:2281)
==21695== by 0x4C2B468: gst_validate_pad_monitor_chain_func (gst-validate-pad-monitor.c:2009)
==21695== by 0x5A69503: gst_pad_chain_data_unchecked (gstpad.c:4038)
==21695== by 0x5A69503: gst_pad_push_data (gstpad.c:4271)
==21695== by 0x101FBF0A: gst_video_rate_transform_ip (gstvideorate.c:1211)
==21695== by 0x57D632A: gst_base_transform_handle_buffer (gstbasetransform.c:2133)
==21695== by 0x57D6B14: gst_base_transform_chain (gstbasetransform.c:2245)
==21695== by 0x4C2B468: gst_validate_pad_monitor_chain_func (gst-validate-pad-monitor.c:2009)
==21695== by 0x5A69503: gst_pad_chain_data_unchecked (gstpad.c:4038)
==21695== by 0x5A69503: gst_pad_push_data (gstpad.c:4271)
==21695== by 0x57D6CD4: gst_base_transform_chain (gstbasetransform.c:2281)
==21695== by 0x4C2B468: gst_validate_pad_monitor_chain_func (gst-validate-pad-monitor.c:2009)
==21695== by 0x5A69503: gst_pad_chain_data_unchecked (gstpad.c:4038)
==21695== by 0x5A69503: gst_pad_push_data (gstpad.c:4271)
==21695== by 0x57D6CD4: gst_base_transform_chain (gstbasetransform.c:2281)
==21695== Conditional jump or move depends on uninitialised value(s)
==21695== at 0xFACCEA6: x264_weights_analyse (slicetype.c:306)
==21695== by 0xFAD0381: x264_slicetype_decide (slicetype.c:1830)
==21695== by 0xFB31FF5: ??? (in /tmp/264/lib/libx264.so.146)
==21695== by 0xFB032A9: x264_lookahead_slicetype_decide (lookahead.c:70)
==21695== by 0xFB03491: x264_lookahead_thread (lookahead.c:108)
==21695== by 0x3EB8807529: start_thread (pthread_create.c:310)
==21695== by 0x3EB850022C: clone (clone.S:109)
==21695== Thread 19:
==21695== Conditional jump or move depends on uninitialised value(s)
==21695== at 0xFAD0F9A: refine_subpel (me.c:928)
==21695== by 0xFAD62E5: x264_me_search_ref (me.c:796)
==21695== by 0xFAC5D42: x264_mb_analyse_inter_p16x16 (analyse.c:1400)
==21695== by 0xFAC847B: x264_macroblock_analyse (analyse.c:3153)
==21695== by 0xFAFB92F: x264_slice_write (encoder.c:2743)
==21695== by 0xFB31FF5: ??? (in /tmp/264/lib/libx264.so.146)
==21695== by 0xFAF8F76: x264_slices_write (encoder.c:3084)
==21695== by 0xFB31FF5: ??? (in /tmp/264/lib/libx264.so.146)
==21695== by 0xFB03B10: x264_threadpool_thread (threadpool.c:69)
==21695== by 0x3EB8807529: start_thread (pthread_create.c:310)
==21695== by 0x3EB850022C: clone (clone.S:109)