Assert failed :nalSize+16<ADM_NAL_BUFFER_SIZE at line 30, file [...]/ADM_tsIndex

Started by mm0359, August 19, 2016, 02:33:43 AM

Previous topic - Next topic

mm0359

Hello,
I have a few ".ts" files which I (still) can't load in Avidemux.

In short,
Avidemux v2.6.8 (Windows 2000) crashes.
Avidemux v2.6.12 (Windows Vista) behavior improved (somewhat) : it asserts.

The failure happens while creating the ".ts.idx2" file :
{
Assert failed :nalSize+16<ADM_NAL_BUFFER_SIZE at line 30, file [...]/ADM_tsIndexH264.cpp

ADM_setCrashHook  [libADM_core6.dll]
ADM_backTrack  [libADM_core6.dll]
TsIndexer::runH264(char const*, ADM_TS_TRACK*)  [libADM_dm_ts.dll]
tsIndexer(char const*)  [libADM_dm_ts.dll]
probe  [libADM_dm_ts.dll]
ADM_demuxerSpawn(unsigned int, char const*)  [libADM_coreDemuxer6.dll]
}
(With (brand new) v2.6.13, same assert, but at line 31.)

I hope you/we can debug/workaround/fix this assert...
Thanks.

mean


mm0359


mean


mm0359

Quote from: mean on August 19, 2016, 08:55:52 AM
i would need a sample file that shows the problem
This is the 0 to 2 % part (60 MB) of such a ".ts" file.
It asserts around 60%, then leaves a 59 KB ".ts.idx2" file.

Link: BB508(0-2pc)__WVista-ADv2613-AssertAround60pc).ts
Auth: AnyUsername + "ADM_NAL_BUFFER_SIZE"

mm0359

Quote from: mm0359 on August 19, 2016, 02:33:43 AM
I have a few ".ts" files which I (still) can't load in Avidemux.
Fwiw, it seems they are all (DVB-T) HD video with E-AC3 audio.
(Compared to "usual" (IpTv) SD video with Mpeg2/4 audio.)
Maybe ADM_NAL_BUFFER_SIZE simply needs to be increased to support theses cases?
Or there could be new/specific issues in these files?

Code is:
https://github.com/mean00/avidemux2/search?utf8=%E2%9C%93&q=ADM_NAL_BUFFER_SIZE
avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndex.h
#define ADM_NAL_BUFFER_SIZE (2*1024) // only used to decode SEI, should plenty enough
uint8_t payloadBuffer[ADM_NAL_BUFFER_SIZE];

avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH264.cpp
ADM_assert(nalSize+16<ADM_NAL_BUFFER_SIZE)

Jan Gruuthuse

ubuntu 14.4.5 amd-64 with commit: 34cbeda    Merge pull request #17 from rezso/master
Just when loading finished and Indexing starts: 0%
Avidemux pop-up window: Crash:
Assert failed :nalSize+16<ADM_NAL_BUFFER_SIZE
at line 31, file /home/jan/avidemux2/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH264.cppADM_backTrack
TsIndexer::decodeSEI(unsigned int, unsigned char*, unsigned int*, pictureStructure*)
TsIndexer::runH264(char const*, ADM_TS_TRACK*)
tsIndexer(char const*)
probe
ADM_demuxerSpawn(unsigned int, char const*)
ADM_Composer::addFile(char const*)
A_openVideo(char const*)
MainWindow::openFiles(QList<QUrl>)
MainWindow::eventFilter(QObject*, QEvent*)
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
QApplicationPrivate::notify_helper(QObject*, QEvent*)
QApplication::notify(QObject*, QEvent*)
QCoreApplication::notifyInternal(QObject*, QEvent*)
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)

g_main_context_dispatch

g_main_context_iteration
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)

QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
QCoreApplication::exec()
UI_RunApp()
startAvidemux(int, char**)
main
__libc_start_main
/usr/bin/avidemux3_qt4() [0x43d5af]


Terminal output:
Simple loading:
file: /home/jan/Downloads/BB508(0-2pc)__WVista-ADv2613-AssertAround60pc).ts, size: 62965186
found 1 files
Done
[TsPacket] Detecting TS/TS2...
[TsPacket] Score : 188:20, 192:1 out of 20
[TsPacket] Probably TS1 (188)...
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[Ts Demuxer] Pes for Pid =0x120 does not contain payload start
[extractSPSInfo_lavcodec]  Incoming SPS info

0000 : d.(���p�2.�..�:@  64 00 28 ad 90 a4 70 80 32 0b 8d 06 00 e8 3a 40
0010 : �! �.G��.....$�.  e7 21 20 83 03 47 fc 8c 11 08 08 12 14 24 a1 01
0020 : .AF���...�<.;...  02 41 46 ff f4 d1 02 01 14 e8 3c 13 3b 10 16 1a
0030 : 9..2 p�a2..c�`�f  39 0b 12 32 20 70 e1 61 32 05 02 63 e1 60 f0 66
0040 : 8��X�L XРtA�.  38 ca c1 58 e0 4c 20 58 d0 a0 74 41 8e 2c c5 01
0050 : �.?x.....�....�.  e0 11 3f 78 0f 08 08 08 0f 80 00 00 03 00 80 00
0060 : ..J  00 19 4a [extractSPSInfo_lavcodec] 
converted SPS info

0000 : .M@.��.lgd.(���p  01 4d 40 1f ff e1 00 6c 67 64 00 28 ad 90 a4 70
0010 : �2.�..�:@�! �.G�  80 32 0b 8d 06 00 e8 3a 40 e7 21 20 83 03 47 fc
0020 : �.....$�..AF���.  8c 11 08 08 12 14 24 a1 01 02 41 46 ff f4 d1 02
0030 : ..�<.;...9..2 p�  01 14 e8 3c 13 3b 10 16 1a 39 0b 12 32 20 70 e1
0040 : a2..c�`�f8��X�L   61 32 05 02 63 e1 60 f0 66 38 ca c1 58 e0 4c 20
0050 : XРtA�.�.?x...  58 d0 a0 74 41 8e 2c c5 01 e0 11 3f 78 0f 08 08
0060 : ..�....�...JS.�e  08 0f 80 00 00 03 00 80 00 00 19 4a 53 04 a8 65
0070 : ���c0  c8 de c4 63 30 [extractSPSInfo_lavcodec] 
  [extractSPSInfo_mp4Header]  Parser created
  [extractSPSInfo_mp4Header]  Codec created
  [extractSPSInfo_mp4Header]  Context created
Used bytes 0/117 (+5)
[extractSPSInfo_mp4Header]  Failed to extract SPS info
  [extractSPSInfo_mp4Header]  Width  : 0
  [extractSPSInfo_mp4Header]  Height : 0
Scale : 50, tick=1, fps=50000
Crop L: 0
Crop R: 0
Crop T: 0
Crop B: 8
Taking crop bottom into account
[extractSPSInfo_mp4Header]  Width2 : 1920
  [extractSPSInfo_mp4Header]  Height2: 1080
  [extractSPSInfo]  width:1920
  [extractSPSInfo]  height:1080
  [extractSPSInfo]  fps1000:50000
  [extractSPSInfo]  hasStructInfo:1
  [extractSPSInfo]  CpbDpbToSkip:0
  [extractSPSInfo]  darNum:1
  [extractSPSInfo]  darDen:1
  [runH264]  [TsIndexer] Found video 0x0, fps=0
  [runH264]  [TsIndexer] SPS says 1920x1080
Saving crash file to /home/jan/.avidemux6/crash.py

*********** BACKTRACK **************
/usr/lib/libADM_core6.so(ADM_backTrack+0x60) [0x7fb125501f90]:0:<ADM_backTrack>:-2
/usr/lib/ADM_plugins6//demuxers/libADM_dm_ts.so(_ZN9TsIndexer9decodeSEIEjPhPjP16pictureStructure+0x1b8) [0x7fb0f59ca858]:1:<TsIndexer::decodeSEI(unsigned int, unsigned char*, unsigned int*, pictureStructure*)>:0
/usr/lib/ADM_plugins6//demuxers/libADM_dm_ts.so(_ZN9TsIndexer7runH264EPKcP12ADM_TS_TRACK+0x95c) [0x7fb0f59cb1ec]:2:<TsIndexer::runH264(char const*, ADM_TS_TRACK*)>:0
/usr/lib/ADM_plugins6//demuxers/libADM_dm_ts.so(_Z9tsIndexerPKc+0x437) [0x7fb0f59c9607]:3:<tsIndexer(char const*)>:0
/usr/lib/ADM_plugins6//demuxers/libADM_dm_ts.so(probe+0x97) [0x7fb0f59c86a7]:4:<probe>:-2
/usr/lib/libADM_coreDemuxer6.so(_Z16ADM_demuxerSpawnjPKc+0x44) [0x7fb124abe0c4]:5:<ADM_demuxerSpawn(unsigned int, char const*)>:0
/usr/bin/avidemux3_qt4(_ZN12ADM_Composer7addFileEPKc+0x147) [0x457e47]:6:<ADM_Composer::addFile(char const*)>:0
/usr/bin/avidemux3_qt4(_Z11A_openVideoPKc+0x14c) [0x43e8fc]:7:<A_openVideo(char const*)>:0
/usr/bin/avidemux3_qt4(_ZN10MainWindow9openFilesE5QListI4QUrlE+0x158) [0x47bbb8]:8:<MainWindow::openFiles(QList<QUrl>)>:0
/usr/bin/avidemux3_qt4(_ZN10MainWindow11eventFilterEP7QObjectP6QEvent+0x5e) [0x47bcae]:9:<MainWindow::eventFilter(QObject*, QEvent*)>:0
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN23QCoreApplicationPrivate29sendThroughObjectEventFiltersEP7QObjectP6QEvent+0x86) [0x7fb12297b646]:10:<QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)>:0
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x6c) [0x7fb122eace0c]:11:<QApplicationPrivate::notify_helper(QObject*, QEvent*)>:0
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x270) [0x7fb122eb34a0]:12:<QApplication::notify(QObject*, QEvent*)>:0
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x6d) [0x7fb12297b4dd]:13:<QCoreApplication::notifyInternal(QObject*, QEvent*)>:0
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x1ed) [0x7fb12297eb3d]:14:<QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)>:0
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x1aaf83) [0x7fb1229a8f83]:15:<>:-2
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x254) [0x7fb11f340e04]:16:<g_main_context_dispatch>:-2
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x49048) [0x7fb11f341048]:17:<>:-2
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7fb11f3410ec]:18:<g_main_context_iteration>:-2
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x71) [0x7fb1229a87a1]:19:<QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)>:0
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x26bbe6) [0x7fb122f4ebe6]:20:<>:-2
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE+0x2f) [0x7fb12297a0af]:21:<QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)>:0
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0x175) [0x7fb12297a3a5]:22:<QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)>:0
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN16QCoreApplication4execEv+0x89) [0x7fb12297fb79]:23:<QCoreApplication::exec()>:0
/usr/bin/avidemux3_qt4(_Z9UI_RunAppv+0x369) [0x47ab59]:24:<UI_RunApp()>:0
/usr/bin/avidemux3_qt4(_Z13startAvidemuxiPPc+0x5f2) [0x446c12]:25:<startAvidemux(int, char**)>:0
/usr/bin/avidemux3_qt4(main+0x1f) [0x43b81f]:26:<main>:-2
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fb120dd5f45]:27:<__libc_start_main>:-2
/usr/bin/avidemux3_qt4() [0x43d5af]:28:</usr/bin/avidemux3_qt4() [0x43d5af]>:-2
*********** BACKTRACK **************
Crash Dump for Crash
Assert failed :nalSize+16<ADM_NAL_BUFFER_SIZE
at line 31, file /home/jan/avidemux2/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH264.cppADM_backTrack
TsIndexer::decodeSEI(unsigned int, unsigned char*, unsigned int*, pictureStructure*)
TsIndexer::runH264(char const*, ADM_TS_TRACK*)
tsIndexer(char const*)
probe
ADM_demuxerSpawn(unsigned int, char const*)
ADM_Composer::addFile(char const*)
A_openVideo(char const*)
MainWindow::openFiles(QList<QUrl>)
MainWindow::eventFilter(QObject*, QEvent*)
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
QApplicationPrivate::notify_helper(QObject*, QEvent*)
QApplication::notify(QObject*, QEvent*)
QCoreApplication::notifyInternal(QObject*, QEvent*)
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)

g_main_context_dispatch

g_main_context_iteration
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)

QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
QCoreApplication::exec()
UI_RunApp()
startAvidemux(int, char**)
main
__libc_start_main
/usr/bin/avidemux3_qt4() [0x43d5af]


pressing OK in Avidemux pop-up window: Crash gives in remaining output
[abortExitHandler]  Abnormal exit handler, trying to clean up
At exit, we have still 0 surface
After cleanup we have  0 surface
[cleanup]  Destroying vdp device..

Window under titlebar message appears: The child process was terminated by signal 6

Jan Gruuthuse

Upon playback of TF1 footage Grands Reportages, it appears the stream contains transmission breakups. (bad reception)



mm0359

Quote from: mm0359 on August 19, 2016, 02:33:43 AM
Assert failed :nalSize+16<ADM_NAL_BUFFER_SIZE at line 30, file [...]/ADM_tsIndexH264.cpp

(With (brand new) v2.6.13, same assert, but at line 31.)

"v2.6.13 (160823_db82935b565) + usp10.dll" on WinXP,

avidemux_r230816_win32Qt5.7z nightly which includes
[index/h264] deal more nicely with corrupted input while decoding SEI
fixes this issue : ".ts" loading completes now :)

Ftr, example with one file I have

[decodeSEI] SEI size too big, probably corrupted input (15188 bytes)