diff --git a/media-video/ffmpeg/ffmpeg-0.10.14.recipe b/media-video/ffmpeg/ffmpeg-0.10.14.recipe index bb6e6971e..e8c40a170 100644 --- a/media-video/ffmpeg/ffmpeg-0.10.14.recipe +++ b/media-video/ffmpeg/ffmpeg-0.10.14.recipe @@ -29,6 +29,7 @@ PROVIDES=" lib:libavformat$secondaryArchSuffix = 53.32.100 compat >= 53 lib:libavdevice$secondaryArchSuffix = 53.4.100 compat >= 53 lib:libavfilter$secondaryArchSuffix = 2.61.100 compat >= 2 + lib:libpostproc$secondaryArchSuffix = 52.0.100 compat >= 52 lib:libswscale$secondaryArchSuffix = 2.1.100 compat >= 2 lib:libswresample$secondaryArchSuffix = 0.6.100 compat >= 0 " @@ -106,9 +107,10 @@ BUILD() --enable-libvorbis \ --enable-libspeex \ --enable-libtheora \ - --enable-libvpx + --enable-libvpx \ + --enable-gpl - make $jobArgs CFLAGS="-fno-PIC -std=c99" + make $jobArgs CFLAGS="-fno-PIC -std=gnu9x" } INSTALL() @@ -128,7 +130,8 @@ INSTALL() libavformat \ libavutil \ libswresample \ - libswscale + libswscale \ + libpostproc fixPkgconfig # include the documented ffserver.conf @@ -155,6 +158,7 @@ PROVIDES_devel=" devel:libavfilter$secondaryArchSuffix = 2.61.100 compat >= 2 devel:libavformat$secondaryArchSuffix = 53.32.100 compat >= 53 devel:libavutil$secondaryArchSuffix = 51.35.100 compat >= 51 + devel:libpostproc$secondaryArchSuffix = 52.0.100 compat >= 52 devel:libswresample$secondaryArchSuffix = 0.6.100 compat >= 0 devel:libswscale$secondaryArchSuffix = 2.1.100 compat >= 2 " diff --git a/media-video/ffmpeg/patches/ffmpeg-0.10.14-gcc2.patch b/media-video/ffmpeg/patches/ffmpeg-0.10.14-gcc2.patch index aaf9baf0b..733f38c46 100644 --- a/media-video/ffmpeg/patches/ffmpeg-0.10.14-gcc2.patch +++ b/media-video/ffmpeg/patches/ffmpeg-0.10.14-gcc2.patch @@ -1,18 +1,8 @@ -From d2b98bf18abba445faed19bb2f796f9278f271ed Mon Sep 17 00:00:00 2001 -From: Augustin Cavalier -Date: Mon, 28 Jul 2014 12:01:53 -0400 -Subject: [PATCH] Make FFmpeg 0.10.14 compile on x86_gcc2. +From da55da8c61522776ebb01e3cb6c1f8225c97383b Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 30 Aug 2014 22:50:29 +0200 +Subject: applying patch ffmpeg-0.10.14-gcc2.patch ---- - cmdutils.c | 2 +- - configure | 12 +++--------- - ffmpeg.c | 6 ++++-- - ffprobe.c | 15 ++++++++++----- - libavcodec/aacenc.c | 6 ++++-- - libavcodec/pngenc.c | 5 +++-- - libavutil/pixdesc.c | 16 ---------------- - libswscale/swscale_unscaled.c | 32 ++++++++++++++++++++------------ - 8 files changed, 45 insertions(+), 49 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index 01abc51..ea73b8c 100644 @@ -302,3 +292,180 @@ index d4b39f4..b98d38a 100644 -- 1.8.3.4 + +From 445a786ab5ddf109c669285fa4c68d8ebf3502e9 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Wed, 3 Sep 2014 22:14:36 +0200 +Subject: More gcc2 fixes (for the GPL licenced parts) + + +diff --git a/libavfilter/vsrc_mptestsrc.c b/libavfilter/vsrc_mptestsrc.c +index 96b2a4c..3043204 100644 +--- a/libavfilter/vsrc_mptestsrc.c ++++ b/libavfilter/vsrc_mptestsrc.c +@@ -385,7 +385,6 @@ AVFilter avfilter_vsrc_mptestsrc = { + + .outputs = (const AVFilterPad[]) {{ .name = "default", + .type = AVMEDIA_TYPE_VIDEO, +- .config_props = config_props, + .request_frame = request_frame, + .config_props = config_props, }, + { .name = NULL }}, +diff --git a/libavfilter/x86/yadif_template.c b/libavfilter/x86/yadif_template.c +index 0b60526..cc6f6a8 100644 +--- a/libavfilter/x86/yadif_template.c ++++ b/libavfilter/x86/yadif_template.c +@@ -56,8 +56,8 @@ + #endif + + #define CHECK(pj,mj) \ +- MOVQU" "#pj"(%[cur],%[mrefs]), "MM"2 \n\t" /* cur[x-refs-1+j] */\ +- MOVQU" "#mj"(%[cur],%[prefs]), "MM"3 \n\t" /* cur[x+refs-1-j] */\ ++ MOVQU" "#pj"(%2,%5), "MM"2 \n\t" /* cur[x-refs-1+j] */\ ++ MOVQU" "#mj"(%2,%4), "MM"3 \n\t" /* cur[x+refs-1-j] */\ + MOVQ" "MM"2, "MM"4 \n\t"\ + MOVQ" "MM"2, "MM"5 \n\t"\ + "pxor "MM"3, "MM"4 \n\t"\ +@@ -115,20 +115,20 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + for(x=0; x>1 */\ +- MOVQ" "MM"0, (%[tmpA]) \n\t" /* c */\ +- MOVQ" "MM"3, 16(%[tmpA]) \n\t" /* d */\ +- MOVQ" "MM"1, 32(%[tmpA]) \n\t" /* e */\ ++ MOVQ" "MM"0, (%0) \n\t" /* c */\ ++ MOVQ" "MM"3, 16(%0) \n\t" /* d */\ ++ MOVQ" "MM"1, 32(%0) \n\t" /* e */\ + "psubw "MM"4, "MM"2 \n\t"\ + PABS( MM"4", MM"2") /* temporal_diff0 */\ +- LOAD("(%[prev],%[mrefs])", MM"3") /* prev[x-refs] */\ +- LOAD("(%[prev],%[prefs])", MM"4") /* prev[x+refs] */\ ++ LOAD("(%1,%5)", MM"3") /* prev[x-refs] */\ ++ LOAD("(%1,%4)", MM"4") /* prev[x+refs] */\ + "psubw "MM"0, "MM"3 \n\t"\ + "psubw "MM"1, "MM"4 \n\t"\ + PABS( MM"5", MM"3")\ +@@ -137,8 +137,8 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + "psrlw $1, "MM"2 \n\t"\ + "psrlw $1, "MM"3 \n\t"\ + "pmaxsw "MM"3, "MM"2 \n\t"\ +- LOAD("(%[next],%[mrefs])", MM"3") /* next[x-refs] */\ +- LOAD("(%[next],%[prefs])", MM"4") /* next[x+refs] */\ ++ LOAD("(%3,%5)", MM"3") /* next[x-refs] */\ ++ LOAD("(%3,%4)", MM"4") /* next[x+refs] */\ + "psubw "MM"0, "MM"3 \n\t"\ + "psubw "MM"1, "MM"4 \n\t"\ + PABS( MM"5", MM"3")\ +@@ -146,7 +146,7 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + "paddw "MM"4, "MM"3 \n\t" /* temporal_diff2 */\ + "psrlw $1, "MM"3 \n\t"\ + "pmaxsw "MM"3, "MM"2 \n\t"\ +- MOVQ" "MM"2, 48(%[tmpA]) \n\t" /* diff */\ ++ MOVQ" "MM"2, 48(%0) \n\t" /* diff */\ + \ + "paddw "MM"0, "MM"1 \n\t"\ + "paddw "MM"0, "MM"0 \n\t"\ +@@ -154,8 +154,8 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + "psrlw $1, "MM"1 \n\t" /* spatial_pred */\ + PABS( MM"2", MM"0") /* ABS(c-e) */\ + \ +- MOVQU" -1(%[cur],%[mrefs]), "MM"2 \n\t" /* cur[x-refs-1] */\ +- MOVQU" -1(%[cur],%[prefs]), "MM"3 \n\t" /* cur[x+refs-1] */\ ++ MOVQU" -1(%2,%5), "MM"2 \n\t" /* cur[x-refs-1] */\ ++ MOVQU" -1(%2,%4), "MM"3 \n\t" /* cur[x+refs-1] */\ + MOVQ" "MM"2, "MM"4 \n\t"\ + "psubusb "MM"3, "MM"2 \n\t"\ + "psubusb "MM"4, "MM"3 \n\t"\ +@@ -177,20 +177,20 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + CHECK2\ + \ + /* if(p->mode<2) ... */\ +- MOVQ" 48(%[tmpA]), "MM"6 \n\t" /* diff */\ +- "cmpl $2, %[mode] \n\t"\ ++ MOVQ" 48(%0), "MM"6 \n\t" /* diff */\ ++ "cmpl $2, %6 \n\t"\ + "jge 1f \n\t"\ +- LOAD("(%["prev2"],%[mrefs],2)", MM"2") /* prev2[x-2*refs] */\ +- LOAD("(%["next2"],%[mrefs],2)", MM"4") /* next2[x-2*refs] */\ +- LOAD("(%["prev2"],%[prefs],2)", MM"3") /* prev2[x+2*refs] */\ +- LOAD("(%["next2"],%[prefs],2)", MM"5") /* next2[x+2*refs] */\ ++ LOAD("(%"prev2",%5,2)", MM"2") /* prev2[x-2*refs] */\ ++ LOAD("(%"next2",%5,2)", MM"4") /* next2[x-2*refs] */\ ++ LOAD("(%"prev2",%4,2)", MM"3") /* prev2[x+2*refs] */\ ++ LOAD("(%"next2",%4,2)", MM"5") /* next2[x+2*refs] */\ + "paddw "MM"4, "MM"2 \n\t"\ + "paddw "MM"5, "MM"3 \n\t"\ + "psrlw $1, "MM"2 \n\t" /* b */\ + "psrlw $1, "MM"3 \n\t" /* f */\ +- MOVQ" (%[tmpA]), "MM"4 \n\t" /* c */\ +- MOVQ" 16(%[tmpA]), "MM"5 \n\t" /* d */\ +- MOVQ" 32(%[tmpA]), "MM"7 \n\t" /* e */\ ++ MOVQ" (%0), "MM"4 \n\t" /* c */\ ++ MOVQ" 16(%0), "MM"5 \n\t" /* d */\ ++ MOVQ" 32(%0), "MM"7 \n\t" /* e */\ + "psubw "MM"4, "MM"2 \n\t" /* b-c */\ + "psubw "MM"7, "MM"3 \n\t" /* f-e */\ + MOVQ" "MM"5, "MM"0 \n\t"\ +@@ -209,7 +209,7 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + "pmaxsw "MM"4, "MM"6 \n\t" /* diff= MAX3(diff, min, -max); */\ + "1: \n\t"\ + \ +- MOVQ" 16(%[tmpA]), "MM"2 \n\t" /* d */\ ++ MOVQ" 16(%0), "MM"2 \n\t" /* d */\ + MOVQ" "MM"2, "MM"3 \n\t"\ + "psubw "MM"6, "MM"2 \n\t" /* d-diff */\ + "paddw "MM"6, "MM"3 \n\t" /* d+diff */\ +@@ -218,13 +218,13 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + "packuswb "MM"1, "MM"1 \n\t"\ + \ + :\ +- :[tmpA] "r"(tmpA),\ +- [prev] "r"(prev),\ +- [cur] "r"(cur),\ +- [next] "r"(next),\ +- [prefs]"r"((x86_reg)prefs),\ +- [mrefs]"r"((x86_reg)mrefs),\ +- [mode] "g"(mode)\ ++ : "r"(tmpA),\ ++ "r"(prev),\ ++ "r"(cur),\ ++ "r"(next),\ ++ "r"((x86_reg)prefs),\ ++ "r"((x86_reg)mrefs),\ ++ "g"(mode)\ + );\ + __asm__ volatile(MOV" "MM"1, %0" :"=m"(*dst));\ + dst += STEP;\ +@@ -234,14 +234,14 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, + } + + if (parity) { +-#define prev2 "prev" +-#define next2 "cur" ++#define prev2 "1" ++#define next2 "2" + FILTER + #undef prev2 + #undef next2 + } else { +-#define prev2 "cur" +-#define next2 "next" ++#define prev2 "2" ++#define next2 "3" + FILTER + #undef prev2 + #undef next2 +-- +1.8.3.4 +