From a9fb6d78ab3a87bda1c556e9ec0500716bfbe922 Mon Sep 17 00:00:00 2001 From: tkmxqrdxddd Date: Wed, 16 Oct 2024 19:42:02 +0200 Subject: [PATCH] initial commit --- .gitignore | 33 ++++++++++ Makefile | 100 ++++++++++++++++++++++++++++++ output/main | Bin 0 -> 167576 bytes src/main.cpp | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 300 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100755 output/main create mode 100644 src/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b4c1104 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +# Prerequisites +*.d +.vscode +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +.output diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..94da212 --- /dev/null +++ b/Makefile @@ -0,0 +1,100 @@ +# +# 'make' build executable file 'main' +# 'make clean' removes all .o and executable files +# + +# define the Cpp compiler to use +CXX = g++ + +# define any compile-time flags +CXXFLAGS := -std=c++17 -Wall -Wextra -g $(shell pkg-config --cflags gtk+-3.0) + +# define library paths in addition to /usr/lib +# if I wanted to include libraries not in /usr/lib I'd specify +# their path using -Lpath, something like: +LFLAGS = + +# define output directory +OUTPUT := output + +# define source directory +SRC := src + +# define include directory +INCLUDE := include + +# define lib directory +LIB := lib + +ifeq ($(OS),Windows_NT) +MAIN := main.exe +SOURCEDIRS := $(SRC) +INCLUDEDIRS := $(INCLUDE) +LIBDIRS := $(LIB) +FIXPATH = $(subst /,\,$1) +RM := del /q /f +MD := mkdir +else +MAIN := main +SOURCEDIRS := $(shell find $(SRC) -type d) +INCLUDEDIRS := $(shell find $(INCLUDE) -type d) +LIBDIRS := $(shell find $(LIB) -type d) +FIXPATH = $1 +RM = rm -f +MD := mkdir -p +endif + +# define any directories containing header files other than /usr/include +INCLUDES := $(patsubst %,-I%, $(INCLUDEDIRS:%/=%)) + +# define the C libs +LIBS := $(patsubst %,-L%, $(LIBDIRS:%/=%)) +LIBS += $(shell pkg-config --libs gtk+-3.0) + +# define the C source files +SOURCES := $(wildcard $(patsubst %,%/*.cpp, $(SOURCEDIRS))) + +# define the C object files +OBJECTS := $(SOURCES:.cpp=.o) + +# define the dependency output files +DEPS := $(OBJECTS:.o=.d) + +# +# The following part of the makefile is generic; it can be used to +# build any executable just by changing the definitions above and by +# deleting dependencies appended to the file from 'make depend' +# + +OUTPUTMAIN := $(call FIXPATH,$(OUTPUT)/$(MAIN)) + +all: $(OUTPUT) $(MAIN) + @echo Executing 'all' complete! + +$(OUTPUT): + $(MD) $(OUTPUT) + +$(MAIN): $(OBJECTS) + $(CXX) $(CXXFLAGS) $(INCLUDES) -o $(OUTPUTMAIN) $(OBJECTS) $(LFLAGS) $(LIBS) + +# include all .d files +-include $(DEPS) + +# this is a suffix replacement rule for building .o's and .d's from .c's +# it uses automatic variables $<: the name of the prerequisite of +# the rule(a .c file) and $@: the name of the target of the rule (a .o file) +# -MMD generates dependency output files same name as the .o file +# (see the gnu make manual section about automatic variables) +.cpp.o: + $(CXX) $(CXXFLAGS) $(INCLUDES) -c -MMD $< -o $@ + +.PHONY: clean +clean: + $(RM) $(OUTPUTMAIN) + $(RM) $(call FIXPATH,$(OBJECTS)) + $(RM) $(call FIXPATH,$(DEPS)) + @echo Cleanup complete! + +run: all + ./$(OUTPUTMAIN) + @echo Executing 'run: all' complete! diff --git a/output/main b/output/main new file mode 100755 index 0000000000000000000000000000000000000000..ab9a34ccf66d3c2f3f9c1cccd1e7afcb2a6c71a3 GIT binary patch literal 167576 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 +#include +#include +#include +#include +#include +#include + +class VideoConverter { +private: + std::string input_file; + std::string output_file; + std::atomic conversion_in_progress; + GtkWidget *window; + GtkWidget *input_entry; + GtkWidget *output_entry; + GtkWidget *convert_button; + GtkWidget *progress_bar; + + static void on_convert_clicked(GtkWidget *widget, gpointer data) { + auto *converter = static_cast(data); + converter->start_conversion(); + } + + static void on_window_destroy(GtkWidget *widget, gpointer data) { + gtk_main_quit(); + } + + void start_conversion() { + if (conversion_in_progress) { + show_error("Conversion already in progress"); + return; + } + + input_file = gtk_entry_get_text(GTK_ENTRY(input_entry)); + output_file = gtk_entry_get_text(GTK_ENTRY(output_entry)); + + if (input_file.empty() || output_file.empty()) { + show_error("Please enter both input and output file names"); + return; + } + + conversion_in_progress = true; + gtk_widget_set_sensitive(convert_button, FALSE); + gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar), 0.0); + + std::thread conversion_thread(&VideoConverter::convert, this); + conversion_thread.detach(); + } + + void convert() { + std::string command = "ffmpeg -i " + input_file + + " -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a alac " + + output_file + " -progress pipe:1"; + + FILE* pipe = popen(command.c_str(), "r"); + if (!pipe) { + gdk_threads_add_idle(G_SOURCE_FUNC(show_error_wrapper), + const_cast("Failed to start FFmpeg process")); + conversion_in_progress = false; + return; + } + + char buffer[128]; + std::string result = ""; + while (!feof(pipe)) { + if (fgets(buffer, 128, pipe) != NULL) { + result += buffer; + if (result.find("progress=end") != std::string::npos) { + gdk_threads_add_idle(G_SOURCE_FUNC(update_progress_wrapper), + const_cast(static_cast(this))); + break; + } + } + } + + int status = pclose(pipe); + conversion_in_progress = false; + + if (status == 0) { + gdk_threads_add_idle(G_SOURCE_FUNC(show_success_wrapper), + const_cast("Video conversion completed successfully")); + } else { + gdk_threads_add_idle(G_SOURCE_FUNC(show_error_wrapper), + const_cast("Error occurred during video conversion")); + } + } + + static gboolean update_progress_wrapper(gpointer data) { + auto *converter = static_cast(data); + gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(converter->progress_bar), 1.0); + gtk_widget_set_sensitive(converter->convert_button, TRUE); + return FALSE; + } + + static gboolean show_error_wrapper(gpointer data) { + auto *message = static_cast(data); + VideoConverter::show_message_dialog(GTK_MESSAGE_ERROR, message); + return FALSE; + } + + static gboolean show_success_wrapper(gpointer data) { + auto *message = static_cast(data); + VideoConverter::show_message_dialog(GTK_MESSAGE_INFO, message); + return FALSE; + } + + static void show_message_dialog(GtkMessageType type, const char* message) { + GtkWidget *dialog = gtk_message_dialog_new(NULL, + GTK_DIALOG_MODAL, + type, + GTK_BUTTONS_OK, + "%s", message); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + } + + void show_error(const char* message) { + show_message_dialog(GTK_MESSAGE_ERROR, message); + } + +public: + VideoConverter() : conversion_in_progress(false) {} + + void create_window() { + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_title(GTK_WINDOW(window), "Video Converter"); + gtk_container_set_border_width(GTK_CONTAINER(window), 10); + + GtkWidget *grid = gtk_grid_new(); + gtk_container_add(GTK_CONTAINER(window), grid); + + GtkWidget *input_label = gtk_label_new("Input File:"); + gtk_grid_attach(GTK_GRID(grid), input_label, 0, 0, 1, 1); + + input_entry = gtk_entry_new(); + gtk_grid_attach(GTK_GRID(grid), input_entry, 1, 0, 1, 1); + + GtkWidget *output_label = gtk_label_new("Output File:"); + gtk_grid_attach(GTK_GRID(grid), output_label, 0, 1, 1, 1); + + output_entry = gtk_entry_new(); + gtk_grid_attach(GTK_GRID(grid), output_entry, 1, 1, 1, 1); + + convert_button = gtk_button_new_with_label("Convert"); + g_signal_connect(convert_button, "clicked", G_CALLBACK(on_convert_clicked), this); + gtk_grid_attach(GTK_GRID(grid), convert_button, 0, 2, 2, 1); + + progress_bar = gtk_progress_bar_new(); + gtk_grid_attach(GTK_GRID(grid), progress_bar, 0, 3, 2, 1); + + g_signal_connect(window, "destroy", G_CALLBACK(on_window_destroy), NULL); + + gtk_widget_show_all(window); + } +}; + +int main(int argc, char *argv[]) { + gtk_init(&argc, &argv); + + VideoConverter converter; + converter.create_window(); + + gtk_main(); + + return 0; +}