Page 1 of 1

1.4.4 Crash on reading certain videos (Ubuntu)

Posted: Sun May 07, 2023 3:42 pm
by xzo
Video playback works fine for about 90% of my video files. However, I have some MP4 files that consistently crash the program when I try to play them with XnView. It doesn't seem to matter if I try the full screen player or the tab player. All of these files play fine in VLC.

From https://forum.xnview.com/viewtopic.php? ... 6&p=185547 and https://forum.xnview.com/viewtopic.php?f=62&t=43970 I tried the suggestion:

Code: Select all

export QT_XCB_GL_INTEGRATION=xcb_egl 
This seems to partially fix this. Now, it seems like all these files play fine at first, but typically crash the program at the end of the second playback when on loop. Or when I play a few of these files, eventually one will crash on the first playback (either in the first second or at the end of the video). Files that already worked fine previously continue to work fine.

I'm looking at the logs during crashes (when using export QT_XCB_GL_INTEGRATION=xcb_egl), but the logs are huge and there are a bunch of different errors. So I will try to compare different situations and see what changes in the logs.

First the rare occasion where one of these "broken" files seems to loop indefinitely just fine. This is what the video looping bit of the log looks like when there is no problem; there are some errors but playback works fine:

Code: Select all

#MDK SDK : video frame cached in decoder overlaps @8.6

#MDK SDK : video frame cached in decoder overlaps @8.63333

#MDK SDK : video frame cached in decoder overlaps @8.66667

#MDK SDK : video frame cached in decoder overlaps @8.7

#MDK SDK : video stream#0 EOF/EOS decoded. end: 1

#MDK SDK : video stream#0 check loop range for EOS. dec_state.seeking: 0

#MDK SDK : 0x2ec3510 track#0: @9223372036854775806. loop bits 1/1.

#MDK SDK : 0x2ec3510 track#0: all tracks are out of loop range. seek to loop A from 9223372036854775806

#MDK SDK : default 0x24f8fc0-FrameReader::seek(0, 0X20002)

#MDK SDK : default 0x24f8fc0 FrameReader::update MediaStatus 0X164=>0X1A4

#MDK SDK : 0x24f8fc0 default FrameReaderImpl::seekTo(0, 0X20002 7)

#MDK SDK : 0x24f8fc0 #video stream#0 end semaphore done acquire

#MDK SDK : virtual int64_t mdk::PacketIOWrapper::seek(int64_t, SeekFlag)@527 seek target(from 0): 0ms, flags: +FromStart

#MDK SDK : default 0x24f8fc0 FrameReader::update MediaStatus 0X1A4=>0X1E4

#MDK SDK : Seek start. target time: 0 avseek flags: 1

#MDK SDK : Seek end

#MDK SDK : 1 packets is read after seek. read more to get target pts

#MDK SDK : 1 packets is read after seek. seek result pts: 0s, requested: 0

#MDK SDK : default 0x24f8fc0 FrameReader::update MediaStatus 0X1E4=>0X124

#MDK SDK : seekComplete after PacketIO seek #7

#MDK SDK : default FrameReader0x24f8fc0 #7 seekComplete 0

#MDK SDK : default 0x24f8fc0 FrameReader::update MediaStatus 0X124=>0X124

#MDK SDK : default FrameReader 0x24f8fc0 callbacks 1, seeking: 0, seekComplete#7 @0

#MDK SDK : seek_drop_non_video_: -3 ms, seek_wait_frame_: 0...

#MDK SDK : default FrameReader0x24f8fc0 video stream#0 range loop begin

#MDK SDK : EOS video frame of track 0

#MDK SDK : video stream#0 is seeking... got flush pkt. flush decoder and  drop frames until seek target -0.0030s...

#MDK SDK : h264 codec pixel format list: (expected mmal)

#MDK SDK : vdpau

#MDK SDK : cuda

#MDK SDK : vaapi_vld

#MDK SDK : yuv420p

#MDK SDK : fallback to avcodec software decoder...

#MDK SDK : #7/7 video seek_done: 1, seek_wait_frame_: -1/0

#MDK SDK : video stream#0 sending 1 invalid AOT frame @0.000000s. seeking: 0

#MDK SDK : VideoRenderer clear buffered frames

#MDK SDK : 0-track seek end video frame @0.000000 seek_pos_: -1

#MDK SDK : video stream#0 AOT frame is sent

#MDK SDK : default 0x24f8fc0 FrameReader::update MediaStatus 0X124=>0X164

#MDK SDK : read packet error. FrameReader@0x24f8fc0 sending Packet::End to all packet queues. PacketIO@0x7f592c06ac80 ->url: urlredacted.mp4

#MDK SDK : 0x24f8fc0 #video stream#0 end semaphore acquire
And here is the same video file, but now it's crashing at the end of the second playback (log split between first and second playback for comparison):

Code: Select all

#MDK SDK : video frame cached in decoder overlaps @13.5667

#MDK SDK : video frame cached in decoder overlaps @13.6

#MDK SDK : video frame cached in decoder overlaps @13.6333

#MDK SDK : video frame cached in decoder overlaps @13.6667

#MDK SDK : video stream#0 EOF/EOS decoded. end: 1

#MDK SDK : video stream#0 check loop range for EOS. dec_state.seeking: 0

#MDK SDK : 0x40202e0 track#0: @9223372036854775806. loop bits 1/1.

#MDK SDK : 0x40202e0 track#0: all tracks are out of loop range. seek to loop A from 9223372036854775806

#MDK SDK : default 0x3604000-FrameReader::seek(0, 0X20002)

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X164=>0X1A4

#MDK SDK : 0x3604000 default FrameReaderImpl::seekTo(0, 0X20002 1)

#MDK SDK : 0x3604000 #video stream#0 end semaphore done acquire

#MDK SDK : virtual int64_t mdk::PacketIOWrapper::seek(int64_t, SeekFlag)@527 seek target(from 0): 0ms, flags: +FromStart

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X1A4=>0X1E4

#MDK SDK : Seek start. target time: 0 avseek flags: 1

#MDK SDK : Seek end

#MDK SDK : 1 packets is read after seek. read more to get target pts

#MDK SDK : 1 packets is read after seek. seek result pts: 0s, requested: 0

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X1E4=>0X124

#MDK SDK : seekComplete after PacketIO seek #1

#MDK SDK : default FrameReader0x3604000 #1 seekComplete 0

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X124=>0X124

#MDK SDK : default FrameReader 0x3604000 callbacks 1, seeking: 0, seekComplete#1 @0

#MDK SDK : seek_drop_non_video_: -3 ms, seek_wait_frame_: 0...

#MDK SDK : default FrameReader0x3604000 video stream#0 range loop begin

#MDK SDK : EOS video frame of track 0

#MDK SDK : video stream#0 is seeking... got flush pkt. flush decoder and  drop frames until seek target -0.0030s...

#MDK SDK : h264 codec pixel format list: (expected vaapi_moco)

#MDK SDK : vdpau

#MDK SDK : cuda

#MDK SDK : vaapi_vld

#MDK SDK : yuv420p

#MDK SDK : fallback to avcodec software decoder...

#MDK SDK : #1/1 video seek_done: 1, seek_wait_frame_: -1/0

#MDK SDK : video stream#0 sending 1 invalid AOT frame @0.000000s. seeking: 0

#MDK SDK : VideoRenderer clear buffered frames

#MDK SDK : 0-track seek end video frame @0.000000 seek_pos_: -1

#MDK SDK : video stream#0 AOT frame is sent

#MDK SDK : VA-API error@586. va::vaExportSurfaceHandle(display_, surface, 0x40000000, flags, &desc): 0x6 invalid VASurfaceID

#MDK SDK : fallback to legacy drm interop

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X124=>0X164

#MDK SDK : read packet error. FrameReader@0x3604000 sending Packet::End to all packet queues. PacketIO@0x7f6c98000fe0 ->url: urlredacted.mp4

#MDK SDK : 0x3604000 #video stream#0 end semaphore acquire 

Code: Select all

#MDK SDK : video frame cached in decoder overlaps @13.5667

#MDK SDK : video frame cached in decoder overlaps @13.6

#MDK SDK : video frame cached in decoder overlaps @13.6333

#MDK SDK : video frame cached in decoder overlaps @13.6667

#MDK SDK : video stream#0 EOF/EOS decoded. end: 1

#MDK SDK : video stream#0 check loop range for EOS. dec_state.seeking: 0

#MDK SDK : 0x40202e0 track#0: @9223372036854775806. loop bits 1/1.

#MDK SDK : 0x40202e0 track#0: all tracks are out of loop range. seek to loop A from 9223372036854775806

#MDK SDK : default 0x3604000-FrameReader::seek(0, 0X20002)

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X164=>0X1A4

#MDK SDK : 0x3604000 default FrameReaderImpl::seekTo(0, 0X20002 2)

#MDK SDK : 0x3604000 #video stream#0 end semaphore done acquire

#MDK SDK : virtual int64_t mdk::PacketIOWrapper::seek(int64_t, SeekFlag)@527 seek target(from 0): 0ms, flags: +FromStart

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X1A4=>0X1E4

#MDK SDK : Seek start. target time: 0 avseek flags: 1

#MDK SDK : Seek end

#MDK SDK : 1 packets is read after seek. read more to get target pts

#MDK SDK : 1 packets is read after seek. seek result pts: 0s, requested: 0

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X1E4=>0X124

#MDK SDK : seekComplete after PacketIO seek #2

#MDK SDK : default FrameReader0x3604000 #2 seekComplete 0

#MDK SDK : default 0x3604000 FrameReader::update MediaStatus 0X124=>0X124

#MDK SDK : default FrameReader 0x3604000 callbacks 1, seeking: 0, seekComplete#2 @0

#MDK SDK : seek_drop_non_video_: -3 ms, seek_wait_frame_: 0...

#MDK SDK : default FrameReader0x3604000 video stream#0 range loop begin

#MDK SDK : EOS video frame of track 0

#MDK SDK : video stream#0 is seeking... got flush pkt. flush decoder and  drop frames until seek target -0.0030s...

#MDK SDK : h264 codec pixel format list: (expected vaapi_moco)

#MDK SDK : vdpau

#MDK SDK : cuda

#MDK SDK : vaapi_vld

#MDK SDK : yuv420p

#MDK SDK : fallback to avcodec software decoder...

#MDK SDK : #2/2 video seek_done: 1, seek_wait_frame_: -1/0

#MDK SDK : video stream#0 sending 1 invalid AOT frame @0.000000s. seeking: 0

#MDK SDK : VideoRenderer clear buffered frames

#MDK SDK : 0-track seek end video frame @0.000000 seek_pos_: -1

#MDK SDK : video stream#0 AOT frame is sent

#MDK SDK : VA-API error@525. va::vaDeriveImage(display_, surface, &img): 0x1 operation failed

#MDK SDK : VA-API error@678. va::vaDeriveImage(display_, surface, img): 0x1 operation failed

#MDK SDK : bpp 2, bpc: 8. gl texture parameters:

#MDK SDK :     R8 |   RED | UNSIGNED_BYTE

#MDK SDK :    RG8 |    RG | UNSIGNED_BYTE

#MDK SDK : texture created: 8

#MDK SDK : plane linesize 0: padded = 854, effective = 854. theoretical plane size: 854x506. coordinate crop: 1.000000

#MDK SDK : texture created: 9

#MDK SDK : plane linesize 1: padded = 854, effective = 854. theoretical plane size: 427x253. coordinate crop: 1.000000

#MDK SDK : crop_w=1.000000=>1.000000

#MDK SDK : texture 0: 854x506

#MDK SDK : texture 1: 427x253

malloc(): corrupted top size
Aborted (core dumped)
Sometimes I get different errors, such as a long stream of

Code: Select all

#MDK SDK : VA-API error@530. va::vaAcquireBufferHandle(display_, ctx_res_->vabuf, &bi): 0x7 invalid VABufferID
#MDK SDK : VA-API error@530. va::vaAcquireBufferHandle(display_, ctx_res_->vabuf, &bi): 0x7 invalid VABufferID
And here is part of the log when it crashed on first playback of a different file, after playing parts of a few other of these "broken" files:

Code: Select all

#MDK SDK : creating vbo...

#MDK SDK : creating vao...

#MDK SDK : close fd 51

#MDK SDK : close fd 572

#MDK SDK : bad delay. written: 21 - delay = -77

#MDK SDK : bad delay. written: 21 - delay = -77

#MDK SDK : >>>>>>>>1st audio frame (after seek) rendered: 1, ao: 21, a: 0, delta: 21 +0.021333

#MDK SDK : audio stream#1 AOT frame is sent

#MDK SDK : bad delay. written: 21 - delay = -73

#MDK SDK : bad delay. written: 21 - delay = -73

#MDK SDK : bad delay. written: 21 - delay = -73

#MDK SDK : bad delay. written: 21 - delay = -73

#MDK SDK : bad delay. written: 21 - delay = -73

#MDK SDK : bad delay. written: 21 - delay = -73

#MDK SDK : bad delay. written: 21 - delay = -73

#MDK SDK : bad delay. written: 21 - delay = -81

#MDK SDK : bad delay. written: 42 - delay = -60

#MDK SDK : bad delay. written: 42 - delay = -60

#MDK SDK : bad delay. written: 42 - delay = -60

#MDK SDK : bad delay. written: 42 - delay = -60

#MDK SDK : bad delay. written: 42 - delay = -61

#MDK SDK : bad delay. written: 63 - delay = -40

#MDK SDK : bad delay. written: 63 - delay = -40

#MDK SDK : bad delay. written: 63 - delay = -40

#MDK SDK : bad delay. written: 63 - delay = -40

#MDK SDK : VA-API error@586. va::vaExportSurfaceHandle(display_, surface, 0x40000000, flags, &desc): 0x6 invalid VASurfaceID

#MDK SDK : fallback to legacy drm interop

#MDK SDK : VA-API error@530. va::vaAcquireBufferHandle(display_, ctx_res_->vabuf, &bi): 0x7 invalid VABufferID

#MDK SDK : bpp 2, bpc: 8. gl texture parameters:

#MDK SDK :     R8 |   RED | UNSIGNED_BYTE

#MDK SDK :    RG8 |    RG | UNSIGNED_BYTE

#MDK SDK : texture created: 49

#MDK SDK : plane linesize 0: padded = 768, effective = 534. theoretical plane size: 534x538. coordinate crop: 0.694010

#MDK SDK : texture created: 50

#MDK SDK : plane linesize 1: padded = 768, effective = 534. theoretical plane size: 267x269. coordinate crop: 0.694010

#MDK SDK : crop_w=1.000000=>0.694010

#MDK SDK : texture 0: 768x538

#MDK SDK : texture 1: 384x269

#MDK SDK : bad delay. written: 63 - delay = -41

#MDK SDK : bad delay. written: 63 - delay = -36

#MDK SDK : bad delay. written: 85 - delay = -20

#MDK SDK : bad delay. written: 85 - delay = -20

#MDK SDK : VA-API error@525. va::vaDeriveImage(display_, surface, &img): 0x1 operation failed

#MDK SDK : VA-API error@678. va::vaDeriveImage(display_, surface, img): 0x1 operation failed

#MDK SDK : bad delay. written: 85 - delay = -20

#MDK SDK : bad delay. written: 85 - delay = -20

#MDK SDK : texture created: 51

#MDK SDK : plane linesize 0: padded = 534, effective = 534. theoretical plane size: 534x538. coordinate crop: 1.000000

#MDK SDK : texture created: 52

#MDK SDK : plane linesize 1: padded = 534, effective = 534. theoretical plane size: 267x269. coordinate crop: 1.000000

#MDK SDK : crop_w=1.000000=>1.000000

#MDK SDK : texture 0: 534x538

#MDK SDK : texture 1: 267x269

#MDK SDK : bad delay. written: 85 - delay = -17

#MDK SDK : bad delay. written: 106 - delay = -1

#MDK SDK : bad delay. written: 106 - delay = -1

#MDK SDK : VA-API error@525. va::vaDeriveImage(display_, surface, &img): 0x1 operation failed

double free or corruption (!prev)
Aborted (core dumped)
What's going on, and is it possible to fix this? If this is a hardware acceleration problem, could hardware acceleration simply be turned off?

Thanks!

Re: 1.4.4 Crash on reading certain videos (Ubuntu)

Posted: Mon May 08, 2023 8:18 am
by xnview
could you send me sample files?

Re: 1.4.4 Crash on reading certain videos (Ubuntu)

Posted: Mon May 08, 2023 3:09 pm
by xzo
xnview wrote: Mon May 08, 2023 8:18 am could you send me sample files?
Here are two example videos that give the problems I described before. Note that they are mildly NSFW, but no nudity.