diff options
author | Jan Brinkmann <luckyduck@gentoo.org> | 2005-04-16 12:55:34 +0000 |
---|---|---|
committer | Jan Brinkmann <luckyduck@gentoo.org> | 2005-04-16 12:55:34 +0000 |
commit | a758d9eb93f6c7f681c471d38aa1092e242c2338 (patch) | |
tree | 2fda673281157e9f25dfebcbbe1461e7f8803400 | |
parent | re-order var definitions (diff) | |
download | gentoo-2-a758d9eb93f6c7f681c471d38aa1092e242c2338.tar.gz gentoo-2-a758d9eb93f6c7f681c471d38aa1092e242c2338.tar.bz2 gentoo-2-a758d9eb93f6c7f681c471d38aa1092e242c2338.zip |
added patch to make compilation with libquicktime-0.9.4 possible (patch based on upstream cvs), also enabled largefile support which fixes #66039
(Portage version: 2.0.51.19)
-rw-r--r-- | media-video/mjpegtools/ChangeLog | 13 | ||||
-rw-r--r-- | media-video/mjpegtools/Manifest | 15 | ||||
-rw-r--r-- | media-video/mjpegtools/files/mjpegtools-1.6.2-libquicktime094.patch | 447 | ||||
-rw-r--r-- | media-video/mjpegtools/mjpegtools-1.6.2-r3.ebuild | 6 |
4 files changed, 468 insertions, 13 deletions
diff --git a/media-video/mjpegtools/ChangeLog b/media-video/mjpegtools/ChangeLog index 827ac0dc71ac..3e23c1e1be51 100644 --- a/media-video/mjpegtools/ChangeLog +++ b/media-video/mjpegtools/ChangeLog @@ -1,10 +1,15 @@ # ChangeLog for media-video/mjpegtools # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/mjpegtools/ChangeLog,v 1.84 2005/03/27 20:08:31 lu_zero Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/mjpegtools/ChangeLog,v 1.85 2005/04/16 12:55:34 luckyduck Exp $ + + 16 Apr 2005; Jan Brinkmann <luckyduck@gentoo.org> + +files/mjpegtools-1.6.2-libquicktime094.patch, mjpegtools-1.6.2-r3.ebuild: + added patch to make compilation with libquicktime-0.9.4 possible (patch based + on upstream cvs), also enabled largefile support which fixes #66039 27 Mar 2005; Luca Barbato <lu_zero@gentoo.org> +files/mjpegtools-1.6.2-configure.patch, mjpegtools-1.6.2-r3.ebuild: - Updated ebuild, from Diego Pettenò <dgp85@users.sourceforge.net> + Updated ebuild, from Diego Pettenò <dgp85@users.sourceforge.net> 26 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org> -files/1.6.0-r7-ppc.patch, -files/mjpegtools-1.6.0-gcc3.patch, @@ -13,7 +18,7 @@ -files/mjpegtools-1.6.1.93-fPIC.patch, -files/no-x11-lib.patch, -mjpegtools-1.6.0-r7.ebuild, -mjpegtools-1.6.1.90-r2.ebuild, -mjpegtools-1.6.2-r1.ebuild, mjpegtools-1.6.2-r3.ebuild: - Removilg older versions. Fixing avifile dependency to accept newer versions + Removing older versions. Fixing avifile dependency to accept newer versions as it does compile with them. 15 Mar 2005; Luca Barbato <lu_zero@gentoo.org> mjpegtools-1.6.2-r3.ebuild: @@ -227,7 +232,7 @@ 19 Sep 2003; Max Kalika <max@gentoo.org> mjpegtools-1.6.1.90-r1.ebuild, files/no-x11-lib.patch: - Remove dangling -lX11. Fixes bug 29070. Thanks to Christian Jiresjö for the + Remove dangling -lX11. Fixes bug 29070. Thanks to Christian Jiresjö for the patch 19 Sep 2003; Max Kalika <max@gentoo.org> mjpegtools-1.6.1.90.ebuild: diff --git a/media-video/mjpegtools/Manifest b/media-video/mjpegtools/Manifest index 766de2bd6a2f..fd6023074406 100644 --- a/media-video/mjpegtools/Manifest +++ b/media-video/mjpegtools/Manifest @@ -1,12 +1,13 @@ -MD5 42134764c3011ae6d48405decce4e775 ChangeLog 15359 +MD5 70d8b90bdb4e7f96714f58aaa8c5e581 mjpegtools-1.6.2-r3.ebuild 3522 +MD5 4a75d73ab953d72197036ab823e79bbe ChangeLog 15642 MD5 fe49014257499366bdc6903a9aa33fe5 metadata.xml 311 -MD5 8b1c2dd94610aa764e9967a37d5564b6 mjpegtools-1.6.2-r3.ebuild 3433 -MD5 1b2c526400f0a0f1e0c150c6ff42e8c6 files/mjpegtools-1.6.2-configure.patch 2592 -MD5 7c88ea787d22b8ec25b68478d037151e files/digest-mjpegtools-1.6.2-r3 135 -MD5 3150d43b1c44c02265b8481e271093c8 files/altivec-fix-1.6.2.patch 1011 -MD5 abdfec9a9d07b842509b709ba17d69ab files/mjpegtools-1.6.2-nogtk.patch 556 -MD5 f16b681aebfa408a1ff5b6030c50fad8 files/mjpegtools-1.6.2-gcc34-altivec.patch 3693 MD5 39b5dadaf6e522165490f099d98b954c files/mjpegtools-1.6.2-dv.patch 634 MD5 a4cae44ea5989aed95d7b8d84aaf0af4 files/mjpegtools-1.6.2-fPIC.patch 9945 +MD5 f16b681aebfa408a1ff5b6030c50fad8 files/mjpegtools-1.6.2-gcc34-altivec.patch 3693 +MD5 3150d43b1c44c02265b8481e271093c8 files/altivec-fix-1.6.2.patch 1011 +MD5 abdfec9a9d07b842509b709ba17d69ab files/mjpegtools-1.6.2-nogtk.patch 556 +MD5 ff67ff91c5a8ae610b882510d8d9f43c files/mjpegtools-1.6.2-libquicktime094.patch 12934 MD5 cbcc90f9de3aaf0ac12aa6bd1c4db025 files/no-x11-lib-2.patch 469 MD5 d67f97f3bd586946968fca9b8d31be85 files/mjpegtools-1.6.2-gcc34.patch 1601 +MD5 7c88ea787d22b8ec25b68478d037151e files/digest-mjpegtools-1.6.2-r3 135 +MD5 1b2c526400f0a0f1e0c150c6ff42e8c6 files/mjpegtools-1.6.2-configure.patch 2592 diff --git a/media-video/mjpegtools/files/mjpegtools-1.6.2-libquicktime094.patch b/media-video/mjpegtools/files/mjpegtools-1.6.2-libquicktime094.patch new file mode 100644 index 000000000000..311894694fcc --- /dev/null +++ b/media-video/mjpegtools/files/mjpegtools-1.6.2-libquicktime094.patch @@ -0,0 +1,447 @@ +diff -uprN lavtools.orig/lavaddwav.c lavtools/lavaddwav.c +--- lavtools.orig/lavaddwav.c 2005-04-16 14:36:52.000000000 +0200 ++++ lavtools/lavaddwav.c 2005-04-16 14:46:18.000000000 +0200 +@@ -155,7 +155,7 @@ int main(int argc, char **argv) + } + + lav_out = lav_open_output_file(argv[3], +- lav_filetype(lav_fd), ++ lav_fd->format, + lav_video_width (lav_fd), + lav_video_height(lav_fd), + lav_video_interlacing(lav_fd), +diff -uprN lavtools.orig/lav_io.c lavtools/lav_io.c +--- lavtools.orig/lav_io.c 2005-04-16 14:36:52.000000000 +0200 ++++ lavtools/lav_io.c 2005-04-16 14:37:48.000000000 +0200 +@@ -36,7 +36,8 @@ + #endif + + #ifdef HAVE_LIBQUICKTIME +-#include <quicktime.h> ++#include <quicktime/quicktime.h> ++#include <quicktime/lqt.h> + #endif + + extern int AVI_errno; +@@ -275,8 +276,9 @@ lav_file_t *lav_open_output_file(char *f + int asize, int achans, long arate) + { + lav_file_t *lav_fd = (lav_file_t*) malloc(sizeof(lav_file_t)); ++ char *extension, *tempfile; + +- if(lav_fd==0) { internal_error=ERROR_MALLOC; return 0; } ++ if (lav_fd == 0) { internal_error=ERROR_MALLOC; return 0; } + + /* Set lav_fd */ + +@@ -284,35 +286,49 @@ lav_file_t *lav_open_output_file(char *f + lav_fd->qt_fd = 0; + lav_fd->format = format; + /* Sanity check: do not create a quicktime file that is named with .avi */ +- if(rindex(filename, '.') != NULL) ++ extension = rindex(filename, '.'); ++ if (extension != NULL) + { +- if((format == 'a' || format == 'A') && strcmp(rindex(filename, '.')+1, "avi")) { +- internal_error = ERROR_FORMAT; +- return 0; +- } +- if(format == 'q' && (strcmp(rindex(filename, '.')+1, "qt") +- && strcmp(rindex(filename, '.')+1, "mov") && strcmp(rindex(filename, '.')+1,"moov"))) { +- internal_error = ERROR_FORMAT; +- return 0; +- } +- if(format == 'j' && strcmp(rindex(filename, '.')+1, "jpg") +- && strcmp(rindex(filename, '.')+1, "jpeg")) { +- internal_error = ERROR_FORMAT; +- return 0; +- } ++ extension++; ++ switch(format) ++ { ++ case 'a': ++ case 'A': ++ if (strcmp(extension, "avi") && strcmp(extension, "AVI")) ++ { ++ internal_error = ERROR_FORMAT; ++ return 0; ++ } ++ break; ++ case 'q': ++ if (strcmp(extension, "qt") && strcmp(extension, "QT") && ++ strcmp(extension, "mov") && strcmp(extension, "MOV") && ++ strcmp(extension,"moov") && strcmp(extension,"MOOV")) ++ { ++ internal_error = ERROR_FORMAT; ++ return 0; ++ } ++ break; ++ case 'j': ++ if (strcmp(extension, "jpg") && strcmp(extension, "jpg") && ++ strcmp(extension,"jpeg") && strcmp(extension,"JPEG")) ++ { ++ internal_error = ERROR_FORMAT; ++ return 0; ++ } ++ break; ++ } + } + lav_fd->interlacing = interlaced ? lav_query_polarity(format) : + LAV_NOT_INTERLACED; + lav_fd->has_audio = (asize>0 && achans>0); + lav_fd->bps = (asize*achans+7)/8; +- lav_fd->is_MJPG = 1; + lav_fd->MJPG_chroma = CHROMAUNKNOWN; + + switch(format) + { + case 'a': + case 'A': +- + /* Open AVI output file */ + + lav_fd->avi_fd = AVI_open_output_file(filename); +@@ -321,21 +337,22 @@ lav_file_t *lav_open_output_file(char *f + if (asize) AVI_set_audio(lav_fd->avi_fd, achans, arate, asize, WAVE_FORMAT_PCM); + return lav_fd; + +- case 'j': { +- ++ case 'j': + /* Open JPEG output file */ +- char tempfile[256]; +- ++ tempfile = (char *)malloc(strlen(filename) + strlen(TMP_EXTENSION) + 1); ++ if (tempfile == NULL) ++ { ++ internal_error=ERROR_MALLOC; ++ return(0); ++ } + strcpy(tempfile, filename); + strcat(tempfile, TMP_EXTENSION); +- + lav_fd->jpeg_filename = strdup(filename); + lav_fd->jpeg_fd = open(tempfile, O_CREAT | O_TRUNC | O_WRONLY, 0644); +- ++ free(tempfile); + return lav_fd; +- } +- case 'q': + ++ case 'q': + #ifdef HAVE_LIBQUICKTIME + /* open quicktime output file */ + +@@ -364,26 +381,33 @@ lav_file_t *lav_open_output_file(char *f + } + + int lav_close(lav_file_t *lav_file) +-{ ++ { + int res; ++ char *tempfile; + + video_format = lav_file->format; internal_error = 0; /* for error messages */ + +- switch(lav_file->format) +- { ++ switch (lav_file->format) ++ { + case 'a': + case 'A': + res = AVI_close( lav_file->avi_fd ); + break; +- case 'j': { +- char tempfile[256]; ++ case 'j': ++ tempfile = (char *)malloc(strlen(lav_file->jpeg_filename) + ++ strlen(TMP_EXTENSION) + 1); ++ if (tempfile == NULL) ++ { ++ res = -1; ++ break; ++ } + strcpy(tempfile, lav_file->jpeg_filename); + strcat(tempfile, TMP_EXTENSION); + res = close(lav_file->jpeg_fd); + rename(tempfile, lav_file->jpeg_filename); ++ free(tempfile); + free(lav_file->jpeg_filename); + break; +- } + #ifdef HAVE_LIBQUICKTIME + case 'q': + res = quicktime_close( lav_file->qt_fd ); +@@ -391,12 +415,10 @@ int lav_close(lav_file_t *lav_file) + #endif + default: + res = -1; +- } +- ++ } + free(lav_file); +- + return res; +-} ++ } + + int lav_write_frame(lav_file_t *lav_file, uint8_t *buff, long size, long count) + { +@@ -524,9 +546,14 @@ int lav_write_frame(lav_file_t *lav_file + int lav_write_audio(lav_file_t *lav_file, uint8_t *buff, long samps) + { + int res; +-#ifdef HAVE_LIBQUICKTIME +- int n, nb; +- uint8_t *hbuff; ++#ifdef HAVE_LIBQUICKTIME ++ int i, j; ++ int16_t *qt_audio = (int16_t *)buff, **qt_audion; ++ int channels = lav_audio_channels(lav_file); ++ ++ qt_audion = malloc(channels * sizeof (int16_t **)); ++ for (i = 0; i < channels; i++) ++ qt_audion[i] = (int16_t *)malloc(samps * lav_file->bps); + #endif + + video_format = lav_file->format; internal_error = 0; /* for error messages */ +@@ -539,19 +566,17 @@ int lav_write_audio(lav_file_t *lav_file + break; + #ifdef HAVE_LIBQUICKTIME + case 'q': +- if(lav_audio_bits(lav_file)==16) +- { +- nb = samps*2*lav_audio_channels(lav_file); +- hbuff = (uint8_t *) malloc(nb); +- if(!hbuff) { internal_error=ERROR_MALLOC; return -1; } +- for(n=0;n<nb;n+=2) +- { hbuff[n] = buff[n+1]; hbuff[n+1] = buff[n]; } +- res = quicktime_write_audio( lav_file->qt_fd, (char*)hbuff, samps, 0 ); +- free(hbuff); +- } +- else +- res = quicktime_write_audio( lav_file->qt_fd, (char*)buff, samps, 0 ); +- break; ++ /* Deinterleave the audio into the two channels. */ ++ for (i = 0; i < samps; i++) ++ { ++ for (j = 0; j < channels; j++) ++ qt_audion[j][i] = qt_audio[(2*i) + j]; ++ } ++ res = lqt_encode_audio_track(lav_file->qt_fd, qt_audion, NULL,samps,0); ++ free(qt_audion[0]); ++ free(qt_audion[1]); ++ free(qt_audion); ++ break; + #endif + default: + res = -1; +@@ -560,8 +585,6 @@ int lav_write_audio(lav_file_t *lav_file + return res; + } + +- +- + long lav_video_frames(lav_file_t *lav_file) + { + video_format = lav_file->format; internal_error = 0; /* for error messages */ +@@ -638,17 +661,11 @@ void lav_video_sampleaspect(lav_file_t * + return; + } + +-int lav_video_is_MJPG(lav_file_t *lav_file) +-{ +- return lav_file->is_MJPG; +-} +- + int lav_video_MJPG_chroma(lav_file_t *lav_file) + { + return lav_file->MJPG_chroma; + } + +- + const char *lav_video_compressor(lav_file_t *lav_file) + { + video_format = lav_file->format; internal_error = 0; /* for error messages */ +@@ -797,7 +814,6 @@ int lav_read_frame(lav_file_t *lav_file, + return -1; + } + +- + int lav_set_audio_position(lav_file_t *lav_file, long sample) + { + if(!lav_file->has_audio) return 0; +@@ -809,7 +825,7 @@ int lav_set_audio_position(lav_file_t *l + return AVI_set_audio_position(lav_file->avi_fd,sample*lav_file->bps); + #ifdef HAVE_LIBQUICKTIME + case 'q': +- return quicktime_set_audio_position(lav_file->qt_fd,sample,0); ++ quicktime_set_audio_position(lav_file->qt_fd,sample,0); + #endif + } + return -1; +@@ -818,13 +834,20 @@ int lav_set_audio_position(lav_file_t *l + long lav_read_audio(lav_file_t *lav_file, uint8_t *audbuf, long samps) + { + #ifdef HAVE_LIBQUICKTIME +- long res, n, t; ++ int64_t last_pos, start_pos; ++ int res, i, j; ++ int16_t *qt_audio = (int16_t *)audbuf, **qt_audion; ++ int channels = lav_audio_channels(lav_file); ++ ++ qt_audion = malloc(channels * sizeof (int16_t **)); ++ for (i = 0; i < channels; i++) ++ qt_audion[i] = (int16_t *)malloc(samps * lav_file->bps); + #endif + + if(!lav_file->has_audio) + { + internal_error = ERROR_NOAUDIO; +- return -1; ++ return(-1); + } + video_format = lav_file->format; internal_error = 0; /* for error messages */ + switch(lav_file->format) +@@ -834,28 +857,28 @@ long lav_read_audio(lav_file_t *lav_file + return AVI_read_audio(lav_file->avi_fd,audbuf,samps*lav_file->bps)/lav_file->bps; + #ifdef HAVE_LIBQUICKTIME + case 'q': +- res = quicktime_read_audio(lav_file->qt_fd,(char*)audbuf,samps,0)/lav_file->bps; +- if(res<=0) return res; +- if(lav_audio_bits(lav_file)==16) +- { +- for(n=0;n<res*2*lav_audio_channels(lav_file);n+=2) +- { +- t = audbuf[n]; +- audbuf[n] = audbuf[n+1]; +- audbuf[n+1] = t; +- } +- } +- return res; ++ start_pos = quicktime_audio_position(lav_file->qt_fd, 0); ++ lqt_decode_audio_track(lav_file->qt_fd, qt_audion, NULL, samps, 0); ++ last_pos = lqt_last_audio_position(lav_file->qt_fd, 0); ++ res = last_pos - start_pos; ++ if (res <= 0) ++ goto out; ++ /* Interleave the channels of audio into the one buffer provided */ ++ for (i =0; i < res; i++) ++ { ++ for (j = 0; j < channels; j++) ++ qt_audio[(2*i) + j] = qt_audion[j][i]; ++ } ++out: ++ free(qt_audion[0]); ++ free(qt_audion[1]); ++ free(qt_audion); ++ return(res); + #endif + } + return -1; + } + +-int lav_filetype(lav_file_t *lav_file) +-{ +- return lav_file->format; +-} +- + lav_file_t *lav_open_input_file(char *filename) + { + int n; +@@ -878,11 +901,10 @@ lav_file_t *lav_open_input_file(char *fi + lav_fd->qt_fd = 0; + lav_fd->format = 0; + lav_fd->interlacing = LAV_INTER_UNKNOWN; +- lav_fd->sar_w = 0; /* (0,0) == unknown */ +- lav_fd->sar_h = 0; ++ lav_fd->sar_w = 1; /* unknown - assume square pixels */ ++ lav_fd->sar_h = 1; + lav_fd->has_audio = 0; + lav_fd->bps = 0; +- lav_fd->is_MJPG = 0; + lav_fd->MJPG_chroma = CHROMAUNKNOWN; + + /* open video file, try AVI first */ +@@ -1010,8 +1032,6 @@ lav_file_t *lav_open_input_file(char *fi + return lav_fd; + } + +- lav_fd->is_MJPG = 1; +- + /* Make some checks on the video source, we read the first frame for that */ + + ierr = 0; +@@ -1200,8 +1220,6 @@ const char *lav_strerror(void) + } + } + +- +- + #ifdef HAVE_LIBDV + static int check_DV2_input(lav_file_t *lav_fd) + { +@@ -1209,8 +1227,6 @@ static int check_DV2_input(lav_file_t *l + double len = 0; + unsigned char *frame = NULL; + +- lav_fd->is_MJPG = 0; +- + /* Make some checks on the video source, we read the first frame for that */ + + if ( lav_set_video_position(lav_fd,0) ) goto ERREXIT; +@@ -1261,16 +1277,12 @@ ERREXIT: + } + #endif + +- +- + static int check_YUV420_input(lav_file_t *lav_fd) + { + int ierr = 0; + double len = 0; + unsigned char *frame = NULL; + +- lav_fd->is_MJPG = 0; +- + /* Make some checks on the video source, we read the first frame for that */ + + if ( lav_set_video_position(lav_fd,0) ) goto ERREXIT; +@@ -1312,17 +1324,3 @@ int lav_fileno(lav_file_t *lav_file) + + return res; + } +- +- +- +- +- +- +- +- +- +- +- +- +- +- +diff -uprN lavtools.orig/lav_io.h lavtools/lav_io.h +--- lavtools.orig/lav_io.h 2005-04-16 14:36:52.000000000 +0200 ++++ lavtools/lav_io.h 2005-04-16 14:44:58.000000000 +0200 +@@ -24,7 +24,7 @@ + typedef void avi_t; + #endif + +-#include "yuv4mpeg.h" ++#include <yuv4mpeg.h> + + #define LAV_INTER_UNKNOWN Y4M_UNKNOWN + #define LAV_NOT_INTERLACED Y4M_ILACE_NONE +@@ -88,7 +88,6 @@ int lav_set_video_position(lav_file_t * + int lav_read_frame(lav_file_t *lav_file, uint8_t *vidbuf); + int lav_set_audio_position(lav_file_t *lav_file, long sample); + long lav_read_audio(lav_file_t *lav_file, uint8_t *audbuf, long samps); +-int lav_filetype(lav_file_t *lav_file); + lav_file_t *lav_open_input_file(char *filename); + int lav_get_field_size(uint8_t * jpegdata, long jpeglen); + const char *lav_strerror(void); diff --git a/media-video/mjpegtools/mjpegtools-1.6.2-r3.ebuild b/media-video/mjpegtools/mjpegtools-1.6.2-r3.ebuild index 2fd7de37b092..53796a8dd558 100644 --- a/media-video/mjpegtools/mjpegtools-1.6.2-r3.ebuild +++ b/media-video/mjpegtools/mjpegtools-1.6.2-r3.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/mjpegtools/mjpegtools-1.6.2-r3.ebuild,v 1.21 2005/03/29 02:35:30 mr_bones_ Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/mjpegtools/mjpegtools-1.6.2-r3.ebuild,v 1.22 2005/04/16 12:55:34 luckyduck Exp $ inherit flag-o-matic gcc eutils @@ -43,6 +43,7 @@ src_unpack() { epatch ${FILESDIR}/${P}-configure.patch epatch ${FILESDIR}/${P}-fPIC.patch epatch ${FILESDIR}/${P}-gcc34.patch + epatch ${FILESDIR}/${P}-libquicktime094.patch if use ppc; then # Fix an error in the detection of the altivec-support @@ -94,7 +95,8 @@ src_compile() { $(use_with gtk) \ $(use_with sdl) \ $(use_with dv dv /usr) \ - ${myconf} || die + --enable-largefile \ + ${myconf} || die "configure failed" if has_pie; then pie_magic="$(test_flag -fno-pic) $(test_flag -nopie)" |