basesrc: set_caps is happening after state is set to PLAYING
The initial buffers pushed for basesrc might have different caps as that of fixated caps because the set caps method is called after the state is set to Playing. Both of these methods are running in parallel threads, so, I observe following synchronisation problem:
0:00:00.463323906 [331m 4704[00m 0xac357200 [37mDEBUG [00m [00m ### gst###src.c:647:gst_###src_change_state:<###>[00m PAUSED->PLAYING 0:00:00.464626302 [331m 4704[00m 0xac586490 [37mDEBUG [00m [00m basesrc gstbasesrc.c:894:gst_base_src_set_caps:<###>[00m start basesrc gst_base_src_set_caps
So, the set_caps method is called after the state is set to Playing. The above problem occurs when the caps are fixated using some capsfilter.