hedgewars: fix build with ffmpeg>=3.0 (via Debian)
This commit is contained in:
parent
dc09f552ec
commit
3726e50ed5
2 changed files with 81 additions and 9 deletions
76
srcpkgs/hedgewars/patches/ffmpeg3.patch
Normal file
76
srcpkgs/hedgewars/patches/ffmpeg3.patch
Normal file
|
@ -0,0 +1,76 @@
|
|||
Description: Replace deprecated FFmpeg API
|
||||
Author: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
|
||||
Last-Update: <2015-11-02>
|
||||
|
||||
--- QTfrontend/util/LibavInteraction.cpp
|
||||
+++ QTfrontend/util/LibavInteraction.cpp
|
||||
@@ -106,8 +106,8 @@ LibavInteraction::LibavInteraction() : Q
|
||||
if (!pCodec->pix_fmts)
|
||||
continue;
|
||||
bool yuv420Supported = false;
|
||||
- for (const PixelFormat* pfmt = pCodec->pix_fmts; *pfmt != -1; pfmt++)
|
||||
- if (*pfmt == PIX_FMT_YUV420P)
|
||||
+ for (const AVPixelFormat* pfmt = pCodec->pix_fmts; *pfmt != -1; pfmt++)
|
||||
+ if (*pfmt == AV_PIX_FMT_YUV420P)
|
||||
{
|
||||
yuv420Supported = true;
|
||||
break;
|
||||
--- hedgewars/avwrapper/avwrapper.c
|
||||
+++ hedgewars/avwrapper/avwrapper.c
|
||||
@@ -158,7 +158,7 @@ static void AddAudioStream()
|
||||
else
|
||||
g_NumSamples = g_pAudio->frame_size;
|
||||
g_pSamples = (int16_t*)av_malloc(g_NumSamples*g_Channels*sizeof(int16_t));
|
||||
- g_pAFrame = avcodec_alloc_frame();
|
||||
+ g_pAFrame = av_frame_alloc();
|
||||
if (!g_pAFrame)
|
||||
{
|
||||
Log("Could not allocate frame\n");
|
||||
@@ -241,7 +241,7 @@ static int AddVideoStream()
|
||||
g_pVideo->time_base.den = g_Framerate.num;
|
||||
g_pVideo->time_base.num = g_Framerate.den;
|
||||
//g_pVideo->gop_size = 12; /* emit one intra frame every twelve frames at most */
|
||||
- g_pVideo->pix_fmt = PIX_FMT_YUV420P;
|
||||
+ g_pVideo->pix_fmt = AV_PIX_FMT_YUV420P;
|
||||
|
||||
// set quality
|
||||
if (g_VQuality > 100)
|
||||
@@ -299,7 +299,7 @@ static int AddVideoStream()
|
||||
#endif
|
||||
return FatalError("Could not open video codec %s", g_pVCodec->long_name);
|
||||
|
||||
- g_pVFrame = avcodec_alloc_frame();
|
||||
+ g_pVFrame = av_frame_alloc();
|
||||
if (!g_pVFrame)
|
||||
return FatalError("Could not allocate frame");
|
||||
|
||||
@@ -317,10 +317,10 @@ static int WriteFrame(AVFrame* pFrame)
|
||||
// write interleaved audio frame
|
||||
if (g_pAStream)
|
||||
{
|
||||
- VideoTime = (double)g_pVStream->pts.val*g_pVStream->time_base.num/g_pVStream->time_base.den;
|
||||
+ VideoTime = (double)av_stream_get_end_pts(g_pVStream)*g_pVStream->time_base.num/g_pVStream->time_base.den;
|
||||
do
|
||||
{
|
||||
- AudioTime = (double)g_pAStream->pts.val*g_pAStream->time_base.num/g_pAStream->time_base.den;
|
||||
+ AudioTime = (double)av_stream_get_end_pts(g_pAStream)*g_pAStream->time_base.num/g_pAStream->time_base.den;
|
||||
ret = WriteAudioFrame();
|
||||
}
|
||||
while (AudioTime < VideoTime && ret);
|
||||
@@ -526,14 +526,14 @@ AVWRAP_DECL int AVWrapper_Close()
|
||||
avcodec_close(g_pVideo);
|
||||
av_free(g_pVideo);
|
||||
av_free(g_pVStream);
|
||||
- av_free(g_pVFrame);
|
||||
+ av_frame_free(&g_pVFrame);
|
||||
}
|
||||
if (g_pAStream)
|
||||
{
|
||||
avcodec_close(g_pAudio);
|
||||
av_free(g_pAudio);
|
||||
av_free(g_pAStream);
|
||||
- av_free(g_pAFrame);
|
||||
+ av_frame_free(&g_pAFrame);
|
||||
av_free(g_pSamples);
|
||||
fclose(g_pSoundFile);
|
||||
}
|
|
@ -1,19 +1,15 @@
|
|||
broken="ffmpeg 3.0"
|
||||
|
||||
# Template file for 'hedgewars'
|
||||
pkgname=hedgewars
|
||||
version=0.9.22
|
||||
revision=3
|
||||
wrksrc="${pkgname}-src-${version}"
|
||||
build_style=cmake
|
||||
configure_args="
|
||||
-DNOSERVER=1
|
||||
-DDATA_INSTALL_DIR=/usr/share/${pkgname}
|
||||
-DPHYSFS_SYSTEM=1
|
||||
"
|
||||
configure_args="-DNOSERVER=1 -DDATA_INSTALL_DIR=/usr/share/${pkgname}
|
||||
-DPHYSFS_SYSTEM=1 -DCMAKE_VERBOSE_MAKEFILE=1 -DMINIMAL_FLAGS=1"
|
||||
hostmakedepends="lua51 pkg-config fpc qt-qmake"
|
||||
makedepends="qt-devel SDL_net-devel SDL_mixer-devel SDL_image-devel SDL_ttf-devel lua51-devel physfs-devel libpng-devel ffmpeg-devel libfreeglut-devel"
|
||||
depends="dejavu-fonts-ttf hedgewars-data libfreeglut"
|
||||
makedepends="qt-devel SDL_net-devel SDL_mixer-devel SDL_image-devel SDL_ttf-devel
|
||||
lua51-devel physfs-devel libpng-devel ffmpeg-devel libfreeglut-devel"
|
||||
depends="hedgewars-data>=${version}_${revision} libfreeglut"
|
||||
short_desc="Funny turn-based artillery game, featuring fighting Hedgehogs!"
|
||||
maintainer="Jakub Skrzypnik <jot.skrzyp@gmail.com>"
|
||||
license="GPL-2"
|
||||
|
|
Loading…
Reference in a new issue