Bug#638566: Needs to be adapted for libav/0.7.1
The patch.
diff -aur avifile-0.7.48~20090503.ds.orig/lib/aviread/FFReadHandler.cpp avifile-0.7.48~20090503.ds/lib/aviread/FFReadHandler.cpp
--- avifile-0.7.48~20090503.ds.orig/lib/aviread/FFReadHandler.cpp 2009-05-01 20:56:45.000000000 +0200
+++ avifile-0.7.48~20090503.ds/lib/aviread/FFReadHandler.cpp 2011-08-20 12:07:23.000000000 +0200
@@ -122,8 +122,8 @@
uint_t cnt = 0;
switch (type)
{
- case IStream::Audio: t = CODEC_TYPE_AUDIO; break;
- case IStream::Video: t = CODEC_TYPE_VIDEO; break;
+ case IStream::Audio: t = AVMEDIA_TYPE_AUDIO; break;
+ case IStream::Video: t = AVMEDIA_TYPE_VIDEO; break;
default: return 0;
}
@@ -147,8 +147,8 @@
switch (type)
{
- case IStream::Audio: t = CODEC_TYPE_AUDIO; break;
- case IStream::Video: t = CODEC_TYPE_VIDEO; break;
+ case IStream::Audio: t = AVMEDIA_TYPE_AUDIO; break;
+ case IStream::Video: t = AVMEDIA_TYPE_VIDEO; break;
default: return 0;
}
@@ -228,7 +228,7 @@
p->SetPos(s.m_uiPosition);
p->SetTimestamp(((pkt.pts != (int64_t)AV_NOPTS_VALUE) ? pkt.pts : pkt.dts)
* AV_TIME_BASE * ast.time_base.num / ast.time_base.den - s.GetStartTime());
- if (pkt.flags & PKT_FLAG_KEY)
+ if (pkt.flags & AV_PKT_FLAG_KEY)
p->SetFlags(p->GetFlags() | KEYFRAME);
if (p->GetTimestamp() < 0)
@@ -237,16 +237,16 @@
//AVM_WRITE("FF reader", "st:%d n/d:%d/%d ts:%" PRId64 " d:%" PRId64 " dur:%d p:%" PRId64 "\n",
// pkt.stream_index, ast.time_base.num, ast.time_base.den,
// p->timestamp, pkt.dts, pkt.duration, pkt.pts);
- //if (ast->codec.codec_type == CODEC_TYPE_VIDEO) printf("FRATE %d pts:%lld %d %d t:%lld\n", p->position, pkt.pts,ast->codec.frame_rate_base, ast->codec.frame_rate, p->timestamp);
+ //if (ast->codec.codec_type == AVMEDIA_TYPE_VIDEO) printf("FRATE %d pts:%lld %d %d t:%lld\n", p->position, pkt.pts,ast->codec.frame_rate_base, ast->codec.frame_rate, p->timestamp);
//else printf("Bitrate %d\n", ast->codec.bit_rate);
//printf("TIMESTAMP %" PRId64 " pts: %" PRId64 " dts: %" PRId64 "\n", p->timestamp, pkt.pts, pkt.dts);
switch (ast.codec->codec_type)
{
- case CODEC_TYPE_AUDIO:
+ case AVMEDIA_TYPE_AUDIO:
s.m_uiPosition += pkt.size;
break;
- case CODEC_TYPE_VIDEO:
+ case AVMEDIA_TYPE_VIDEO:
default:
s.m_uiPosition++;
break;
diff -aur avifile-0.7.48~20090503.ds.orig/lib/aviread/FFReadStream.cpp avifile-0.7.48~20090503.ds/lib/aviread/FFReadStream.cpp
--- avifile-0.7.48~20090503.ds.orig/lib/aviread/FFReadStream.cpp 2009-05-03 10:56:34.000000000 +0200
+++ avifile-0.7.48~20090503.ds/lib/aviread/FFReadStream.cpp 2011-08-20 12:07:23.000000000 +0200
@@ -70,7 +70,7 @@
if (codec && avcodec_open(m_pAvContext, codec) == 0)
{
m_pAvContext->flags |= CODEC_FLAG_TRUNCATED;
- m_pAvContext->hurry_up = 5;
+ m_pAvContext->skip_frame = AVDISCARD_NONKEY;
//printf("Opened hurryup decoder %p %p\n", codec, m_pAvContext->codec->decode);
}
else
@@ -157,7 +157,7 @@
switch (avs->codec->codec_type)
{
- case CODEC_TYPE_AUDIO:
+ case AVMEDIA_TYPE_AUDIO:
m_StreamInfo.m_p->setAudio(avs->codec->channels,
avs->codec->sample_rate,
avs->codec->frame_bits);
@@ -166,7 +166,7 @@
AVM_WRITE("FF stream", "Audio Format: %.4s (0x%x)\n",
(const char*)&avs->codec->codec_tag, avs->codec->codec_tag);
break;
- case CODEC_TYPE_VIDEO:
+ case AVMEDIA_TYPE_VIDEO:
m_StreamInfo.m_p->setVideo(avs->codec->width, avs->codec->height,
0, (float)avs->codec->sample_aspect_ratio.num /
(float)avs->codec->sample_aspect_ratio.den);
@@ -205,8 +205,8 @@
{
switch (m_pHandler->m_pContext->streams[m_uiSId]->codec->codec_type)
{
- case CODEC_TYPE_AUDIO: return IStream::Audio;
- case CODEC_TYPE_VIDEO: return IStream::Video;
+ case AVMEDIA_TYPE_AUDIO: return IStream::Audio;
+ case AVMEDIA_TYPE_VIDEO: return IStream::Video;
default: return IStream::Other;
}
}
@@ -218,7 +218,7 @@
int tag = get_fcc(avs->codec->codec_id);
switch (avs->codec->codec_type)
{
- case CODEC_TYPE_AUDIO:
+ case AVMEDIA_TYPE_AUDIO:
if (format && size >= sizeof(WAVEFORMATEX))
{
WAVEFORMATEX& wfx = *(WAVEFORMATEX*)format;
@@ -264,7 +264,7 @@
}
return (tag ? sizeof(WAVEFORMATEX) : sizeof(FFMPEGWAVEFORMATEX))
+ ((avs->codec->extradata) ? avs->codec->extradata_size : 0);
- case CODEC_TYPE_VIDEO:
+ case AVMEDIA_TYPE_VIDEO:
if (format && size >= sizeof(BITMAPINFOHEADER))
{
memset(format, 0, sizeof(BITMAPINFOHEADER));
@@ -354,7 +354,7 @@
return m_pHandler->seek(time);
if (time < 1.)
{
- if (m_pAvStream->codec->codec_type == CODEC_TYPE_AUDIO)
+ if (m_pAvStream->codec->codec_type == AVMEDIA_TYPE_AUDIO)
// check if more streams are available
// and seek only with the video
return 0;
Reply to: