Hi All,
I've got a DASH pipeline on a Raspberry Pi using git latest GStreamer, built with buildroot. I'm currently trying to track down a very awkward issue to do with representation switching and I'd like some advice. I'm seeing a playback stall when switching between two specific representations, and it only shows on a Raspberry Pi. Any other device seems to be able to change representations correctly (tested with an amd64 Ubuntu 16.04 box and a MIPS STB platform, all built from the same source), so I'm assuming it's something EGL/OpenMAX related that's at fault. For the set of six representations that we have, most representation changes will change both the resolution of the media and one or more of the framerate, H.264 level and profile. However, switching between representations 3 and 4 only change the resolution and not anything else, and this seems to be the cause of the playback pause. When the playback has stalled on screen, the logs still seem to indicate that the playback is continuing fine, I'm seeing h264parse logging that it's receiving data, omxh264dec still seems to be decoding it, and the gl elements appear to still be doing things. But the picture is frozen on screen. There are no errors or warnings printed in the logs. The only difference between a representation change that doesn't work and one that does is that the failure case never seems to hit gst_omx_video_dec_set_format() with the new resolution. Presumably this function needs to be called in order to update the chain with the new resolution of the video, but what is supposed to do this? My current (simplified) pipeline is below: dashdemux ! video/quicktime ! queue ! qtdemux ! h264parse ! omxh264dec ! queue ! glupload ! glcolorconvert ! glcolorscale ! "video/x-raw(memory:GLMemory),width=1280,height=720" ! queue ! glimagesink I would love to be able to share the stream that causes this bug to arise, but unfortunately it only shows itself in a live stream that I cannot share externally. So please forgive the length of this email, but I'm trying to fit in as much detail as possible because of the above. If anyone could give me any pointers on exactly how the change in resolution is supposed to flow down the pipeline, that would be great. Best Regards, Sam _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (836 bytes) Download Attachment |
Free forum by Nabble | Edit this page |