Hi,
I have been trying to initialize a video player and play the video using imx8 board. I have created the pipeline elements accordingly. But on trying with the playback i get the error VP::Creating pipeline for Yocto build VP::END of pipeline creation VP::Window ID=0 VP::Creating thread to start core player VP::Starting core playback VP::Player start:Thread started VP::Created thread to start core player Video player started VP::Player init success! VP::Player init exit. VP::Player play: Entering.. VP::Window ID=0 VP::setting to play onVideoConfigChange : MRM handle[281473567429544] Video Resolution Type :2 VP::Pipeline state changed from NULL to READY : ====== VPUDEC: 4.4.2 build on Jun 29 2020 12:49:47. ====== wrapper: 3.0.0 (VPUWRAPPER_ARM64_LINUX Build on Jun 29 2020 12:22:33) vpulib: 1.1.1 firmware: 1.1.1.0 VP::Pipeline state changed from READY to PAUSED : VP::Pipeline play state change succeeded VP::setting done VP::Pipeline state changed from PAUSED to PLAYING : onVideoFocusChange : MRM handle[281473567429544]Focus type1Video focus change for AAP Focus type is gain ERR::VP::Error: Filter caps do not completely specify the output format : by flt ERR::VP::Error: Internal data stream error. : by source ERR::VP:: End of stream. Please find the following piece of code: printf("VP::Creating pipeline for Yocto build\n"); /* create all the elements we'll need */ psGstPlayer->pipeline = gst_pipeline_new("pipeline"); /* This is used to display the properties of all the pipeline elements */ g_signal_connect (psGstPlayer->pipeline, "deep-notify", G_CALLBACK (gst_object_default_deep_notify), NULL); psGstPlayer->eMediaType = VIDEO_STREAM_H264; psGstPlayer->source = gst_element_factory_make("appsrc", "source"); psGstPlayer->queue = gst_element_factory_make("queue", "queue"); psGstPlayer->Filter = gst_element_factory_make("capsfilter", "flt"); g_object_set(G_OBJECT (psGstPlayer->Filter), "caps", gst_caps_new_simple("video/x-h264", "framerate", GST_TYPE_FRACTION, psGstPlayer->uiFPS, 1, "width", G_TYPE_INT, psGstPlayer->uiVideoWidth, "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, "colorimetry", G_TYPE_STRING, "bt709", "format", G_TYPE_STRING, "avc", "height", G_TYPE_INT, psGstPlayer->uiVideoHeight, NULL), NULL); psGstPlayer->Parser = gst_element_factory_make("h264parse", "parser"); psGstPlayer->decoder = gst_element_factory_make("vpudec", "decoder"); psGstPlayer->crop = gst_element_factory_make("videocrop", "crop"); psGstPlayer->typefind = gst_element_factory_make("videoconvert", "colorspace"); psGstPlayer->sink = gst_element_factory_make("waylandsink", "sink"); g_object_set(G_OBJECT(psGstPlayer->source), "do-timestamp", TRUE, "is-live", TRUE, NULL); psGstPlayer->capsfilter = gst_element_factory_make("capsfilter", "flt1"); g_object_set(G_OBJECT (psGstPlayer->capsfilter), "caps", gst_caps_new_simple("video/x-raw", "framerate", GST_TYPE_FRACTION, psGstPlayer->uiFPS, 1, "width", G_TYPE_INT, psGstPlayer->uiDisplayWidth, "colorimetry", G_TYPE_STRING, "bt709", "format", G_TYPE_STRING, "BGRx", "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, "height", G_TYPE_INT, psGstPlayer->uiDisplayHeight, NULL), NULL); g_object_set(G_OBJECT(psGstPlayer->sink), "sync", FALSE, NULL); g_object_set(G_OBJECT(psGstPlayer->sink),"show-preroll-frame" ,FALSE ,NULL); g_object_set(G_OBJECT(psGstPlayer->sink),"blocksize" ,0 ,NULL); g_object_set(G_OBJECT(psGstPlayer->sink),"async" ,0 ,NULL); //g_object_set(G_OBJECT(psGstPlayer->sink),"ivi-surfaceid" ,IVI_SURFACE_ID ,NULL); g_object_set(G_OBJECT(psGstPlayer->sink),"window-height" ,psGstPlayer->uiDisplayHeight ,NULL); g_object_set(G_OBJECT(psGstPlayer->sink),"window-width" ,psGstPlayer->uiDisplayWidth ,NULL); if (!psGstPlayer->pipeline || !psGstPlayer->source || !psGstPlayer->Parser || !psGstPlayer->decoder || !psGstPlayer->queue || !psGstPlayer->typefind || !psGstPlayer->crop || !psGstPlayer->capsfilter || !psGstPlayer->sink || !psGstPlayer->Filter) { printf("ERR::VP::Failed to create elements %p, %p, %p, %p, %p, %p, %p, %p, %p, %p \n", psGstPlayer->pipeline, psGstPlayer->source, psGstPlayer->Parser, psGstPlayer->queue,psGstPlayer->capsfilter, psGstPlayer->Filter, psGstPlayer->decoder, psGstPlayer->crop, psGstPlayer->sink, psGstPlayer->typefind); iRet = -1; goto Exit; } I referred : gst-inspect-1.0 vpudec Factory Details: Rank primary + 1 (257) Long-name IMX VPU-based video decoder Klass Codec/Decoder/Video Description Decode compressed video to raw data Author Multimedia Team <[hidden email]> Plugin Details: Name vpu Description VPU video codec Filename /usr/lib/gstreamer-1.0/libgstvpu.so Version 4.4.2 License LGPL Source module imx-gst1.0-plugin Binary package Freescle Gstreamer Multimedia Plugins Origin URL http://www.freescale.com GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstVideoDecoder +----GstVpuDec Pad Templates: SRC template: 'src' Availability: Always Capabilities: video/x-raw format: { (string)NV12, (string)I420, (string)YV12, (string)Y42B, (string)NV16, (string)Y444, (string)NV24, (string)NV12_10LE } width: [ 1, 2147483647 ] height: [ 1, 2147483647 ] framerate: [ 0/1, 2147483647/1 ] SINK template: 'sink' Availability: Always Capabilities: video/x-h265 video/x-vp9 video/x-vp8 video/x-vp6-flash video/x-h264 video/mpeg systemstream: false mpegversion: { (int)1, (int)2 } video/mpeg mpegversion: 4 video/x-h263 video/x-flash-video flvversion: 1 video/x-divx divxversion: 3 video/x-divx divxversion: 4 video/x-divx divxversion: { (int)5, (int)6 } video/x-xvid video/x-cavs video/x-wmv wmvversion: 3 format: WMV3 video/x-wmv wmvversion: 3 format: WVC1 video/x-pn-realvideo image/jpeg image/webp Element has no clocking capabilities. Element has no URI handling capabilities. Pads: SINK: 'sink' Pad Template: 'sink' SRC: 'src' Pad Template: 'src' Element Properties: name : The name of the object flags: readable, writable String. Default: "vpudec0" parent : The parent of the object flags: readable, writable Object of type "GstObject" output-format : set raw video format for output (Y42B NV16 Y444 NV24 only for MJPEG) flags: readable, writable Enum "GstVpuDecOutputFormat" Default: 0, "auto" (0): auto - enable chroma interleave. (default) (1): NV12 - NV12 format (2): I420 - I420 format (3): YV12 - YV12 format (4): Y42B - Y42B format (5): NV16 - NV16 format (6): Y444 - Y444 format (7): NV24 - NV24 format frame-drop : enable adaptive frame drop for smoothly playback flags: readable, writable Boolean. Default: true frame-plus : set number of addtional frames for smoothly playback flags: readable, writable Unsigned Integer. Range: 0 - 16 Default: 3 use-vpu-memory : use vpu allocate video frame buffer flags: readable, writable Boolean. Default: true Kindly requesting you to assist with the same. Thank you. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |