From 4e2e0a1f4864a7e4cff3c55a3b8002773ce0ad77 Mon Sep 17 00:00:00 2001 From: zeqi <16345439+ocean123455@user.noreply.gitee.com> Date: Thu, 19 Feb 2026 10:06:10 +0000 Subject: [PATCH] 6.5.19gxde1 Signed-off-by: zeqi <16345439+ocean123455@user.noreply.gitee.com> --- debian/changelog | 7 +++++++ debian/control | 2 +- libcam/libcam_encoder/encoder.c | 29 +++++++++++++++-------------- src/CMakeLists.txt | 8 ++++---- tests/CMakeLists.txt | 2 +- 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/debian/changelog b/debian/changelog index ddfa1ec8..9bab070a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +deepin-camera (6.5.39gxde1) UNRELEASED; urgency=medium + + * fix: Fix GXDE 25 build fail + + -- zeqi Thu, 19 Feb 2026 15:59:19 +0800 + deepin-camera (6.5.38) unstable; urgency=medium * fix: Fix build fail @@ -351,3 +357,4 @@ deepin-camera (1.0.0-1) unstable; urgency=medium * Initial release -- Deepin Packages Builder Wed, 24 Feb 2016 14:15:54 +0800 + diff --git a/debian/control b/debian/control index 40c74a97..57727736 100644 --- a/debian/control +++ b/debian/control @@ -45,7 +45,7 @@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - libavcodec58 (>= 7:4.0) | libavcodec60, libavformat58 (>= 7:4.1) | libavformat60, libavutil56 (>= 7:4.0) | libavutil58, libswresample3 (>= 7:4.0) | libswresample4, libswscale5 (>= 7:4.0) | libswscale7, libffmpegthumbnailer4v5, libgl1, libpng16-16 (>= 1.6.2-1), libportaudio2 (>= 19+svn20101113), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0) + libavcodec61, libavformat61, libavutil59, libswresample5, libswscale8, libffmpegthumbnailer4v5, libgl1, libpng16-16 (>= 1.6.2-1), libportaudio2 (>= 19+svn20101113), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0) Recommends: libimageeditor6 | libimageeditor, uos-reporter, deepin-event-log Description:this package software for UOS deepin-camera is a tool to view camera, and also a smart take photo and video in life. diff --git a/libcam/libcam_encoder/encoder.c b/libcam/libcam_encoder/encoder.c index 30f4354d..ee239573 100644 --- a/libcam/libcam_encoder/encoder.c +++ b/libcam/libcam_encoder/encoder.c @@ -68,6 +68,8 @@ #include #include +#include + typedef enum _vaapi_status_t { HW_VAAPI_OK = 0, @@ -783,12 +785,12 @@ static encoder_audio_context_t *encoder_audio_init(encoder_context_t *encoder_ct audio_codec_data->codec_context->flags |= audio_defaults->flags; audio_codec_data->codec_context->sample_rate = encoder_ctx->audio_samprate; - audio_codec_data->codec_context->channels = encoder_ctx->audio_channels; + av_channel_layout_default(&audio_codec_data->codec_context->ch_layout, encoder_ctx->audio_channels); if (encoder_ctx->audio_channels < 2) - audio_codec_data->codec_context->channel_layout = AV_CH_LAYOUT_MONO; + av_channel_layout_default(&audio_codec_data->codec_context->ch_layout, encoder_ctx->audio_channels); else - audio_codec_data->codec_context->channel_layout = AV_CH_LAYOUT_STEREO; + av_channel_layout_default(&audio_codec_data->codec_context->ch_layout, encoder_ctx->audio_channels); audio_codec_data->codec_context->cutoff = 0; /*automatic*/ @@ -922,8 +924,7 @@ static encoder_audio_context_t *encoder_audio_init(encoder_context_t *encoder_ct audio_codec_data->frame->nb_samples = frame_size; audio_codec_data->frame->format = audio_defaults->sample_format; - audio_codec_data->frame->channels = audio_codec_data->codec_context->channels; - audio_codec_data->frame->channel_layout = audio_codec_data->codec_context->channel_layout; + av_channel_layout_copy(&audio_codec_data->frame->ch_layout, &audio_codec_data->codec_context->ch_layout); /*set codec data in encoder context*/ enc_audio_ctx->codec_data = (void *) audio_codec_data; @@ -1521,15 +1522,15 @@ static int libav_send_encode(AVCodecContext *avctx, AVFrame *frame) if (!getLoadLibsInstance()->m_avcodec_is_open(avctx)) fprintf(stderr, "ENCODER: codec not opened\n"); - if (!getLoadLibsInstance()->m_av_codec_is_encoder(avctx->codec)) + if (!getLoadLibsInstance()->m_av_codec_is_encoder((AVCodec*)avctx->codec)) fprintf(stderr, "ENCODER: codec not an encoder\n"); if (frame) { if (avctx->codec_type == AVMEDIA_TYPE_AUDIO && frame->nb_samples != avctx->frame_size) fprintf(stderr, "ENCODER: audio samples differ from frame size\n"); - if (avctx->codec_type == AVMEDIA_TYPE_AUDIO && frame->channels <= 0) { + if (avctx->codec_type == AVMEDIA_TYPE_AUDIO && frame->ch_layout.nb_channels <= 0) { fprintf(stderr, "ENCODER: no audio channels set in frame\n"); - frame->channels = avctx->channels; + av_channel_layout_copy(&frame->ch_layout, &avctx->ch_layout); } ret = getLoadLibsInstance()->m_avcodec_send_frame(avctx, frame); if (ret < 0) { @@ -1794,7 +1795,7 @@ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) int buffer_size = getAvutil()->m_av_samples_get_buffer_size( NULL, - audio_codec_data->codec_context->channels, + audio_codec_data->codec_context->ch_layout.nb_channels, audio_codec_data->codec_context->frame_size, audio_codec_data->codec_context->sample_fmt, align); @@ -1802,7 +1803,7 @@ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) if (buffer_size <= 0) { fprintf(stderr, "ENCODER: (encoder_encode_audio) PCM av_samples_get_buffer_size error (%d): chan(%d) nb_samp(%d) samp_fmt(%d)\n", buffer_size, - audio_codec_data->codec_context->channels, + audio_codec_data->codec_context->ch_layout.nb_channels, audio_codec_data->codec_context->frame_size, audio_codec_data->codec_context->sample_fmt); @@ -1835,7 +1836,7 @@ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) int buffer_size = getAvutil()->m_av_samples_get_buffer_size( NULL, - audio_codec_data->codec_context->channels, + audio_codec_data->codec_context->ch_layout.nb_channels, audio_codec_data->frame->nb_samples, audio_codec_data->codec_context->sample_fmt, align); @@ -1843,7 +1844,7 @@ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) if (buffer_size <= 0) { fprintf(stderr, "ENCODER: (encoder_encode_audio) av_samples_get_buffer_size error (%d): chan(%d) nb_samp(%d) samp_fmt(%d)\n", buffer_size, - audio_codec_data->codec_context->channels, + audio_codec_data->codec_context->ch_layout.nb_channels, audio_codec_data->frame->nb_samples, audio_codec_data->codec_context->sample_fmt); @@ -1854,7 +1855,7 @@ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) /*set the data pointers in frame*/ ret = getLoadLibsInstance()->m_avcodec_fill_audio_frame( audio_codec_data->frame, - audio_codec_data->codec_context->channels, + audio_codec_data->codec_context->ch_layout.nb_channels, audio_codec_data->codec_context->sample_fmt, (const uint8_t *) audio_data, buffer_size, @@ -1863,7 +1864,7 @@ int encoder_encode_audio(encoder_context_t *encoder_ctx, void *audio_data) if (ret < 0) { fprintf(stderr, "ENCODER: (encoder_encode_audio) avcodec_fill_audio_frame error (%d): chan(%d) nb_samp(%d) samp_fmt(%d) buff(%d bytes)\n", ret, - audio_codec_data->codec_context->channels, + audio_codec_data->codec_context->ch_layout.nb_channels, audio_codec_data->frame->nb_samples, audio_codec_data->codec_context->sample_fmt, buffer_size); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a2d56693..90ec2ca3 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.10) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) @@ -155,9 +155,9 @@ pkg_check_modules(3rd_lib REQUIRED # libv4l2 # libudev # libusb-1.0 -# libavcodec -# libavutil -# libavformat + libavcodec + libavutil + libavformat # libswscale # libpng # sdl2 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 183593f0..95600fd9 100755 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -4,7 +4,7 @@ project(deepin-camera-test VERSION 1.0.0) set(CMD_NAME deepin-camera-test) set(TARGET_NAME deepin-camera-test) # 定义需要的cmake版本 -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.10) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -- Gitee