Giter Site home page Giter Site logo

gstreamer-opencv's People

Contributors

wzyy2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gstreamer-opencv's Issues

关于Gstreamer播放RTSP流延时问题

情况是这样,我们用这个demo获取rtsp视频流给opencv操作。存在近2秒的延时问题,经过我们的多种测试,有如下几个基本情况,方便您分析:
1、在开发板使用ffmpeg软解显示,在程序运行刚开始,会有类似于快进一样的效果出现,把不是实时的帧快速播放掉。之后的视频就是延时很小的视频了。
2、使用rtsp ip 摄像头厂商提供的工具,可以做到实时播放。(这种效果是不是可以排除网络延时、路由等影响)
3、在开发板上使用VLC播放器播放rtsp流,缓冲区设置成300,会得到一个很好的实时效果。
4、在开发板上使用您的例程播放,会有2秒的延时。在修改appsink中的drop和max_buffer参数(您的例程中分别为drop=true,max_buffer=1,我试了多种情况组合)并没有对延时时间进行改善。

我的初步考虑是:
综合情况1-3,可能是摄像头这边有图像的缓存(但是官方的软件中并没有设置缓存这一项),在ffmpeg或者gstreamer接收到的流可能是先有缓存的流。但是ffmpeg的策略让这些缓存帧快速播放,而gstreamer好像没有这样的策略。
所以想请教您一下,如何做到类似ffmpeg一样,丢弃先前的缓冲帧,达到实时播放的目的。
望您不吝赐教。

How to fix the compile error such as " note: in expansion of macro" ?

firefly@firefly:~/gstreamer-opencv$ make
arm-linux-gnueabihf-g++ -pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/aarch64-linux-gnu/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -I/usr/include/opencv /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so -lopencv_calib3d /usr/lib/aarch64-linux-gnu/libopencv_contrib.so -lopencv_contrib /usr/lib/aarch64-linux-gnu/libopencv_core.so -lopencv_core /usr/lib/aarch64-linux-gnu/libopencv_features2d.so -lopencv_features2d /usr/lib/aarch64-linux-gnu/libopencv_flann.so -lopencv_flann /usr/lib/aarch64-linux-gnu/libopencv_gpu.so -lopencv_gpu /usr/lib/aarch64-linux-gnu/libopencv_highgui.so -lopencv_highgui /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so -lopencv_imgproc /usr/lib/aarch64-linux-gnu/libopencv_legacy.so -lopencv_legacy /usr/lib/aarch64-linux-gnu/libopencv_ml.so -lopencv_ml /usr/lib/aarch64-linux-gnu/libopencv_objdetect.so -lopencv_objdetect /usr/lib/aarch64-linux-gnu/libopencv_ocl.so -lopencv_ocl /usr/lib/aarch64-linux-gnu/libopencv_photo.so -lopencv_photo /usr/lib/aarch64-linux-gnu/libopencv_stitching.so -lopencv_stitching /usr/lib/aarch64-linux-gnu/libopencv_superres.so -lopencv_superres /usr/lib/aarch64-linux-gnu/libopencv_ts.so -lopencv_ts /usr/lib/aarch64-linux-gnu/libopencv_video.so -lopencv_video /usr/lib/aarch64-linux-gnu/libopencv_videostab.so -lopencv_videostab -c Main.cpp -o Main.o
In file included from /usr/lib/aarch64-linux-gnu/glib-2.0/include/glibconfig.h:9:0,
from /usr/include/glib-2.0/glib/gtypes.h:32,
from /usr/include/glib-2.0/glib/galloca.h:32,
from /usr/include/glib-2.0/glib.h:30,
from /usr/include/gstreamer-1.0/gst/gst.h:27,
from /usr/include/gstreamer-1.0/gst/allocators/gstdmabuf.h:24,
from Common.h:6,
from Main.cpp:1:
/usr/include/glib-2.0/glib/gtypes.h: In function ‘gboolean _GLIB_CHECKED_ADD_U64(guint64*, guint64, guint64)’:
/usr/include/glib-2.0/glib/gmacros.h:142:29: error: size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative
attribute((unused))
^
/usr/include/glib-2.0/glib/gmacros.h:232:120: note: in expansion of macro ‘G_GNUC_UNUSED’
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (GStaticAssertCompileTimeAssertion, COUNTER)[(expr) ? 1 : -1] G_GNUC_UNUSED
^
/usr/include/glib-2.0/glib/gtypes.h:422:3: note: in expansion of macro ‘G_STATIC_ASSERT’
G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64));
^
In file included from /usr/include/gstreamer-1.0/gst/gst.h:86:0,
from /usr/include/gstreamer-1.0/gst/allocators/gstdmabuf.h:24,
from Common.h:6,
from Main.cpp:1:
/usr/include/gstreamer-1.0/gst/gstutils.h: In function ‘guint64 __gst_slow_read64_be(const guint8*)’:
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 *) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:164:36: note: in expansion of macro ‘_GST_GET’
#define _GST_READ_UINT64_BE(data) (_GST_GET (data, 0, 64, 56) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:184:10: note: in expansion of macro ‘_GST_READ_UINT64_BE’
return _GST_READ_UINT64_BE (data);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 *) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:165:7: note: in expansion of macro ‘_GST_GET’
_GST_GET (data, 1, 64, 48) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:184:10: note: in expansion of macro ‘_GST_READ_UINT64_BE’
return _GST_READ_UINT64_BE (data);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 *) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:166:7: note: in expansion of macro ‘_GST_GET’
_GST_GET (data, 2, 64, 40) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:184:10: note: in expansion of macro ‘_GST_READ_UINT64_BE’
return _GST_READ_UINT64_BE (data);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 ) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:167:7: note: in expansion of macro ‘_GST_GET’
_GST_GET (data, 3, 64, 32) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:184:10: note: in expansion of macro ‘_GST_READ_UINT64_BE’
return _GST_READ_UINT64_BE (data);
^
/usr/include/gstreamer-1.0/gst/gstutils.h: In function ‘guint64 __gst_slow_read64_le(const guint8
)’:
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 *) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:173:36: note: in expansion of macro ‘_GST_GET’
#define _GST_READ_UINT64_LE(data) (_GST_GET (data, 7, 64, 56) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:188:10: note: in expansion of macro ‘_GST_READ_UINT64_LE’
return _GST_READ_UINT64_LE (data);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 *) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:174:7: note: in expansion of macro ‘_GST_GET’
_GST_GET (data, 6, 64, 48) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:188:10: note: in expansion of macro ‘_GST_READ_UINT64_LE’
return _GST_READ_UINT64_LE (data);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 *) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:175:7: note: in expansion of macro ‘_GST_GET’
_GST_GET (data, 5, 64, 40) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:188:10: note: in expansion of macro ‘_GST_READ_UINT64_LE’
return _GST_READ_UINT64_LE (data);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:111:72: warning: left shift count >= width of type [-Wshift-count-overflow]
(((guint##__size) (((const guint8 *) (__data))[__idx])) << (__shift))
^
/usr/include/gstreamer-1.0/gst/gstutils.h:176:7: note: in expansion of macro ‘_GST_GET’
_GST_GET (data, 4, 64, 32) |
^
/usr/include/gstreamer-1.0/gst/gstutils.h:188:10: note: in expansion of macro ‘_GST_READ_UINT64_LE’
return _GST_READ_UINT64_LE (data);
^
In file included from /usr/include/glib-2.0/glib/galloca.h:32:0,
from /usr/include/glib-2.0/glib.h:30,
from /usr/include/gstreamer-1.0/gst/gst.h:27,
from /usr/include/gstreamer-1.0/gst/allocators/gstdmabuf.h:24,
from Common.h:6,
from Main.cpp:1:
/usr/include/gstreamer-1.0/gst/gstutils.h: In function ‘gdouble GDOUBLE_SWAP_LE_BE(gdouble)’:
/usr/include/glib-2.0/glib/gtypes.h:163:56: warning: left shift count >= width of type [-Wshift-count-overflow]
(guint64) G_GINT64_CONSTANT (0x00000000000000ffU)) << 56) |
^
/usr/include/glib-2.0/glib/gtypes.h:330:36: note: in expansion of macro ‘GUINT64_SWAP_LE_BE_CONSTANT’

define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val))

                                ^

/usr/include/gstreamer-1.0/gst/gstutils.h:486:9: note: in expansion of macro ‘GUINT64_SWAP_LE_BE’
u.i = GUINT64_SWAP_LE_BE (u.i);
^
/usr/include/glib-2.0/glib/gtypes.h:165:56: warning: left shift count >= width of type [-Wshift-count-overflow]
(guint64) G_GINT64_CONSTANT (0x000000000000ff00U)) << 40) |
^
/usr/include/glib-2.0/glib/gtypes.h:330:36: note: in expansion of macro ‘GUINT64_SWAP_LE_BE_CONSTANT’

define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val))

                                ^

/usr/include/gstreamer-1.0/gst/gstutils.h:486:9: note: in expansion of macro ‘GUINT64_SWAP_LE_BE’
u.i = GUINT64_SWAP_LE_BE (u.i);
^
/usr/include/glib-2.0/glib/gtypes.h:175:56: warning: right shift count >= width of type [-Wshift-count-overflow]
(guint64) G_GINT64_CONSTANT (0x00ff000000000000U)) >> 40) |
^
/usr/include/glib-2.0/glib/gtypes.h:330:36: note: in expansion of macro ‘GUINT64_SWAP_LE_BE_CONSTANT’

define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val))

                                ^

/usr/include/gstreamer-1.0/gst/gstutils.h:486:9: note: in expansion of macro ‘GUINT64_SWAP_LE_BE’
u.i = GUINT64_SWAP_LE_BE (u.i);
^
/usr/include/glib-2.0/glib/gtypes.h:177:56: warning: right shift count >= width of type [-Wshift-count-overflow]
(guint64) G_GINT64_CONSTANT (0xff00000000000000U)) >> 56)))
^
/usr/include/glib-2.0/glib/gtypes.h:330:36: note: in expansion of macro ‘GUINT64_SWAP_LE_BE_CONSTANT’

define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val))

                                ^

/usr/include/gstreamer-1.0/gst/gstutils.h:486:9: note: in expansion of macro ‘GUINT64_SWAP_LE_BE’
u.i = GUINT64_SWAP_LE_BE (u.i);
^
In file included from /usr/include/gstreamer-1.0/gst/gst.h:86:0,
from /usr/include/gstreamer-1.0/gst/allocators/gstdmabuf.h:24,
from Common.h:6,
from Main.cpp:1:
/usr/include/gstreamer-1.0/gst/gstutils.h: In function ‘void GST_WRITE_DOUBLE_LE(guint8*, gdouble)’:
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:341:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 4, 64, 32, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:712:3: note: in expansion of macro ‘GST_WRITE_UINT64_LE’
GST_WRITE_UINT64_LE (data, u.i);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:342:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 5, 64, 40, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:712:3: note: in expansion of macro ‘GST_WRITE_UINT64_LE’
GST_WRITE_UINT64_LE (data, u.i);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:343:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 6, 64, 48, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:712:3: note: in expansion of macro ‘GST_WRITE_UINT64_LE’
GST_WRITE_UINT64_LE (data, u.i);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 ) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:344:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 7, 64, 56, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:712:3: note: in expansion of macro ‘GST_WRITE_UINT64_LE’
GST_WRITE_UINT64_LE (data, u.i);
^
/usr/include/gstreamer-1.0/gst/gstutils.h: In function ‘void GST_WRITE_DOUBLE_BE(guint8
, gdouble)’:
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:318:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 0, 64, 56, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:732:3: note: in expansion of macro ‘GST_WRITE_UINT64_BE’
GST_WRITE_UINT64_BE (data, u.i);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:319:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 1, 64, 48, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:732:3: note: in expansion of macro ‘GST_WRITE_UINT64_BE’
GST_WRITE_UINT64_BE (data, u.i);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:320:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 2, 64, 40, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:732:3: note: in expansion of macro ‘GST_WRITE_UINT64_BE’
GST_WRITE_UINT64_BE (data, u.i);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:114:75: warning: right shift count >= width of type [-Wshift-count-overflow]
(((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
^
/usr/include/gstreamer-1.0/gst/gstutils.h:321:43: note: in expansion of macro ‘_GST_PUT’
_GST_PUT (__put_data, 3, 64, 32, num);
^
/usr/include/gstreamer-1.0/gst/gstutils.h:732:3: note: in expansion of macro ‘GST_WRITE_UINT64_BE’
GST_WRITE_UINT64_BE (data, u.i);
^
makefile:32: recipe for target 'Main.o' failed
make: *** [Main.o] Error 1

x64 Linked failed

When I LD the project failed.
My opencv version is 2.4.13.4-16-g7c0193b compiled from git.

./opencv/OpenCVFaceDect.o: In function `OpenCVFaceDect::OpenCVFaceDect()':
OpenCVFaceDect.cpp:(.text+0x41): undefined reference to `cv::CascadeClassifier::CascadeClassifier()'
OpenCVFaceDect.cpp:(.text+0xa7): undefined reference to `cv::ocl::setBinaryPath(char const*)'
OpenCVFaceDect.cpp:(.text+0x11b): undefined reference to `cv::CascadeClassifier::~CascadeClassifier()'
./opencv/OpenCVFaceDect.o: In function `OpenCVFaceDect::~OpenCVFaceDect()':
OpenCVFaceDect.cpp:(.text+0x1bf): undefined reference to `cv::CascadeClassifier::~CascadeClassifier()'
OpenCVFaceDect.cpp:(.text+0x22b): undefined reference to `cv::CascadeClassifier::~CascadeClassifier()'
./opencv/OpenCVFaceDect.o: In function `OpenCVFaceDect::Initialize(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator<char> >)':
OpenCVFaceDect.cpp:(.text+0x28b): undefined reference to `cv::CascadeClassifier::load(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator<char> > const&)'
./opencv/OpenCVFaceDect.o: In function `OpenCVFaceDect::Run()':
OpenCVFaceDect.cpp:(.text+0x562): undefined reference to `cv::CascadeClassifier::detectMultiScale(cv::Mat const&, std::vector<cv::rect_<int>, std::allocator<cv::rect_<int> > >&, double, int, int, cv::Size_<int>, cv::Size_<int>)'
collect2: error: ld returned 1 exit status

I found a bolg shows a method, but i am poor for write makefile.Could you spend a bit of time fix this?
http://blog.csdn.net/andylfg/article/details/39530559
http://answers.opencv.org/question/165673/i-found-this-error-while-running-sample-cpp-example-facedetectcpp-undefiend-reference-to-cv/
bsdnoobz/web-based-face-detect#1

安装opecv带gstreamer mpp硬解码

大神,自带gstreamer试了可以硬解,效果也不错,但是编译opencv带gstreamer一直有问题,有没有已经编译好的可以用,或者有什么编译教程可以结合起来用,TX2在这块的资料比较多,Rockchip的比较少,感谢!

rgaconvert

请问下rgaconvert怎么安装的呢,我编译了gstreamer-rockchip-extra,却还是显示没有rgaconvert

gst_app_src_push_buffer successfully but can no show video

Hi ,
I have a problem of running your code demo about appsrc / appsink
Here is my main pipleline

filesrc location=/usr/local/1080P.mp4 ! decodebin name=dec ! videoconvert ! appsink name="myappsink"
appsrc name="myappsrc" ! autovideosink

And I can make it work directly by
filesrc location=/usr/local/1080P.mp4 ! decodebin name=dec ! videoconvert ! autovideosink
But when running the code in

bool GstAppSrcPipeline::SendBUF(GstBuffer* buffer)
{
    boost::mutex::scoped_lock(pushBufferFlagMutex);
    if (!needsData) {
        std::cout << "CHANGED\n";
        return false;
    }

    if (buffer) {
        if (needsData){
            GstFlowReturn ret = gst_app_src_push_buffer((GstAppSrc*)appsrc, buffer); // buffer released automatically
            if(ret != GST_FLOW_OK){
            	std::cout << "GstFlowReturn no OK";
            }
        }

    }

    return true;
}

It show me that everytime I have successfully push buffer to the appsrc . But I can no visual the video .
Any help would be appreciate !
Thanks .

EGLFS help

拜讀您大作
http://blog.iotwrt.com/tips/2017/06/04/swap-layer/

EGLFS 在 GUI 部份 rk3566 採用 eglfs gbm
https://dev.t-firefly.com/thread-115884-1-1.html

敝人有將它build成 eglfs mali 需外加
cp -f ./fbdev_window.h ./output/rockchip_rk3566/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/EGL

1.請問rk3566架構適用 gbm 還是 mali

2.由於eglfs只能創建一次 qmlvideo 是否是與gui 在同一支app
還是qmlvideo是另一個app

3.https://github.com/Openwide-Ingenierie/imx8-qmlplayer/tree/master/src
若改寫的話 請問適合您說的qmlvideo嗎 需要注意那些事?

恭敬大安 by Jesse Stone

Compiled failed...

Hi:
It went failed when I compiled it.

Which version of OpenCV do you use? v2.x? 

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.