News:

--

Main Menu

2.6.11beta problems

Started by pchristy, December 30, 2015, 11:43:07 AM

Previous topic - Next topic

pchristy

Will do. Might take a little longer this time......

Video is 1920x1080.

BTW, the debug version also works fine when NOT running through gdb.
--
Pete

pchristy

YES! That worked perfectly. I also tried re-sizing, and all the combinations that caused problems initially, and its all good.

I've renamed my local version as beta2, so that I could keep the different builds available, FYI.

I also built beta1 on my small and rather under-powered laptop. That uses ati chips throughout, but uses the open source drivers, and therefore vdpau rather than libva. That also worked perfectly, so it was clearly something Intel / libva related that was causing the problem.

Many thanks for a quick fix!

Cheers,
--
Pete

mean

It's not  a fix :)
Just confirming that gcc is optimizing too much the code
Temptative fix in 5 mn

mean

Tempative fix commited
Should work, but not 100% sure

pchristy

No, that doesn't work! If you just do a simple transcode, it freezes. If you try a re-size, it crashes and vanishes as soon as you try a preview.

So its crashing slightly differently (the original didn't freeze), but it still doesn't work.

I'm going to have to leave it for today, now. Hopefully I'll get chance for another look tomorrow.

Cheers,
--
Pete

pchristy

Just tried running that last build through gdb, and again, it works perfectly - no crashes or freezes regardless of transcode or resize. It only mis-behaves if I run it directly!

--
Pete
--
Pete

pchristy

Ignore that last post! I was having a brain-fade (it happens at my age!   :o ). I must have re-installed beta2 before I went to bed last night! I've just reinstalled the git build from last night and it crashes through gdb. This is the (release version) backtrace resulting from a transcode to x265 with a resize from 1920x1080 to 720x576. This happened as soon as I tried to preview the filter:
(gdb) bt                                                                                                   
#0  0x00007ffff592d495 in ADMImage::convertFromNV12(unsigned char*, unsigned char*, int, int) ()           
    at /usr/lib64/libADM_coreImage6.so                                                                     
#1  0x00007ffff79c909a in admLibVA::surfaceToAdmImage(ADMImage*, ADM_vaSurface*) ()                       
    at /usr/lib64/libADM_coreLibVA6.so                                                                     
#2  0x00007ffff592a609 in ADMImage::hwDownloadFromRef() () at /usr/lib64/libADM_coreImage6.so             
#3  0x00007fffca4c163e in swScaleResizeFilter::getNextFrame(unsigned int*, ADMImage*) ()                   
    at /usr/lib64/ADM_plugins6/videoFilters//qt4/libADM_vf_swscaleResizeQT4.so                             
#4  0x00007ffff4c4336c in ADM_flyDialog::nextImage() () at /usr/lib64/libADM_coreVideoFilter6.so           
#5  0x00007ffff4c43705 in ADM_flyDialog::sliderChanged() () at /usr/lib64/libADM_coreVideoFilter6.so       
#6  0x0000000000490a34 in Ui_seekablePreviewWindow::Ui_seekablePreviewWindow(QWidget*, ADM_coreVideoFilter*, unsigned int) ()                                                                                         
#7  0x000000000048c4ed in filtermainWindow::preview(bool) ()                                               
#8  0x00007ffff39c3ec0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()             
    at /usr/lib64/libQtCore.so.4                                                                           
#9  0x00007ffff457a3f2 in QAbstractButton::clicked(bool) () at /usr/lib64/libQtGui.so.4                   
#10 0x00007ffff42d2763 in  () at /usr/lib64/libQtGui.so.4                                                 
#11 0x00007ffff42d3954 in  () at /usr/lib64/libQtGui.so.4                                                 
#12 0x00007ffff42d3a44 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib64/libQtGui.so.4 
#13 0x00007ffff3f6c5a0 in QWidget::event(QEvent*) () at /usr/lib64/libQtGui.so.4                           
#14 0x00007ffff3f1954c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()                         
    at /usr/lib64/libQtGui.so.4                                                                           
#15 0x00007ffff3f20183 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4           
#16 0x00007ffff39b0c8d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()                           
    at /usr/lib64/libQtCore.so.4                                                                           
#17 0x00007ffff3f1f81d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib64/libQtGui.so.4                                         
#18 0x00007ffff3f96bc9 in  () at /usr/lib64/libQtGui.so.4                                                 
#19 0x00007ffff3f94ec5 in QApplication::x11ProcessEvent(_XEvent*) () at /usr/lib64/libQtGui.so.4           
#20 0x00007ffff3fbc9c2 in  () at /usr/lib64/libQtGui.so.4                                                 
#21 0x00007ffff001d787 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0                       
---Type <return> to continue, or q <return> to quit---                                                     
#22 0x00007ffff001d9b8 in  () at /usr/lib64/libglib-2.0.so.0                                               
#23 0x00007ffff001da5c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0                       
#24 0x00007ffff39df13e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()   
    at /usr/lib64/libQtCore.so.4                                                                           
#25 0x00007ffff3fbca66 in  () at /usr/lib64/libQtGui.so.4                                                 
#26 0x00007ffff39af651 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()             
    at /usr/lib64/libQtCore.so.4                                                                           
#27 0x00007ffff39af965 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()                       
    at /usr/lib64/libQtCore.so.4                                                                           
#28 0x00007ffff43ccf3c in QDialog::exec() () at /usr/lib64/libQtGui.so.4                                   
#29 0x000000000048e4d8 in GUI_handleVFilter() ()                                                           
#30 0x000000000043d9ae in HandleAction(Action) ()                                                         
#31 0x000000000048b6c4 in  ()                                                                             
#32 0x00007ffff39c3ec0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()             
    at /usr/lib64/libQtCore.so.4                                                                           
#33 0x000000000048b72c in MainWindow::actionSignal(Action) ()                                             
#34 0x0000000000474c23 in MainWindow::buttonPressed() ()                                                   
#35 0x000000000048b660 in  ()                                                                             
#36 0x00007ffff39c3ec0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()             
    at /usr/lib64/libQtCore.so.4                                                                           
#37 0x00007ffff457a3f2 in QAbstractButton::clicked(bool) () at /usr/lib64/libQtGui.so.4                   
#38 0x00007ffff42d2763 in  () at /usr/lib64/libQtGui.so.4
#39 0x00007ffff42d3954 in  () at /usr/lib64/libQtGui.so.4
#40 0x00007ffff42d3a44 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib64/libQtGui.so.4
#41 0x00007ffff3f6c5a0 in QWidget::event(QEvent*) () at /usr/lib64/libQtGui.so.4
#42 0x00007ffff3f1954c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib64/libQtGui.so.4
#43 0x00007ffff3f20183 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#44 0x00007ffff39b0c8d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
    at /usr/lib64/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#45 0x00007ffff3f1f81d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib64/libQtGui.so.4
#46 0x00007ffff3f96bc9 in  () at /usr/lib64/libQtGui.so.4
#47 0x00007ffff3f94ec5 in QApplication::x11ProcessEvent(_XEvent*) () at /usr/lib64/libQtGui.so.4
#48 0x00007ffff3fbc9c2 in  () at /usr/lib64/libQtGui.so.4
#49 0x00007ffff001d787 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#50 0x00007ffff001d9b8 in  () at /usr/lib64/libglib-2.0.so.0
#51 0x00007ffff001da5c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#52 0x00007ffff39df13e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQtCore.so.4
#53 0x00007ffff3fbca66 in  () at /usr/lib64/libQtGui.so.4
#54 0x00007ffff39af651 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQtCore.so.4
#55 0x00007ffff39af965 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQtCore.so.4
#56 0x00007ffff39b4f59 in QCoreApplication::exec() () at /usr/lib64/libQtCore.so.4
#57 0x0000000000477a55 in UI_RunApp() ()
#58 0x0000000000442ef1 in startAvidemux(int, char**) ()
#59 0x00007ffff16646d0 in __libc_start_main () at /lib64/libc.so.6
#60 0x000000000043a079 in _start ()


Let me know what else you might need, and I'll post it.

Cheers,

--
Pete

Jan Gruuthuse

x265 --version
Quotex265 [info]: HEVC encoder version 1.5+1-32d72a0285e0
x265 [info]: build info [Linux][GCC 4.8.2][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX

mean

I think i've found the problem, even if i can't reproduce it
I'll commit the fix later today

pchristy

Jan: Its not exclusive to x265 - it happens whatever I'm trying to do. I think Mean is right, its something to do with libva and hardware decoding. If I disable libva for decoding, it all works.

Mean: Thanks for your efforts!

--
Pete
--
Pete

mean

I think that the last commit should prevent gcc from optimizing too much

pchristy

#26
No, still not there.

Input 1920x1080 mp4 file, transcode to x265 and resize to 720x576. Preview in the filter window, and CRASH.

Segfault
at line 0, file ??ADM_backTrack

ADMImage::convertFromNV12(unsigned char*, unsigned char*, int, int)
admLibVA::surfaceToAdmImage(ADMImage*, ADM_vaSurface*)
ADMImage::hwDownloadFromRef()
swScaleResizeFilter::getNextFrame(unsigned int*, ADMImage*)
ADM_flyDialog::nextImage()
ADM_flyDialog::sliderChanged()
Ui_seekablePreviewWindow::Ui_seekablePreviewWindow(QWidget*, ADM_coreVideoFilter*, unsigned int)
filtermainWindow::preview(bool)
QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
QAbstractButton::clicked(bool)


QAbstractButton::mouseReleaseEvent(QMouseEvent*)
QWidget::event(QEvent*)
QApplicationPrivate::notify_helper(QObject*, QEvent*)
QApplication::notify(QObject*, QEvent*)
QCoreApplication::notifyInternal(QObject*, QEvent*)
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool)


That's from the crash window. Do you want me to run it through gdb, or is that enough?

Cheers,

--
Pete

mean

Do you know what gcc/g++ you are using ?
The changes i have made should be more than enough

mean

ok, i was distracted when doing the change
Now it should work (tm)

pchristy

Happy New Year, Mean! I hope you got out and celebrated a bit last night! I would feel very guilty if I thought you spent New Year's Eve slaving over a hot computer!

Sorry, though - its still crashing! Running it from a terminal window to try and get a trace produces this when I try and save the video:
*********** BACKTRACK **************
/usr/lib64/libADM_core6.so(ADM_backTrack+0x4d) [0x7fdfa0517c3d]:0:<ADM_backTrack>:-2
/lib64/libc.so.6(+0x35aa0) [0x7fdf9b416aa0]:1:<>:-2
/usr/lib64/libADM_coreImage6.so(_ZN8ADMImage15convertFromNV12EPhS0_ii+0x1f7) [0x7fdf9f6ca4f7]:2:<ADMImage::convertFromNV12(unsigned char*, unsigned char*, int, int)>:0
/usr/lib64/libADM_coreLibVA6.so(_ZN8admLibVA17surfaceToAdmImageEP8ADMImageP13ADM_vaSurface+0x32a) [0x7fdfa17660aa]:3:<admLibVA::surfaceToAdmImage(ADMImage*, ADM_vaSurface*)>:0
/usr/lib64/libADM_coreImage6.so(_ZN8ADMImage17hwDownloadFromRefEv+0x29) [0x7fdf9f6c7619]:4:<ADMImage::hwDownloadFromRef()>:0
/usr/lib64/ADM_plugins6/videoFilters//qt4/libADM_vf_swscaleResizeQT4.so(_ZN19swScaleResizeFilter12getNextFrameEPjP8ADMImage+0x1e) [0x7fdf7425e63e]:5:<swScaleResizeFilter::getNextFrame(unsigned int*, ADMImage*)>:0
avidemux3_qt4(_ZN20ADM_videoFilterQueue9runActionEv+0xa2) [0x4712c2]:6:<ADM_videoFilterQueue::runAction()>:0
/usr/lib64/libADM_coreUtils6.so(_ZN15ADM_threadQueue3runEv+0x11) [0x7fdf9f010741]:7:<ADM_threadQueue::run()>:0
/usr/lib64/libADM_coreUtils6.so(+0x1c759) [0x7fdf9f010759]:8:<>:-2
/lib64/libpthread.so.0(+0x7704) [0x7fdf9d3a6704]:9:<>:-2
/lib64/libc.so.6(clone+0x6d) [0x7fdf9b4e8f8d]:10:<clone>:-2
*********** BACKTRACK **************
QObject::setParent: Cannot set parent, new parent is in a different thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPainter::begin: Paint device returned engine == 0, type: 2
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae5da0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae05c0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae05c0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae5da0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject::installEventFilter(): Cannot filter events for objects in a different thread.
QObject::installEventFilter(): Cannot filter events for objects in a different thread.
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae5da0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::LabelEngine(0x2aec170), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae5da0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae5da0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::LabelEngine(0x2aec170), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae5da0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Oxygen::WidgetStateEngine(0x2ae5da0), parent's thread is QThread(0x29f4580), current thread is QThread(0x7fded4002cd0)


That was the result from simply trying to save a transcoded and re-sized video, without previewing it. There was no crash window - it just freezes. If I try and preview it from the filter window, I do get a crash window:

Segfault
at line 0, file ??ADM_backTrack

ADMImage::convertFromNV12(unsigned char*, unsigned char*, int, int)
admLibVA::surfaceToAdmImage(ADMImage*, ADM_vaSurface*)
ADMImage::hwDownloadFromRef()
swScaleResizeFilter::getNextFrame(unsigned int*, ADMImage*)
ADM_flyDialog::nextImage()
ADM_flyDialog::sliderChanged()
Ui_seekablePreviewWindow::Ui_seekablePreviewWindow(QWidget*, ADM_coreVideoFilter*, unsigned int)
filtermainWindow::preview(bool)
QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
QAbstractButton::clicked(bool)


QAbstractButton::mouseReleaseEvent(QMouseEvent*)
QWidget::event(QEvent*)
QApplicationPrivate::notify_helper(QObject*, QEvent*)
QApplication::notify(QObject*, QEvent*)
QCoreApplication::notifyInternal(QObject*, QEvent*)
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool)


I'm using gcc-5.3.0. I do have one other program - a very old one - that refuses to compile at all under 5.3 unless I pass it the "-std=gnu89". I do this like so:
CC="gcc -std=gnu89 -O2 -fPIC" ./configure
where "-O2 -fPIC" are the standard flags for an x86_64 build. But that is for a standard "configure / make / make-install"  build. I can't see anywhere in your bootStrap.bash script where similar parameters are set, or I would try it with gcc "throttled back", as with that other program. (Its a 2.4 GHz spectrum analyzer, by the way, nothing to do with video, and it won't compile at all without that parameter.)

Hope this helps!

BTW, one other bug I've stumbled across is that when I try and resize the video to 720x576, every time I try and enter the 576 it auto-corrects to 566! I cannot change the middle 6 back to 7 until I have entered all three digits! This is in the software resize window.  ???

Cheers,
--
Pete