Do not dropping any video frame (if frame is late) in "playbin" with living streaming

jojo rjiejie at gmail.com
Fri Jan 17 22:42:37 PST 2014


Hi,
My gstreamer prebuilt version is : "gstreamer-1.0-android-arm-1.2.0-release"

I launch gstreamer as :

"appsrc is-live=true do-timestamp=true" -> playbin -> GST_VIDEO_OVERLAY

and push data from another thread as :

gst_app_src_push_buffer()

BTW, my living stream just include video as h264

I wan to play video without dropping any frame in "playbin" just because of the frame is late :(

  Could anyone give me any hints to fix this ? thanks.

also i collect some debug information as :

01-18 14:20:58.573: D/GStreamer(3147): Surface created: Surface(name=null, identity=250)
01-18 14:20:58.573: D/GStreamer(3147): Surface changed to format 4 width 500 height 500
01-18 14:21:03.779: V/GStreamer+playbin(3147): 0:00:32.475629480 0x64247d20 gstplaybin2.c:1549:gst_playbin_uri_is_valid:<playbin> checking uri 'appsrc://'
01-18 14:21:03.789: D/GStreamer+playbin(3147): 0:00:32.476209367 0x64247d20 gstplaybin2.c:1603:gst_play_bin_set_uri set new uri to appsrc://
01-18 14:21:03.789: V/GStreamer+playbin(3147): 0:00:32.480299097 0x64247d20 gstplaybin2.c:5388:gst_play_bin_change_state:<playbin> clearing shutdown flag
01-18 14:21:03.789: D/GStreamer+playbin(3147): 0:00:32.481794595 0x64247d20 gstplaybin2.c:5280:setup_next_source:<playbin> setup sources
01-18 14:21:03.789: D/GStreamer+playbin(3147): 0:00:32.483747899 0x64247d20 gstplaybin2.c:4895:activate_group:<playbin> activating group 0x6426c2bc
01-18 14:21:03.789: D/GStreamer+playbin(3147): 0:00:32.485701203 0x64247d20 gstplaybin2.c:4965:activate_group:<playbin> making new uridecodebin
01-18 14:21:03.809: D/GStreamer+playbin(3147): 0:00:32.503860824 0x64247d20 gstplaybin2.c:4871:group_set_locked_state_unlocked:<playbin> locked_state 0 on group 0x6426c2bc
01-18 14:21:03.839: D/GStreamer+playbin(3147): 0:00:32.530321987 0x64247d20 gstplaybin2.c:2711:gst_play_bin_handle_message:<playbin> Ignoring async state change of uridecodebin: uridecodebin0
01-18 14:21:03.849: D/GStreamer+playbin(3147): 0:00:32.537799478 0x642483b0 gstplaybin2.c:4274:autoplug_continue_cb:<playbin> continue autoplugging group 0x6426c2bc for '':decodepad0, video/x-h264, width=(int)1254, height=(int)658: 1
01-18 14:21:03.849: D/GStreamer+playbin(3147): 0:00:32.538043641 0x642483b0 gstplaybin2.c:3934:autoplug_factories_cb:<playbin> factories group 0x6426c2bc for '':decodepad0, video/x-h264, width=(int)1254, height=(int)658
01-18 14:21:03.859: D/GStreamer+playbin(3147): 0:00:32.554860366 0x642483b0 gstplaybin2.c:3944:autoplug_factories_cb:<playbin> found factories 0x67d44230
01-18 14:21:03.859: D/GStreamer+playbin(3147): 0:00:32.555318171 0x642483b0 gstplaybin2.c:4318:autoplug_select_cb:<playbin> select group 0x6426c2bc for '':decodepad0, video/x-h264, width=(int)1254, height=(int)658
01-18 14:21:03.859: D/GStreamer+playbin(3147): 0:00:32.555775977 0x642483b0 gstplaybin2.c:4320:autoplug_select_cb:<playbin> checking factory h264parse
01-18 14:21:03.869: D/GStreamer+playbin(3147): 0:00:32.557515638 0x642483b0 gstplaybin2.c:3934:autoplug_factories_cb:<playbin> factories group 0x6426c2bc for '':decodepad0, video/x-h264, parsed=(boolean)true, stream-format=(string){ avc, avc3, byte-stream }, alignment=(string){ au, nal }
01-18 14:21:03.869: D/GStreamer+playbin(3147): 0:00:32.557973444 0x642483b0 gstplaybin2.c:3944:autoplug_factories_cb:<playbin> found factories 0x67d4e4d0
01-18 14:21:03.869: D/GStreamer+playbin(3147): 0:00:32.560933920 0x642483b0 gstplaybin2.c:3934:autoplug_factories_cb:<playbin> factories group 0x6426c2bc for '':decodepad0, ANY
01-18 14:21:03.869: D/GStreamer+playbin(3147): 0:00:32.561422246 0x642483b0 gstplaybin2.c:3944:autoplug_factories_cb:<playbin> found factories 0x67d56230
01-18 14:21:03.879: D/GStreamer+playbin(3147): 0:00:32.569143901 0x642483b0 gstplaybin2.c:3934:autoplug_factories_cb:<playbin> factories group 0x6426c2bc for '':decodepad0, ANY
01-18 14:21:03.879: D/GStreamer+playbin(3147): 0:00:32.569510145 0x642483b0 gstplaybin2.c:3944:autoplug_factories_cb:<playbin> found factories 0x67d5fba0
01-18 14:21:04.269: D/GStreamer+playbin(3147): 0:00:32.964718447 0x642483b0 gstplaybin2.c:3934:autoplug_factories_cb:<playbin> factories group 0x6426c2bc for '':decodepad0, ANY
01-18 14:21:04.279: D/GStreamer+playbin(3147): 0:00:32.966549669 0x642483b0 gstplaybin2.c:3944:autoplug_factories_cb:<playbin> found factories 0x67d562c0
01-18 14:21:04.299: D/GStreamer+playbin(3147): 0:00:32.987425604 0x642483b0 gstplaybin2.c:4274:autoplug_continue_cb:<playbin> continue autoplugging group 0x6426c2bc for '':decodepad0, video/x-h264, width=(int)1254, height=(int)658, framerate=(fraction)25/1, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high: 1
01-18 14:21:04.299: D/GStreamer+playbin(3147): 0:00:32.987913930 0x642483b0 gstplaybin2.c:3934:autoplug_factories_cb:<playbin> factories group 0x6426c2bc for '':decodepad0, video/x-h264, width=(int)1254, height=(int)658, framerate=(fraction)25/1, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high
01-18 14:21:04.299: D/GStreamer+playbin(3147): 0:00:32.991393252 0x642483b0 gstplaybin2.c:3944:autoplug_factories_cb:<playbin> found factories 0x67d60900
01-18 14:21:04.299: D/GStreamer+playbin(3147): 0:00:32.994048524 0x642483b0 gstplaybin2.c:4318:autoplug_select_cb:<playbin> select group 0x6426c2bc for '':decodepad0, video/x-h264, width=(int)1254, height=(int)658, framerate=(fraction)25/1, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high
01-18 14:21:04.299: D/GStreamer+playbin(3147): 0:00:32.994872574 0x642483b0 gstplaybin2.c:4320:autoplug_select_cb:<playbin> checking factory amcviddec-omxqcomvideodecoderavc
01-18 14:21:04.309: D/GStreamer+playbin(3147): 0:00:32.996795358 0x642483b0 gstplaybin2.c:4389:autoplug_select_cb:<playbin> Trying to create sink 'eglglessink' for decoder 'amcviddec-omxqcomvideodecoderavc'
01-18 14:21:04.499: D/GStreamer+playbin(3147): 0:00:33.194781014 0x67d59690 gstplaybin2.c:3018:pad_added_cb:<playbin> pad uridecodebin0:src_0 with caps video/x-raw, format=(string)NV12, width=(int)1254, height=(int)658, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)25/1 added in group 0x6426c2bc
01-18 14:21:04.499: D/GStreamer+playbin(3147): 0:00:33.194872575 0x67d59690 gstplaybin2.c:3057:pad_added_cb:<playbin> creating new input selector
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.196154430 0x67d59690 gstplaybin2.c:3092:pad_added_cb:<playbin> adding new stream combiner 0x642475d8
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.196368073 0x67d59690 gstplaybin2.c:3111:pad_added_cb:<playbin> blocking <inputselector0:src>
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.197314204 0x67d59690 gstplaybin2.c:3122:pad_added_cb:<playbin> got pad inputselector0:sink_0 from combiner
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.197833051 0x67d59690 gstplaybin2.c:3156:pad_added_cb:<playbin> pad 0x67ebf010 added to array
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.199114906 0x67d59690 gstplaybin2.c:3168:pad_added_cb:<playbin> linked pad uridecodebin0:src_0 to combiner 0x642475d8
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.199725314 0x67d59690 gstplaybin2.c:3388:no_more_pads_cb:<playbin> no more pads in group 0x6426c2bc
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.200457803 0x67d59690 gstplaybin2.c:3401:no_more_pads_cb:<playbin> requesting new sink pad 2
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.201953301 0x67d59690 gstplaybin2.c:3417:no_more_pads_cb:<playbin> linked type video/, result: 0
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.202441627 0x67d59690 gstplaybin2.c:3426:no_more_pads_cb:<playbin> pending 1 > 0
01-18 14:21:04.509: V/GStreamer+playbin(3147): 0:00:33.202624749 0x67d59690 gstplaybin2.c:3437:no_more_pads_cb:<playbin> last group complete
01-18 14:21:04.509: I/GStreamer+playbin(3147): 0:00:33.203265677 0x67d59690 gstplaybin2.c:3458:no_more_pads_cb:<playbin> setting custom video sink <eglglessink0>
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.203937125 0x67d59690 gstplaybin2.c:3480:no_more_pads_cb:<playbin> unblocking <inputselector0:src>
01-18 14:21:04.509: D/GStreamer+playbin(3147): 0:00:33.204852736 0x67d59690 gstplaybin2.c:2711:gst_play_bin_handle_message:<playbin> Ignoring async state change of uridecodebin: uridecodebin0
01-18 14:21:04.710: W/GStreamer+bufferpool(3147): 0:00:33.405310541 0x67d59690 gstbufferpool.c:632:gst_buffer_pool_set_config:<eglimagebufferpool0> can't change config, we are active
01-18 14:21:04.710: W/GStreamer+bufferpool(3147): 0:00:33.405463143 0x67d59690 gstbufferpool.c:632:gst_buffer_pool_set_config:<eglimagebufferpool0> can't change config, we are active
01-18 14:21:04.750: W/GStreamer+amcvideodec(3147): 0:00:33.438089422 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.585545551)
01-18 14:21:04.750: W/GStreamer+amcvideodec(3147): 0:00:33.438974513 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.551851060)
01-18 14:21:04.750: W/GStreamer+amcvideodec(3147): 0:00:33.440683653 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.519438424)
01-18 14:21:04.750: W/GStreamer+amcvideodec(3147): 0:00:33.441904468 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.452629330)
01-18 14:21:04.760: W/GStreamer+amcvideodec(3147): 0:00:33.451854110 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.298715092)
01-18 14:21:04.770: W/GStreamer+amcvideodec(3147): 0:00:33.458263388 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.287392033)
01-18 14:21:04.780: W/GStreamer+amcvideodec(3147): 0:00:33.468182509 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.286293300)
01-18 14:21:04.840: W/GStreamer+amcvideodec(3147): 0:00:33.532672055 0x67d59690 gstamcvideodec.c:1147:gst_amc_video_dec_loop:<amcvideodec-omxqcomvideodecoderavc0> Frame is too late, dropping (deadline 0:00:00.273413703)
01-18 14:21:04.870: W/GStreamer+amcvideodec(3147): 0:00:33.5649





Thanks,

- Jojo

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-android/attachments/20140118/2e2a409c/attachment.html>


More information about the gstreamer-android mailing list