[packages/avifile] - one more fix in gcc4 patch - added types patch (fix for undefined type) - added ffmpeg patch (fixe

qboosh qboosh at pld-linux.org
Sat Jul 20 07:34:22 CEST 2013


commit 6d110796c7b2dd985b2faf72cc926f1a935b53b5
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Jul 20 07:34:28 2013 +0200

    - one more fix in gcc4 patch
    - added types patch (fix for undefined type)
    - added ffmpeg patch (fixes build with ffmpeg 2.0)
    - added v4l patch (allow to disable V4L1-specific utilities)
    - release 18

 avifile-ffmpeg.patch | 376 +++++++++++++++++++++++++++++++++++++++++++++++++++
 avifile-gcc4.patch   |  11 ++
 avifile-types.patch  |  11 ++
 avifile-v4l.patch    |  36 +++++
 avifile.spec         | 114 +++++++++-------
 5 files changed, 500 insertions(+), 48 deletions(-)
---
diff --git a/avifile.spec b/avifile.spec
index 345b589..d58aa61 100644
--- a/avifile.spec
+++ b/avifile.spec
@@ -4,13 +4,14 @@
 %bcond_with	divx	# enables divx4linux support (proprietary, binary-only
 			# lib)  note: if disabled, divx is decoded by ffmpeg
 %bcond_with	nas	# enable NAS support
+%bcond_with	v4l1	# Video4Linux 1
 #
 Summary:	Library for playing AVI files
 Summary(pl.UTF-8):	Biblioteka do odtwarzania plików AVI
 Summary(pt_BR.UTF-8):	Biblioteca para reproduzir formatos de áudio e vídeo usando binários win32
 Name:		avifile
 Version:	0.7.45
-Release:	17
+Release:	18
 Epoch:		3
 License:	GPL
 Group:		X11/Libraries
@@ -38,6 +39,9 @@ Patch17:	%{name}-xf86dga.patch
 Patch18:	%{name}-new_ffmpeg.patch
 Patch19:	%{name}-fix-no-bits_per_sample.patch
 Patch20:	%{name}-gcc44.patch
+Patch21:	%{name}-types.patch
+Patch22:	%{name}-ffmpeg.patch
+Patch23:	%{name}-v4l.patch
 URL:		http://avifile.sourceforge.net/
 BuildRequires:	SDL-devel >= 1.2.0
 BuildRequires:	a52dec-libs-devel
@@ -341,7 +345,7 @@ Sterownik VIDIX dla kart graficznych ATI Rage128.
 
 %prep
 %setup -q -n %{name}-0.7-%{version}
-rm -rf ffmpeg m4/ffmpeg.m4
+%{__rm} -r ffmpeg m4/ffmpeg.m4
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
@@ -363,9 +367,12 @@ rm -rf ffmpeg m4/ffmpeg.m4
 %patch18 -p1
 %patch19 -p1
 %patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
 
 # unwanted hack
-rm -f m4/as.m4
+%{__rm} m4/as.m4
 # original file contains only m4/*.m4; must exist because of AC_INIT parameter
 > acinclude.m4
 
@@ -386,6 +393,8 @@ rm -f m4/as.m4
 	--disable-lame \
 	--enable-libmad \
 	--enable-release \
+	%{!?with_qt:--disable-samples} \
+	%{!?with_v4l1:--disable-v4l} \
 %ifarch %{ix86}
 %ifnarch i386 i486
 	--enable-x86opt \
@@ -393,8 +402,7 @@ rm -f m4/as.m4
 %else
 	--disable-x86opt \
 %endif
-	%{!?with_qt:--without-qt} \
-	%{!?with_qt:--disable-samples}
+	%{!?with_qt:--without-qt}
 
 touch lib/dummy.cpp
 %{__make}
@@ -407,18 +415,20 @@ install -d $RPM_BUILD_ROOT{/usr/lib/win32,%{_pixmapsdir},%{_desktopdir}}
 	DESTDIR=$RPM_BUILD_ROOT \
 	m4datadir=%{_aclocaldir}
 
+%if %{with v4l1}
 # conflicts with ???
 mv -f $RPM_BUILD_ROOT%{_bindir}/kv4lsetup $RPM_BUILD_ROOT%{_bindir}/akv4lsetup
 mv -f $RPM_BUILD_ROOT%{_mandir}/man1/kv4lsetup.1 $RPM_BUILD_ROOT%{_mandir}/man1/akv4lsetup.1
 %{__perl} -pi -e 's/(kv4l|k4vl)/akv4l/g' $RPM_BUILD_ROOT%{_mandir}/man1/akv4lsetup.1
+%endif
 
 install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
 install bin/test.png $RPM_BUILD_ROOT%{_pixmapsdir}/avifile.png
 
 # avifile dlopens *.so
-rm -f $RPM_BUILD_ROOT%{_libdir}/avifile*/{,vidix/}*.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/avifile*/{,vidix/}*.la
 # API not exported
-rm -f $RPM_BUILD_ROOT%{_libdir}/libqavm*.{so,la}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libqavm*.{so,la}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -431,123 +441,131 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc README doc/{CREDITS,EXCEPTIONS,KNOWN_BUGS,LICENSING}
-%doc doc/{README-DEVEL,TODO,VIDEO-PERFORMANCE,WARNINGS}
-%attr(755,root,root)%{_libdir}/libaviplay-*.so.*.*
-%attr(755,root,root)%{_libdir}/libaviplaydha-*.so.*.*
-%attr(755,root,root)%{_libdir}/libaviplayvidix-*.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libaviplay-*.so.0
-%attr(755,root,root) %ghost %{_libdir}/libaviplaydha-*.so.0
-%attr(755,root,root) %ghost %{_libdir}/libaviplayvidix-*.so.0
-%dir %{_libdir}/avifile*
-%attr(755,root,root) %{_libdir}/avifile*/ac3pass.so*
-%attr(755,root,root) %{_libdir}/avifile*/audiodec.so*
-%attr(755,root,root) %{_libdir}/avifile*/mpeg_audiodec.so*
-%attr(755,root,root) %{_libdir}/avifile*/osmjpeg.so*
+%doc README doc/{CREDITS,EXCEPTIONS,KNOWN_BUGS,LICENSING,TODO,VIDEO-PERFORMANCE,WARNINGS}
+%attr(755,root,root)%{_libdir}/libaviplay-0.7.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libaviplay-0.7.so.0
+%attr(755,root,root)%{_libdir}/libaviplaydha-0.7.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libaviplaydha-0.7.so.0
+%attr(755,root,root)%{_libdir}/libaviplayvidix-0.7.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libaviplayvidix-0.7.so.0
+%dir %{_libdir}/avifile-0.7
+%attr(755,root,root) %{_libdir}/avifile-0.7/ac3pass.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/audiodec.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/mpeg_audiodec.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/osmjpeg.so
 %ifarch %{ix86}
-%dir %{_libdir}/avifile*/vidix
+%dir %{_libdir}/avifile-0.7/vidix
 %endif
 
 %files devel
 %defattr(644,root,root,755)
-%doc doc/README-DEVEL*
+%doc doc/README-DEVEL
 %attr(755,root,root) %{_bindir}/avifile-config
-%attr(755,root,root) %{_libdir}/libaviplay*.so
-%{_libdir}/lib*.la
-%{_includedir}/avifile*
-%{_aclocaldir}/*.m4
+%attr(755,root,root) %{_libdir}/libaviplay.so
+%attr(755,root,root) %{_libdir}/libaviplaydha.so
+%attr(755,root,root) %{_libdir}/libaviplayvidix.so
+%{_libdir}/libaviplay.la
+%{_libdir}/libaviplaydha.la
+%{_libdir}/libaviplayvidix.la
+%{_includedir}/avifile-0.7
+%{_aclocaldir}/avifile.m4
 %{_pkgconfigdir}/avifile.pc
 %{_mandir}/man1/avifile-config.1*
 
 %if %{with qt}
 %files qt
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/avicap
 %attr(755,root,root) %{_bindir}/avirecompress
-%attr(755,root,root) %{_libdir}/libqavm-*.so.*.*
+%attr(755,root,root) %{_libdir}/libqavm-0.7.so.*.*
 %attr(755,root,root) %ghost %{_libdir}/libqavm-*.so.0
-%{_mandir}/man1/avicap.1*
 %{_mandir}/man1/avirecompress.1*
+%if %{with v4l1}
+%attr(755,root,root) %{_bindir}/avicap
+%{_mandir}/man1/avicap.1*
+%endif
 
 %files aviplay
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/aviplay
 %{_mandir}/man1/aviplay.1*
-%{_datadir}/%{name}*
+%{_datadir}/avifile-0.7
 %{_desktopdir}/avifile.desktop
 %{_pixmapsdir}/avifile.png
 %endif
 
 %files utils
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/akv4lsetup
 %attr(755,root,root) %{_bindir}/avibench
 %attr(755,root,root) %{_bindir}/avicat
 %attr(755,root,root) %{_bindir}/avimake
-%attr(755,root,root) %{_bindir}/avirec
 %attr(755,root,root) %{_bindir}/avitype
-%{_mandir}/man1/akv4lsetup.1*
 %{_mandir}/man1/avibench.1*
 %{_mandir}/man1/avicat.1*
 %{_mandir}/man1/avimake.1*
-%{_mandir}/man1/avirec.1*
 %{_mandir}/man1/avitype.1*
+%if %{with v4l1}
+%attr(755,root,root) %{_bindir}/akv4lsetup
+%attr(755,root,root) %{_bindir}/avirec
+%{_mandir}/man1/akv4lsetup.1*
+%{_mandir}/man1/avirec.1*
+%endif
 
 %if %{with divx}
 %files divx
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/divx4.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/divx4.so
 %endif
 
 %files ffmpeg
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/ffmpeg.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/ffmpeg.so
 
 %files lame_audioenc
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/mp3lamebin_audioenc.so
-#%attr(755,root,root) %{_libdir}/avifile*/mp3lame_audioenc.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/mp3lamebin_audioenc.so
+#%attr(755,root,root) %{_libdir}/avifile-0.7/mp3lame_audioenc.so
 
 %files mad
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/mad_audiodec.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/mad_audiodec.so
 
 %files vorbis
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/vorbis_audio.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vorbis_audio.so
 
 %ifarch %{ix86}
 %files win32
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/win32.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/win32.so
 %endif
 
 %files xvid
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/xvid4.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/xvid4.so
 
 %ifarch %{ix86}
 %files vidix-driver-fb
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/vidix/libgenfb.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vidix/libgenfb.so
 
 %files vidix-driver-mach64
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/vidix/libmach64.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vidix/libmach64.so
 
 %files vidix-driver-mga
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/vidix/libmga*.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vidix/libmga.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vidix/libmga_crtc2.so
 
 %files vidix-driver-permedia
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/vidix/libpm3.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vidix/libpm3.so
 
 %files vidix-driver-radeon
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/vidix/libradeon.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vidix/libradeon.so
 
 %files vidix-driver-rage128
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/avifile*/vidix/librage128.so
+%attr(755,root,root) %{_libdir}/avifile-0.7/vidix/librage128.so
 %endif
diff --git a/avifile-ffmpeg.patch b/avifile-ffmpeg.patch
new file mode 100644
index 0000000..b02883a
--- /dev/null
+++ b/avifile-ffmpeg.patch
@@ -0,0 +1,376 @@
+--- avifile-0.7-0.7.45/lib/aviread/FFReadHandler.cpp.orig	2013-07-16 16:48:12.312338353 +0200
++++ avifile-0.7-0.7.45/lib/aviread/FFReadHandler.cpp	2013-07-19 17:06:37.738081034 +0200
+@@ -46,14 +46,12 @@
+ 
+ int FFReadHandler::Init(const char* url)
+ {
+-    AVFormatParameters avfp;
+     AVInputFormat* fmt = 0;
+     // av_find_input_format(url);
+     // printf("find input format  %p   %s\n", fmt, url);
+-    memset(&avfp, 0, sizeof(avfp));
+     //if (!fmt)  return -1;
+-    int r = av_open_input_file(&m_pContext, url,
+-			       fmt, 64000, &avfp);
++    int r = avformat_open_input(&m_pContext, url,
++			       fmt, NULL);
+     if (r < 0)
+     {
+ 	AVM_WRITE("FF reader", "OPEN INPUT failed\n");
+@@ -100,8 +98,8 @@
+     uint_t j = 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;
+     }
+ 
+@@ -125,8 +123,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;
+     }
+ 
+@@ -152,7 +150,7 @@
+ int FFReadHandler::seek(framepos_t pos)
+ {
+     Locker locker(m_Mutex);
+-    url_fseek(m_pContext->pb, 0, SEEK_SET);
++    avio_seek(m_pContext->pb, 0, SEEK_SET);
+     flush();
+     //av_find_stream_info(m_pContext);
+     return 0;
+@@ -177,8 +175,8 @@
+ 	AVFrame pic;
+ 	int got_pic = 0;
+ 	memset(&pic, 0, sizeof(pic));
+-	int r = avcodec_decode_video(s->m_pAvContext,
+-				     &pic, &got_pic, pkt.data, pkt.size);
++	int r = avcodec_decode_video2(s->m_pAvContext,
++				     &pic, &got_pic, &pkt);
+ 	AVM_WRITE("FF reader", "____  %d   %d\n", r, got_pic);
+     }
+     //printf("FFMPEG pktsize: %u %llu   %d\n", pkt.size, pkt.pts, pkt.stream_index);fflush(stdout);
+@@ -203,19 +201,19 @@
+ 	    / st->codec.frame_rate;
+     }
+ #endif
+-    //if (st->codec.codec_type == CODEC_TYPE_VIDEO) printf("FRATE %d pts:%lld %d  %d  t:%lld\n", p->position, pkt.pts,st->codec.frame_rate_base, st->codec.frame_rate, p->timestamp);
++    //if (st->codec.codec_type == AVMEDIA_TYPE_VIDEO) printf("FRATE %d pts:%lld %d  %d  t:%lld\n", p->position, pkt.pts,st->codec.frame_rate_base, st->codec.frame_rate, p->timestamp);
+     //else printf("Bitrate  %d\n", st->codec.bit_rate);
+     //printf("TIMESTAMP %lld    %d %d   bitrate:%d\n", p->timestamp, s->m_pAvStream->r_frame_rate_base, s->m_pAvStream->r_frame_rate, st->codec.bit_rate);
+ 
+     switch (st->codec->codec_type)
+     {
+-    case CODEC_TYPE_AUDIO:
++    case AVMEDIA_TYPE_AUDIO:
+ 	if (!pkt.pts && st->codec->bit_rate)
+ 	    p->timestamp = (int64_t)p->position * 8 * 1000000 /
+ 		st->codec->bit_rate;
+ 	s->m_uiPosition += pkt.size;
+ 	break;
+-    case CODEC_TYPE_VIDEO:
++    case AVMEDIA_TYPE_VIDEO:
+     default:
+ 	s->m_uiPosition++;
+ 	break;
+@@ -227,7 +225,7 @@
+ 	   pkt.stream_index, m_Streams[pkt.stream_index]->m_Packets.size(),
+ 	   pkt.pts, pkt.size, p->timestamp, pkt.flags);
+ #endif
+-    if (pkt.flags & PKT_FLAG_KEY)
++    if (pkt.flags & AV_PKT_FLAG_KEY)
+ 	p->flags |= KEYFRAME;
+     av_free_packet(&pkt);
+ 
+--- avifile-0.7-0.7.45/lib/aviread/FFReadStream.cpp.orig	2013-07-19 17:08:37.194742686 +0200
++++ avifile-0.7-0.7.45/lib/aviread/FFReadStream.cpp	2013-07-19 17:45:26.764649961 +0200
+@@ -18,7 +18,7 @@
+ AVM_BEGIN_NAMESPACE;
+ 
+ static const struct id2fcc {
+-    enum CodecID id;
++    enum AVCodecID id;
+     uint32_t fcc;
+ } id2fcct[] = {
+     { CODEC_ID_MPEG1VIDEO, RIFFINFO_MPG1 },
+@@ -32,7 +32,7 @@
+     { CODEC_ID_NONE }
+ };
+ 
+-static int get_fcc(enum CodecID id)
++static int get_fcc(enum AVCodecID id)
+ {
+     for (const struct id2fcc* p = id2fcct; p->id; p++)
+ 	if (p->id == id)
+@@ -53,15 +53,15 @@
+     //printf("CODECRA %d  %d   %d\n", avs->codec.frame_rate, avs->codec->frame_rate_base, m_pAvStream->r_frame_rate_base);
+     if (0 && avs->codec->codec_id == CODEC_ID_MPEG1VIDEO)
+     {
+-	m_pAvContext = avcodec_alloc_context();
++	m_pAvContext = avcodec_alloc_context3(NULL);
+ 	//AVCodec* codec = avcodec_find_encoder(avs->codec->codec_id);
+ 	if (m_pAvContext)
+ 	{
+ 	    AVCodec* codec = avcodec_find_decoder(avs->codec->codec_id);
+-	    if (codec && avcodec_open(m_pAvContext, codec) == 0)
++	    if (codec && avcodec_open2(m_pAvContext, codec, NULL) == 0)
+ 	    {
+ 		m_pAvContext->flags |= CODEC_FLAG_TRUNCATED;
+-		m_pAvContext->hurry_up = 5;
++		m_pAvContext->skip_idct = m_pAvContext->skip_frame = AVDISCARD_ALL;
+ 		//printf("Opened hurryup decoder %p  %p\n", codec, m_pAvContext->codec->decode);
+ 	    }
+ 	    else
+@@ -148,7 +148,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);
+@@ -157,7 +157,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, avs->codec->sample_aspect_ratio.num /
+ 				       (float) avs->codec->sample_aspect_ratio.den);
+@@ -191,8 +191,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;
+     }
+ }
+@@ -202,7 +202,7 @@
+     AVStream* avs = m_pHandler->m_pContext->streams[m_uiSId];
+     switch (avs->codec->codec_type)
+     {
+-    case CODEC_TYPE_AUDIO:
++    case AVMEDIA_TYPE_AUDIO:
+ 	if (pFormat && lSize >= sizeof(WAVEFORMATEX))
+ 	{
+ 	    WAVEFORMATEX* wf = (WAVEFORMATEX*) pFormat;
+@@ -228,7 +228,7 @@
+ 	//printf("EEEEEEEEEEE %d\n", avs->codec->extradata_size);
+ 	return sizeof(WAVEFORMATEX)
+ 	    + ((avs->codec->extradata) ? avs->codec->extradata_size : 0);
+-    case CODEC_TYPE_VIDEO:
++    case AVMEDIA_TYPE_VIDEO:
+ 	if (pFormat && lSize >= sizeof(BITMAPINFOHEADER))
+ 	{
+ 	    BITMAPINFOHEADER* bh = (BITMAPINFOHEADER*) pFormat;
+@@ -312,7 +312,7 @@
+ {
+     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;
+--- avifile-0.7-0.7.45/lib/codeckeeper.cpp.orig	2013-07-19 17:48:46.567974909 +0200
++++ avifile-0.7-0.7.45/lib/codeckeeper.cpp	2013-07-19 17:53:49.324628870 +0200
+@@ -295,7 +295,6 @@
+     audio_codecs.clear();
+ 
+     // FFMPEG initialization
+-    avcodec_init();
+     avcodec_register_all();
+ 
+     uncompressed_FillPlugins(video_codecs);
+--- avifile-0.7-0.7.45/plugins/libffmpeg/libffmpeg.cpp.orig	2006-03-05 21:44:59.000000000 +0100
++++ avifile-0.7-0.7.45/plugins/libffmpeg/libffmpeg.cpp	2013-07-19 18:00:25.221278922 +0200
+@@ -137,7 +137,6 @@
+     static int is_init = 0;
+     if (!is_init)
+     {
+-	avcodec_init();
+ 	avcodec_register_all();
+ 	is_init++;
+     }
+--- avifile-0.7-0.7.45/plugins/libffmpeg/FFAudioDecoder.cpp.orig	2013-07-19 18:01:05.454610568 +0200
++++ avifile-0.7-0.7.45/plugins/libffmpeg/FFAudioDecoder.cpp	2013-07-19 18:15:09.351241818 +0200
+@@ -25,7 +25,7 @@
+ {
+     if (!m_pAvContext)
+     {
+-	m_pAvContext = avcodec_alloc_context();
++	m_pAvContext = avcodec_alloc_context3(NULL);
+ 	m_pAvContext->channels = m_pFormat->nChannels;
+ 	if (m_pAvContext->channels > 2)
+ 	    m_pAvContext->channels = 2;
+@@ -33,7 +33,7 @@
+ 	m_pAvContext->sample_rate = m_pFormat->nSamplesPerSec;
+ 	m_pAvContext->block_align = m_pFormat->nBlockAlign;
+ 	m_pAvContext->codec_tag = m_Info.fourcc;
+-	m_pAvContext->codec_id = (CodecID) m_pAvCodec->id;
++	m_pAvContext->codec_id = (AVCodecID) m_pAvCodec->id;
+ 
+ 	if (m_pFormat->cbSize > 0)
+ 	{
+@@ -41,7 +41,7 @@
+ 	    m_pAvContext->extradata_size = m_pFormat->cbSize;
+ 	}
+ 
+-	if (avcodec_open(m_pAvContext, m_pAvCodec) < 0)
++	if (avcodec_open2(m_pAvContext, m_pAvCodec, NULL) < 0)
+ 	{
+ 	    AVM_WRITE("FFAudioDecoder", "WARNING: can't open avcodec\n");
+ 	    free(m_pAvContext);
+@@ -50,8 +50,12 @@
+ 	}
+     }
+     int framesz = 0;
+-    int hr = avcodec_decode_audio2(m_pAvContext, (int16_t*)out_data, &framesz,
+-				  (uint8_t*)in_data, in_size);
++    AVPacket avpkt;
++    av_init_packet(&avpkt);
++    avpkt.data = (uint8_t*)in_data;
++    avpkt.size = in_size;
++    int hr = avcodec_decode_audio3(m_pAvContext, (int16_t*)out_data, &framesz,
++				  &avpkt);
+     //printf("CONVERT  i:%d  o:%d  f:%d   h:%d\n", in_size, out_size, framesz, hr);
+     if (size_read)
+ 	*size_read = (hr < 0) ? in_size : hr;
+--- avifile-0.7-0.7.45/plugins/libffmpeg/FFVideoDecoder.cpp.orig	2013-07-19 18:15:45.704573627 +0200
++++ avifile-0.7-0.7.45/plugins/libffmpeg/FFVideoDecoder.cpp	2013-07-19 20:13:57.874275997 +0200
+@@ -101,36 +101,29 @@
+     pic->pts = pImage->m_lTimestamp;
+     pic->type = FF_BUFFER_TYPE_USER;
+     pImage->m_iType = pic->pict_type;
+-    //pic->age = pic->coded_picture_number - pImage->m_iAge;
+-    //pImage->m_iAge = (pic->pict_type == FF_B_TYPE) ?
++    //pImage->m_iAge = (pic->pict_type == AV_PICTURE_TYPE_B) ?
+     //pImage->m_iAge = (pic->reference) ?
+     //    -256*256*256*64 : pic->coded_picture_number;
+ 
+     d->m_iAgeIP[0]++;
+-    pic->age = d->m_iAgeIP[0] - pImage->m_iAge;
+-    pImage->m_iAge = (pic->pict_type == FF_B_TYPE) ?
++    pImage->m_iAge = (pic->pict_type == AV_PICTURE_TYPE_B) ?
+ 	256*256*256*64 : d->m_iAgeIP[0];
+-    if (pic->age < 1)
+-	pic->age = 256*256*256*64;
+ 
+ #if 0
+     // mplayer code
+     if (pic->reference)
+     {
+-        pic->age = d->m_iAgeIP[0];
+ 	d->m_iAgeIP[0] = d->m_iAgeIP[1] + 1;
+         d->m_iAgeIP[1] = 1;
+         d->m_iAgeB++;
+     }
+     else
+     {
+-	pic->age = d->m_iAgeB;
+         d->m_iAgeIP[0]++;
+         d->m_iAgeIP[1]++;
+         d->m_iAgeB = 1;
+     }
+ #endif
+-    //printf("Age %d  %d   cp:%d   %p\n", pic->age, pImage->m_iAge, pic->coded_picture_number, pImage);
+     //printf("PictType %d   %d\n", pic->pict_type, pic->reference);
+     //printf("%p %p %p  %d  %d\n", avctx->dr_buffer[0], avctx->dr_buffer[1], avctx->dr_buffer[2], avctx->dr_stride, avctx->dr_uvstride);
+     return 0;
+@@ -172,7 +165,7 @@
+     //printf("FFMPEG space  \n"); m_Dest.Print(); pImage->GetFmt()->Print();
+     if (!m_pAvContext)
+     {
+-	m_pAvContext = avcodec_alloc_context();
++	m_pAvContext = avcodec_alloc_context3(NULL);
+         // for autodetection errors
+ 	m_pAvContext->codec_tag = m_pFormat->biCompression;
+ 	m_pAvContext->bits_per_coded_sample = m_pFormat->biBitCount;
+@@ -198,8 +191,6 @@
+ 	{
+             m_pAvContext->extradata_size = m_pFormat->biSize - sizeof(BITMAPINFOHEADER);
+ 	    m_pAvContext->extradata = (uint8_t*) m_pFormat + sizeof(BITMAPINFOHEADER);
+-	    if (m_pAvContext->extradata_size > 40)
+-		m_pAvContext->flags |= CODEC_FLAG_EXTERN_HUFF; // somewhat useless
+ 	}
+ 
+ 	m_uiBuffers = (pImage && pImage->GetAllocator()) ? pImage->GetAllocator()->GetImages() : 0;
+@@ -297,7 +288,7 @@
+ 		m_pAvContext->workaround_bugs |= p->flag;
+ 	}
+ */
+-	if (avcodec_open(m_pAvContext, m_pAvCodec) < 0)
++	if (avcodec_open2(m_pAvContext, m_pAvCodec, NULL) < 0)
+ 	{
+ 	    AVM_WRITE(m_Info.GetPrivateName(), "WARNING: FFVideoDecoder::DecodeFrame() can't open avcodec\n");
+             Stop();
+@@ -317,9 +308,13 @@
+     m_bUsed = false;
+     m_pReleased = 0;
+     AVFrame pic;
++    AVPacket avpkt;
+     int got_picture = 0;
+-    int hr = avcodec_decode_video(m_pAvContext, &pic, &got_picture,
+-				  (unsigned char*) src, size);
++    av_init_packet(&avpkt);
++    avpkt.data = (unsigned char*)src;
++    avpkt.size = size;
++    int hr = avcodec_decode_video2(m_pAvContext, &pic, &got_picture,
++				  &avpkt);
+     //printf("DECFF got_picture  %d  %p   del:%d  hr:%d size:%d\n", got_picture, src, m_pAvContext->delay, hr, size);
+     //printf("PictType  %d\n", m_pAvContext->pict_type);
+     //static int ctr=0; printf("WIDTH %dx%d  %d  r:%d\n", m_pAvContext->width, m_pAvContext->height, ctr++, m_pAvContext->pict_type);
+@@ -365,7 +360,7 @@
+     }
+ 
+     Debug printf("FF: r=0x%x  sz=%d  %d  b:%d  img:%p  out:%p\n", hr, size, got_picture, m_bUsed, pImage, pOut);
+-    Debug printf("FF: frame_size %d  number %d  picnum %d\n", m_pAvContext->frame_size, m_pAvContext->frame_number, m_pAvContext->real_pict_num);
++    Debug printf("FF: frame_size %d  number %d\n", m_pAvContext->frame_size, m_pAvContext->frame_number);
+     if (!got_picture)
+     {
+ 	Debug printf("FF: NO PICTURE  released=%p\n", m_pReleased);
+@@ -388,8 +383,8 @@
+ 	switch (m_pAvContext->pix_fmt)
+ 	{
+ 	case PIX_FMT_BGR24: imfmt = IMG_FMT_BGR24; break;
+-	case PIX_FMT_RGBA32: imfmt = IMG_FMT_BGR32; break;
+-	case PIX_FMT_YUV422: imfmt = IMG_FMT_YUY2; break;
++	case PIX_FMT_RGB32: imfmt = IMG_FMT_BGR32; break;
++	case PIX_FMT_YUYV422: imfmt = IMG_FMT_YUY2; break;
+ 	case PIX_FMT_YUV410P: imfmt = IMG_FMT_I410; break;
+ 	case PIX_FMT_YUV411P: imfmt = IMG_FMT_I411; break;
+ 	case PIX_FMT_YUV420P: imfmt = IMG_FMT_I420; break;
+--- avifile-0.7-0.7.45/plugins/libffmpeg/FFVideoEncoder.cpp.orig	2005-09-12 14:06:48.000000000 +0200
++++ avifile-0.7-0.7.45/plugins/libffmpeg/FFVideoEncoder.cpp	2013-07-19 20:15:08.434273035 +0200
+@@ -122,7 +122,7 @@
+ 
+     if (!m_pAvContext)
+     {
+-	m_pAvContext = avcodec_alloc_context();
++	m_pAvContext = avcodec_alloc_context3(NULL);
+         m_pAvContext->width = m_bh.biWidth;
+ 	m_pAvContext->height = m_obh.biHeight;
+ 	//m_pAvContext->pix_fmt = PIX_FMT_YUV420P;
+@@ -138,7 +138,7 @@
+ 
+         printf("CODEC opening  %dx%d\n", m_bh.biWidth, m_obh.biHeight);
+ 
+-	if (avcodec_open(m_pAvContext, m_pAvCodec) < 0)
++	if (avcodec_open2(m_pAvContext, m_pAvCodec, NULL) < 0)
+ 	{
+ 	    free(m_pAvContext);
+ 	    m_pAvContext = 0;
diff --git a/avifile-gcc4.patch b/avifile-gcc4.patch
index b98f1fb..a955503 100644
--- a/avifile-gcc4.patch
+++ b/avifile-gcc4.patch
@@ -9,3 +9,14 @@
  	binary_tree_node<Key1, Value1>* left;
  	Key1 minval;
  	binary_tree_node<Key1, Value1>* right;
+--- avifile-0.7-0.7.45/lib/aviread/AsfNetworkInputStream.cpp.orig	2004-10-25 12:15:38.000000000 +0200
++++ avifile-0.7-0.7.45/lib/aviread/AsfNetworkInputStream.cpp	2013-07-16 16:37:29.072365344 +0200
+@@ -937,7 +937,7 @@
+ 	}
+ 
+ 	asf_packet* p;
+-	unsigned short& size = chhdr.size;
++	unsigned short size = chhdr.size;
+ 	//printf("STREAMPACKET 0x%x  sz:%d  %lld   seq:%d part:%d  sc:%d\n", chhdr.kind, size, rsize, chhdr.seq, chhdr.partflag, chhdr.size_confirm);
+ 	switch (chhdr.kind)
+ 	{
diff --git a/avifile-types.patch b/avifile-types.patch
new file mode 100644
index 0000000..2aa72c1
--- /dev/null
+++ b/avifile-types.patch
@@ -0,0 +1,11 @@
+--- avifile-0.7-0.7.45/drivers/libdha/irq.c.orig	2003-02-12 17:11:45.000000000 +0100
++++ avifile-0.7-0.7.45/drivers/libdha/irq.c	2013-07-16 16:19:48.385743192 +0200
+@@ -14,7 +14,7 @@
+ static int hwirq_locks=0;
+ 
+ int	hwirq_install(int bus, int dev, int func,
+-		      int ar, u_long ao, uint32_t ad)
++		      int ar, unsigned long ao, uint32_t ad)
+ {
+   int retval;
+   if( libdha_fd == -1) libdha_fd = open("/dev/dhahelper",O_RDWR);
diff --git a/avifile-v4l.patch b/avifile-v4l.patch
new file mode 100644
index 0000000..9cb9a22
--- /dev/null
+++ b/avifile-v4l.patch
@@ -0,0 +1,36 @@
+--- avifile-0.7-0.7.45/samples/Makefile.am.orig	2002-11-14 19:51:00.000000000 +0100
++++ avifile-0.7-0.7.45/samples/Makefile.am	2013-07-20 07:00:41.605980891 +0200
+@@ -1,2 +1,7 @@
+-SUBDIRS = artsplug misc qtvidcap qtrecompress mjpeg_plugin
++if AMM_USE_V4L
++VIDCAP = qtvidcap
++else
++VIDCAP =
++endif
++SUBDIRS = artsplug misc $(VIDCAP) qtrecompress mjpeg_plugin
+ MAINTAINERCLEANFILES = Makefile.in
+--- avifile-0.7-0.7.45/doc/Makefile.am.orig	2003-07-10 14:34:11.000000000 +0200
++++ avifile-0.7-0.7.45/doc/Makefile.am	2013-07-20 07:18:01.199270597 +0200
+@@ -2,15 +2,19 @@
+ 
+ man_MANS = \
+  avibench.1 \
+- avicap.1 \
+  avicat.1 \
+  avifile-config.1 \
+  avimake.1 \
+  aviplay.1 \
+- avirec.1 \
+  avirecompress.1 \
+- avitype.1 \
++ avitype.1
++
++if AMM_USE_V4L
++man_MANS += \
++ avicap.1 \
++ avirec.1 \
+  kv4lsetup.1
++endif
+ 
+ pkgdocdir = $(datadir)/$(PACKAGE)/doc
+ pkgdoc_DATA = FreeBSD CREDITS EXCEPTIONS KNOWN_BUGS TODO \
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/avifile.git/commitdiff/6d110796c7b2dd985b2faf72cc926f1a935b53b5



More information about the pld-cvs-commit mailing list