Projects
home:enzokiel:branches:home:enzokiel
avidemux3
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Difference Between Revision 13 and
home:enzokiel
/
avidemux3
View file
avidemux3.changes
Changed
@@ -1,7 +1,7 @@ ------------------------------------------------------------------- -Wed Apr 08 09:11:41 UTC 2026 - enzokiel@kabelmail.de +Mon Apr 13 09:02:21 UTC 2026 - enzokiel@kabelmail.de -- Update to version 2.8.2.git20260407 +- Update to version 2.8.2.git20260413 - No changelog available -------------------------------------------------------------------
View file
avidemux3.spec
Changed
@@ -19,7 +19,7 @@ Name: avidemux3 Summary: Graphical video editing and transcoding tool License: GPL-2.0-only -Version: 2.8.2.git20260407 +Version: 2.8.2.git20260413 Release: 0 URL: https://github.com/mean00/avidemux2 ExclusiveArch: %ix86 x86_64
View file
avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_bullseye
Added
+(directory)
View file
avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_bullseye/Dockerfile
Added
@@ -0,0 +1,145 @@ +FROM debian:bullseye + +ARG DEBIAN_FRONTEND=noninteractive +ARG USER_UID=1000 +ARG USER_GID=1000 +ARG USERNAME=bullseye + +#RUN echo 'Acquire::http::Proxy "http://192.168.0.9:3142";' > /etc/apt/apt.conf.d/01proxy +RUN sed -i 's/ main / main contrib non-free non-free-firmware/' /etc/apt/sources.list +RUN echo "deb http://archive.debian.org/debian bullseye-backports main contrib non-free" > /etc/apt/sources.list.d/bullseye-backports.list +RUN apt-get update +RUN apt-get install -y \ + apt-utils \ + bison \ + build-essential \ + bzip2 \ + ca-certificates \ + ccache \ + check \ + curl \ + cmake-latest \ + flex \ + git \ + git-lfs \ + gperf \ + lcov \ + libbsd-dev \ + libffi-dev \ + libglib2.0-0 \ + libncurses-dev \ + libpixman-1-0 \ + libsdl2-2.0-0 \ + libslirp0 \ + libusb-1.0-0-dev \ + make \ + ninja-build \ + python3 \ + python3-venv \ + python3-crcmod \ + ruby \ + sudo \ + unzip \ + usbutils \ + wget \ + xz-utils \ + zip \ + build-essential pkg-config yasm \ + libsqlite3-dev \ + libxv-dev libvdpau-dev libva-dev libglu1-mesa-dev \ + libasound2-dev libpulse-dev \ + libx264-dev libxvidcore-dev \ + libmp3lame-dev libtwolame-dev libopus-dev libvorbis-dev libogg-dev \ + libpng-dev libass-dev \ + file \ + squashfs-tools + # app image + RUN apt-get install -y desktop-file-utils fakeroot fuse patchelf python3-pip python3-setuptools squashfs-tools strace util-linux zsync + RUN apt-get install -y zsh neovim + + RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ + && : + #libaften-dev \ + +# App image +RUN wget --no-proxy https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage && \ +chmod +x appimage-builder-1.1.0-x86_64.AppImage && \ + mv appimage-builder-1.1.0-x86_64.AppImage /usr/local/bin/appimage-builder + +RUN wget --no-proxy https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage -O /usr/local/bin/linuxdeploy && \ + chmod +x /usr/local/bin/linuxdeploy + +RUN wget --no-proxy https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage \ + -O /usr/local/bin/linuxdeploy-plugin-appimage && \ + wget --no-proxy https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage \ + -O /usr/local/bin/linuxdeploy-plugin-qt && \ + wget --no-proxy https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-x86_64 \ + -O /usr/local/bin/runtime-x86_64 && \ + wget --no-proxy https://github.com/AppImage/appimagetool/releases/download/1.9.0/appimagetool-x86_64.AppImage \ + -O /usr/local/bin/appimagetool1 && \ + chmod +x /usr/local/bin/* +RUN useradd -m bullseye && usermod --shell /usr/bin/zsh bullseye +RUN chmod a+rwx /opt /usr/local/bin +# +# + +# +# +# +# Extra packages +# +# +# +RUN apt-get install -y \ + libx264-dev \ + libx265-dev \ + libvpx-dev \ + libaom-dev \ + libfuse-dev \ + libfaad-dev \ + libopencore-amrnb-dev \ + libopencore-amrwb-dev + +RUN apt-get install -y \ + qt6-base-dev qt6-l10n-tools qt6-wayland + + #libfaac-dev \ + #libfdk-aac-dev \ +#libfuse2t64 + +# +CMD "/bin/bash" + + +RUN cd /tmp && git clone https://github.com/FFmpeg/nv-codec-headers.git && cd nv-codec-headers && make install + +################################### +# Setup user env +################################### +USER ${USERNAME} +# +RUN cd /tmp && /usr/local/bin/appimagetool1 --appimage-extract && mv squashfs-root /opt/appimagetool-extracted +# +RUN cat <<EOF > /home/bullseye/.zshrc +# History Settings +HISTFILE=~/.zsh_history +HISTSIZE=10000 +SAVEHIST=10000 +setopt appendhistory +setopt sharehistory + +# Completion System +autoload -Uz compinit && compinit + +# Prompt +PROMPT='%F{cyan}%n@docker%f %F{blue}%~%f %# ' + +# Aliases +alias ls='ls --color=auto' +alias ll='ls -lah' +EOF +# give access to image tool +ENV PATH="/opt/appimagetool-extracted/usr/bin/:$PATH" + + +
View file
avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_bullseye/devcontainer.json
Added
@@ -0,0 +1,36 @@ +{ + /* A name for the dev container displayed in the UI */ + "name": "Avidemux", + /* container name when creating container */ + "image": "avidemux/avidemux_bullseye:latest", + /* mount the local folder to /workspaces folder of Docker image */ + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/avidemux,type=bind", + /* the path of workspace folder, which means that this folder will be opened after container is running + */ + "workspaceFolder": "/workspaces/avidemux", + /* mount the VS Code extensions to the target path, and then they don't need to be installed again when rebuilding the container + */ + "mounts": + "source=extensionCache,target=/root/.vscode-server/extensions,type=volume", + "source=/run/udev,target=/run/udev,type=bind,consistency=delegated" + , + /* follow the commands of Dockerfile to create the container + */ + "build": { + "dockerfile": "Dockerfile" + }, + /* Machine specific settings that should be copied into the container + */ + "settings": { + "terminal.integrated.defaultProfile.linux": "bash", + "idf.gitPath": "/usr/bin/git" + }, + /* An array of extensions that should be installed into the container. */ + "extensions": , + /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. + */ + "runArgs": "--privileged", "--name", "avidemux_bullseye", + /* --device=/dev/alpha:/dev/beta + */ + "remoteUser": "bullseye" +}
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_fedora/Dockerfile -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_fedora/Dockerfile
Changed
@@ -41,6 +41,9 @@ RUN dnf -y install qt6-*{devel,doc}* RUN dnf -y clean all +RUN cd /tmp && git clone https://github.com/FFmpeg/nv-codec-headers.git && cd nv-codec-headers && make install + + WORKDIR /home/fedora/workspace RUN chown fedora:fedora /home/fedora/workspace
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_fedora/devcontainer.json -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_fedora/devcontainer.json
Changed
@@ -29,7 +29,8 @@ "extensions": , /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. */ - "runArgs": "--privileged", + "runArgs": "--privileged", "--name", "avidemux_fedora43", + /* --device=/dev/alpha:/dev/beta */ "remoteUser": "fedora"
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_mxe64/Dockerfile -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_mxe64/Dockerfile
Changed
@@ -66,7 +66,7 @@ fuse patchelf python3-pip python3-setuptools squashfs-tools strace \ util-linux zsync libfuse2t64 \ zsh neovim \ - autoconf \ + autoconf \ automake \ autopoint \ bash \ @@ -102,7 +102,7 @@ nsis-doc \ nsis-pluginapi - RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ +RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ && : #libaften-dev \ @@ -149,6 +149,7 @@ echo "MXE_TARGETS := x86_64-w64-mingw32.shared" > settings.mk \ && echo "JOBS := 4" >> settings.mk && make qt6-qtbase RUN cd /opt/mxe && make qt6 +RUN cd /opt/mxe && make opencore-amr && make fdk-aac && make sdl3 RUN echo Done ENV PATH="/opt/mxe/usr/bin:/usr/local/bin:/opt/mxe/bin:/opt/mxe/usr/x86_64-pc-linux-gnu/qt6/bin/:${PATH}" # --- install libaom
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_mxe64/devcontainer.json -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_mxe64/devcontainer.json
Changed
@@ -29,7 +29,7 @@ "extensions": , /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. */ - "runArgs": "--privileged", + "runArgs": "--privileged", "--name", "avidemux_mxe", /* --device=/dev/alpha:/dev/beta */ "remoteUser": "mxe",
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_trixie/Dockerfile -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_trixie/Dockerfile
Changed
@@ -69,6 +69,7 @@ libx264-dev libxvidcore-dev \ libmp3lame-dev libtwolame-dev libopus-dev libvorbis-dev libogg-dev \ libpng-dev libass-dev + RUN apt-get install -y \ libfaac-dev \ libfdk-aac-dev \ @@ -84,6 +85,14 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ && : #libaften-dev \ +# Missing packages + RUN apt-get install -y \ + libopencore-amrnb-dev \ + libopencore-amrwb-dev \ + libdca-dev \ + libfaad-dev + + #libaften-dev # App image RUN wget --no-proxy https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage && \ @@ -104,6 +113,9 @@ chmod +x /usr/local/bin/* RUN useradd -m trixie && usermod --shell /usr/bin/zsh trixie # +RUN cd /tmp && git clone https://github.com/FFmpeg/nv-codec-headers.git && cd nv-codec-headers && make install +# Cleanup +#RUN apt autoclean && apt autoremove # CMD "/bin/bash"
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_trixie/devcontainer.json -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_trixie/devcontainer.json
Changed
@@ -29,7 +29,7 @@ "extensions": , /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. */ - "runArgs": "--privileged", + "runArgs": "--privileged", "--name", "avidemux_trixie", /* --device=/dev/alpha:/dev/beta */ "remoteUser": "trixie"
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_ubuntu2510/Dockerfile -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_ubuntu2510/Dockerfile
Changed
@@ -63,6 +63,9 @@ && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ && : +RUN cd /tmp && git clone https://github.com/FFmpeg/nv-codec-headers.git && cd nv-codec-headers && make install + + RUN rm -f /etc/apt/apt.conf.d/01proxy # # Reuse Arm & Riscv toolchains
View file
avidemux2-2.8.2.git20260407.tar.xz/.devcontainer_ubuntu2510/devcontainer.json -> avidemux2-2.8.2.git20260413.tar.xz/.devcontainer_ubuntu2510/devcontainer.json
Changed
@@ -29,7 +29,7 @@ "extensions": , /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. */ - "runArgs": "--privileged", + "runArgs": "--privileged", "--name", "avidemux_ubuntu2510", /* --device=/dev/alpha:/dev/beta */ "remoteUser": "ubuntu"
View file
avidemux2-2.8.2.git20260407.tar.xz/appImage/checkDeps.py -> avidemux2-2.8.2.git20260413.tar.xz/appImage/checkDeps.py
Changed
@@ -46,7 +46,7 @@ for root, _, files in os.walk(appdir_path): for f in files: # Check for shared objects or files in bin folders - if f.endswith(".so") or ".so." in f or "/bin/" in root: + if f.endswith(".so") or ".so." in f or "/bin/" in root or root.endswith("/bin"): all_targets.append(os.path.join(root, f)) # 2. Check each target for host leaks
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux/qt4/ADM_commonUI/DIA_prefs.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux/qt4/ADM_commonUI/DIA_prefs.cpp
Changed
@@ -14,8 +14,6 @@ #include "ADM_default.h" #include "config.h" -#include "prefs.h" -#include "ADM_Video.h" #include "ADM_pp.h" #include "ADM_qtx.h" @@ -30,6 +28,9 @@ #include "GUI_sdlRender.h" #endif +#include "prefs.h" +#include "ADM_indexingFlags.h" + extern const char *getNativeRendererDesc(int type); #ifdef USE_VDPAU @@ -212,10 +213,8 @@ { indexingFlags = ADM_IDX_FLAGS_DEFAULT; } -#if 0 uint32_t idxPsFiles = flagsToIdxSettings(indexingFlags, ADM_IDX_FLAGS_OFFSET_MPEGPS); uint32_t idxTsFiles = flagsToIdxSettings(indexingFlags, ADM_IDX_FLAGS_OFFSET_MPEGTS); -#endif uint32_t idxMkvFiles = flagsToIdxSettings(indexingFlags, ADM_IDX_FLAGS_OFFSET_MATROSKA); uint32_t idxMp4Files = flagsToIdxSettings(indexingFlags, ADM_IDX_FLAGS_OFFSET_MP4); #ifdef INDEXING_PREFS_VERBOSE @@ -488,26 +487,23 @@ frameAvisynth.swallow(&uintDefaultPortAvisynth); // Indexing - diaElemFrame frameIndexing(QT_TRANSLATE_NOOP("adm","Writing index to disk")); + diaElemFrame frameIndexing(QT_TRANSLATE_NOOP("adm","Index files")); #define IDX_FORCE_MEM 0 #define IDX_USE_SAVED 1 #define IDX_WRITE_TO_DISK 2 diaMenuEntry indexingEntries = { - {IDX_FORCE_MEM, QT_TRANSLATE_NOOP("adm","Disabled"), NULL }, - {IDX_USE_SAVED, QT_TRANSLATE_NOOP("adm","Read-only"), NULL }, - {IDX_WRITE_TO_DISK, QT_TRANSLATE_NOOP("adm","Enabled"), NULL } + {IDX_FORCE_MEM, QT_TRANSLATE_NOOP("adm","Disable"), NULL }, + {IDX_USE_SAVED, QT_TRANSLATE_NOOP("adm","Load existing only"), NULL }, + {IDX_WRITE_TO_DISK, QT_TRANSLATE_NOOP("adm","Enable"), NULL } }; -#if 0 - diaElemMenu menuIndexingPs(&idxPsFiles, QT_TRANSLATE_NOOP("adm","MPEG-PS files:"), NB_ITEMS(indexingEntries), indexingEntries); - diaElemMenu menuIndexingTs(&idxTsFiles, QT_TRANSLATE_NOOP("adm","MPEG-TS files:"), NB_ITEMS(indexingEntries), indexingEntries); -#endif - diaElemMenu menuIndexingMkv(&idxMkvFiles, QT_TRANSLATE_NOOP("adm","Matroska files:"), NB_ITEMS(indexingEntries), indexingEntries); - diaElemMenu menuIndexingMp4(&idxMp4Files, QT_TRANSLATE_NOOP("adm","MP4 files:"), NB_ITEMS(indexingEntries), indexingEntries); -#if 0 + diaElemMenu menuIndexingPs(&idxPsFiles, QT_TRANSLATE_NOOP("adm","MPEG-PS (.idx2):"), NB_ITEMS(indexingEntries), indexingEntries); + diaElemMenu menuIndexingTs(&idxTsFiles, QT_TRANSLATE_NOOP("adm","MPEG-TS (.idx2):"), NB_ITEMS(indexingEntries), indexingEntries); + diaElemMenu menuIndexingMkv(&idxMkvFiles, QT_TRANSLATE_NOOP("adm","Matroska (.idxb):"), NB_ITEMS(indexingEntries), indexingEntries); + diaElemMenu menuIndexingMp4(&idxMp4Files, QT_TRANSLATE_NOOP("adm","MP4 (.idxb):"), NB_ITEMS(indexingEntries), indexingEntries); + frameIndexing.swallow(&menuIndexingPs); frameIndexing.swallow(&menuIndexingTs); -#endif frameIndexing.swallow(&menuIndexingMkv); frameIndexing.swallow(&menuIndexingMp4); @@ -1003,10 +999,8 @@ // Indexing indexingFlags = 0; -#if 0 indexingFlags += idxSettingsToFlags(idxPsFiles, ADM_IDX_FLAGS_OFFSET_MPEGPS); indexingFlags += idxSettingsToFlags(idxTsFiles, ADM_IDX_FLAGS_OFFSET_MPEGTS); -#endif indexingFlags += idxSettingsToFlags(idxMkvFiles, ADM_IDX_FLAGS_OFFSET_MATROSKA); indexingFlags += idxSettingsToFlags(idxMp4Files, ADM_IDX_FLAGS_OFFSET_MP4); #ifdef INDEXING_PREFS_VERBOSE
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_core/ADM_coreDemuxer/include/ADM_Video.h -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_core/ADM_coreDemuxer/include/ADM_Video.h
Changed
@@ -38,20 +38,6 @@ #define ADM_COL_FLAG_MATRIX_COEFF_SET (1<<3) #define ADM_COL_FLAG_HDR_INFO_SET (1<<4) -#define ADM_IDX_FLAG_WRITE_INDEX_FILE 1 -#define ADM_IDX_FLAG_IGNORE_INDEX_FILE (1<<1) - -#define ADM_IDX_FLAGS_OFFSET_MPEGPS 0 -#define ADM_IDX_FLAGS_OFFSET_MPEGTS 4 -#define ADM_IDX_FLAGS_OFFSET_MATROSKA 8 -#define ADM_IDX_FLAGS_OFFSET_MP4 12 - -#define ADM_IDX_FLAGS_DEFAULT \ -((ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MPEGPS) + \ - (ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MPEGTS) + \ - (ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MATROSKA) + \ - (ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MP4)) - typedef struct { uint32_t encoding; // Same as in wavheader
View file
avidemux2-2.8.2.git20260413.tar.xz/avidemux_core/ADM_coreDemuxer/include/ADM_indexingFlags.h
Added
@@ -0,0 +1,44 @@ +/*************************************************************************** + * Definitions used to store indexing settings for various demuxers * + * in a single uint32_t value * + * Copyright (C) 2026 eumagga0x2a * + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ +#ifndef ADM_IDX_FLAGS_H +#define ADM_IDX_FLAGS_H + +// Allow a particular demuxer to create index files on disk. +// If unset, use existing ones if possible, else create index in-memory. +#define ADM_IDX_FLAG_WRITE_INDEX_FILE 1 +// Create index in-memory, even if a matching valid index file on disk exists. +#define ADM_IDX_FLAG_IGNORE_INDEX_FILE (1<<1) + +// Each demuxer has 4 bits in a single uint32_t preference. +#define ADM_IDX_FLAGS_OFFSET_MPEGPS 0 +#define ADM_IDX_FLAGS_OFFSET_MPEGTS 4 +#define ADM_IDX_FLAGS_OFFSET_MATROSKA 8 +#define ADM_IDX_FLAGS_OFFSET_MP4 12 + +// By default, create index files on disk. +#define ADM_IDX_FLAGS_DEFAULT \ +((ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MPEGPS) + \ + (ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MPEGTS) + \ + (ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MATROSKA) + \ + (ADM_IDX_FLAG_WRITE_INDEX_FILE << ADM_IDX_FLAGS_OFFSET_MP4)) + +typedef enum +{ + ADM_IDX_WRITE_TO_DISK = 0, + ADM_IDX_USE_EXISTING, + ADM_IDX_MEMFILE_ONLY +} ADM_indexingType; + +#endif
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_core/ADM_coreDemuxerMpeg/include/ADM_indexFile.h -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_core/ADM_coreDemuxerMpeg/include/ADM_indexFile.h
Changed
@@ -66,7 +66,7 @@ indexFile(); ~indexFile(); - bool open(const char *name); + bool open(const char *name, bool memOnly = false); bool close(void); bool goToSection(const char *section); bool readSection(const char *section);
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_core/ADM_coreDemuxerMpeg/src/ADM_indexFile.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_core/ADM_coreDemuxerMpeg/src/ADM_indexFile.cpp
Changed
@@ -118,9 +118,10 @@ */ -bool indexFile::open(const char *name) +bool indexFile::open(const char *name, bool memOnly) { - file=ADM_fopen(name,"rt"); + if(!memOnly) + file = ADM_fopen(name,"rt"); if(!file) { mFile = mfopen(name,"rt");
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ADM_mkvIndexer.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ADM_mkvIndexer.cpp
Changed
@@ -26,6 +26,7 @@ #include "ADM_videoInfoExtractor.h" #include "ADM_vidMisc.h" #include "ADM_metaToFile.h" +#include "ADM_indexingFlags.h" #include "prefs.h" #define VIDEO _tracks0 @@ -764,38 +765,32 @@ const char *ss; uint64_t pos; uint8_t res=1; - bool indexOnDisk = true; + + ADM_indexingType idxt = ADM_IDX_WRITE_TO_DISK; bool indexAllowOverwrite = true; - bool memOnly = false; + uint32_t indexingFlags = ADM_IDX_FLAGS_DEFAULT; - uint32_t indexingFlags = 0; if (prefs->get(INDEXING_INDEXING_FLAGS, &indexingFlags)) { indexingFlags >>= ADM_IDX_FLAGS_OFFSET_MATROSKA; if (!(indexingFlags & ADM_IDX_FLAG_WRITE_INDEX_FILE)) { - indexOnDisk = false; + idxt = ADM_IDX_USE_EXISTING; } if (indexingFlags & ADM_IDX_FLAG_IGNORE_INDEX_FILE) { - indexOnDisk = false; - memOnly = true; + idxt = ADM_IDX_MEMFILE_ONLY; ADM_info("Mem-only indexing.\n"); } } if (NULL != getenv("ADM_NOINDEX_MKV") && !strncmp(getenv("ADM_NOINDEX_MKV"), "1", 1)) - indexOnDisk = false; + idxt = ADM_IDX_MEMFILE_ONLY; - if (!memOnly) + if (idxt != ADM_IDX_MEMFILE_ONLY && loadIndex(_idxName, parser->getFileSize())) { - if (NULL != getenv("ADM_MKV_INDEX_ALLOW_OVERWRITE") && !strncmp(getenv("ADM_MKV_INDEX_ALLOW_OVERWRITE"), "0", 1)) - indexAllowOverwrite = false; - if (loadIndex(_idxName, parser->getFileSize())) - { - printf("MKV Video track indexing loaded from \"%s\"\n", _idxName.c_str()); - return ADM_OK; - } + printf("MKV Video track index loaded from \"%s\"\n", _idxName.c_str()); + return ADM_OK; } mkvIndex tmpCluster; @@ -872,8 +867,10 @@ _work = NULL; //ADM_info("MKV Found %u clusters\n",(int)_clusters.size()); - if (indexOnDisk) + if (idxt == ADM_IDX_WRITE_TO_DISK) { + if (NULL != getenv("ADM_MKV_INDEX_ALLOW_OVERWRITE") && !strncmp(getenv("ADM_MKV_INDEX_ALLOW_OVERWRITE"), "0", 1)) + indexAllowOverwrite = false; if ((res == ADM_OK) && (!!VIDEO.index.size())) { saveIndex(_idxName, parser->getFileSize(), indexAllowOverwrite);
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4.cpp
Changed
@@ -73,7 +73,7 @@ #include "ADM_mp3info.h" #include "ADM_dcainfo.h" #include "ADM_audioXiphUtils.h" - +#include "ADM_indexingFlags.h" #include "prefs.h" #if 1 @@ -384,30 +384,29 @@ _idxName = name; _idxName += ".idxb"; - bool indexOnDisk = true; + + ADM_indexingType idxt = ADM_IDX_WRITE_TO_DISK; bool indexAllowOverwrite = true; - bool memOnly = false; + uint32_t indexingFlags = ADM_IDX_FLAGS_DEFAULT; - uint32_t indexingFlags = 0; if (prefs->get(INDEXING_INDEXING_FLAGS, &indexingFlags)) { indexingFlags >>= ADM_IDX_FLAGS_OFFSET_MP4; if (!(indexingFlags & ADM_IDX_FLAG_WRITE_INDEX_FILE)) { - indexOnDisk = false; + idxt = ADM_IDX_USE_EXISTING; } if (indexingFlags & ADM_IDX_FLAG_IGNORE_INDEX_FILE) { - indexOnDisk = false; - memOnly = true; + idxt = ADM_IDX_MEMFILE_ONLY; ADM_info("Mem-only indexing.\n"); } } if (NULL != getenv("ADM_NOINDEX_MP4") && !strncmp(getenv("ADM_NOINDEX_MP4"), "1", 1)) - indexOnDisk = false; + idxt = ADM_IDX_MEMFILE_ONLY; - if (indexOnDisk) + if (idxt == ADM_IDX_WRITE_TO_DISK) { if (NULL != getenv("ADM_MP4_INDEX_ALLOW_OVERWRITE") && !strncmp(getenv("ADM_MP4_INDEX_ALLOW_OVERWRITE"), "0", 1)) indexAllowOverwrite = false; @@ -543,7 +542,7 @@ if(extractSPSInfo_mp4Header(VDEO.extraData,VDEO.extraDataSize,&info)) { bool indexLoadedFromDisk = false; - if (!memOnly) + if (idxt != ADM_IDX_MEMFILE_ONLY) { if (loadIndex(_idxName, fileSize)) { @@ -667,7 +666,7 @@ ADM_info("Field encoded H.264 stream detected, # fields: %u\n",fields); else ADM_info("Probably a frame encoded H.264 stream.\n"); - if (indexOnDisk && !cancelled) + if (idxt == ADM_IDX_WRITE_TO_DISK && !cancelled) { saveIndex(_idxName, fileSize, indexAllowOverwrite); } @@ -689,7 +688,7 @@ _video_bih.biHeight = _mainaviheader.dwHeight = info.height; } bool indexLoadedFromDisk = false; - if (!memOnly) + if (idxt != ADM_IDX_MEMFILE_ONLY) { if (loadIndex(_idxName, fileSize)) { @@ -761,7 +760,7 @@ work=NULL; delete bfer; bfer=NULL; - if (indexOnDisk && !cancelled) + if (idxt == ADM_IDX_WRITE_TO_DISK && !cancelled) { saveIndex(_idxName, fileSize, indexAllowOverwrite); }
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_ps.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_ps.cpp
Changed
@@ -19,35 +19,60 @@ #include "DIA_coreToolkit.h" #include "ADM_indexFile.h" #include "ADM_ps.h" +#include "prefs.h" #include <math.h> #define MY_CLASS psHeader #include "ADM_coreDemuxerMpegTemplate.cpp.h" uint32_t ADM_UsecFromFps1000(uint32_t fps1000); -uint8_t psIndexer(const char *file); +uint8_t psIndexer(const char *file, bool memOnly); /** - \fn open - \brief open the flv file, gather infos and build index(es). + \fn open + \brief Wrapper for internal function to open given MPEG-PS file. */ - uint8_t psHeader::open(const char *name) { + ADM_indexingType idxt = ADM_IDX_WRITE_TO_DISK; + uint32_t indexingFlags = ADM_IDX_FLAGS_DEFAULT; + + if (prefs->get(INDEXING_INDEXING_FLAGS, &indexingFlags)) + { + indexingFlags >>= ADM_IDX_FLAGS_OFFSET_MPEGPS; + if (!(indexingFlags & ADM_IDX_FLAG_WRITE_INDEX_FILE)) + { + idxt = ADM_IDX_USE_EXISTING; + } + if (indexingFlags & ADM_IDX_FLAG_IGNORE_INDEX_FILE) + { + idxt = ADM_IDX_MEMFILE_ONLY; + ADM_info("Mem-only indexing.\n"); + } + } + + return openInternal(name, idxt); +} +/** + \fn openInternal + \brief Open given MPEG-PS file, detect streams and their properties and build index(es). +*/ +uint8_t psHeader::openInternal(const char *name, ADM_indexingType &strategy) +{ char *idxName=(char *)malloc(strlen(name)+6); uint8_t r=1; sprintf(idxName,"%s.idx2",name); ListOfIndexFiles.push_back(idxName); - if(!ADM_fileExist(idxName)) - r=psIndexer(name); + if (strategy == ADM_IDX_MEMFILE_ONLY || !ADM_fileExist(idxName)) + r = psIndexer(name, strategy != ADM_IDX_WRITE_TO_DISK); if(r!=ADM_OK) { if(r==ADM_IGN) ADM_warning("Indexing cancelled by the user, deleting the index file. Bye.\n"); if(!r) ADM_error("Indexing of %s failed, aborting\n",name); - if(ADM_fileExist(idxName) && !ADM_eraseFile(idxName)) + if(strategy == ADM_IDX_WRITE_TO_DISK && ADM_fileExist(idxName) && !ADM_eraseFile(idxName)) ADM_warning("Could not delete %s\n",idxName); free(idxName); return r; @@ -61,9 +86,9 @@ indexFile index; r=0; - if(!index.open(idxName)) + if(!index.open(idxName, strategy == ADM_IDX_MEMFILE_ONLY)) { - printf("psDemux Cannot open index file %s\n",idxName); + printf("psDemux Cannot open %s file %s\n", (strategy == ADM_IDX_MEMFILE_ONLY) ? "in-memory index" : "index", idxName); free(idxName); return false; } @@ -76,6 +101,12 @@ version=index.getAsUint32("Version"); if(version!=ADM_INDEX_FILE_VERSION) { + ADM_warning("Index file version mismatch, expected %" PRIu32", got %" PRIu32"\n", ADM_INDEX_FILE_VERSION, version); + if (strategy == ADM_IDX_MEMFILE_ONLY) + { + ADM_error("Index file version mismatch despite in-memory indexing, bailing out.\n"); + goto abt; + } if(GUI_Question(QT_TRANSLATE_NOOP("psdemuxer","This file's index has been created with an older version of avidemux.\nThe file must be re-indexed. Proceed?"))) reindex=true; goto abt; @@ -202,14 +233,21 @@ } abt: index.close(); - if(reindex) + if (reindex && strategy != ADM_IDX_MEMFILE_ONLY) { - uint8_t success=ADM_eraseFile(idxName); + uint8_t success = 1; + if (strategy == ADM_IDX_WRITE_TO_DISK) + success = ADM_eraseFile(idxName); + else + strategy = ADM_IDX_MEMFILE_ONLY; free(idxName); if(success) - r=open(name); - else + { + r = openInternal(name, strategy); + }else + { ADM_error("Can't delete old index file.\n"); + } }else { free(idxName);
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_ps.h -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_ps.h
Changed
@@ -24,6 +24,7 @@ #include "ADM_audioStream.h" #include "dmx_io.h" #include "ADM_indexFile.h" +#include "ADM_indexingFlags.h" #include "dmxPSPacket.h" #include <BVector.h> #include "ADM_coreDemuxerMpeg.h" @@ -128,6 +129,7 @@ BVector <ADM_psTrackDescriptor *> listOfAudioTracks; ListOfScr listOfScrGap; + uint8_t openInternal(const char *name, ADM_indexingType &strategy); bool readVideo(indexFile *index); bool readAudio(indexFile *index, const char *name); bool readIndex(indexFile *index);
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_psComputeTimeStamp.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_psComputeTimeStamp.cpp
Changed
@@ -7,7 +7,6 @@ #include "ADM_default.h" #include "fourcc.h" #include "DIA_coreToolkit.h" -#include "ADM_indexFile.h" #include "ADM_ps.h" #include <math.h>
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_psIndex.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegPS/ADM_psIndex.cpp
Changed
@@ -121,7 +121,7 @@ public: PsIndexer(void); ~PsIndexer(); - uint8_t run(const char *file); + uint8_t run(const char *file, bool mem); bool writeVideo(PSVideo *video); bool writeAudio(void); bool writeSystem(const char *filename,bool append); @@ -140,11 +140,11 @@ \fn psIndexer \brief main indexing loop for mpeg2 payload */ -uint8_t psIndexer(const char *file) +uint8_t psIndexer(const char *file, bool memOnly) { uint8_t r; PsIndexer *dx=new PsIndexer; - r=dx->run(file); + r=dx->run(file,memOnly); delete dx; return r; } @@ -177,7 +177,7 @@ /** \fn run */ -uint8_t PsIndexer::run(const char *file) +uint8_t PsIndexer::run(const char *file, bool mem) { uint32_t temporal_ref,val; uint64_t fullSize; @@ -197,14 +197,20 @@ char *indexName=(char *)malloc(strlen(file)+6); sprintf(indexName,"%s.idx2",file); - index=qfopen(indexName,"wt",true); + index = mem ? NULL : qfopen(indexName,"wt",true); if(!index) { - printf("PsIndex Cannot create %s\n",indexName); + if (mem) + ADM_info("Forcing in-memory indexing.\n"); + else + ADM_warning("Cannot create index file \"%s\"\n", indexName); mFile = mfopen(indexName,"wt"); if (!mFile) { - printf("PsIndex Cannot create memFile either\n"); + if (mem) + ADM_error("Cannot create memFile!\n"); + else + ADM_error("Cannot create memFile either.\n"); free(indexName); return 0; }
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_ts.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_ts.cpp
Changed
@@ -21,33 +21,60 @@ #include "ADM_indexFile.h" #include "ADM_ts.h" #include "ADM_videoInfoExtractor.h" +#include "prefs.h" #define MY_CLASS tsHeader #include "ADM_coreDemuxerMpegTemplate.cpp.h" -extern uint8_t tsIndexer(const char *file); +extern uint8_t tsIndexer(const char *file, bool memOnly); /** - \fn open - \brief open the flv file, gather infos and build index(es). + \fn open + \brief Wrapper for openInternal to query preferences in a single location. */ - uint8_t tsHeader::open(const char *name) { + ADM_indexingType idxt = ADM_IDX_WRITE_TO_DISK; + uint32_t indexingFlags = ADM_IDX_FLAGS_DEFAULT; + + if (prefs->get(INDEXING_INDEXING_FLAGS, &indexingFlags)) + { + indexingFlags >>= ADM_IDX_FLAGS_OFFSET_MPEGTS; + if (!(indexingFlags & ADM_IDX_FLAG_WRITE_INDEX_FILE)) + { + idxt = ADM_IDX_USE_EXISTING; + } + if (indexingFlags & ADM_IDX_FLAG_IGNORE_INDEX_FILE) + { + idxt = ADM_IDX_MEMFILE_ONLY; + ADM_info("Mem-only indexing.\n"); + } + } + + return openInternal(name, idxt); +} + +/** + \fn openInternal + \brief Open given MPEG-TS file, gather infos and build index(es). +*/ +uint8_t tsHeader::openInternal(const char *name, ADM_indexingType &strategy) +{ char *idxName=(char *)malloc(strlen(name)+6); uint8_t r=1; sprintf(idxName,"%s.idx2",name); ListOfIndexFiles.push_back(idxName); - if(!ADM_fileExist(idxName)) - r=tsIndexer(name); + + if(strategy == ADM_IDX_MEMFILE_ONLY || !ADM_fileExist(idxName)) + r = tsIndexer(name, strategy != ADM_IDX_WRITE_TO_DISK); if(r!=ADM_OK) { if(r==ADM_IGN) ADM_warning("Indexing cancelled by the user, deleting the index file. Bye.\n"); if(!r) ADM_error("Indexing of %s failed, aborting\n",name); - if(ADM_fileExist(idxName) && !ADM_eraseFile(idxName)) + if(strategy == ADM_IDX_WRITE_TO_DISK && ADM_fileExist(idxName) && !ADM_eraseFile(idxName)) ADM_warning("Could not delete %s\n",idxName); free(idxName); return r; @@ -61,9 +88,9 @@ r=0; indexFile index; - if(!index.open(idxName)) + if(!index.open(idxName, strategy == ADM_IDX_MEMFILE_ONLY)) { - printf("tsDemux Cannot open index file %s\n",idxName); + printf("tsDemux Cannot open %s file %s\n", idxName, (strategy == ADM_IDX_MEMFILE_ONLY) ? "in-memory index" : "index", idxName); free(idxName); return false; } @@ -82,6 +109,12 @@ version=index.getAsUint32("Version"); if(version!=ADM_INDEX_FILE_VERSION) { + ADM_warning("Index file version mismatch, expected %" PRIu32", got %" PRIu32"\n", ADM_INDEX_FILE_VERSION, version); + if (strategy == ADM_IDX_MEMFILE_ONLY) + { + ADM_error("Index file version mismatch despite in-memory indexing, bailing out.\n"); + goto abt; + } if(GUI_Question(QT_TRANSLATE_NOOP("tsdemuxer","This file's index has been created with an older version of avidemux.\nThe file must be re-indexed. Proceed?"))) reindex=true; goto abt; @@ -144,16 +177,25 @@ } abt: index.close(); - if(reindex) + if (reindex && strategy != ADM_IDX_MEMFILE_ONLY) { - uint8_t success=ADM_eraseFile(idxName); - free(idxName); - if(success) - r=open(name); + uint8_t success = 1; + if (strategy == ADM_IDX_WRITE_TO_DISK) + success = ADM_eraseFile(idxName); else + strategy = ADM_IDX_MEMFILE_ONLY; + free(idxName); + if (success) + { + r = openInternal(name, strategy); + } else + { ADM_error("Can't delete old index file.\n"); - }else + } + } else + { free(idxName); + } printf("tsDemuxer open() returned %d\n",r); return r; }
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_ts.h -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_ts.h
Changed
@@ -24,6 +24,7 @@ #include "ADM_audioStream.h" #include "dmx_io.h" #include "ADM_indexFile.h" +#include "ADM_indexingFlags.h" #include "dmxTSPacket.h" #include <vector> #include "ADM_coreDemuxerMpeg.h" @@ -113,29 +114,32 @@ class tsHeader :public vidHeader { protected: - - bool fieldEncoded; - bool readVideo(indexFile *index); - bool readAudio(indexFile *index,const char *name); - bool readIndex(indexFile *index); - - bool processVideoIndex(char *buffer); - bool processAudioIndex(char *buffer); + uint32_t videoPid; + uint32_t lastFrame; + bool fieldEncoded; + bool videoNeedEscaping; + uint64_t sizeOfVideoInBytes; + uint64_t videoDuration; // cached value in microseconds std::vector <dmxFrame *> ListOfFrames; std::vector <std::string> ListOfIndexFiles; + std::vector <ADM_tsTrackDescriptor *> listOfAudioTracks; fileParser parser; - uint32_t lastFrame; - tsPacketLinear *tsPacket; + tsPacketLinear *tsPacket; + + uint8_t openInternal(const char *name, ADM_indexingType &strategy); + + bool readVideo(indexFile *index); + bool readAudio(indexFile *index, const char *name); + bool readIndex(indexFile *index); + + bool processVideoIndex(char *buffer); + bool processAudioIndex(char *buffer); + uint64_t timeConvert(uint64_t x); bool updatePtsDts(void); bool updateIdr(void); - bool videoNeedEscaping; - uint64_t sizeOfVideoInBytes; - uint64_t videoDuration; // cached value in microseconds -protected: - vector <ADM_tsTrackDescriptor *>listOfAudioTracks; - uint32_t videoPid; + public:
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndex.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndex.cpp
Changed
@@ -45,7 +45,7 @@ \fn TsIndexer \brief main indexing loop for mpeg2 payload */ -uint8_t tsIndexer(const char *file) +uint8_t tsIndexer(const char *file, bool memOnly) { uint8_t r; ADM_TS_TRACK *tracks; @@ -109,7 +109,7 @@ r=0; }else { - r=dx->run( file,&(tracks0)); + r=dx->run(file, &(tracks0), memOnly); delete dx; dx=NULL; }
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndex.h -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndex.h
Changed
@@ -147,7 +147,7 @@ public: TsIndexerBase(listOfTsAudioTracks *tr); virtual ~TsIndexerBase(); -virtual uint8_t run(const char *file,ADM_TS_TRACK *videoTrac)=0; +virtual uint8_t run(const char *file, ADM_TS_TRACK *videoTrac, bool memOnly)=0; bool writeVideo(TSVideo *video,ADM_TS_TRACK_TYPE trkType); bool writeAudio(void); bool writeSystem(const char *filename,int append=0); @@ -202,7 +202,7 @@ { } - uint8_t run(const char *file,ADM_TS_TRACK *videoTrac); + uint8_t run(const char *file, ADM_TS_TRACK *videoTrac, bool memOnly); }; class TsIndexerVC1: public TsIndexerBase @@ -218,7 +218,7 @@ { } - uint8_t run(const char *file,ADM_TS_TRACK *videoTrac); + uint8_t run(const char *file, ADM_TS_TRACK *videoTrac, bool memOnly); TsIndexerVC1(listOfTsAudioTracks *tr) : TsIndexerBase(tr) { @@ -238,7 +238,7 @@ { } - uint8_t run(const char *file,ADM_TS_TRACK *videoTrac); + uint8_t run(const char *file, ADM_TS_TRACK *videoTrac, bool memOnly); TsIndexerMpeg2(listOfTsAudioTracks *tr) : TsIndexerBase(tr) { @@ -266,7 +266,7 @@ { } - uint8_t run(const char *file,ADM_TS_TRACK *videoTrac); + uint8_t run(const char *file, ADM_TS_TRACK *videoTrac, bool memOnly); TsIndexerH265(listOfTsAudioTracks *tr) : TsIndexerBase(tr) {
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH264.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH264.cpp
Changed
@@ -216,7 +216,7 @@ \fn run \brief Index H264 stream */ -uint8_t TsIndexerH264::run(const char *file, ADM_TS_TRACK *videoTrac) +uint8_t TsIndexerH264::run(const char *file, ADM_TS_TRACK *videoTrac, bool memOnly) { bool seq_found=false; bool firstSps=true; @@ -240,17 +240,23 @@ memset(&data,0,sizeof(data)); data.picStructure=pictureFrame; - string indexName=string(file); - indexName=indexName+string(".idx2"); - index=qfopen(indexName,(const char*)"wt",true); + string indexName = file; + indexName += ".idx2"; - if(!index) + index = memOnly ? NULL : qfopen(indexName,"wt",true); + if (!index) { - ADM_error("TsIndexerH264 Cannot create %s\n",indexName.c_str()); - mFile=mfopen(indexName,"wt"); + if (memOnly) + ADM_info("Forcing in-memory indexing.\n"); + else + ADM_warning("Cannot create index file \"%s\"\n", indexName.c_str()); + mFile = mfopen(indexName,"wt"); if (!mFile) { - printf("TsIndexerH264 Cannot create memFile either\n"); + if (memOnly) + ADM_error("Cannot create memFile!\n"); + else + ADM_error("Cannot create memFile either.\n"); return 0; } }
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH265.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH265.cpp
Changed
@@ -293,7 +293,7 @@ \fn run \brief Index H265 stream */ -uint8_t TsIndexerH265::run(const char *file,ADM_TS_TRACK *videoTrac) +uint8_t TsIndexerH265::run(const char *file,ADM_TS_TRACK *videoTrac, bool memOnly) { TSVideo video; indexerData data; @@ -311,18 +311,24 @@ memset(&data,0,sizeof(data)); data.picStructure=pictureFrame; - string indexName=string(file); - indexName=indexName+string(".idx2"); - index=qfopen(indexName,(const char*)"wt",true); + string indexName = file; + indexName += ".idx2"; - if(!index) + index = memOnly ? NULL : qfopen(indexName,"wt",true); + if (!index) { - printf("TsIndexerH265 Cannot create %s\n",indexName.c_str()); - mFile=mfopen(indexName,"wt"); + if (memOnly) + ADM_info("Forcing in-memory indexing.\n"); + else + ADM_warning("Cannot create index file \"%s\"\n", indexName.c_str()); + mFile = mfopen(indexName,"wt"); if (!mFile) { - printf("TsIndexerH265 Cannot create memFile either\n"); - return false; + if (memOnly) + ADM_error("Cannot create memFile!\n"); + else + ADM_error("Cannot create memFile either.\n"); + return 0; } }
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexMpeg2.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexMpeg2.cpp
Changed
@@ -44,7 +44,7 @@ /** \fn runMpeg2 */ -uint8_t TsIndexerMpeg2::run(const char *file,ADM_TS_TRACK *videoTrac) +uint8_t TsIndexerMpeg2::run(const char *file,ADM_TS_TRACK *videoTrac, bool memOnly) { uint32_t temporal_ref,val; bool seq_found=false; @@ -69,21 +69,28 @@ memset(&data,0,sizeof(data)); - string indexName=string(file); - indexName=indexName+string(".idx2"); + string indexName = file; + indexName =+ ".idx2"; index=qfopen(indexName,"wt",true); - if(!index) + index = memOnly ? NULL : qfopen(indexName,"wt",true); + if (!index) { - printf("TsIndexerMpeg2 Cannot create %s\n",indexName.c_str()); - mFile=mfopen(indexName,"wt"); + if (memOnly) + ADM_info("Forcing in-memory indexing.\n"); + else + ADM_warning("Cannot create index file \"%s\"\n", indexName.c_str()); + mFile = mfopen(indexName,"wt"); if (!mFile) { - printf("TsIndexerMpeg2 Cannot create memFile either\n"); + if (memOnly) + ADM_error("Cannot create memFile!\n"); + else + ADM_error("Cannot create memFile either.\n"); return 0; } } - + int append=0; #ifdef ASK_APPEND_SEQUENCED append=1;
View file
avidemux2-2.8.2.git20260407.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexVC1.cpp -> avidemux2-2.8.2.git20260413.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexVC1.cpp
Changed
@@ -26,7 +26,7 @@ \fn runVC1 \brief Index VC1 stream */ -uint8_t TsIndexerVC1::run(const char *file,ADM_TS_TRACK *videoTrac) +uint8_t TsIndexerVC1::run(const char *file,ADM_TS_TRACK *videoTrac, bool memOnly) { uint32_t temporal_ref,val; uint8_t buffer50*1024; @@ -49,21 +49,28 @@ memset(&data,0,sizeof(data)); data.picStructure=pictureFrame; - - string indexName=string(file); - indexName=indexName+string(".idx2"); - index=qfopen(indexName,"wt",true); - if(!index) + string indexName = file; + indexName += ".idx2"; + + index = memOnly ? NULL : qfopen(indexName,"wt",true); + if (!index) { - printf("TsIndex Cannot create %s\n",indexName.c_str()); - mFile=mfopen(indexName,"wt"); + if (memOnly) + ADM_info("Forcing in-memory indexing.\n"); + else + ADM_warning("Cannot create index file \"%s\"\n", indexName.c_str()); + mFile = mfopen(indexName,"wt"); if (!mFile) { - printf("TsIndex Cannot create memFile either\n"); - return false; + if (memOnly) + ADM_error("Cannot create memFile!\n"); + else + ADM_error("Cannot create memFile either.\n"); + return 0; } } + writeSystem(file,false); pkt=new tsPacketLinearTracker(videoTrac->trackPid, audioTracks);
View file
avidemux2-2.8.2.git20260413.tar.xz/devpod_debianbullseye.bash
Added
@@ -0,0 +1,2 @@ +#!/bin/sh +devpod up . --ide none --id adm-bullseye --devcontainer-path .devcontainer_bullseye/devcontainer.json $@
View file
avidemux2-2.8.2.git20260407.tar.xz/devpod_debiantrixie.sh -> avidemux2-2.8.2.git20260413.tar.xz/devpod_debiantrixie.sh
Changed
@@ -1,1 +1,2 @@ -devpod up . --ide none --id adm-trixie --devcontainer-path .devcontainer_trixie/devcontainer.json +#!/bin/sh +devpod up . --ide none --id adm-trixie --devcontainer-path .devcontainer_trixie/devcontainer.json $@
View file
avidemux2-2.8.2.git20260407.tar.xz/devpod_fedora.sh -> avidemux2-2.8.2.git20260413.tar.xz/devpod_fedora.sh
Changed
@@ -1,1 +1,2 @@ -devpod up . --id adm-fedora --ide none --devcontainer-path .devcontainer_fedora/devcontainer.json +#!/bin/sh +devpod up . --id adm-fedora --ide none --devcontainer-path .devcontainer_fedora/devcontainer.json $@
View file
avidemux2-2.8.2.git20260407.tar.xz/devpod_ubuntu2510.sh -> avidemux2-2.8.2.git20260413.tar.xz/devpod_ubuntu2510.sh
Changed
@@ -1,1 +1,2 @@ -devpod up . --ide none --id adm-ubuntu --devcontainer-path .devcontainer_ubuntu2510/devcontainer.json +#!/bin/sh +devpod up . --ide none --id adm-ubuntu --devcontainer-path .devcontainer_ubuntu2510/devcontainer.json $@
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.