summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/mediastreamer/files/mediastreamer-2.7.3-sdl-build.patch')
-rw-r--r--media-libs/mediastreamer/files/mediastreamer-2.7.3-sdl-build.patch220
1 files changed, 220 insertions, 0 deletions
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;
+ }
++