HI,

the pull request on GitHub looks not merged yet,
but following diff looks ok. thanks.

---
On Thu, 13 Aug 2026 23:08:00 +0900,
Kirill A. Korinsky wrote:
> 
> On Thu, 13 Aug 2026 15:31:17 +0200,
> SASANO Takayoshi <[email protected]> wrote:
> > 
> > Hello,
> > 
> > > I'd like to to commit a fix for emulators/dosbox-x which switches it away
> > > from deprecated API in ffmpeg which prevents it to build against ffmpeg 
> > > 9.0
> > > 
> > > Build tested against ffmpeg-9.0 and ffmpeg-8.1.2
> > > 
> > > Ok?
> > 
> > I found recently posted dosbox-x pull request at
> > https://github.com/joncampbell123/dosbox-x/pull/6467/changes/18062c0ffb33db35fa52ce937ce25223140c0293
> > 
> > to update dosbox-x ports easy in the future,
> > can you rewrite the diff based on this PR?
> > 
> 
> Sure, here it is:
> 
> Index: Makefile
> ===================================================================
> RCS file: /home/cvs/ports/emulators/dosbox-x/Makefile,v
> diff -u -p -r1.6 Makefile
> --- Makefile  30 Jun 2025 21:51:32 -0000      1.6
> +++ Makefile  13 Aug 2026 14:03:17 -0000
> @@ -3,6 +3,7 @@ BROKEN-sparc64= error:union MMX_reg has 
>  COMMENT=     x86 with DOS emulator targeted at playing games
>  
>  VERSION=     2025.05.03
> +REVISION=    0
>  DISTNAME=    dosbox-x-${VERSION}
>  
>  CATEGORIES=  games x11 emulators
> Index: patches/patch-src_hardware_hardware_cpp
> ===================================================================
> RCS file: 
> /home/cvs/ports/emulators/dosbox-x/patches/patch-src_hardware_hardware_cpp,v
> diff -u -p -r1.1 patch-src_hardware_hardware_cpp
> --- patches/patch-src_hardware_hardware_cpp   21 Oct 2025 12:51:06 -0000      
> 1.1
> +++ patches/patch-src_hardware_hardware_cpp   13 Aug 2026 14:07:33 -0000
> @@ -1,4 +1,5 @@
>  
> https://github.com/joncampbell123/dosbox-x/commit/d1a6e4d79857455ffee77ed9ac48bff516504f8d
> +https://github.com/joncampbell123/dosbox-x/pull/6467/changes/18062c0ffb33db35fa52ce937ce25223140c0293
>  
>  Index: src/hardware/hardware.cpp
>  --- src/hardware/hardware.cpp.orig
> @@ -59,7 +60,37 @@ Index: src/hardware/hardware.cpp
>   
>                       #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59,24,100)
>                       ffmpeg_aud_ctx->channels = 2;
> -@@ -1531,7 +1528,7 @@ skip_shot:
> +@@ -1279,10 +1276,27 @@ skip_shot:
> +                     #else
> +                     ffmpeg_aud_ctx->ch_layout = AV_CHANNEL_LAYOUT_STEREO;
> +                     #endif
> +-
> ++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(61, 13, 100)
> ++            // Legacy support for FFmpeg not supporting 
> avcodec_get_supported_config()
> +                     if (ffmpeg_aud_codec->sample_fmts != NULL)
> +                             ffmpeg_aud_ctx->sample_fmt = 
> (ffmpeg_aud_codec->sample_fmts)[0];
> +-                    else
> ++#else
> ++            // For FFmpeg supporting avcodec_get_supported_config()
> ++            const enum AVSampleFormat* formats = NULL;
> ++
> ++            const int ret = avcodec_get_supported_config(
> ++                NULL,
> ++                ffmpeg_aud_codec,
> ++                AV_CODEC_CONFIG_SAMPLE_FORMAT,
> ++                0,
> ++                reinterpret_cast<const void**>(&formats),
> ++                NULL
> ++            );
> ++
> ++            if(ret >= 0 && formats != NULL)
> ++                ffmpeg_aud_ctx->sample_fmt = formats[0];
> ++#endif
> ++            else
> +                             ffmpeg_aud_ctx->sample_fmt = AV_SAMPLE_FMT_FLT;
> + 
> +                     if (avcodec_open2(ffmpeg_aud_ctx,ffmpeg_aud_codec,NULL) 
> < 0) {
> +@@ -1531,7 +1545,7 @@ skip_shot:
>   
>                               // encode it
>                               ffmpeg_vid_frame->pts = 
> (int64_t)capture.video.frames; // or else libx264 complains about 
> non-monotonic timestamps
> @@ -68,7 +99,7 @@ Index: src/hardware/hardware.cpp
>   
>                               
> r=avcodec_send_frame(ffmpeg_vid_ctx,ffmpeg_vid_frame);
>                               if (r < 0 && r != AVERROR(EAGAIN))
> -@@ -1768,7 +1765,7 @@ skip_mt_wav:
> +@@ -1768,7 +1782,7 @@ skip_mt_wav:
>   }
>   
>   #pragma pack(push,1)
> @@ -77,7 +108,7 @@ Index: src/hardware/hardware.cpp
>       uint32_t magic_number;   /* magic number */
>       uint16_t version_major;  /* major version number */
>       uint16_t version_minor;  /* minor version number */
> -@@ -1776,14 +1773,14 @@ typedef struct pcap_hdr_struct_t {
> +@@ -1776,14 +1790,14 @@ typedef struct pcap_hdr_struct_t {
>       uint32_t sigfigs;        /* accuracy of timestamps */
>       uint32_t snaplen;        /* max length of captured packets, in octets */
>       uint32_t network;        /* data link type */
> 
> 
> -- 
> wbr, Kirill
> 

Reply via email to