AW: Dynamically record a h264 stream

Davide Tuccilli tuccio89 at hotmail.com
Wed Mar 23 14:37:53 UTC 2016



On 23/03/2016 09:22, Sebastian Dröge wrote:
> On Di, 2016-03-22 at 20:58 +0100, Davide Tuccilli wrote:
>>   
>>
>> Any reason the current caps might result null for the muxer
>> video_0/h264parse src pads? For what I understand, that's the problem
>> right? I should have stream-format=avc there. I'm not sure how to
>> debug this.
> The problem seems to be that for whatever reason h264parse fails to
> negotiate. It should indeed output AVC in your case, but it fails doing
> so.
>
> You'll have to debug from the debug logs why exactly h264parse fails.
> You should also get an error about that, a negotiation error.
>


Seems to me that both in the "bad" log and the "good" log, the h264parse 
and mux are linked correctly, this is taken from the bad log:


0:00:02.942548805 20077  0x12b3200 DEBUG   
            GST_CAPS 
gstpad.c:2190:gst_pad_link_check_compatible_unlocked:<recsource:src> src 
caps image/jpeg; video/mpeg, mpegversion=(int)4, 
systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; 
video/mpegts, systemstream=(boolean)true; video/x-bayer, 
format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], 
height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 
video/x-dv, systemstream=(boolean)true; video/x-h263, 
variant=(string)itu; video/x-h264, stream-format=(string)byte-stream, 
alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], 
height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 
video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], 
framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ 
RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, 
UYVY, Y42B, Y41B, NV12_64Z32, NV24, YUV9, I420, YVYU, NV61, NV16, NV21, 
NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], 
framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[ 
1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 
2147483647/1 ]; video/x-vp8
0:00:02.942828908 20077  0x12b3200 DEBUG   
            GST_CAPS 
gstpad.c:2192:gst_pad_link_check_compatible_unlocked:<capsfilter0:sink> 
sink caps video/x-h264, width=(int)720, height=(int)576, 
framerate=(fraction)25/1
0:00:02.942910887 20077  0x12b3200 DEBUG   
            GST_CAPS 
gstpad.c:2210:gst_pad_link_check_compatible_unlocked: caps are 
compatible
0:00:02.942963022 20077  0x12b3200 INFO    
            GST_PADS gstpad.c:2496:gst_pad_link_full: 
linked recsource:src and capsfilter0:sink, successful


0:00:04.479278218 18988  0x14c3200 DEBUG   
            GST_CAPS 
gstpad.c:2190:gst_pad_link_check_compatible_unlocked:<capsfilter1:src> 
src caps video/x-h264, stream-format=(string)avc, alignment=(string)au, 
parsed=(boolean)true
0:00:04.479323217 18988  0x14c3200 DEBUG   
            GST_CAPS 
gstpad.c:2192:gst_pad_link_check_compatible_unlocked:<mp4mux0:video_0> 
sink caps video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, 
width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; 
video/x-divx, divxversion=(int)5, width=(int)[ 16, 2147483647 ], 
height=(int)[ 16, 2147483647 ]; video/x-h264, stream-format=(string)avc, 
alignment=(string)au, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 
2147483647 ]; video/x-mp4-part, width=(int)[ 16, 2147483647 ], 
height=(int)[ 16, 2147483647 ]
0:00:04.479417019 18988  0x14c3200 DEBUG   
            GST_CAPS 
gstpad.c:2210:gst_pad_link_check_compatible_unlocked: caps are 
compatible
0:00:04.479457696 18988  0x14c3200 INFO    
            GST_PADS gstpad.c:2496:gst_pad_link_full: 
linked capsfilter1:src and mp4mux0:video_0, successful


Anything else I might want to look for in the log, or any reason I can 
get null when calling gst_pad_get_sticky_event?


More information about the gstreamer-devel mailing list