diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-libs/mediastreamer | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-libs/mediastreamer')
19 files changed, 1644 insertions, 0 deletions
diff --git a/media-libs/mediastreamer/Manifest b/media-libs/mediastreamer/Manifest new file mode 100644 index 000000000000..9d6af71e067a --- /dev/null +++ b/media-libs/mediastreamer/Manifest @@ -0,0 +1,3 @@ +DIST mediastreamer-2.7.3.tar.gz 758146 SHA256 c3cbea285f1e85259b2ac06d3f1730b4258e280011598b91f5b90b8432bf1dc0 SHA512 f9ebfa12b1c760b5c24b5496466d92148a170ee2d522d9085db3fb72cc93f8e3e71ba1ae14f57d94a33b752450555c7d3ebf59267447203861247a8685e18259 WHIRLPOOL c1528bcca27c979ac29d6ccb6e32eac53ddd9e69d3f034056ad579d5ff6cd295c9224db6b841d6aa708e2c60251b192e85d6843342c14f8ead75d9f137c8d818 +DIST mediastreamer-2.8.2.tar.gz 882966 SHA256 a62ebb008913db6e03e27bd1ec30bb560ae4219da5255c0e91853b5e894a4f33 SHA512 2041d9fbba0f831aea6bdd3259b21742a37cfdbdf473b0bc4f20bd730371395ddf2866804ae496e9864adf5fcd0d24e03193d5d8feadd54e6ff0b3adda01ff60 WHIRLPOOL cecd47766dff3df76271b3209f7f967a00165861283c34633361a07bf8a416e63d5c5c6dd364a1558f1f865803eaf4a1888bd3bcf42cb0e159b12107045b61ab +DIST mediastreamer-2.9.0.tar.gz 3578877 SHA256 c245b9444c2abb4c84433606e01f0b3ce29ce78de0afe1e191f4f3c62656acd5 SHA512 8c31ab07c659dce84c410dfb5814b6cdf3defcd4055814922f58e2886bfeecfd5bab294c408858a29e72fcf53f35a1f7748113e1f2863baa329daedae07ef2f0 WHIRLPOOL 9e425ff2e461ceb6dae3890e6bd8035de65f5b3fd0590e01b75259c0d27dd54cfd37cb88d43752c2903c954ac44e353e4ed63588d3f08ec690da77293a31ba68 diff --git a/media-libs/mediastreamer/files/mediastreamer-2.7.3-ffmpeg-0.11.patch b/media-libs/mediastreamer/files/mediastreamer-2.7.3-ffmpeg-0.11.patch new file mode 100644 index 000000000000..c242b5fe139c --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.7.3-ffmpeg-0.11.patch @@ -0,0 +1,94 @@ +Fix build with recent ffmpeg releases. +https://bugs.gentoo.org/show_bug.cgi?id=419453 + +Index: mediastreamer-2.7.3/src/videoenc.c +=================================================================== +--- mediastreamer-2.7.3.orig/src/videoenc.c ++++ mediastreamer-2.7.3/src/videoenc.c +@@ -53,7 +53,6 @@ void ms_ffmpeg_log_callback(void* ptr, i + + void ms_ffmpeg_check_init(){ + if(!avcodec_initialized){ +- avcodec_init(); + avcodec_register_all(); + avcodec_initialized=TRUE; + #ifdef ENABLE_LOG_FFMPEG +@@ -107,6 +106,7 @@ typedef struct EncState{ + uint32_t framenum; + VideoStarter starter; + bool_t req_vfu; ++ AVDictionary * ff_opts; + }EncState; + + static int enc_set_fps(MSFilter *f, void *arg){ +@@ -214,6 +214,7 @@ static void enc_init(MSFilter *f, enum C + s->req_vfu=FALSE; + s->framenum=0; + s->av_context.codec=NULL; ++ s->ff_opts = NULL; + } + + static void enc_h263_init(MSFilter *f){ +@@ -300,9 +301,9 @@ static void prepare_h263(EncState *s){ + if (s->profile==0){ + s->codec=CODEC_ID_H263; + }else{ +- c->flags|=CODEC_FLAG_H263P_UMV; ++ av_dict_set(&(s->ff_opts), "umv", "1", 0); + c->flags|=CODEC_FLAG_AC_PRED; +- c->flags|=CODEC_FLAG_H263P_SLICE_STRUCT; ++ av_dict_set(&(s->ff_opts), "structured_slices", "1", 0); + /* + c->flags|=CODEC_FLAG_OBMC; + c->flags|=CODEC_FLAG_AC_PRED; +@@ -342,9 +343,9 @@ static void enc_preprocess(MSFilter *f){ + ms_error("could not find encoder for codec id %i",s->codec); + return; + } +- error=avcodec_open(&s->av_context, s->av_codec); ++ error=avcodec_open2(&s->av_context, s->av_codec, &(s->ff_opts)); + if (error!=0) { +- ms_error("avcodec_open() failed: %i",error); ++ ms_error("avcodec_open2() failed: %i",error); + return; + } + video_starter_init(&s->starter); +@@ -372,7 +373,7 @@ static void add_rfc2190_header(mblk_t ** + // assume video size is CIF or QCIF + if (context->width == 352 && context->height == 288) header->b_wptr[1] = 0x60; + else header->b_wptr[1] = 0x40; +- if (context->coded_frame->pict_type != FF_I_TYPE) header->b_wptr[1] |= 0x10; ++ if (context->coded_frame->pict_type != AV_PICTURE_TYPE_I) header->b_wptr[1] |= 0x10; + header->b_wptr += 4; + header->b_cont = *packet; + *packet = header; +@@ -779,7 +780,7 @@ static void process_frame(MSFilter *f, m + s->req_vfu=TRUE; + } + if (s->req_vfu){ +- pict.pict_type=FF_I_TYPE; ++ pict.pict_type=AV_PICTURE_TYPE_I; + s->req_vfu=FALSE; + } + comp_buf->b_rptr=comp_buf->b_wptr=comp_buf->b_datap->db_base; +@@ -799,7 +800,7 @@ static void process_frame(MSFilter *f, m + if (s->framenum==1){ + video_starter_first_frame (&s->starter,f->ticker->time); + } +- if (c->coded_frame->pict_type==FF_I_TYPE){ ++ if (c->coded_frame->pict_type==AV_PICTURE_TYPE_I){ + ms_message("Emitting I-frame"); + } + comp_buf->b_wptr+=error; +Index: mediastreamer-2.7.3/src/h264dec.c +=================================================================== +--- mediastreamer-2.7.3.orig/src/h264dec.c ++++ mediastreamer-2.7.3/src/h264dec.c +@@ -46,7 +46,6 @@ typedef struct _DecData{ + static void ffmpeg_init(){ + static bool_t done=FALSE; + if (!done){ +- avcodec_init(); + avcodec_register_all(); + done=TRUE; + } diff --git a/media-libs/mediastreamer/files/mediastreamer-2.7.3-sdl-build.patch b/media-libs/mediastreamer/files/mediastreamer-2.7.3-sdl-build.patch new file mode 100644 index 000000000000..2f7207e27ab0 --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.7.3-sdl-build.patch @@ -0,0 +1,220 @@ +commit c0ae6c3f9f78ae9e9e4c7030e7054dc5c0267e2c +Author: Simon Morlat <simon.morlat@linphone.org> +Date: Mon Apr 11 22:46:37 2011 +0200 + + fix SDL output that wasn't compiling anymore and bugfix videodisplay test program + +diff --git a/src/msfilter.c b/src/msfilter.c +index d8d84f3..4b84b8b 100644 +--- a/src/msfilter.c ++++ b/src/msfilter.c +@@ -169,9 +169,7 @@ int ms_filter_link(MSFilter *f1, int pin1, MSFilter *f2, int pin2){ + + int ms_filter_unlink(MSFilter *f1, int pin1, MSFilter *f2, int pin2){ + MSQueue *q; +- ms_return_val_if_fail(f1, -1); +- ms_return_val_if_fail(f2, -1); +- ms_message("ms_filter_unlink: %s:%p,%i-->%s:%p,%i",f1->desc->name,f1,pin1,f2->desc->name,f2,pin2); ++ ms_message("ms_filter_unlink: %s:%p,%i-->%s:%p,%i",f1 ? f1->desc->name : "!NULL!",f1,pin1,f2 ? f2->desc->name : "!NULL!",f2,pin2); + ms_return_val_if_fail(pin1<f1->desc->noutputs, -1); + ms_return_val_if_fail(pin2<f2->desc->ninputs, -1); + ms_return_val_if_fail(f1->outputs[pin1]!=NULL,-1); +diff --git a/src/videoout.c b/src/videoout.c +index ca36b0f..5bdc6dd 100644 +--- a/src/videoout.c ++++ b/src/videoout.c +@@ -114,8 +114,6 @@ void ms_display_destroy(MSDisplay *d); + } + #endif + +-#include "ffmpeg-priv.h" +- + #define SCALE_FACTOR 4.0f + #define SELVIEW_POS_INACTIVE -100.0 + +@@ -462,7 +460,7 @@ void ms_display_desc_set_default_window_id(MSDisplayDesc *desc, long id){ + + typedef struct VideoOut + { +- AVRational ratio; ++ struct Rational {int num; int den;} ratio; + MSPicture fbuf; + MSPicture fbuf_selfview; + MSPicture local_pic; +@@ -474,8 +472,8 @@ typedef struct VideoOut + float sv_posx,sv_posy; + int background_color[3]; + +- struct ms_SwsContext *sws1; +- struct ms_SwsContext *sws2; ++ MSScalerContext *sws1; ++ MSScalerContext *sws2; + MSDisplay *display; + bool_t own_display; + bool_t ready; +@@ -552,11 +550,11 @@ static void video_out_uninit(MSFilter *f){ + if (obj->display!=NULL && obj->own_display) + ms_display_destroy(obj->display); + if (obj->sws1!=NULL){ +- ms_sws_freeContext(obj->sws1); ++ ms_scaler_context_free(obj->sws1); + obj->sws1=NULL; + } + if (obj->sws2!=NULL){ +- ms_sws_freeContext(obj->sws2); ++ ms_scaler_context_free(obj->sws2); + obj->sws2=NULL; + } + if (obj->local_msg!=NULL) { +@@ -581,11 +579,11 @@ static void video_out_prepare(MSFilter *f){ + obj->display=NULL; + } + if (obj->sws1!=NULL){ +- ms_sws_freeContext(obj->sws1); ++ ms_scaler_context_free(obj->sws1); + obj->sws1=NULL; + } + if (obj->sws2!=NULL){ +- ms_sws_freeContext(obj->sws2); ++ ms_scaler_context_free(obj->sws2); + obj->sws2=NULL; + } + if (obj->local_msg!=NULL) { +@@ -665,13 +663,12 @@ static void video_out_process(MSFilter *f){ + if (ms_yuv_buf_init_from_mblk(&src,inm)==0){ + + if (obj->sws2==NULL){ +- obj->sws2=ms_sws_getContext(src.w,src.h,PIX_FMT_YUV420P, +- obj->fbuf_selfview.w,obj->fbuf_selfview.h,PIX_FMT_YUV420P, +- SWS_FAST_BILINEAR, NULL, NULL, NULL); ++ obj->sws2=ms_scaler_create_context(src.w,src.h,MS_YUV420P, ++ obj->fbuf_selfview.w,obj->fbuf_selfview.h,MS_YUV420P, ++ MS_SCALER_METHOD_BILINEAR); + } + ms_display_lock(obj->display); +- if (ms_sws_scale(obj->sws2,src.planes,src.strides, 0, +- src.h, obj->fbuf_selfview.planes, obj->fbuf_selfview.strides)<0){ ++ if (ms_scaler_process(obj->sws2,src.planes,src.strides,obj->fbuf_selfview.planes, obj->fbuf_selfview.strides)<0){ + ms_error("Error in ms_sws_scale()."); + } + if (!mblk_get_precious_flag(inm)) ms_yuv_buf_mirror(&obj->fbuf_selfview); +@@ -683,9 +680,9 @@ static void video_out_process(MSFilter *f){ + if (ms_yuv_buf_init_from_mblk(&src,inm)==0){ + + if (obj->sws2==NULL){ +- obj->sws2=ms_sws_getContext(src.w,src.h,PIX_FMT_YUV420P, +- obj->local_pic.w,obj->local_pic.h,PIX_FMT_YUV420P, +- SWS_FAST_BILINEAR, NULL, NULL, NULL); ++ obj->sws2=ms_scaler_create_context(src.w,src.h,MS_YUV420P, ++ obj->local_pic.w,obj->local_pic.h,MS_YUV420P, ++ MS_SCALER_METHOD_BILINEAR); + } + if (obj->local_msg==NULL){ + obj->local_msg=ms_yuv_buf_alloc(&obj->local_pic, +@@ -693,8 +690,7 @@ static void video_out_process(MSFilter *f){ + } + if (obj->local_pic.planes[0]!=NULL) + { +- if (ms_sws_scale(obj->sws2,src.planes,src.strides, 0, +- src.h, obj->local_pic.planes, obj->local_pic.strides)<0){ ++ if (ms_scaler_process(obj->sws2,src.planes,src.strides,obj->local_pic.planes, obj->local_pic.strides)<0){ + ms_error("Error in ms_sws_scale()."); + } + if (!mblk_get_precious_flag(inm)) ms_yuv_buf_mirror(&obj->local_pic); +@@ -731,13 +727,12 @@ static void video_out_process(MSFilter *f){ + } + } + if (obj->sws1==NULL){ +- obj->sws1=ms_sws_getContext(src.w,src.h,PIX_FMT_YUV420P, +- obj->fbuf.w,obj->fbuf.h,PIX_FMT_YUV420P, +- SWS_FAST_BILINEAR, NULL, NULL, NULL); ++ obj->sws1=ms_scaler_create_context(src.w,src.h,MS_YUV420P, ++ obj->fbuf.w,obj->fbuf.h,MS_YUV420P, ++ MS_SCALER_METHOD_BILINEAR); + } + ms_display_lock(obj->display); +- if (ms_sws_scale(obj->sws1,src.planes,src.strides, 0, +- src.h, obj->fbuf.planes, obj->fbuf.strides)<0){ ++ if (ms_scaler_process(obj->sws1,src.planes,src.strides,obj->fbuf.planes, obj->fbuf.strides)<0){ + ms_error("Error in ms_sws_scale()."); + } + if (obj->mirror && !mblk_get_precious_flag(inm)) ms_yuv_buf_mirror(&obj->fbuf); +@@ -943,3 +938,4 @@ MSFilterDesc ms_video_out_desc={ + + + MS_FILTER_DESC_EXPORT(ms_video_out_desc) ++ +diff --git a/tests/videodisplay.c b/tests/videodisplay.c +index 76f67a5..0828c6a 100644 +--- a/tests/videodisplay.c ++++ b/tests/videodisplay.c +@@ -52,6 +52,7 @@ int main(int argc, char *argv[]){ + for(i=0;i<1;++i){ + int n; + vs=video_preview_new(); ++ /*video_preview_set_display_filter_name(vs,"MSVideoOut");*/ + video_preview_set_size(vs,vsize); + video_preview_start(vs, cam); + +@@ -79,11 +80,11 @@ int main(int argc, char *argv[]){ + + vs->tee = ms_filter_new(MS_TEE_ID); + +- ms_filter_unlink(vs->pixconv,0, vs->output,0); ++ ms_filter_unlink(vs->pixconv,0, vs->output2,0); + + ms_filter_link(vs->pixconv,0,vs->tee,0); +- ms_filter_link(vs->tee,0,vs->output,0); +- ms_filter_link(vs->tee,1,vs->output,1); ++ ms_filter_link(vs->tee,0,vs->output2,0); ++ ms_filter_link(vs->tee,1,vs->output2,1); + + //ms_filter_unlink(vs->tee,0,vs->output,0); + ms_ticker_attach (vs->ticker, vs->source); +@@ -92,34 +93,34 @@ int main(int argc, char *argv[]){ + if (n==500) + { + int corner=1; +- ms_filter_call_method(vs->output,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); ++ ms_filter_call_method(vs->output2,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); + } + if (n==600) + { + int corner=2; +- ms_filter_call_method(vs->output,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); ++ ms_filter_call_method(vs->output2,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); + } + if (n==700) + { + int corner=3; +- ms_filter_call_method(vs->output,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); ++ ms_filter_call_method(vs->output2,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); + } + if (n==800) + { + int corner=-1; +- ms_filter_call_method(vs->output,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); ++ ms_filter_call_method(vs->output2,MS_VIDEO_DISPLAY_SET_LOCAL_VIEW_MODE,&corner); + } + if (n==900) + { + ms_ticker_detach (vs->ticker, vs->source); + + ms_filter_unlink(vs->pixconv,0,vs->tee,0); +- ms_filter_unlink(vs->tee,0,vs->output,0); +- ms_filter_unlink(vs->tee,1,vs->output,1); ++ ms_filter_unlink(vs->tee,0,vs->output2,0); ++ ms_filter_unlink(vs->tee,1,vs->output2,1); + ms_filter_destroy(vs->tee); + vs->tee=NULL; + +- ms_filter_link(vs->pixconv,0, vs->output,0); ++ ms_filter_link(vs->pixconv,0, vs->output2,0); + + + ms_ticker_attach (vs->ticker, vs->source); +@@ -129,3 +130,4 @@ int main(int argc, char *argv[]){ + } + return 0; + } ++ diff --git a/media-libs/mediastreamer/files/mediastreamer-2.7.3-v4l-automagic.patch b/media-libs/mediastreamer/files/mediastreamer-2.7.3-v4l-automagic.patch new file mode 100644 index 000000000000..d103a07fd9af --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.7.3-v4l-automagic.patch @@ -0,0 +1,40 @@ +=== modified file 'configure.ac' +--- configure.ac 2011-04-09 08:17:33 +0000 ++++ configure.ac 2011-04-09 08:31:18 +0000 +@@ -590,6 +590,15 @@ + AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${package_prefix}/share" ,[path of data]) + AC_SUBST(PACKAGE_DATA_DIR) + ++AC_ARG_ENABLE(v4l, ++ [ --disable-v4l Disable usage of v4l], ++ [case "${enableval}" in ++ yes) v4l=yes ;; ++ no) v4l=no ;; ++ *) AC_MSG_ERROR(bad value ${enableval} for --disable-v4l) ;; ++ esac],[v4l=yes]) ++ ++if test "$v4l" = "yes" ; then + dnl check for video4linux headers + AC_CHECK_HEADERS(linux/videodev.h linux/videodev2.h) + if test "${ac_cv_header_linux_videodev_h}" = "yes" || \ +@@ -599,8 +608,6 @@ + found_v4l=no + fi + +-AM_CONDITIONAL(BUILD_V4L, test x$found_v4l = xyes ) +- + AC_ARG_ENABLE(libv4l, + [ --disable-libv4l Disable usage of libv4l, really discouraged], + [case "${enableval}" in +@@ -632,6 +639,10 @@ + ]) + fi + fi ++fi ++ ++AM_CONDITIONAL(BUILD_V4L, test x$found_v4l = xyes ) ++ + + dnl ################################################## + dnl # Check for doxygen + diff --git a/media-libs/mediastreamer/files/mediastreamer-2.7.3-videoenc_282.patch b/media-libs/mediastreamer/files/mediastreamer-2.7.3-videoenc_282.patch new file mode 100644 index 000000000000..66d055ede084 --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.7.3-videoenc_282.patch @@ -0,0 +1,130 @@ +Update videoenc.c to the 2.8.2 version. Fixes some but not all problems with +ffmpeg. + + +--- mediastreamer-2.7.3/src/videoenc.c 2010-12-17 05:59:50.000000000 -0300 ++++ mediastreamer-2.8.2/src/videoenc.c 2012-02-17 06:16:20.000000000 -0300 +@@ -164,6 +164,7 @@ + }else{ + ms_warning("unsupported video size %s",tmp); + ret=FALSE; ++ goto end; + } + divider=atoi(equal+1); + if (divider!=0){ +@@ -174,6 +175,8 @@ + ret=FALSE; + } + }else ret=FALSE; ++ ++end: + ms_free(tmp); + return ret; + } +@@ -231,11 +234,7 @@ + + static void prepare(EncState *s){ + AVCodecContext *c=&s->av_context; +-#ifdef ANDROID + const int max_br_vbv=128000; +-#else +- const int max_br_vbv=256000; +-#endif + + avcodec_get_context_defaults(c); + if (s->codec==CODEC_ID_MJPEG) +@@ -315,13 +314,6 @@ + static void prepare_mpeg4(EncState *s){ + AVCodecContext *c=&s->av_context; + c->max_b_frames=0; /*don't use b frames*/ +- c->flags|=CODEC_FLAG_AC_PRED; +- c->flags|=CODEC_FLAG_H263P_UMV; +- /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */ +- c->flags|=CODEC_FLAG_4MV; +- c->flags|=CODEC_FLAG_GMC; +- c->flags|=CODEC_FLAG_LOOP_FILTER; +- c->flags|=CODEC_FLAG_H263P_SLICE_STRUCT; + } + + static void enc_uninit(MSFilter *f){ +@@ -681,7 +673,7 @@ + uint8_t *pbuf_ptr=full_frame->b_rptr; + uint8_t *buf_end=full_frame->b_wptr; + +- ms_message("image size: %i)", buf_end-pbuf_ptr); ++ ms_message("image size: %li)", (long)(buf_end-pbuf_ptr)); + + *lqt=NULL; + *cqt=NULL; +@@ -689,7 +681,7 @@ + err = find_marker(&pbuf_ptr, buf_end); + while (err!=-1) + { +- ms_message("marker found: %x (offset from beginning%i)", err, pbuf_ptr-full_frame->b_rptr); ++ ms_message("marker found: %x (offset from beginning %li)", err, (long)(pbuf_ptr-full_frame->b_rptr)); + if (err==0xdb) + { + /* copy DQT table */ +@@ -772,10 +764,12 @@ + int error; + mblk_t *comp_buf=s->comp_buf; + int comp_buf_sz=comp_buf->b_datap->db_lim-comp_buf->b_datap->db_base; ++ YuvBuf yuv; + ++ ms_yuv_buf_init_from_mblk(&yuv, inm); + /* convert image if necessary */ + avcodec_get_frame_defaults(&pict); +- avpicture_fill((AVPicture*)&pict,(uint8_t*)inm->b_rptr,c->pix_fmt,c->width,c->height); ++ avpicture_fill((AVPicture*)&pict,yuv.planes[0],c->pix_fmt,c->width,c->height); + + /* timestamp used by ffmpeg, unset here */ + pict.pts=AV_NOPTS_VALUE; +@@ -796,7 +790,9 @@ + comp_buf->b_wptr+=4; + comp_buf_sz-=4; + } ++ + error=avcodec_encode_video(c, (uint8_t*)comp_buf->b_wptr,comp_buf_sz, &pict); ++ + if (error<=0) ms_warning("ms_AVencoder_process: error %i.",error); + else{ + s->framenum++; +@@ -837,6 +833,14 @@ + EncState *s=(EncState*)f->data; + bool_t snow=s->codec==CODEC_ID_SNOW; + s->maxbr=*(int*)arg; ++ if (s->av_context.codec!=NULL){ ++ /*when we are processing, apply new settings immediately*/ ++ ms_filter_lock(f); ++ enc_postprocess(f); ++ enc_preprocess(f); ++ ms_filter_unlock(f); ++ return 0; ++ } + if (s->maxbr>=1024000 && s->codec!=CODEC_ID_H263P){ + s->vsize.width = MS_VIDEO_SIZE_SVGA_W; + s->vsize.height = MS_VIDEO_SIZE_SVGA_H; +@@ -854,7 +858,7 @@ + s->vsize.height=MS_VIDEO_SIZE_CIF_H; + s->fps=17; + s->qmin=3; +- }else if (s->maxbr>=170000){ ++ }else if (s->maxbr>=170000 && s->codec!=CODEC_ID_H263P && s->codec!=CODEC_ID_H263){ + s->vsize.width=MS_VIDEO_SIZE_QVGA_W; + s->vsize.height=MS_VIDEO_SIZE_QVGA_H; + s->fps=15; +@@ -875,14 +879,6 @@ + s->fps=5; + s->qmin=5; + } +- +- if (s->av_context.codec!=NULL){ +- /*apply new settings dynamically*/ +- ms_filter_lock(f); +- enc_postprocess(f); +- enc_preprocess(f); +- ms_filter_unlock(f); +- } + return 0; + } + diff --git a/media-libs/mediastreamer/files/mediastreamer-2.8.2-autopoint.patch b/media-libs/mediastreamer/files/mediastreamer-2.8.2-autopoint.patch new file mode 100644 index 000000000000..5704234af060 --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.8.2-autopoint.patch @@ -0,0 +1,17 @@ +--- mediastreamer-2.8.2/configure.ac.orig 2012-06-01 16:31:34.000000000 +0400 ++++ mediastreamer-2.8.2/configure.ac 2012-06-01 16:36:08.586809086 +0400 +@@ -191,13 +191,13 @@ + if test "$mingw_found" != "yes" ; then + dnl gettext macro does not work properly under mingw. And we want to use the one provided by GTK. + AM_GNU_GETTEXT([external]) +- AM_GNU_GETTEXT_VERSION([0.18]) + LIBS="$LIBS $LIBINTL" + else + AC_DEFINE(ENABLE_NLS,1,[Tells whether localisation is possible]) + AC_DEFINE(HAVE_GETTEXT,1,[Tells wheter localisation is possible]) + LIBS="$LIBS -lintl" + fi ++AM_GNU_GETTEXT_VERSION([0.18]) + + AM_CONDITIONAL(BUILD_MACOSX, test x$macosx_found = xyes) + AM_CONDITIONAL(BUILD_IOS, test x$ios_found = xyes) diff --git a/media-libs/mediastreamer/files/mediastreamer-2.8.2-ffmpeg-1.0.patch b/media-libs/mediastreamer/files/mediastreamer-2.8.2-ffmpeg-1.0.patch new file mode 100644 index 000000000000..293e6e78dcab --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.8.2-ffmpeg-1.0.patch @@ -0,0 +1,59 @@ +https://bugs.gentoo.org/show_bug.cgi?id=445168 + +commit f586917ea4d66f9ba8910f0967a8830e54d50784 +Author: Yann Diorcet <yann.diorcet@belledonne-communications.com> +Date: Tue Jun 5 11:07:48 2012 +0200 + + Fixes for new versions of ffmpeg + +diff --git a/src/h264dec.c b/src/h264dec.c +index c4a84ee..5229b5e 100644 +--- a/src/h264dec.c ++++ b/src/h264dec.c +@@ -45,7 +45,9 @@ typedef struct _DecData{ + static void ffmpeg_init(){ + static bool_t done=FALSE; + if (!done){ ++#ifdef FF_API_AVCODEC_INIT + avcodec_init(); ++#endif + avcodec_register_all(); + done=TRUE; + } +diff --git a/src/videoenc.c b/src/videoenc.c +index 21d016f..fb35760 100644 +--- a/src/videoenc.c ++++ b/src/videoenc.c +@@ -39,6 +39,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + static bool_t avcodec_initialized=FALSE; + ++#ifndef FF_I_TYPE ++#define FF_I_TYPE AV_PICTURE_TYPE_I ++#endif ++ + #ifdef ENABLE_LOG_FFMPEG + + void ms_ffmpeg_log_callback(void* ptr, int level, const char* fmt, va_list vl) +@@ -53,7 +57,9 @@ void ms_ffmpeg_log_callback(void* ptr, int level, const char* fmt, va_list vl) + + void ms_ffmpeg_check_init(){ + if(!avcodec_initialized){ ++#ifdef FF_API_AVCODEC_INIT + avcodec_init(); ++#endif + avcodec_register_all(); + avcodec_initialized=TRUE; + #ifdef ENABLE_LOG_FFMPEG +@@ -300,10 +306,10 @@ static void prepare_h263(EncState *s){ + if (s->profile==0){ + s->codec=CODEC_ID_H263; + }else{ ++ /* + c->flags|=CODEC_FLAG_H263P_UMV; + c->flags|=CODEC_FLAG_AC_PRED; + c->flags|=CODEC_FLAG_H263P_SLICE_STRUCT; +- /* + c->flags|=CODEC_FLAG_OBMC; + c->flags|=CODEC_FLAG_AC_PRED; + */ diff --git a/media-libs/mediastreamer/files/mediastreamer-2.8.2-libav9.patch b/media-libs/mediastreamer/files/mediastreamer-2.8.2-libav9.patch new file mode 100644 index 000000000000..0b335e282cfd --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.8.2-libav9.patch @@ -0,0 +1,115 @@ +diff -urb mediastreamer-2.8.2.old/src/h264dec.c mediastreamer-2.8.2/src/h264dec.c +--- mediastreamer-2.8.2.old/src/h264dec.c 2013-06-22 19:13:24.649838347 +0200 ++++ mediastreamer-2.8.2/src/h264dec.c 2013-06-22 19:20:52.044822431 +0200 +@@ -55,10 +55,10 @@ + int error; + codec=avcodec_find_decoder(CODEC_ID_H264); + if (codec==NULL) ms_fatal("Could not find H264 decoder in ffmpeg."); +- avcodec_get_context_defaults(&d->av_context); +- error=avcodec_open(&d->av_context,codec); ++ avcodec_get_context_defaults3(&d->av_context, NULL); ++ error=avcodec_open2(&d->av_context,codec, NULL); + if (error!=0){ +- ms_fatal("avcodec_open() failed."); ++ ms_fatal("avcodec_open2() failed."); + } + } + +diff -urb mediastreamer-2.8.2.old/src/jpegwriter.c mediastreamer-2.8.2/src/jpegwriter.c +--- mediastreamer-2.8.2.old/src/jpegwriter.c 2013-06-22 19:13:24.649838347 +0200 ++++ mediastreamer-2.8.2/src/jpegwriter.c 2013-06-22 19:17:57.087828655 +0200 +@@ -90,7 +90,7 @@ + mblk_t *jpegm; + struct SwsContext *sws_ctx; + +- AVCodecContext *avctx=avcodec_alloc_context(); ++ AVCodecContext *avctx=avcodec_alloc_context3(NULL); + + avctx->width=yuvbuf.w; + avctx->height=yuvbuf.h; +@@ -98,9 +98,9 @@ + avctx->time_base.den =1; + avctx->pix_fmt=PIX_FMT_YUVJ420P; + +- error=avcodec_open(avctx,s->codec); ++ error=avcodec_open2(avctx,s->codec,NULL); + if (error!=0) { +- ms_error("avcodec_open() failed: %i",error); ++ ms_error("avcodec_open2() failed: %i",error); + cleanup(s,NULL); + av_free(avctx); + return; +diff -urb mediastreamer-2.8.2.old/src/nowebcam.c mediastreamer-2.8.2/src/nowebcam.c +--- mediastreamer-2.8.2.old/src/nowebcam.c 2013-06-22 19:13:24.652838347 +0200 ++++ mediastreamer-2.8.2/src/nowebcam.c 2013-06-22 19:20:43.198822745 +0200 +@@ -68,9 +68,9 @@ + return NULL; + } + +- avcodec_get_context_defaults(&av_context); +- if (avcodec_open(&av_context,codec)<0){ +- ms_error("jpeg2yuv: avcodec_open failed"); ++ avcodec_get_context_defaults3(&av_context, NULL); ++ if (avcodec_open2(&av_context,codec,NULL)<0){ ++ ms_error("jpeg2yuv: avcodec_open2 failed"); + return NULL; + } + av_init_packet(&pkt); +diff -urb mediastreamer-2.8.2.old/src/videodec.c mediastreamer-2.8.2/src/videodec.c +--- mediastreamer-2.8.2.old/src/videodec.c 2013-06-22 19:13:24.654838347 +0200 ++++ mediastreamer-2.8.2/src/videodec.c 2013-06-22 19:28:58.436805127 +0200 +@@ -52,7 +52,7 @@ + DecState *s=(DecState *)ms_new0(DecState,1); + ms_ffmpeg_check_init(); + +- avcodec_get_context_defaults(&s->av_context); ++ avcodec_get_context_defaults3(&s->av_context, NULL); + s->av_codec=NULL; + s->codec=cid; + s->input=NULL; +@@ -133,8 +133,8 @@ + if (s->av_context.codec==NULL){ + /* we must know picture size before initializing snow decoder*/ + if (s->codec!=CODEC_ID_SNOW){ +- error=avcodec_open(&s->av_context, s->av_codec); +- if (error!=0) ms_error("avcodec_open() failed: %i",error); ++ error=avcodec_open2(&s->av_context, s->av_codec,NULL); ++ if (error!=0) ms_error("avcodec_open2() failed: %i",error); + if (s->codec==CODEC_ID_MPEG4 && s->dci_size>0){ + s->av_context.extradata=s->dci; + s->av_context.extradata_size=s->dci_size; +@@ -223,8 +223,8 @@ + int error; + s->av_context.width=h>>16; + s->av_context.height=h&0xffff; +- error=avcodec_open(&s->av_context, s->av_codec); +- if (error!=0) ms_error("avcodec_open() failed for snow: %i",error); ++ error=avcodec_open2(&s->av_context, s->av_codec, NULL); ++ if (error!=0) ms_error("avcodec_open2() failed for snow: %i",error); + else { + s->snow_initialized=TRUE; + ms_message("Snow decoder initialized,size=%ix%i", +diff -urb mediastreamer-2.8.2.old/src/videoenc.c mediastreamer-2.8.2/src/videoenc.c +--- mediastreamer-2.8.2.old/src/videoenc.c 2013-06-22 19:13:24.654838347 +0200 ++++ mediastreamer-2.8.2/src/videoenc.c 2013-06-22 19:20:19.732823580 +0200 +@@ -236,7 +236,7 @@ + AVCodecContext *c=&s->av_context; + const int max_br_vbv=128000; + +- avcodec_get_context_defaults(c); ++ avcodec_get_context_defaults3(c, NULL); + if (s->codec==CODEC_ID_MJPEG) + { + ms_message("Codec bitrate set to %i",c->bit_rate); +@@ -342,9 +342,9 @@ + ms_error("could not find encoder for codec id %i",s->codec); + return; + } +- error=avcodec_open(&s->av_context, s->av_codec); ++ error=avcodec_open2(&s->av_context, s->av_codec, NULL); + if (error!=0) { +- ms_error("avcodec_open() failed: %i",error); ++ ms_error("avcodec_open2() failed: %i",error); + return; + } + video_starter_init(&s->starter); diff --git a/media-libs/mediastreamer/files/mediastreamer-2.8.2-v4l-automagic.patch b/media-libs/mediastreamer/files/mediastreamer-2.8.2-v4l-automagic.patch new file mode 100644 index 000000000000..f35660ea8c0c --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.8.2-v4l-automagic.patch @@ -0,0 +1,54 @@ +From 93362c849d4a3ba1748d033369f76e93557f1c06 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Thu, 22 Nov 2012 15:02:21 +0100 +Subject: [PATCH] Support disabling V4L support completely. + +--- + mediastreamer-2.8.2/configure.ac | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/mediastreamer-2.8.2/configure.ac b/mediastreamer-2.8.2/configure.ac +index d5be955..86703a0 100644 +--- a/mediastreamer-2.8.2/configure.ac ++++ b/mediastreamer-2.8.2/configure.ac +@@ -624,6 +624,16 @@ PACKAGE_DATA_DIR="$prefix/share" + AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${package_prefix}/share" ,[path of data]) + AC_SUBST(PACKAGE_DATA_DIR) + ++AC_ARG_ENABLE(v4l, ++ [ --disable-v4l Disable usage of v4l], ++ [case "${enableval}" in ++ yes) v4l=yes ;; ++ no) v4l=no ;; ++ *) AC_MSG_ERROR(bad value ${enableval} for --disable-v4l) ;; ++ esac],[v4l=yes]) ++ ++if test "$v4l" = "yes" ; then ++ + dnl check for video4linux headers + AC_CHECK_HEADERS(linux/videodev.h linux/videodev2.h) + if test "${ac_cv_header_linux_videodev_h}" = "yes" ; then +@@ -637,9 +647,6 @@ else + found_v4l2=no + fi + +-AM_CONDITIONAL(BUILD_V4L1, test x$found_v4l1 = xyes ) +-AM_CONDITIONAL(BUILD_V4L2, test x$found_v4l2 = xyes ) +- + AC_ARG_ENABLE(libv4l1, + [ --disable-libv4l1 Disable usage of libv4l1, really discouraged], + [case "${enableval}" in +@@ -680,6 +687,10 @@ this check. + fi + fi + ++fi ++ ++AM_CONDITIONAL(BUILD_V4L1, test x$found_v4l1 = xyes ) ++AM_CONDITIONAL(BUILD_V4L2, test x$found_v4l2 = xyes ) + + AC_ARG_ENABLE(tests, + [ --enable-tests Disable compilation of tests], +-- +1.8.0 + diff --git a/media-libs/mediastreamer/files/mediastreamer-2.9.0-libav9.patch b/media-libs/mediastreamer/files/mediastreamer-2.9.0-libav9.patch new file mode 100644 index 000000000000..078f360b3382 --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.9.0-libav9.patch @@ -0,0 +1,120 @@ +diff --git a/src/videofilters/h264dec.c b/src/videofilters/h264dec.c +index 38881c1..f306723 100644 +--- a/src/videofilters/h264dec.c ++++ b/src/videofilters/h264dec.c +@@ -58,10 +58,10 @@ static void dec_open(DecData *d){ + int error; + codec=avcodec_find_decoder(CODEC_ID_H264); + if (codec==NULL) ms_fatal("Could not find H264 decoder in ffmpeg."); +- avcodec_get_context_defaults(&d->av_context); +- error=avcodec_open(&d->av_context,codec); ++ avcodec_get_context_defaults3(&d->av_context, NULL); ++ error=avcodec_open2(&d->av_context,codec, NULL); + if (error!=0){ +- ms_fatal("avcodec_open() failed."); ++ ms_fatal("avcodec_open2() failed."); + } + } + +diff --git a/src/videofilters/jpegwriter.c b/src/videofilters/jpegwriter.c +index 891f618..96f5d7f 100644 +--- a/src/videofilters/jpegwriter.c ++++ b/src/videofilters/jpegwriter.c +@@ -90,7 +90,7 @@ static void jpg_process(MSFilter *f){ + mblk_t *jpegm; + struct SwsContext *sws_ctx; + +- AVCodecContext *avctx=avcodec_alloc_context(); ++ AVCodecContext *avctx=avcodec_alloc_context3(NULL); + + avctx->width=yuvbuf.w; + avctx->height=yuvbuf.h; +@@ -98,9 +98,9 @@ static void jpg_process(MSFilter *f){ + avctx->time_base.den =1; + avctx->pix_fmt=PIX_FMT_YUVJ420P; + +- error=avcodec_open(avctx,s->codec); ++ error=avcodec_open2(avctx,s->codec,NULL); + if (error!=0) { +- ms_error("avcodec_open() failed: %i",error); ++ ms_error("avcodec_open2() failed: %i",error); + cleanup(s,NULL); + av_free(avctx); + return; +diff --git a/src/videofilters/nowebcam.c b/src/videofilters/nowebcam.c +index 60e3853..329c453 100644 +--- a/src/videofilters/nowebcam.c ++++ b/src/videofilters/nowebcam.c +@@ -68,9 +68,9 @@ static mblk_t *jpeg2yuv(uint8_t *jpgbuf, int bufsize, MSVideoSize *reqsize){ + return NULL; + } + +- avcodec_get_context_defaults(&av_context); +- if (avcodec_open(&av_context,codec)<0){ +- ms_error("jpeg2yuv: avcodec_open failed"); ++ avcodec_get_context_defaults3(&av_context, NULL); ++ if (avcodec_open2(&av_context,codec,NULL)<0){ ++ ms_error("jpeg2yuv: avcodec_open2 failed"); + return NULL; + } + av_init_packet(&pkt); +diff --git a/src/videofilters/videodec.c b/src/videofilters/videodec.c +index 494debf..c52e207 100644 +--- a/src/videofilters/videodec.c ++++ b/src/videofilters/videodec.c +@@ -53,7 +53,7 @@ static void dec_init(MSFilter *f, enum CodecID cid){ + DecState *s=(DecState *)ms_new0(DecState,1); + ms_ffmpeg_check_init(); + +- avcodec_get_context_defaults(&s->av_context); ++ avcodec_get_context_defaults3(&s->av_context, NULL); + s->av_codec=NULL; + s->codec=cid; + s->input=NULL; +@@ -135,8 +135,8 @@ static void dec_preprocess(MSFilter *f){ + if (s->av_context.codec==NULL){ + /* we must know picture size before initializing snow decoder*/ + if (s->codec!=CODEC_ID_SNOW){ +- error=avcodec_open(&s->av_context, s->av_codec); +- if (error!=0) ms_error("avcodec_open() failed: %i",error); ++ error=avcodec_open2(&s->av_context, s->av_codec,NULL); ++ if (error!=0) ms_error("avcodec_open2() failed: %i",error); + if (s->codec==CODEC_ID_MPEG4 && s->dci_size>0){ + s->av_context.extradata=s->dci; + s->av_context.extradata_size=s->dci_size; +@@ -225,8 +225,8 @@ static mblk_t * parse_snow_header(DecState *s,mblk_t *inm){ + int error; + s->av_context.width=h>>16; + s->av_context.height=h&0xffff; +- error=avcodec_open(&s->av_context, s->av_codec); +- if (error!=0) ms_error("avcodec_open() failed for snow: %i",error); ++ error=avcodec_open2(&s->av_context, s->av_codec, NULL); ++ if (error!=0) ms_error("avcodec_open2() failed for snow: %i",error); + else { + s->snow_initialized=TRUE; + ms_message("Snow decoder initialized,size=%ix%i", +diff --git a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c +index da35592..09dcc9d 100644 +--- a/src/videofilters/videoenc.c ++++ b/src/videofilters/videoenc.c +@@ -242,7 +242,7 @@ static void prepare(EncState *s){ + AVCodecContext *c=&s->av_context; + const int max_br_vbv=128000; + +- avcodec_get_context_defaults(c); ++ avcodec_get_context_defaults3(c, NULL); + if (s->codec==CODEC_ID_MJPEG) + { + ms_message("Codec bitrate set to %i",c->bit_rate); +@@ -348,9 +348,9 @@ static void enc_preprocess(MSFilter *f){ + ms_error("could not find encoder for codec id %i",s->codec); + return; + } +- error=avcodec_open(&s->av_context, s->av_codec); ++ error=avcodec_open2(&s->av_context, s->av_codec, NULL); + if (error!=0) { +- ms_error("avcodec_open() failed: %i",error); ++ ms_error("avcodec_open2() failed: %i",error); + return; + } + video_starter_init(&s->starter); diff --git a/media-libs/mediastreamer/files/mediastreamer-2.9.0-tests.patch b/media-libs/mediastreamer/files/mediastreamer-2.9.0-tests.patch new file mode 100644 index 000000000000..3bcb8bd36618 --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.9.0-tests.patch @@ -0,0 +1,26 @@ +From d9f448013bd5ea92ce42c99ef3338932ec694b62 Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@gentoo.org> +Date: Wed, 9 Oct 2013 21:18:28 +0200 +Subject: [PATCH] fix tests + +--- + configure.ac | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 4b923a9..4aec221 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -873,6 +873,9 @@ case "$target_os" in + #hack for macport + CUNIT_LIBS+=" -lncurses" + ;; ++ *linux*) ++ CUNIT_LIBS+=" -lncurses" ++ ;; + *mingw*) + CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x0501" + LIBS="$LIBS -lws2_32 -liphlpapi" +-- +1.8.3.2 + diff --git a/media-libs/mediastreamer/files/mediastreamer-2.9.0-underlinking.patch b/media-libs/mediastreamer/files/mediastreamer-2.9.0-underlinking.patch new file mode 100644 index 000000000000..19d6af803c2c --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.9.0-underlinking.patch @@ -0,0 +1,57 @@ +From 497ad9c27385c02f4f038b6e787ada9c7b6f8373 Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@gentoo.org> +Date: Wed, 9 Oct 2013 18:24:28 +0200 +Subject: [PATCH] fix underlinking + +--- + configure.ac | 20 ++++++++++++++++++++ + src/Makefile.am | 2 +- + 2 files changed, 21 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 9f402bd..4b923a9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -893,6 +893,26 @@ fi + + AM_CONDITIONAL(BUILD_TESTS,test x$found_cunit = xyes) + ++dnl Check for clock_gettime, in libc for FreeBSD, in rt for linux, ++dnl in rt for Solaris 7, in posix4 for Solaris 2.5.1 ++LIB_CLOCK_GETTIME= ++clk_saved_libs=$LIBS ++AC_SEARCH_LIBS([clock_gettime], [rt posix4], ++ [test "$ac_cv_search_clock_gettime" = "none required" || ++ LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime]) ++AC_SUBST([LIB_CLOCK_GETTIME]) ++ ++AC_MSG_CHECKING([for working clock_gettime]) ++AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], ++ [[clock_gettime(CLOCK_REALTIME, 0);]])], [gnupg_cv_clock_gettime=yes], [gnupg_cv_clock_gettime=no]) ++AC_MSG_RESULT($gnupg_cv_clock_gettime) ++ ++if test x"$gnupg_cv_clock_gettime" = xyes; then ++ AC_DEFINE([HAVE_CLOCK_GETTIME], 1, ++ [Define to 1 if you have the `clock_gettime' function.]) ++fi ++LIBS=$clk_saved_libs ++ + + dnl ################################################## + dnl # Check for doxygen +diff --git a/src/Makefile.am b/src/Makefile.am +index a315e92..a5e144c 100755 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -266,7 +266,7 @@ voipdescs.h: Makefile $(libmediastreamer_voip_la_SOURCES) + awk 'BEGIN { print("MSFilterDesc * ms_voip_filter_descs[]={") } { printf("&%s,\n",$$1) } END{ print("NULL\n};\n") } ' $$builddir/voipdescs.txt >> $$builddir/$@ + + +-libmediastreamer_base_la_LIBADD= $(ORTP_LIBS) ++libmediastreamer_base_la_LIBADD= $(ORTP_LIBS) @LIB_CLOCK_GETTIME@ + libmediastreamer_base_la_LDFLAGS= -no-undefined -version-info $(LIBMEDIASTREAMER_SO_VERSION) + + if !BUILD_WIN32 +-- +1.8.3.2 + diff --git a/media-libs/mediastreamer/files/mediastreamer-2.9.0-v4l-automagic.patch b/media-libs/mediastreamer/files/mediastreamer-2.9.0-v4l-automagic.patch new file mode 100644 index 000000000000..c590aef3b713 --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.9.0-v4l-automagic.patch @@ -0,0 +1,55 @@ +From b99ddff6f322c8b466f3cdfd71b0d629cea33aac Mon Sep 17 00:00:00 2001 +From: hasufell <hasufell@gentoo.org> +Date: Wed, 9 Oct 2013 18:12:46 +0200 +Subject: [PATCH] Support disabling V4L support completely + +--- + configure.ac | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 94b6f18..9f402bd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -746,6 +746,16 @@ PACKAGE_DATA_DIR="$prefix/share" + AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${package_prefix}/share" ,[path of data]) + AC_SUBST(PACKAGE_DATA_DIR) + ++AC_ARG_ENABLE(v4l, ++ [ --disable-v4l Disable usage of v4l], ++ [case "${enableval}" in ++ yes) v4l=yes ;; ++ no) v4l=no ;; ++ *) AC_MSG_ERROR(bad value ${enableval} for --disable-v4l) ;; ++ esac],[v4l=yes]) ++ ++if test "$v4l" = "yes" ; then ++ + dnl check for video4linux headers + AC_CHECK_HEADERS(linux/videodev.h linux/videodev2.h) + if test "${ac_cv_header_linux_videodev_h}" = "yes" ; then +@@ -759,9 +769,6 @@ else + found_v4l2=no + fi + +-AM_CONDITIONAL(BUILD_V4L1, test x$found_v4l1 = xyes ) +-AM_CONDITIONAL(BUILD_V4L2, test x$found_v4l2 = xyes ) +- + AC_ARG_ENABLE(libv4l1, + [AS_HELP_STRING([--disable-libv4l1], [Disable usage of libv4l1, really discouraged])], + [case "${enableval}" in +@@ -805,6 +812,11 @@ this check. + fi + fi + ++fi ++ ++AM_CONDITIONAL(BUILD_V4L1, test x$found_v4l1 = xyes ) ++AM_CONDITIONAL(BUILD_V4L2, test x$found_v4l2 = xyes ) ++ + + AC_PATH_PROG(PCAP,pcap-config,false) + AM_CONDITIONAL(HAVE_PCAP, test $PCAP != false) +-- +1.8.3.2 + diff --git a/media-libs/mediastreamer/files/mediastreamer-2.9.0-xxd.patch b/media-libs/mediastreamer/files/mediastreamer-2.9.0-xxd.patch new file mode 100644 index 000000000000..2337e1343002 --- /dev/null +++ b/media-libs/mediastreamer/files/mediastreamer-2.9.0-xxd.patch @@ -0,0 +1,18 @@ +From: Julian Ospald <hasufell@gentoo.org> +Date: Fri Oct 11 11:37:19 UTC 2013 +Subject: avoid dependency on vim-core + +--- mediastreamer-2.9.0/src/Makefile.am ++++ mediastreamer-2.9.0/src/Makefile.am +@@ -385,9 +385,9 @@ + yuv2rgb.fs.h: yuv2rgb.fs + builddir=`pwd` && \ + cd $(top_srcdir)/src && \ +- xxd -i yuv2rgb.fs | sed s/}\;/,0x00}\;/ > $$builddir/yuv2rgb.fs.h ++ xxdi.pl yuv2rgb.fs | sed s/}\;/0x00}\;/ > $$builddir/yuv2rgb.fs.h + + yuv2rgb.vs.h: yuv2rgb.vs + builddir=`pwd` && \ + cd $(top_srcdir)/src && \ +- xxd -i yuv2rgb.vs | sed s/}\;/,0x00}\;/ > $$builddir/yuv2rgb.vs.h ++ xxdi.pl yuv2rgb.vs | sed s/}\;/0x00}\;/ > $$builddir/yuv2rgb.vs.h diff --git a/media-libs/mediastreamer/mediastreamer-2.7.3-r3.ebuild b/media-libs/mediastreamer/mediastreamer-2.7.3-r3.ebuild new file mode 100644 index 000000000000..6fc51e252981 --- /dev/null +++ b/media-libs/mediastreamer/mediastreamer-2.7.3-r3.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit eutils autotools multilib + +DESCRIPTION="Mediastreaming library for telephony application" +HOMEPAGE="http://www.linphone.org/" +SRC_URI="mirror://nongnu/linphone/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc ppc64 x86 ~x64-macos ~x86-macos" +# Many cameras will not work or will crash an application if mediastreamer2 is +# not built with v4l2 support (taken from configure.ac) +# TODO: run-time test for ipv6: does it really need ortp[ipv6] ? +IUSE="+alsa amr bindist coreaudio debug examples gsm ilbc ipv6 jack oss portaudio +pulseaudio sdl +speex static-libs theora v4l video x264 X" +REQUIRED_USE="|| ( oss alsa jack portaudio coreaudio pulseaudio ) + video? ( || ( sdl X ) ) + theora? ( video ) + X? ( video ) + v4l? ( video )" + +RDEPEND=">=net-libs/ortp-0.16.2[ipv6?] + alsa? ( media-libs/alsa-lib ) + gsm? ( media-sound/gsm ) + jack? ( >=media-libs/libsamplerate-0.0.13 + media-sound/jack-audio-connection-kit ) + portaudio? ( media-libs/portaudio ) + pulseaudio? ( >=media-sound/pulseaudio-0.9.21 ) + speex? ( >=media-libs/speex-1.2_beta3 ) + video? ( + virtual/ffmpeg + v4l? ( media-libs/libv4l + sys-kernel/linux-headers ) + theora? ( media-libs/libtheora ) + sdl? ( media-libs/libsdl[video,X] ) + X? ( x11-libs/libX11 + x11-libs/libXv ) )" +DEPEND="${RDEPEND} + virtual/pkgconfig + x11-proto/videoproto" + +PDEPEND="amr? ( !bindist? ( media-plugins/mediastreamer-amr ) ) + ilbc? ( media-plugins/mediastreamer-ilbc ) + video? ( x264? ( media-plugins/mediastreamer-x264 ) )" + +DOCS=( AUTHORS ChangeLog NEWS README ) + +src_prepare() { + # respect user's CFLAGS + sed -i -e "s:-O2::;s: -g::" configure.ac || die "patching configure.ac failed" + + # change default paths + sed -i -e "s:\(\${prefix}/\)lib:\1$(get_libdir):" \ + -e "s:\(prefix/share\):\1/${PN}:" configure.ac \ + || die "patching configure.ac failed" + + # fix html doc installation dir + sed -i -e "s:\$(pkgdocdir):\$(docdir):" help/Makefile.am \ + || die "patching help/Makefile.am failed" + sed -i -e "s:\(doc_htmldir=\).*:\1\$(htmldir):" help/Makefile.am \ + || die "patching help/Makefile.am failed" + + epatch "${FILESDIR}/${PN}-2.7.3-v4l-automagic.patch" + epatch "${FILESDIR}/${P}-sdl-build.patch" + epatch "${FILESDIR}/${P}-videoenc_282.patch" + epatch "${FILESDIR}/${P}-ffmpeg-0.11.patch" + + # linux/videodev.h dropped in 2.6.38 + sed -i -e 's:msv4l.c::' src/Makefile.am || die + sed -i -e 's:linux/videodev.h ::' configure.ac || die + eautoreconf + + # don't build examples in tests/ + sed -i -e "s:\(SUBDIRS = .*\) tests \(.*\):\1 \2:" Makefile.in \ + || die "patching Makefile.in failed" +} + +src_configure() { + # Mac OS X Audio Queue is an audio recording facility, available on + # 10.5 (Leopard, Darwin9) and onward + local macaqsnd="--disable-macaqsnd" + if use coreaudio && [[ ${CHOST} == *-darwin* && ${CHOST##*-darwin} -ge 9 ]]; + then + macaqsnd="--enable-macaqsnd" + fi + + # strict: don't want -Werror + # external-ortp: don't use bundled libs + # arts: arts is deprecated + econf \ + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \ + --datadir="${EPREFIX}"/usr/share/${PN} \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + --disable-strict \ + --enable-external-ortp \ + --disable-artsc \ + $(use_enable alsa) \ + $(use_enable pulseaudio) \ + $(use_enable coreaudio macsnd) ${macaqsnd} \ + $(use_enable debug) \ + $(use_enable gsm) \ + $(use_enable ipv6) \ + $(use_enable jack) \ + $(use_enable oss) \ + $(use_enable portaudio) \ + $(use_enable speex) \ + $(use_enable static-libs static) \ + $(use_enable theora) \ + $(use_enable video) \ + $(use_enable v4l) \ + $(use_enable v4l libv4l) \ + $(use_enable sdl) \ + $(use_enable X x11) \ + $(use_enable X xv) +} + +src_install() { + default + find "${ED}" -name '*.la' -exec rm -f {} + + + if use examples; then + insinto /usr/share/doc/${PF}/examples + doins tests/*.c + fi +} diff --git a/media-libs/mediastreamer/mediastreamer-2.8.2.ebuild b/media-libs/mediastreamer/mediastreamer-2.8.2.ebuild new file mode 100644 index 000000000000..871398ead990 --- /dev/null +++ b/media-libs/mediastreamer/mediastreamer-2.8.2.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit autotools eutils multilib + +DESCRIPTION="Mediastreaming library for telephony application" +HOMEPAGE="http://www.linphone.org/" +SRC_URI="mirror://nongnu/linphone/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc ppc64 x86" +# Many cameras will not work or will crash an application if mediastreamer2 is +# not built with v4l2 support (taken from configure.ac) +# TODO: run-time test for ipv6: does it really need ortp[ipv6] ? +IUSE="+alsa amr bindist coreaudio debug doc examples g726 g729 gsm ilbc + ipv6 oss portaudio pulseaudio sdl silk +speex static-libs theora v4l + video x264 X" + +REQUIRED_USE="|| ( oss alsa portaudio coreaudio pulseaudio ) + video? ( || ( sdl X ) ) + theora? ( video ) + X? ( video ) + v4l? ( video )" + +RDEPEND=">=net-libs/ortp-0.17[ipv6?] + alsa? ( media-libs/alsa-lib ) + g726? ( >=media-libs/spandsp-0.0.6_pre1 ) + gsm? ( media-sound/gsm ) + portaudio? ( media-libs/portaudio ) + pulseaudio? ( >=media-sound/pulseaudio-0.9.21 ) + speex? ( >=media-libs/speex-1.2_beta3 ) + video? ( + virtual/ffmpeg + v4l? ( media-libs/libv4l + sys-kernel/linux-headers ) + theora? ( media-libs/libtheora ) + sdl? ( media-libs/libsdl[video,X] ) + X? ( x11-libs/libX11 + x11-libs/libXv ) )" +DEPEND="${RDEPEND} + dev-util/intltool + virtual/pkgconfig + x11-proto/videoproto + doc? ( app-doc/doxygen )" + +PDEPEND="amr? ( !bindist? ( media-plugins/mediastreamer-amr ) ) + g729? ( !bindist? ( media-plugins/mediastreamer-bcg729 ) ) + ilbc? ( media-plugins/mediastreamer-ilbc ) + video? ( x264? ( media-plugins/mediastreamer-x264 ) ) + silk? ( !bindist? ( media-plugins/mediastreamer-silk ) )" + +src_prepare() { + # respect user's CFLAGS + sed -i -e "s:-O2::;s: -g::" configure.ac || die "patching configure.ac failed" + + # change default paths + sed -i -e "s:\(\${prefix}/\)lib:\1$(get_libdir):" \ + -e "s:\(prefix/share\):\1/${PN}:" configure.ac \ + || die "patching configure.ac failed" + + # fix html doc installation dir + sed -i -e "s:\$(pkgdocdir):\$(docdir):" help/Makefile.am \ + || die "patching help/Makefile.am failed" + sed -i -e "s:\(doc_htmldir=\).*:\1\$(htmldir):" help/Makefile.am \ + || die "patching help/Makefile.am failed" + + epatch "${FILESDIR}/${P}-v4l-automagic.patch" \ + "${FILESDIR}/${P}-autopoint.patch" \ + "${FILESDIR}/${P}-ffmpeg-1.0.patch" \ + "${FILESDIR}/${P}-libav9.patch" + + # linux/videodev.h dropped in 2.6.38 + sed -i -e 's:linux/videodev.h ::' configure.ac || die + + # don't build examples in tests/ + sed -i -e "/SUBDIRS/s/ tests//" Makefile.in || die + + eautoreconf +} + +src_configure() { + local myeconfargs=( + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + --datadir="${EPREFIX}"/usr/share/${PN} + # arts is deprecated + --disable-artsc + # don't want -Werror + --disable-strict + --disable-libv4l1 + # don't use bundled libs + --enable-external-ortp + $(use_enable alsa) + $(use_enable pulseaudio) + $(use_enable coreaudio macsnd) + $(use_enable debug) + $(use_enable g726 spandsp ) + $(use_enable gsm) + $(use_enable ipv6) + $(use_enable oss) + $(use_enable portaudio) + $(use_enable speex) + $(use_enable static-libs static) + $(use_enable theora) + $(use_enable video) + $(use_enable v4l) + $(use_enable v4l libv4l2) + $(use_enable sdl) + $(use_enable X x11) + $(use_enable X xv) + + $(use doc || echo ac_cv_path_DOXYGEN=false) + ) + + # Mac OS X Audio Queue is an audio recording facility, available on + # 10.5 (Leopard, Darwin9) and onward + if use coreaudio && [[ ${CHOST} == *-darwin* && ${CHOST##*-darwin} -ge 9 ]] + then + myeconfargs+=( --enable-macaqsnd ) + else + myeconfargs+=( --disable-macaqsnd ) + fi + + econf "${myeconfargs[@]}" +} + +src_install() { + default + prune_libtool_files + + if use examples; then + insinto /usr/share/doc/${PF}/examples + doins tests/*.c + fi +} diff --git a/media-libs/mediastreamer/mediastreamer-2.9.0-r1.ebuild b/media-libs/mediastreamer/mediastreamer-2.9.0-r1.ebuild new file mode 100644 index 000000000000..71a94d12beb3 --- /dev/null +++ b/media-libs/mediastreamer/mediastreamer-2.9.0-r1.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit autotools eutils + +DESCRIPTION="Mediastreaming library for telephony application" +HOMEPAGE="http://www.linphone.org/" +SRC_URI="mirror://nongnu/linphone/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0/3" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +# Many cameras will not work or will crash an application if mediastreamer2 is +# not built with v4l2 support (taken from configure.ac) +# TODO: run-time test for ipv6: does it really need ortp[ipv6] ? +IUSE="+alsa amr bindist coreaudio debug doc examples +filters g726 g729 gsm ilbc + ipv6 libav ntp-timestamp opengl opus +ortp oss pcap portaudio pulseaudio sdl + silk +speex static-libs test theora upnp v4l video x264 X" + +REQUIRED_USE="|| ( oss alsa portaudio coreaudio pulseaudio ) + video? ( || ( opengl sdl X ) ) + theora? ( video ) + X? ( video ) + v4l? ( video ) + opengl? ( video )" + +RDEPEND="alsa? ( media-libs/alsa-lib ) + g726? ( >=media-libs/spandsp-0.0.6_pre1 ) + gsm? ( media-sound/gsm ) + opus? ( media-libs/opus ) + ortp? ( >=net-libs/ortp-0.21.0[ipv6?] ) + pcap? ( sys-libs/libcap ) + portaudio? ( media-libs/portaudio ) + pulseaudio? ( >=media-sound/pulseaudio-0.9.21 ) + speex? ( >=media-libs/speex-1.2_beta3 ) + upnp? ( net-libs/libupnp ) + video? ( + libav? ( >=media-video/libav-9.12:0= ) + !libav? ( >=media-video/ffmpeg-1.2.6-r1:0= ) + + opengl? ( media-libs/glew + virtual/opengl + x11-libs/libX11 ) + v4l? ( media-libs/libv4l + sys-kernel/linux-headers ) + theora? ( media-libs/libtheora ) + sdl? ( media-libs/libsdl[video,X] ) + X? ( x11-libs/libX11 + x11-libs/libXv ) )" +DEPEND="${RDEPEND} + dev-util/intltool + virtual/pkgconfig + doc? ( app-doc/doxygen ) + opengl? ( dev-util/xxdi ) + test? ( >=dev-util/cunit-2.1_p2[ncurses] ) + X? ( x11-proto/videoproto )" + +PDEPEND="amr? ( !bindist? ( media-plugins/mediastreamer-amr ) ) + g729? ( !bindist? ( media-plugins/mediastreamer-bcg729 ) ) + ilbc? ( media-plugins/mediastreamer-ilbc ) + video? ( x264? ( media-plugins/mediastreamer-x264 ) ) + silk? ( !bindist? ( media-plugins/mediastreamer-silk ) )" + +src_prepare() { + # variable causes "command not found" warning and is not + # needed anyway + sed -i \ + -e 's/$(ACLOCAL_MACOS_FLAGS)//' \ + Makefile.am || die + + # respect user's CFLAGS + sed -i \ + -e "s:-O2::;s: -g::" \ + configure.ac || die "patching configure.ac failed" + + # change default paths + sed -i \ + -e "s:\(prefix/share\):\1/${PN}:" \ + configure.ac || die "patching configure.ac failed" + + # fix doc installation dir + sed -i \ + -e "s:\$(pkgdocdir):\$(docdir):" \ + help/Makefile.am || die "patching help/Makefile.am failed" + + # fix html installation dir + sed -i \ + -e "s:\(doc_htmldir=\).*:\1\$(htmldir):" \ + help/Makefile.am || die "patching help/Makefile.am failed" + + # linux/videodev.h dropped in 2.6.38 + sed -i \ + -e 's:linux/videodev.h ::' \ + configure.ac || die + + epatch "${FILESDIR}/${P}-v4l-automagic.patch" \ + "${FILESDIR}/${P}-libav9.patch" \ + "${FILESDIR}/${P}-underlinking.patch" \ + "${FILESDIR}/${P}-tests.patch" \ + "${FILESDIR}/${P}-xxd.patch" + + eautoreconf +} + +src_configure() { + local myeconfargs=( + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + --datadir="${EPREFIX}"/usr/share/${PN} + # arts is deprecated + --disable-artsc + # don't want -Werror + --disable-strict + --disable-libv4l1 + # don't use bundled libs + --enable-external-ortp + $(use_enable alsa) + $(use_enable pulseaudio) + $(use_enable coreaudio macsnd) + $(use_enable debug) + $(use_enable filters) + $(use_enable g726 spandsp) + $(use_enable gsm) + $(use_enable ipv6) + $(use_enable ntp-timestamp) + $(use_enable opengl glx) + $(use_enable opus) + $(use_enable ortp) + $(use_enable oss) + $(use_enable pcap) + $(use_enable portaudio) + $(use_enable speex) + $(use_enable static-libs static) + $(use_enable theora) + $(use_enable upnp) + $(use_enable video) + $(use_enable v4l) + $(use_enable v4l libv4l2) + $(use_enable sdl) + $(use_enable X x11) + $(use_enable X xv) + + $(use doc || echo ac_cv_path_DOXYGEN=false) + ) + + # Mac OS X Audio Queue is an audio recording facility, available on + # 10.5 (Leopard, Darwin9) and onward + if use coreaudio && [[ ${CHOST} == *-darwin* && ${CHOST##*-darwin} -ge 9 ]] + then + myeconfargs+=( --enable-macaqsnd ) + else + myeconfargs+=( --disable-macaqsnd ) + fi + + econf "${myeconfargs[@]}" +} + +src_test() { + default + cd tester || die + ./mediastreamer2_tester || die +} + +src_install() { + default + prune_libtool_files + + if use examples; then + insinto /usr/share/doc/${PF}/examples + doins tester/*.c + fi +} diff --git a/media-libs/mediastreamer/mediastreamer-2.9.0.ebuild b/media-libs/mediastreamer/mediastreamer-2.9.0.ebuild new file mode 100644 index 000000000000..a3b912bfd728 --- /dev/null +++ b/media-libs/mediastreamer/mediastreamer-2.9.0.ebuild @@ -0,0 +1,172 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit autotools eutils + +DESCRIPTION="Mediastreaming library for telephony application" +HOMEPAGE="http://www.linphone.org/" +SRC_URI="mirror://nongnu/linphone/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0/3" +KEYWORDS="amd64 ppc ppc64 x86" +# Many cameras will not work or will crash an application if mediastreamer2 is +# not built with v4l2 support (taken from configure.ac) +# TODO: run-time test for ipv6: does it really need ortp[ipv6] ? +IUSE="+alsa amr bindist coreaudio debug doc examples +filters g726 g729 gsm ilbc + ipv6 ntp-timestamp opengl opus +ortp oss pcap portaudio pulseaudio sdl silk +speex + static-libs test theora upnp v4l video x264 X" + +REQUIRED_USE="|| ( oss alsa portaudio coreaudio pulseaudio ) + video? ( || ( opengl sdl X ) ) + theora? ( video ) + X? ( video ) + v4l? ( video ) + opengl? ( video )" + +RDEPEND="alsa? ( media-libs/alsa-lib ) + g726? ( >=media-libs/spandsp-0.0.6_pre1 ) + gsm? ( media-sound/gsm ) + opus? ( media-libs/opus ) + ortp? ( >=net-libs/ortp-0.21.0[ipv6?] ) + pcap? ( sys-libs/libcap ) + portaudio? ( media-libs/portaudio ) + pulseaudio? ( >=media-sound/pulseaudio-0.9.21 ) + speex? ( >=media-libs/speex-1.2_beta3 ) + upnp? ( net-libs/libupnp ) + video? ( + virtual/ffmpeg + opengl? ( media-libs/glew + virtual/opengl + x11-libs/libX11 ) + v4l? ( media-libs/libv4l + sys-kernel/linux-headers ) + theora? ( media-libs/libtheora ) + sdl? ( media-libs/libsdl[video,X] ) + X? ( x11-libs/libX11 + x11-libs/libXv ) )" +DEPEND="${RDEPEND} + dev-util/intltool + virtual/pkgconfig + doc? ( app-doc/doxygen ) + opengl? ( dev-util/xxdi ) + test? ( >=dev-util/cunit-2.1_p2[ncurses] ) + X? ( x11-proto/videoproto )" + +PDEPEND="amr? ( !bindist? ( media-plugins/mediastreamer-amr ) ) + g729? ( !bindist? ( media-plugins/mediastreamer-bcg729 ) ) + ilbc? ( media-plugins/mediastreamer-ilbc ) + video? ( x264? ( media-plugins/mediastreamer-x264 ) ) + silk? ( !bindist? ( media-plugins/mediastreamer-silk ) )" + +src_prepare() { + # variable causes "command not found" warning and is not + # needed anyway + sed -i \ + -e 's/$(ACLOCAL_MACOS_FLAGS)//' \ + Makefile.am || die + + # respect user's CFLAGS + sed -i \ + -e "s:-O2::;s: -g::" \ + configure.ac || die "patching configure.ac failed" + + # change default paths + sed -i \ + -e "s:\(prefix/share\):\1/${PN}:" \ + configure.ac || die "patching configure.ac failed" + + # fix doc installation dir + sed -i \ + -e "s:\$(pkgdocdir):\$(docdir):" \ + help/Makefile.am || die "patching help/Makefile.am failed" + + # fix html installation dir + sed -i \ + -e "s:\(doc_htmldir=\).*:\1\$(htmldir):" \ + help/Makefile.am || die "patching help/Makefile.am failed" + + # linux/videodev.h dropped in 2.6.38 + sed -i \ + -e 's:linux/videodev.h ::' \ + configure.ac || die + + epatch "${FILESDIR}/${P}-v4l-automagic.patch" \ + "${FILESDIR}/${P}-libav9.patch" \ + "${FILESDIR}/${P}-underlinking.patch" \ + "${FILESDIR}/${P}-tests.patch" \ + "${FILESDIR}/${P}-xxd.patch" + + eautoreconf +} + +src_configure() { + local myeconfargs=( + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + --datadir="${EPREFIX}"/usr/share/${PN} + # arts is deprecated + --disable-artsc + # don't want -Werror + --disable-strict + --disable-libv4l1 + # don't use bundled libs + --enable-external-ortp + $(use_enable alsa) + $(use_enable pulseaudio) + $(use_enable coreaudio macsnd) + $(use_enable debug) + $(use_enable filters) + $(use_enable g726 spandsp) + $(use_enable gsm) + $(use_enable ipv6) + $(use_enable ntp-timestamp) + $(use_enable opengl glx) + $(use_enable opus) + $(use_enable ortp) + $(use_enable oss) + $(use_enable pcap) + $(use_enable portaudio) + $(use_enable speex) + $(use_enable static-libs static) + $(use_enable theora) + $(use_enable upnp) + $(use_enable video) + $(use_enable v4l) + $(use_enable v4l libv4l2) + $(use_enable sdl) + $(use_enable X x11) + $(use_enable X xv) + + $(use doc || echo ac_cv_path_DOXYGEN=false) + ) + + # Mac OS X Audio Queue is an audio recording facility, available on + # 10.5 (Leopard, Darwin9) and onward + if use coreaudio && [[ ${CHOST} == *-darwin* && ${CHOST##*-darwin} -ge 9 ]] + then + myeconfargs+=( --enable-macaqsnd ) + else + myeconfargs+=( --disable-macaqsnd ) + fi + + econf "${myeconfargs[@]}" +} + +src_test() { + default + cd tester || die + ./mediastreamer2_tester || die +} + +src_install() { + default + prune_libtool_files + + if use examples; then + insinto /usr/share/doc/${PF}/examples + doins tester/*.c + fi +} diff --git a/media-libs/mediastreamer/metadata.xml b/media-libs/mediastreamer/metadata.xml new file mode 100644 index 000000000000..1375784b247f --- /dev/null +++ b/media-libs/mediastreamer/metadata.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>bircoph@gentoo.org</email> + <name>Andrew Savchenko</name> + </maintainer> + <use> + <flag name="amr">Use of AMR Narrow Band codec plugin</flag> + <flag name="filters">Enable compilation of filters</flag> + <flag name="g726">Support g726 codec</flag> + <flag name="g729">Use g726 codec plugin</flag> + <flag name="ilbc">Use of iLBC (RFC3951) codec plugin</flag> + <flag name="ntp-timestamp">Turn on NTP timestamping on received + packet</flag> + <flag name="opus">Enable opus codec support</flag> + <flag name="ortp">Enable usage of <pkg>net-libs/ortp</pkg></flag> + <flag name="pcap">Enable usage of <pkg>net-libs/libpcap</pkg></flag> + <flag name="silk">Use silk (skype protocol) codec plugin</flag> + <flag name="video">Enable video support</flag> + </use> +</pkgmetadata> |