parent
bbdcca6157
commit
d1936698fe
@ -0,0 +1,748 @@
|
||||
From: anton@khirnov.net
|
||||
Description: Support building with the upcoming Libav 10 release
|
||||
Origin: upstream, https://github.com/Itseez/opencv/pull/2293
|
||||
|
||||
--- a/modules/highgui/src/cap_ffmpeg_impl.hpp
|
||||
+++ b/modules/highgui/src/cap_ffmpeg_impl.hpp
|
||||
@@ -57,10 +57,28 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
-#include "ffmpeg_codecs.hpp"
|
||||
+#if !defined(WIN32) || defined(__MINGW32__)
|
||||
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+// some versions of FFMPEG assume a C99 compiler, and don't define INT64_C
|
||||
+#ifndef INT64_C
|
||||
+#define INT64_C(c) (c##LL)
|
||||
+#endif
|
||||
+
|
||||
+#ifndef UINT64_C
|
||||
+#define UINT64_C(c) (c##ULL)
|
||||
+#endif
|
||||
+
|
||||
+#include <errno.h>
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#include <libavformat/avformat.h>
|
||||
#include <libavutil/mathematics.h>
|
||||
|
||||
+#include <libavutil/opt.h>
|
||||
+
|
||||
#ifdef WIN32
|
||||
#define HAVE_FFMPEG_SWSCALE 1
|
||||
#include <libavcodec/avcodec.h>
|
||||
@@ -144,10 +162,6 @@ extern "C" {
|
||||
#define AV_NOPTS_VALUE_ ((int64_t)AV_NOPTS_VALUE)
|
||||
#endif
|
||||
|
||||
-#ifndef AVERROR_EOF
|
||||
-#define AVERROR_EOF (-MKTAG( 'E','O','F',' '))
|
||||
-#endif
|
||||
-
|
||||
#if LIBAVCODEC_BUILD >= CALC_FFMPEG_VERSION(54,25,0)
|
||||
# define CV_CODEC_ID AVCodecID
|
||||
# define CV_CODEC(name) AV_##name
|
||||
@@ -158,9 +172,7 @@ extern "C" {
|
||||
|
||||
static int get_number_of_cpus(void)
|
||||
{
|
||||
-#if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(52, 111, 0)
|
||||
- return 1;
|
||||
-#elif defined WIN32 || defined _WIN32
|
||||
+#if defined WIN32 || defined _WIN32
|
||||
SYSTEM_INFO sysinfo;
|
||||
GetSystemInfo( &sysinfo );
|
||||
|
||||
@@ -296,25 +308,13 @@ void CvCapture_FFMPEG::close()
|
||||
|
||||
if( video_st )
|
||||
{
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
avcodec_close( video_st->codec );
|
||||
-
|
||||
-#else
|
||||
- avcodec_close( &(video_st->codec) );
|
||||
-
|
||||
-#endif
|
||||
video_st = NULL;
|
||||
}
|
||||
|
||||
if( ic )
|
||||
{
|
||||
-#if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(53, 24, 2)
|
||||
- av_close_input_file(ic);
|
||||
-#else
|
||||
avformat_close_input(&ic);
|
||||
-#endif
|
||||
-
|
||||
- ic = NULL;
|
||||
}
|
||||
|
||||
if( rgb_picture.data[0] )
|
||||
@@ -501,9 +501,7 @@ public:
|
||||
_mutex.lock();
|
||||
if (!_initialized)
|
||||
{
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 13, 0)
|
||||
avformat_network_init();
|
||||
- #endif
|
||||
|
||||
/* register all codecs, demux and protocols */
|
||||
av_register_all();
|
||||
@@ -534,11 +532,7 @@ bool CvCapture_FFMPEG::open( const char*
|
||||
|
||||
close();
|
||||
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
|
||||
int err = avformat_open_input(&ic, _filename, NULL, NULL);
|
||||
-#else
|
||||
- int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);
|
||||
-#endif
|
||||
|
||||
if (err < 0)
|
||||
{
|
||||
@@ -546,11 +540,7 @@ bool CvCapture_FFMPEG::open( const char*
|
||||
goto exit_func;
|
||||
}
|
||||
err =
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 6, 0)
|
||||
avformat_find_stream_info(ic, NULL);
|
||||
-#else
|
||||
- av_find_stream_info(ic);
|
||||
-#endif
|
||||
if (err < 0)
|
||||
{
|
||||
CV_WARN("Could not find codec parameters");
|
||||
@@ -558,11 +548,7 @@ bool CvCapture_FFMPEG::open( const char*
|
||||
}
|
||||
for(i = 0; i < ic->nb_streams; i++)
|
||||
{
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
AVCodecContext *enc = ic->streams[i]->codec;
|
||||
-#else
|
||||
- AVCodecContext *enc = &ic->streams[i]->codec;
|
||||
-#endif
|
||||
|
||||
//#ifdef FF_API_THREAD_INIT
|
||||
// avcodec_thread_init(enc, get_number_of_cpus());
|
||||
@@ -570,10 +556,6 @@ bool CvCapture_FFMPEG::open( const char*
|
||||
enc->thread_count = get_number_of_cpus();
|
||||
//#endif
|
||||
|
||||
-#if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
-#define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO
|
||||
-#endif
|
||||
-
|
||||
if( AVMEDIA_TYPE_VIDEO == enc->codec_type && video_stream < 0)
|
||||
{
|
||||
// backup encoder' width/height
|
||||
@@ -581,13 +563,7 @@ bool CvCapture_FFMPEG::open( const char*
|
||||
int enc_height = enc->height;
|
||||
|
||||
AVCodec *codec = avcodec_find_decoder(enc->codec_id);
|
||||
- if (!codec ||
|
||||
-#if LIBAVCODEC_VERSION_INT >= ((53<<16)+(8<<8)+0)
|
||||
- avcodec_open2(enc, codec, NULL)
|
||||
-#else
|
||||
- avcodec_open(enc, codec)
|
||||
-#endif
|
||||
- < 0)
|
||||
+ if (!codec || avcodec_open2(enc, codec, NULL) < 0)
|
||||
goto exit_func;
|
||||
|
||||
// checking width/height (since decoder can sometimes alter it, eg. vp6f)
|
||||
@@ -660,17 +636,7 @@ bool CvCapture_FFMPEG::grabFrame()
|
||||
}
|
||||
|
||||
// Decode video frame
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
avcodec_decode_video2(video_st->codec, picture, &got_picture, &packet);
|
||||
- #elif LIBAVFORMAT_BUILD > 4628
|
||||
- avcodec_decode_video(video_st->codec,
|
||||
- picture, &got_picture,
|
||||
- packet.data, packet.size);
|
||||
- #else
|
||||
- avcodec_decode_video(&video_st->codec,
|
||||
- picture, &got_picture,
|
||||
- packet.data, packet.size);
|
||||
- #endif
|
||||
|
||||
// Did we get a video frame?
|
||||
if(got_picture)
|
||||
@@ -769,18 +735,9 @@ double CvCapture_FFMPEG::getProperty( in
|
||||
case CV_FFMPEG_CAP_PROP_FRAME_HEIGHT:
|
||||
return (double)frame.height;
|
||||
case CV_FFMPEG_CAP_PROP_FPS:
|
||||
-#if LIBAVCODEC_BUILD > 4753
|
||||
- return av_q2d(video_st->r_frame_rate);
|
||||
-#else
|
||||
- return (double)video_st->codec.frame_rate
|
||||
- / (double)video_st->codec.frame_rate_base;
|
||||
-#endif
|
||||
+ return av_q2d(video_st->avg_frame_rate);
|
||||
case CV_FFMPEG_CAP_PROP_FOURCC:
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
return (double)video_st->codec->codec_tag;
|
||||
-#else
|
||||
- return (double)video_st->codec.codec_tag;
|
||||
-#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -817,14 +774,7 @@ int CvCapture_FFMPEG::get_bitrate()
|
||||
|
||||
double CvCapture_FFMPEG::get_fps()
|
||||
{
|
||||
- double fps = r2d(ic->streams[video_stream]->r_frame_rate);
|
||||
-
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
|
||||
- if (fps < eps_zero)
|
||||
- {
|
||||
- fps = r2d(ic->streams[video_stream]->avg_frame_rate);
|
||||
- }
|
||||
-#endif
|
||||
+ double fps = r2d(ic->streams[video_stream]->avg_frame_rate);
|
||||
|
||||
if (fps < eps_zero)
|
||||
{
|
||||
@@ -984,7 +934,6 @@ struct CvVideoWriter_FFMPEG
|
||||
|
||||
static const char * icvFFMPEGErrStr(int err)
|
||||
{
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
switch(err) {
|
||||
case AVERROR_BSF_NOT_FOUND:
|
||||
return "Bitstream filter not found";
|
||||
@@ -1015,22 +964,6 @@ static const char * icvFFMPEGErrStr(int
|
||||
default:
|
||||
break;
|
||||
}
|
||||
-#else
|
||||
- switch(err) {
|
||||
- case AVERROR_NUMEXPECTED:
|
||||
- return "Incorrect filename syntax";
|
||||
- case AVERROR_INVALIDDATA:
|
||||
- return "Invalid data in header";
|
||||
- case AVERROR_NOFMT:
|
||||
- return "Unknown format";
|
||||
- case AVERROR_IO:
|
||||
- return "I/O error occurred";
|
||||
- case AVERROR_NOMEM:
|
||||
- return "Memory allocation error";
|
||||
- default:
|
||||
- break;
|
||||
- }
|
||||
-#endif
|
||||
|
||||
return "Unspecified error";
|
||||
}
|
||||
@@ -1098,28 +1031,16 @@ static AVStream *icv_add_video_stream_FF
|
||||
int frame_rate, frame_rate_base;
|
||||
AVCodec *codec;
|
||||
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 10, 0)
|
||||
st = avformat_new_stream(oc, 0);
|
||||
-#else
|
||||
- st = av_new_stream(oc, 0);
|
||||
-#endif
|
||||
|
||||
if (!st) {
|
||||
CV_WARN("Could not allocate stream");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
c = st->codec;
|
||||
-#else
|
||||
- c = &(st->codec);
|
||||
-#endif
|
||||
|
||||
-#if LIBAVFORMAT_BUILD > 4621
|
||||
c->codec_id = av_guess_codec(oc->oformat, NULL, oc->filename, NULL, AVMEDIA_TYPE_VIDEO);
|
||||
-#else
|
||||
- c->codec_id = oc->oformat->video_codec;
|
||||
-#endif
|
||||
|
||||
if(codec_id != CV_CODEC(CODEC_ID_NONE)){
|
||||
c->codec_id = codec_id;
|
||||
@@ -1154,7 +1075,6 @@ static AVStream *icv_add_video_stream_FF
|
||||
frame_rate_base*=10;
|
||||
frame_rate=(int)(fps*frame_rate_base + 0.5);
|
||||
}
|
||||
-#if LIBAVFORMAT_BUILD > 4752
|
||||
c->time_base.den = frame_rate;
|
||||
c->time_base.num = frame_rate_base;
|
||||
/* adjust time base for supported framerates */
|
||||
@@ -1174,10 +1094,6 @@ static AVStream *icv_add_video_stream_FF
|
||||
c->time_base.den= best->num;
|
||||
c->time_base.num= best->den;
|
||||
}
|
||||
-#else
|
||||
- c->frame_rate = frame_rate;
|
||||
- c->frame_rate_base = frame_rate_base;
|
||||
-#endif
|
||||
|
||||
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
|
||||
c->pix_fmt = (PixelFormat) pixel_format;
|
||||
@@ -1207,12 +1123,7 @@ static const int OPENCV_NO_FRAMES_WRITTE
|
||||
|
||||
static int icv_av_write_frame_FFMPEG( AVFormatContext * oc, AVStream * video_st, uint8_t * outbuf, uint32_t outbuf_size, AVFrame * picture )
|
||||
{
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
AVCodecContext * c = video_st->codec;
|
||||
-#else
|
||||
- AVCodecContext * c = &(video_st->codec);
|
||||
-#endif
|
||||
- int out_size;
|
||||
int ret = 0;
|
||||
|
||||
if (oc->oformat->flags & AVFMT_RAWPICTURE) {
|
||||
@@ -1232,24 +1143,39 @@ static int icv_av_write_frame_FFMPEG( AV
|
||||
|
||||
ret = av_write_frame(oc, &pkt);
|
||||
} else {
|
||||
+ AVPacket pkt;
|
||||
+ int got_output;
|
||||
+
|
||||
+ av_init_packet(&pkt);
|
||||
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 1, 0)
|
||||
/* encode the image */
|
||||
- out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
|
||||
- /* if zero size, it means the image was buffered */
|
||||
- if (out_size > 0) {
|
||||
- AVPacket pkt;
|
||||
- av_init_packet(&pkt);
|
||||
-
|
||||
-#if LIBAVFORMAT_BUILD > 4752
|
||||
- if(c->coded_frame->pts != (int64_t)AV_NOPTS_VALUE)
|
||||
- pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, video_st->time_base);
|
||||
-#else
|
||||
+ int out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
|
||||
+ got_output = out_size > 0;
|
||||
+ pkt.data = outbuf;
|
||||
+ pkt.size = out_size;
|
||||
+ if(c->coded_frame->pts != (int64_t)AV_NOPTS_VALUE)
|
||||
pkt.pts = c->coded_frame->pts;
|
||||
+ pkt.dts = AV_NOPTS_VALUE;
|
||||
+ if(c->coded_frame->key_frame)
|
||||
+ pkt.flags |= PKT_FLAG_KEY;
|
||||
+#else
|
||||
+ pkt.data = NULL;
|
||||
+ pkt.size = 0;
|
||||
+
|
||||
+ ret = avcodec_encode_video2(c, &pkt, picture, &got_output);
|
||||
+ if (ret < 0)
|
||||
+ got_output = 0;
|
||||
#endif
|
||||
- if(c->coded_frame->key_frame)
|
||||
- pkt.flags |= PKT_FLAG_KEY;
|
||||
+
|
||||
+ if (got_output) {
|
||||
+ if (pkt.pts != (int64_t)AV_NOPTS_VALUE)
|
||||
+ pkt.pts = av_rescale_q(pkt.pts, c->time_base, video_st->time_base);
|
||||
+ if (pkt.dts != (int64_t)AV_NOPTS_VALUE)
|
||||
+ pkt.dts = av_rescale_q(pkt.dts, c->time_base, video_st->time_base);
|
||||
+ if (pkt.duration)
|
||||
+ pkt.duration = av_rescale_q(pkt.duration, c->time_base, video_st->time_base);
|
||||
+
|
||||
pkt.stream_index= video_st->index;
|
||||
- pkt.data= outbuf;
|
||||
- pkt.size= out_size;
|
||||
|
||||
/* write the compressed frame in the media file */
|
||||
ret = av_write_frame(oc, &pkt);
|
||||
@@ -1271,30 +1197,8 @@ bool CvVideoWriter_FFMPEG::writeFrame( c
|
||||
height = frame_height;
|
||||
|
||||
// typecast from opaque data type to implemented struct
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
AVCodecContext *c = video_st->codec;
|
||||
-#else
|
||||
- AVCodecContext *c = &(video_st->codec);
|
||||
-#endif
|
||||
|
||||
-#if LIBAVFORMAT_BUILD < 5231
|
||||
- // It is not needed in the latest versions of the ffmpeg
|
||||
- if( c->codec_id == CV_CODEC(CODEC_ID_RAWVIDEO) && origin != 1 )
|
||||
- {
|
||||
- if( !temp_image.data )
|
||||
- {
|
||||
- temp_image.step = (width*cn + 3) & -4;
|
||||
- temp_image.width = width;
|
||||
- temp_image.height = height;
|
||||
- temp_image.cn = cn;
|
||||
- temp_image.data = (unsigned char*)malloc(temp_image.step*temp_image.height);
|
||||
- }
|
||||
- for( int y = 0; y < height; y++ )
|
||||
- memcpy(temp_image.data + y*temp_image.step, data + (height-1-y)*step, width*cn);
|
||||
- data = temp_image.data;
|
||||
- step = temp_image.step;
|
||||
- }
|
||||
-#else
|
||||
if( width*cn != step )
|
||||
{
|
||||
if( !temp_image.data )
|
||||
@@ -1314,7 +1218,6 @@ bool CvVideoWriter_FFMPEG::writeFrame( c
|
||||
data = temp_image.data;
|
||||
step = temp_image.step;
|
||||
}
|
||||
-#endif
|
||||
|
||||
// check parameters
|
||||
if (input_pix_fmt == PIX_FMT_BGR24) {
|
||||
@@ -1401,11 +1304,7 @@ void CvVideoWriter_FFMPEG::close()
|
||||
}
|
||||
|
||||
// free pictures
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
if( video_st->codec->pix_fmt != input_pix_fmt)
|
||||
-#else
|
||||
- if( video_st->codec.pix_fmt != input_pix_fmt)
|
||||
-#endif
|
||||
{
|
||||
if(picture->data[0])
|
||||
free(picture->data[0]);
|
||||
@@ -1417,11 +1316,7 @@ void CvVideoWriter_FFMPEG::close()
|
||||
av_free(input_picture);
|
||||
|
||||
/* close codec */
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
avcodec_close(video_st->codec);
|
||||
-#else
|
||||
- avcodec_close(&(video_st->codec));
|
||||
-#endif
|
||||
|
||||
av_free(outbuf);
|
||||
|
||||
@@ -1429,15 +1324,7 @@ void CvVideoWriter_FFMPEG::close()
|
||||
{
|
||||
/* close the output file */
|
||||
|
||||
-#if LIBAVCODEC_VERSION_INT < ((52<<16)+(123<<8)+0)
|
||||
-#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(49<<8)+0)
|
||||
- url_fclose(oc->pb);
|
||||
-#else
|
||||
- url_fclose(&oc->pb);
|
||||
-#endif
|
||||
-#else
|
||||
avio_close(oc->pb);
|
||||
-#endif
|
||||
|
||||
}
|
||||
|
||||
@@ -1479,11 +1366,7 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
|
||||
/* auto detect the output format from the name and fourcc code. */
|
||||
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
fmt = av_guess_format(NULL, filename, NULL);
|
||||
-#else
|
||||
- fmt = guess_format(NULL, filename, NULL);
|
||||
-#endif
|
||||
|
||||
if (!fmt)
|
||||
return false;
|
||||
@@ -1497,21 +1380,12 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
}
|
||||
|
||||
/* Lookup codec_id for given fourcc */
|
||||
-#if LIBAVCODEC_VERSION_INT<((51<<16)+(49<<8)+0)
|
||||
- if( (codec_id = codec_get_bmp_id( fourcc )) == CV_CODEC(CODEC_ID_NONE) )
|
||||
- return false;
|
||||
-#else
|
||||
- const struct AVCodecTag * tags[] = { codec_bmp_tags, NULL};
|
||||
+ const struct AVCodecTag * tags[] = { avformat_get_riff_video_tags(), NULL};
|
||||
if( (codec_id = av_codec_get_id(tags, fourcc)) == CV_CODEC(CODEC_ID_NONE) )
|
||||
return false;
|
||||
-#endif
|
||||
|
||||
// alloc memory for context
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
oc = avformat_alloc_context();
|
||||
-#else
|
||||
- oc = av_alloc_format_context();
|
||||
-#endif
|
||||
assert (oc);
|
||||
|
||||
/* set file name */
|
||||
@@ -1523,12 +1397,10 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
|
||||
// set a few optimal pixel formats for lossless codecs of interest..
|
||||
switch (codec_id) {
|
||||
-#if LIBAVCODEC_VERSION_INT>((50<<16)+(1<<8)+0)
|
||||
case CV_CODEC(CODEC_ID_JPEGLS):
|
||||
// BGR24 or GRAY8 depending on is_color...
|
||||
codec_pix_fmt = input_pix_fmt;
|
||||
break;
|
||||
-#endif
|
||||
case CV_CODEC(CODEC_ID_HUFFYUV):
|
||||
codec_pix_fmt = PIX_FMT_YUV422P;
|
||||
break;
|
||||
@@ -1555,14 +1427,6 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
width, height, (int)(bitrate + 0.5),
|
||||
fps, codec_pix_fmt);
|
||||
|
||||
- /* set the output parameters (must be done even if no
|
||||
- parameters). */
|
||||
-#if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
- if (av_set_parameters(oc, NULL) < 0) {
|
||||
- return false;
|
||||
- }
|
||||
-#endif
|
||||
-
|
||||
#if 0
|
||||
#if FF_API_DUMP_FORMAT
|
||||
dump_format(oc, 0, filename, 1);
|
||||
@@ -1580,23 +1444,14 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
AVCodec *codec;
|
||||
AVCodecContext *c;
|
||||
|
||||
-#if LIBAVFORMAT_BUILD > 4628
|
||||
c = (video_st->codec);
|
||||
-#else
|
||||
- c = &(video_st->codec);
|
||||
-#endif
|
||||
|
||||
c->codec_tag = fourcc;
|
||||
/* find the video encoder */
|
||||
codec = avcodec_find_encoder(c->codec_id);
|
||||
if (!codec) {
|
||||
fprintf(stderr, "Could not find encoder for codec id %d: %s", c->codec_id, icvFFMPEGErrStr(
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
- AVERROR_ENCODER_NOT_FOUND
|
||||
- #else
|
||||
- -1
|
||||
- #endif
|
||||
- ));
|
||||
+ AVERROR_ENCODER_NOT_FOUND));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1607,13 +1462,7 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
c->bit_rate = (int)lbit_rate;
|
||||
|
||||
/* open the codec */
|
||||
- if ((err=
|
||||
-#if LIBAVCODEC_VERSION_INT >= ((53<<16)+(8<<8)+0)
|
||||
- avcodec_open2(c, codec, NULL)
|
||||
-#else
|
||||
- avcodec_open(c, codec)
|
||||
-#endif
|
||||
- ) < 0) {
|
||||
+ if ((err = avcodec_open2(c, codec, NULL)) < 0) {
|
||||
fprintf(stderr, "Could not open codec '%s': %s", codec->name, icvFFMPEGErrStr(err));
|
||||
return false;
|
||||
}
|
||||
@@ -1649,22 +1498,14 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
|
||||
/* open the output file, if needed */
|
||||
if (!(fmt->flags & AVFMT_NOFILE)) {
|
||||
-#if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
- if (url_fopen(&oc->pb, filename, URL_WRONLY) < 0)
|
||||
-#else
|
||||
if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0)
|
||||
-#endif
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
-#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
|
||||
/* write the stream header, if any */
|
||||
err=avformat_write_header(oc, NULL);
|
||||
-#else
|
||||
- err=av_write_header( oc );
|
||||
-#endif
|
||||
|
||||
if(err < 0)
|
||||
{
|
||||
@@ -1799,15 +1640,7 @@ void OutputMediaStream_FFMPEG::close()
|
||||
{
|
||||
// close the output file
|
||||
|
||||
- #if LIBAVCODEC_VERSION_INT < ((52<<16)+(123<<8)+0)
|
||||
- #if LIBAVCODEC_VERSION_INT >= ((51<<16)+(49<<8)+0)
|
||||
- url_fclose(oc_->pb);
|
||||
- #else
|
||||
- url_fclose(&oc_->pb);
|
||||
- #endif
|
||||
- #else
|
||||
- avio_close(oc_->pb);
|
||||
- #endif
|
||||
+ avio_close(oc_->pb);
|
||||
}
|
||||
|
||||
// free the stream
|
||||
@@ -1817,19 +1650,11 @@ void OutputMediaStream_FFMPEG::close()
|
||||
|
||||
AVStream* OutputMediaStream_FFMPEG::addVideoStream(AVFormatContext *oc, CV_CODEC_ID codec_id, int w, int h, int bitrate, double fps, PixelFormat pixel_format)
|
||||
{
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 10, 0)
|
||||
AVStream* st = avformat_new_stream(oc, 0);
|
||||
- #else
|
||||
- AVStream* st = av_new_stream(oc, 0);
|
||||
- #endif
|
||||
if (!st)
|
||||
return 0;
|
||||
|
||||
- #if LIBAVFORMAT_BUILD > 4628
|
||||
AVCodecContext* c = st->codec;
|
||||
- #else
|
||||
- AVCodecContext* c = &(st->codec);
|
||||
- #endif
|
||||
|
||||
c->codec_id = codec_id;
|
||||
c->codec_type = AVMEDIA_TYPE_VIDEO;
|
||||
@@ -1865,7 +1690,6 @@ AVStream* OutputMediaStream_FFMPEG::addV
|
||||
c->time_base.den = frame_rate;
|
||||
c->time_base.num = frame_rate_base;
|
||||
|
||||
- #if LIBAVFORMAT_BUILD > 4752
|
||||
// adjust time base for supported framerates
|
||||
if (codec && codec->supported_framerates)
|
||||
{
|
||||
@@ -1890,7 +1714,6 @@ AVStream* OutputMediaStream_FFMPEG::addV
|
||||
c->time_base.den= best->num;
|
||||
c->time_base.num= best->den;
|
||||
}
|
||||
- #endif
|
||||
|
||||
c->gop_size = 12; // emit one intra frame every twelve frames at most
|
||||
c->pix_fmt = pixel_format;
|
||||
@@ -1909,13 +1732,11 @@ AVStream* OutputMediaStream_FFMPEG::addV
|
||||
c->mb_decision = 2;
|
||||
}
|
||||
|
||||
- #if LIBAVCODEC_VERSION_INT > 0x000409
|
||||
// some formats want stream headers to be seperate
|
||||
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
|
||||
{
|
||||
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
|
||||
}
|
||||
- #endif
|
||||
|
||||
return st;
|
||||
}
|
||||
@@ -1927,22 +1748,14 @@ bool OutputMediaStream_FFMPEG::open(cons
|
||||
video_st_ = 0;
|
||||
|
||||
// auto detect the output format from the name and fourcc code
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
fmt_ = av_guess_format(NULL, fileName, NULL);
|
||||
- #else
|
||||
- fmt_ = guess_format(NULL, fileName, NULL);
|
||||
- #endif
|
||||
if (!fmt_)
|
||||
return false;
|
||||
|
||||
CV_CODEC_ID codec_id = CV_CODEC(CODEC_ID_H264);
|
||||
|
||||
// alloc memory for context
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
oc_ = avformat_alloc_context();
|
||||
- #else
|
||||
- oc_ = av_alloc_format_context();
|
||||
- #endif
|
||||
if (!oc_)
|
||||
return false;
|
||||
|
||||
@@ -1961,20 +1774,10 @@ bool OutputMediaStream_FFMPEG::open(cons
|
||||
if (!video_st_)
|
||||
return false;
|
||||
|
||||
- // set the output parameters (must be done even if no parameters)
|
||||
- #if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
- if (av_set_parameters(oc_, NULL) < 0)
|
||||
- return false;
|
||||
- #endif
|
||||
-
|
||||
// now that all the parameters are set, we can open the audio and
|
||||
// video codecs and allocate the necessary encode buffers
|
||||
|
||||
- #if LIBAVFORMAT_BUILD > 4628
|
||||
AVCodecContext* c = (video_st_->codec);
|
||||
- #else
|
||||
- AVCodecContext* c = &(video_st_->codec);
|
||||
- #endif
|
||||
|
||||
c->codec_tag = MKTAG('H', '2', '6', '4');
|
||||
c->bit_rate_tolerance = c->bit_rate;
|
||||
@@ -1982,22 +1785,14 @@ bool OutputMediaStream_FFMPEG::open(cons
|
||||
// open the output file, if needed
|
||||
if (!(fmt_->flags & AVFMT_NOFILE))
|
||||
{
|
||||
- #if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
- int err = url_fopen(&oc_->pb, fileName, URL_WRONLY);
|
||||
- #else
|
||||
- int err = avio_open(&oc_->pb, fileName, AVIO_FLAG_WRITE);
|
||||
- #endif
|
||||
+ int err = avio_open(&oc_->pb, fileName, AVIO_FLAG_WRITE);
|
||||
|
||||
if (err != 0)
|
||||
return false;
|
||||
}
|
||||
|
||||
// write the stream header, if any
|
||||
- #if LIBAVFORMAT_BUILD < CALC_FFMPEG_VERSION(53, 2, 0)
|
||||
- av_write_header(oc_);
|
||||
- #else
|
||||
- avformat_write_header(oc_, NULL);
|
||||
- #endif
|
||||
+ avformat_write_header(oc_, NULL);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -2102,33 +1897,19 @@ bool InputMediaStream_FFMPEG::open(const
|
||||
video_stream_id_ = -1;
|
||||
memset(&pkt_, 0, sizeof(AVPacket));
|
||||
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 13, 0)
|
||||
- avformat_network_init();
|
||||
- #endif
|
||||
-
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 6, 0)
|
||||
- err = avformat_open_input(&ctx_, fileName, 0, 0);
|
||||
- #else
|
||||
- err = av_open_input_file(&ctx_, fileName, 0, 0, 0);
|
||||
- #endif
|
||||
+ avformat_network_init();
|
||||
+
|
||||
+ err = avformat_open_input(&ctx_, fileName, 0, 0);
|
||||
if (err < 0)
|
||||
return false;
|
||||
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 6, 0)
|
||||
- err = avformat_find_stream_info(ctx_, 0);
|
||||
- #else
|
||||
- err = av_find_stream_info(ctx_);
|
||||
- #endif
|
||||
+ err = avformat_find_stream_info(ctx_, 0);
|
||||
if (err < 0)
|
||||
return false;
|
||||
|
||||
for (unsigned int i = 0; i < ctx_->nb_streams; ++i)
|
||||
{
|
||||
- #if LIBAVFORMAT_BUILD > 4628
|
||||
AVCodecContext *enc = ctx_->streams[i]->codec;
|
||||
- #else
|
||||
- AVCodecContext *enc = &ctx_->streams[i]->codec;
|
||||
- #endif
|
||||
|
||||
if (enc->codec_type == AVMEDIA_TYPE_VIDEO)
|
||||
{
|
||||
@@ -2197,11 +1978,7 @@ void InputMediaStream_FFMPEG::close()
|
||||
{
|
||||
if (ctx_)
|
||||
{
|
||||
- #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 24, 2)
|
||||
- avformat_close_input(&ctx_);
|
||||
- #else
|
||||
- av_close_input_file(ctx_);
|
||||
- #endif
|
||||
+ avformat_close_input(&ctx_);
|
||||
}
|
||||
|
||||
// free last packet if exist
|
@ -1 +1 @@
|
||||
Wed, 17 Sep 2014 10:37:05 +0000
|
||||
Wed, 17 Sep 2014 12:07:02 +0000
|
||||
|
@ -1 +1 @@
|
||||
Wed, 17 Sep 2014 10:37:05 +0000
|
||||
Wed, 17 Sep 2014 12:07:03 +0000
|
||||
|
@ -0,0 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install prepare setup test
|
||||
DEPEND=|| ( >=dev-lang/python-2.7.5-r2:2.7 ) dev-libs/openssl
|
||||
DESCRIPTION=Evented IO for V8 Javascript
|
||||
EAPI=5
|
||||
HOMEPAGE=http://nodejs.org/
|
||||
IUSE=+npm +snapshot
|
||||
KEYWORDS=~amd64 ~arm ~x86 ~x64-macos
|
||||
LICENSE=Apache-1.1 Apache-2.0 BSD BSD-2 MIT
|
||||
RDEPEND=dev-libs/openssl
|
||||
RESTRICT=test
|
||||
SLOT=0
|
||||
SRC_URI=http://nodejs.org/dist/v0.10.32/node-v0.10.32.tar.gz
|
||||
_eclasses_=eutils 06133990e861be0fe60c2b428fd025d9 multilib 3bf24e6abb9b76d9f6c20600f0b716bf pax-utils 8257582809714b788173511f975d767d python-any-r1 4560effd96d3d2a82e50af7cf87166da python-utils-r1 47dda904cf91c61f45b564d9f834fde1 toolchain-funcs 0f1760274637a138b99bb649202ea402
|
||||
_md5_=dcef73d6d091db5dbe6252d91fc62c35
|
@ -1 +1 @@
|
||||
Wed, 17 Sep 2014 10:37:08 +0000
|
||||
Wed, 17 Sep 2014 12:07:05 +0000
|
||||
|
@ -1 +1 @@
|
||||
Wed Sep 17 10:37:05 UTC 2014
|
||||
Wed Sep 17 12:07:02 UTC 2014
|
||||
|
@ -1 +1 @@
|
||||
Wed, 17 Sep 2014 11:00:01 +0000
|
||||
Wed, 17 Sep 2014 12:30:01 +0000
|
||||
|
@ -1 +1 @@
|
||||
1410950101 Wed 17 Sep 2014 10:35:01 AM UTC UTC
|
||||
1410955501 Wed 17 Sep 2014 12:05:01 PM UTC UTC
|
||||
|
@ -1,14 +1,16 @@
|
||||
AUX nodejs-v8-3.5.patch 440 SHA256 e27140ed4fb2d9db928c8a8138b53461eea352261265f9953c821ca15dfdd91f SHA512 9652a8dd423a3a067822e830f5b01667780c69232e4827c02a92ccc42049418efa65aaa6abe0fe301c968b7d016816d5fda08641fd7022dcde5620870aadecd7 WHIRLPOOL ce6dd29ea6c20eeabd239d65fd1154d7ac0cb83a0b71af733526b258ec43d81a16878480e54cb69e1e8afbc46405c352b590861f8ba347cb0516bf2f027652b4
|
||||
DIST node-v0.10.30.tar.gz 13527922 SHA256 3dfcbd307f5f5f266ef174e1443107da853cd3d0aa0b2493a44235d5908625d2 SHA512 7d82eba5bab8b0ac67f6773a03f650dee67bf42fe3b0b2cc5ca581e00170c000a63e0f7ba966ce31e6f2202af7b1179c44b138932f55df39f85b48389097c240 WHIRLPOOL 71a34e115d604669974677d05ac201bc23a495e5e60944bb1f62659d3c1c2a3d689c8a0650a94a6ca0531bb9a5bd9b0c411d52e472cfafedf0709dc872d6db93
|
||||
DIST node-v0.10.31.tar.gz 13464547 SHA256 06c781718a674dfdfb59d646b2629a46af2644bdbf52534fab8d4a0fe34c21f1 SHA512 10bc330be118bc3b853c319de51b875db3737a76da7c371c57ef2f044e8225cc24156da91eef6a36f1e415a7e4992f501cce05349e6160a21e44f7ed7dda4592 WHIRLPOOL 2bb58f8a181b0c188a425ef164bfb36dcd85a32a0004809f55dc85042b219e0b6b5c7f7319885958e3e489e7c41c99a4db54ea92596a7abbd35d97cddcddc461
|
||||
DIST node-v0.10.32.tar.gz 13585240 SHA256 c2120d0e3d2d191654cb11dbc0a33a7216d53732173317681da9502be0030f10 SHA512 5871100fac79c81e940b68cd0eba978c46863375985b86c0124bc0a13eafc7bd371663bb0798a04108fb0234b24a28241ba49fe687300a36475674f7ad9ec9bf WHIRLPOOL d5d42b61a9ba3c472fc3843f00422ca85f09872689da2586a82c3e7b5072b8ac0e8f168268c9aa52e9bc8fb2122b1391578926aac8b61878056056432b3af523
|
||||
DIST node-v0.11.12.tar.gz 15943306 SHA256 c40968981d9f5f6fbc4abb836557acda74ecb8f8a1e9a30e84ebd2529a8c1b6a SHA512 812ebd3cc3d272428d9f7f448f25091dfbde0aab28c13ec1722176a46215b7d723923a3b4499faff4feeac499eac3ac49cf6064a0c2477f8212303e35c5038b4 WHIRLPOOL dd379b30ff8b1b92564b54deab1513a1387d3621b408e16c25900ceb96acdd0a42d62c0bfabf0e3b026e526805326acad85a644a04ee97a46ef91f25eef8bda7
|
||||
DIST node-v0.11.13.tar.gz 16578783 SHA256 15d6e90c16adf907c0401cd5a77841b5264e90dfdaa1051d75184aa587fc8298 SHA512 1028507023c07eb8a8264f009121767973623064bc45258c15df4c42d98e3fee61b2daaea9c030c16d9041dd8ca473614a3ff30b0e315485ff99ed6b3a650b65 WHIRLPOOL aa303b1694bb75e4a226916dd17d7d3e3f5e7bb37dceb1fd784f33f38d9f69f868ec09281c9a11266a6db35fbc1e7c48098532d46e6f1f57dedb8c59736433b0
|
||||
DIST node-v0.8.28.tar.gz 13187411 SHA256 50e9a4282a741c923bd41c3ebb76698edbd7b1324024fe70cedc1e34b782d44f SHA512 6b12fa374ca506e2f7cac3cccd9144072a8908e6e7854b7e62b7b0e05b5b687fd16a941377acbb874c7798126695cc3d9263407f24a54e532b5d9487ee9429e6 WHIRLPOOL 15a2482e59e713b1e81497a784ac8dc525f8a7888e655c993cc820c54f7753c3359e42fcb16a435b071da7305071a1f0a5f898933b5d5222bab18f9ed1ef3986
|
||||
EBUILD nodejs-0.10.30.ebuild 1863 SHA256 e3c51ed07277c0785df2b731662f08081257ce24b1eaf3b5821a67429d47faa7 SHA512 cb2afcb256bfbc1e13bbf24540c1762549cc76318466c726f6968f564f6e5d9643c3fbfaffd5132231efe5fba27092e81e1da77e6dcdbdc4ad1df28e93b2e4b5 WHIRLPOOL 1f828e3d14e5b1f21aa8903fa36872b2ad87a94034c4d07b326b6b5a198cd8ffbc3f73d024c3ef421539d76dc5d82885bd27b5a80ed43cf56e1bb542f0b393fc
|
||||
EBUILD nodejs-0.10.31.ebuild 1869 SHA256 eb73268c3977708fcfe25e8bae5ea3358f1b1f7a52f3517d9701d5899e2c9618 SHA512 f3685bc2d4e0614b9d8b90a9115a53d71a8a21753ffe32243555c2445d37d8dcbb494adb3cf2d54f27f30c0aa0c2c73423a2fcc2a18df1c14e648c3dc2ac1ae2 WHIRLPOOL c4bb79832fdd421651474587978c23903ab6127f5e8843f0a511bd51efc3fa0b0c039d3e32e4584f655f7d08a839f1910f1157e8f0cb782ad7b9a11b31458cbe
|
||||
EBUILD nodejs-0.10.32.ebuild 1869 SHA256 2fbeda1999b72dbc8ddbcdcd028d923075aab4e0862f6b8c41b05f9cc49cb50e SHA512 962811cfdb57e422f291bb0f2d468d403cd21249bfbf916c293322becab578ae4dcc2510c0b89bccbcd839a14db7dab59100de1a6a0912005058f4f1bcdd4fc0 WHIRLPOOL f0f4e9e47547d9fb11ab5537cc76a904dbb958b98838282d9ec58eef2987fcac925181a671b68c4508e8bacbb0b8d5f5ca2be5077d6c6770ebfbdde6dcc970df
|
||||
EBUILD nodejs-0.11.12.ebuild 2140 SHA256 053b4eedea2813fcdd68ed6d74b8dd0746b2ea859067590f7201e0f61ad6807c SHA512 1f7abea2987bfbf677a4df7c35d4a7677bb0e200075e3729f654b5af4e3063744762fad8b6e0c4f0b006d23bef9bc187c6597624a59b5583b0e29e480402e885 WHIRLPOOL f52c7262a8fda1b5bd44225bb89974017992871522e79670b2d45a8116d85047101de34d4d66a23f2592b2e01a593c99ed5cbbcec953e73b3c5f2c0b5b0fa4c7
|
||||
EBUILD nodejs-0.11.13-r1.ebuild 2322 SHA256 3e5437164deb31dc1d7a4b5d4235f7a044fc198689c712820e13e8282ae6bc56 SHA512 d2370a8347c35d4b2522fc19e295e2e628236f92eb558e2ac6d6f56f608b41235fb5ce7336411d88bf08a685c25fa70104d0fbb8e6d8b58d2ad267f3bb67ba00 WHIRLPOOL 2b7fd91c10fe371b96333b0301244d5c491c5963028560f6526d5b176415f495fcf9da0a73f7b342e46f5b96a160caef0bf5ee6811b4356cea34a1f950f41254
|
||||
EBUILD nodejs-0.11.13.ebuild 2156 SHA256 9823b409618cf73d9b009bc8109144ccc3044bb15da2a49b1d1c672174b5eaec SHA512 b3e0445b5774b282b465275727e7bf3df1cfb6d7f487030e44ea7e0f29b8e928c8999aade574e30fcaf809104f73523e905c6e4aff092ab3ac74e680d9f5e1f2 WHIRLPOOL ae8f9131e1165c9f09528a29af18b5b9d90e9fb1b23454b1b93726315309845cb23c5569718aed9ad8b1a37cccf0ec3bf04929a425bd74d92a7e270eb308bbeb
|
||||
EBUILD nodejs-0.8.28.ebuild 2171 SHA256 a4e7c5f01b512fe25ccbe9d26001cf25125f8ec76ded0614e4c59d88b16bd845 SHA512 2be6a37150842a6f0b52a0ee29c7dbfbe9dca2c67affd21bee81a06a80436affba87d55b0e29009ca16979a373bdc6d773e6c786198edaebf8763717e33e7ac5 WHIRLPOOL 3cfb10d5c0e3e2ebebb3cd2ecf34365be2e7ffd3d5cf87d49ba654de9097b681fcb613fccacdba8f303dc72bc072353345f4e45ed5ac60582b7076664d8fefcf
|
||||
MISC ChangeLog 20174 SHA256 f9a0d3350849204387acda512b3b737f8123924eb98d691b4ac7729e70c4193e SHA512 561e9984052fb55fc378afe6f9aac37b1c0a65c0a954f55fe9a51fc25e766fdfc1627e8b287ccf51c6977f74c78121dc9e8f9fe77ff0d758334342bb51a994fd WHIRLPOOL 0f52f2e49c8542f6eaafc07a80469a6043b5fadf7629cf26cb9e1d9c6b427735c8e2004d5dd917ab9f4b527b25fdb5ba4e16a7ac34b1a5dd726d67b8440179d4
|
||||
MISC ChangeLog 20287 SHA256 8d09b0253de5f4ad7b976f18d03118994e280264af478329898359fda27fe8ab SHA512 5df84289dd9af214cc6381919a54d2c1bd508bb74629593197e61b2401011c6a0549585d0dd4bc8315e69dda45b37f1b2f70cc9ea2a03f5c4d40bf6e63bd0097 WHIRLPOOL 277b480fa1f66fd4da1b1746e062d6f5e9f112e0b4b5d9ee27a5c6916a4434dc123287d3867119046b31a4e292b54c7d1b43bede3afdcebfc880005189f0f024
|
||||
MISC metadata.xml 545 SHA256 ea98b41b3fe8288a7b38649098871f33c897916aaa34c718f8b849bc35d15c12 SHA512 f32b1eced5dada7827c10bb7b59986400d8dce58dc8c2c0b03d3acd0886b539d2c0afa7956c8a0d1b1ae1894eae31c520368c524bd4c7fb5930180fc8bc4b035 WHIRLPOOL f3fe5d3c70386787eae1cc856f7a57d775738096777074b50678f45ed7e5c9c2575c21a452e75d9a5d06245c85c17434593a7b3d0b5f0c4ec932fd3c7a8b84aa
|
||||
|
@ -0,0 +1,73 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/net-libs/nodejs/nodejs-0.10.32.ebuild,v 1.1 2014/09/17 10:58:05 patrick Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
# has known failures. sigh.
|
||||
RESTRICT="test"
|
||||
|
||||
PYTHON_COMPAT=( python2_{6,7} )
|
||||
|
||||
inherit python-any-r1 pax-utils toolchain-funcs
|
||||
|
||||
DESCRIPTION="Evented IO for V8 Javascript"
|
||||
HOMEPAGE="http://nodejs.org/"
|
||||
SRC_URI="http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz"
|
||||
|
||||
LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~x86 ~x64-macos"
|
||||
IUSE="+npm +snapshot"
|
||||
|
||||
RDEPEND="dev-libs/openssl"
|
||||
DEPEND="${PYTHON_DEPS}
|
||||
${RDEPEND}"
|
||||
|
||||
S=${WORKDIR}/node-v${PV}
|
||||
|
||||
src_prepare() {
|
||||
# fix compilation on Darwin
|
||||
# http://code.google.com/p/gyp/issues/detail?id=260
|
||||
sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
|
||||
|
||||
# make sure we use python2.* while using gyp
|
||||
sed -i -e "s/python/python2/" deps/npm/node_modules/node-gyp/gyp/gyp || die
|
||||
|
||||
# less verbose install output (stating the same as portage, basically)
|
||||
sed -i -e "/print/d" tools/install.py || die
|
||||
|
||||
tc-export CC CXX
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf=""
|
||||
! use npm && myconf="--without-npm"
|
||||
! use snapshot && myconf="${myconf} --without-snapshot"
|
||||
|
||||
"${PYTHON}" configure --prefix="${EPREFIX}"/usr \
|
||||
--shared-openssl --shared-zlib --without-dtrace ${myconf} || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local V=1
|
||||
export V
|
||||
emake out/Makefile
|
||||
emake -C out mksnapshot
|
||||
pax-mark m out/Release/mksnapshot
|
||||
emake
|
||||
}
|
||||
|
||||
src_install() {
|
||||
"${PYTHON}" tools/install.py install "${D}"
|
||||
|
||||
use npm && dohtml -r "${ED}"/usr/lib/node_modules/npm/html/*
|
||||
rm -rf "${ED}"/usr/lib/node_modules/npm/doc "${ED}"/usr/lib/node_modules/npm/html
|
||||
rm -rf "${ED}"/usr/lib/dtrace
|
||||
|
||||
pax-mark -m "${ED}"/usr/bin/node
|
||||
}
|
||||
|
||||
src_test() {
|
||||
"${PYTHON}" tools/test.py --mode=release simple message || die
|
||||
}
|
Loading…
Reference in new issue