Gstreamer: filter caps do not completely specify the output format : by flt

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Gstreamer: filter caps do not completely specify the output format : by flt

aish
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