Skip to content

Hardware accelerated HEVC playback broken #2938

Description

@pricklythorn

The fewer issues I have to read, the more new features I will have time to implement, so I ask that you please try these things first

Steps to reproduce

  1. Open LosslessCut.
  2. Open settings.
  3. Enable Show advanced settings.
  4. Scroll to the bottom and turn on Enable HEVC / H265 hardware decoding.
  5. Restart LosslessCut.
  6. Play a HEVC file.

Expected behavior

File is played as normal.

Actual behavior

Preview pane has nothing, not even a black screen.

Provide an error report

No error occurred.

App state:
{
  "err": false,
  "state": {
    "lastAppVersion": "3.69.0",
    "captureFormat": "png",
    "recentCustomOutDirs": [],
    "enableCustomOutDir": false,
    "keyframeCut": true,
    "preserveMetadata": "default",
    "preserveMetadataOnMerge": false,
    "preserveMovData": false,
    "preserveChapters": true,
    "movFastStart": true,
    "avoidNegativeTs": "make_zero",
    "autoMerge": true,
    "timecodeFormat": "timecodeWithDecimalFraction",
    "invertCutSegments": false,
    "autoExportExtraStreams": true,
    "askBeforeClose": false,
    "enableImportChapters": "ask",
    "enableAskForFileOpenAction": true,
    "playbackVolume": 1,
    "autoSaveProjectFile": true,
    "wheelSensitivity": 0.2,
    "waveformHeight": 40,
    "language": "en",
    "ffmpegExperimental": false,
    "autoLoadTimecode": false,
    "autoDeleteMergedSegments": true,
    "exportConfirmEnabled": false,
    "segmentsToChapters": false,
    "simpleMode": true,
    "cutFileTemplate": "${FILENAME}-${CUT_FROM}-${CUT_TO}${SEG_SUFFIX}${EXT}",
    "keyboardSeekAccFactor": 1.03,
    "keyboardNormalSeekSpeed": 1,
    "keyboardSeekSpeed2": 10,
    "keyboardSeekSpeed3": 60,
    "treatInputFileModifiedTimeAsStart": true,
    "treatOutputFileModifiedTimeAsStart": true,
    "safeOutputFileName": true,
    "enableAutoHtml5ify": true,
    "segmentsToChaptersOnly": false,
    "enableSmartCut": false,
    "storeProjectInWorkingDir": true,
    "enableOverwriteOutput": true,
    "mouseWheelZoomModifierKey": "ctrl",
    "mouseWheelFrameSeekModifierKey": "alt",
    "mouseWheelKeyframeSeekModifierKey": "shift",
    "segmentMouseModifierKey": "shift",
    "captureFrameMethod": "videotag",
    "captureFrameQuality": 1,
    "captureFrameFileNameFormat": "timestamp",
    "enableNativeHevc": true,
    "enableUpdateCheck": true,
    "cleanupChoices": {
      "trashTmpFiles": true,
      "askForCleanup": true,
      "closeFile": true,
      "cleanupAfterExport": false
    },
    "allowMultipleInstances": false,
    "darkMode": true,
    "preferStrongColors": false,
    "outputFileNameMinZeroPadding": 1,
    "cutFromAdjustmentFrames": 0,
    "cutToAdjustmentFrames": 0,
    "storeWindowBounds": true,
    "thumbnailsEnabled": false,
    "keyframesEnabled": true,
    "reducedMotion": "user",
    "ffmpegHwaccel": "auto",
    "ffmpegVersion": "n8.0-23-gd1f31a829d-20251022",
    "filePath": "/home/*/Downloads/Cool Avatar 1.mkv",
    "fileFormat": "matroska",
    "externalFilesMeta": {},
    "mainStreams": [
      {
        "index": 0,
        "codec_name": "hevc",
        "codec_long_name": "H.265 / HEVC (High Efficiency Video Coding)",
        "profile": "Rext",
        "codec_type": "video",
        "codec_tag_string": "[0][0][0][0]",
        "codec_tag": "0x0000",
        "width": 1920,
        "height": 1080,
        "coded_width": 1920,
        "coded_height": 1088,
        "has_b_frames": 2,
        "sample_aspect_ratio": "1:1",
        "display_aspect_ratio": "16:9",
        "pix_fmt": "yuv444p",
        "level": 150,
        "color_range": "pc",
        "color_space": "bt709",
        "color_transfer": "bt709",
        "color_primaries": "bt709",
        "refs": 1,
        "view_ids_available": "",
        "view_pos_available": "",
        "r_frame_rate": "120/1",
        "avg_frame_rate": "120/1",
        "time_base": "1/1000",
        "start_pts": 17,
        "start_time": "0.017000",
        "extradata_size": 131,
        "disposition": {
          "default": 1,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "non_diegetic": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0,
          "multilayer": 0
        },
        "tags": {
          "DURATION": "00:00:11.817000000"
        }
      },
      {
        "index": 1,
        "codec_name": "pcm_f32le",
        "codec_long_name": "PCM 32-bit floating point little-endian",
        "codec_type": "audio",
        "codec_tag_string": "[0][0][0][0]",
        "codec_tag": "0x0000",
        "sample_fmt": "flt",
        "sample_rate": "48000",
        "channels": 2,
        "bits_per_sample": 32,
        "initial_padding": 0,
        "r_frame_rate": "0/0",
        "avg_frame_rate": "0/0",
        "time_base": "1/1000",
        "start_pts": 1,
        "start_time": "0.001000",
        "bit_rate": "3072000",
        "disposition": {
          "default": 1,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "non_diegetic": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0,
          "multilayer": 0
        },
        "tags": {
          "title": "Desktop Audio (Without Calls)",
          "DURATION": "00:00:11.798000000"
        }
      },
      {
        "index": 2,
        "codec_name": "pcm_f32le",
        "codec_long_name": "PCM 32-bit floating point little-endian",
        "codec_type": "audio",
        "codec_tag_string": "[0][0][0][0]",
        "codec_tag": "0x0000",
        "sample_fmt": "flt",
        "sample_rate": "48000",
        "channels": 2,
        "bits_per_sample": 32,
        "initial_padding": 0,
        "r_frame_rate": "0/0",
        "avg_frame_rate": "0/0",
        "time_base": "1/1000",
        "start_pts": 1,
        "start_time": "0.001000",
        "bit_rate": "3072000",
        "disposition": {
          "default": 0,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "non_diegetic": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0,
          "multilayer": 0
        },
        "tags": {
          "title": "Desktop Audio",
          "DURATION": "00:00:11.798000000"
        }
      },
      {
        "index": 3,
        "codec_name": "pcm_f32le",
        "codec_long_name": "PCM 32-bit floating point little-endian",
        "codec_type": "audio",
        "codec_tag_string": "[0][0][0][0]",
        "codec_tag": "0x0000",
        "sample_fmt": "flt",
        "sample_rate": "48000",
        "channels": 2,
        "bits_per_sample": 32,
        "initial_padding": 0,
        "r_frame_rate": "0/0",
        "avg_frame_rate": "0/0",
        "time_base": "1/1000",
        "start_pts": 1,
        "start_time": "0.001000",
        "bit_rate": "3072000",
        "disposition": {
          "default": 0,
          "dub": 0,
          "original": 0,
          "comment": 0,
          "lyrics": 0,
          "karaoke": 0,
          "forced": 0,
          "hearing_impaired": 0,
          "visual_impaired": 0,
          "clean_effects": 0,
          "attached_pic": 0,
          "timed_thumbnails": 0,
          "non_diegetic": 0,
          "captions": 0,
          "descriptions": 0,
          "metadata": 0,
          "dependent": 0,
          "still_image": 0,
          "multilayer": 0
        },
        "tags": {
          "title": "Microphone",
          "DURATION": "00:00:11.798000000"
        }
      }
    ],
    "copyStreamIdsByFile": {
      "/home/*/Downloads/Cool Avatar 1.mkv": {
        "0": true,
        "1": true,
        "2": true,
        "3": true
      }
    },
    "cutSegments": [
      {
        "start": 0,
        "end": 11.817
      }
    ],
    "mainFileFormat": {
      "filename": "/home/*/Downloads/Cool Avatar 1.mkv",
      "nb_streams": 4,
      "nb_programs": 0,
      "nb_stream_groups": 0,
      "format_name": "matroska,webm",
      "format_long_name": "Matroska / WebM",
      "start_time": "0.001000",
      "duration": "11.817000",
      "size": "22380287",
      "bit_rate": "15151247",
      "probe_score": 100,
      "tags": {
        "ENCODER": "Lavf62.3.100"
      }
    },
    "rotation": 360,
    "shortestFlag": false,
    "effectiveExportMode": "merge"
  },
  "appPath": "/usr/share/losslesscut/resources/app.asar",
  "platform": "linux",
  "arch": "x64",
  "version": "3.69.0"
}

Share the file

No response

Share log from developer tools

App.tsx:1815 userOpenFiles
App.tsx:1816 /home/*/Downloads/Cool Avatar 1.mkv
ffmpeg.ts:256 FFprobe detected format(s) matroska,webm
ffmpeg.ts:317 file-type returned unknown format Array(2) video/matroska
determineSourceFileFormat @ ffmpeg.ts:317
App.tsx:1476 loadMedia Object
App.tsx:641 State reset
App.tsx:365 onDurationChange 11.817
useSegments.tsx:900 Creating initial segment Object

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions