hedgewars: fix build with ffmpeg>=3.0 (via Debian)

This commit is contained in:
Alessio Sergi 2016-09-22 21:03:45 +02:00
parent dc09f552ec
commit 3726e50ed5
2 changed files with 81 additions and 9 deletions

View 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);
}

View file

@ -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"