summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/vo.rst11
-rw-r--r--Makefile1
-rwxr-xr-xconfigure26
-rw-r--r--libvo/video_out.c4
-rw-r--r--libvo/vo_sharedbuffer.h37
-rw-r--r--libvo/vo_sharedbuffer.m269
6 files changed, 0 insertions, 348 deletions
diff --git a/DOCS/man/en/vo.rst b/DOCS/man/en/vo.rst
index 75ef3ae784..5f501f0348 100644
--- a/DOCS/man/en/vo.rst
+++ b/DOCS/man/en/vo.rst
@@ -712,14 +712,3 @@ image
JPEG DPI (default: 72)
outdir=<dirname>
Specify the directory to save the image files to (default: ``./``).
-
-sharedbuffer (Mac OS X 10.6 and later)
- Mac OS X headless video output designed to interact with GUIs. It copies
- image data to a shared buffer so that the data can be read from a GUI and
- rendered.
-
- It uses the same protocol as MPlayer's ``-vo corevideo:shared_buffer``
-
- buffer_name=<buffer_name>
- Name of the shared buffer created with shm_open() as well as the name
- of the NSConnection mplayer2 will try to open (default: mplayerosx).
diff --git a/Makefile b/Makefile
index db8c61218a..81bf045dc0 100644
--- a/Makefile
+++ b/Makefile
@@ -381,7 +381,6 @@ SRCS_MPLAYER-$(APPLE_REMOTE) += input/ar.c
SRCS_MPLAYER-$(CACA) += libvo/vo_caca.c
SRCS_MPLAYER-$(COREAUDIO) += libao2/ao_coreaudio.c
SRCS_MPLAYER-$(COREVIDEO) += libvo/vo_corevideo.m
-SRCS_MPLAYER-$(SHAREDBUFFER) += libvo/vo_sharedbuffer.m
SRCS_MPLAYER-$(DIRECT3D) += libvo/vo_direct3d.c libvo/w32_common.c
SRCS_MPLAYER-$(DIRECTFB) += libvo/vo_directfb2.c
SRCS_MPLAYER-$(DIRECTX) += libao2/ao_dsound.c libvo/vo_directx.c
diff --git a/configure b/configure
index 4f8fefd4b9..9f2ed5828c 100755
--- a/configure
+++ b/configure
@@ -372,7 +372,6 @@ Video output:
--enable-directfb enable DirectFB video output [autodetect]
--disable-corevideo disable CoreVideo video output [autodetect]
--disable-cocoa disable Cocoa OpenGL backend [autodetect]
- --disable-sharedbuffer disable OSX shared buffer video output [autodetect]
Audio output:
--disable-alsa disable ALSA audio output [autodetect]
@@ -527,7 +526,6 @@ _qtx=auto
_coreaudio=auto
_corevideo=auto
_cocoa=auto
-_sharedbuffer=auto
quicktime=auto
_macosx_finder=no
_macosx_bundle=auto
@@ -834,8 +832,6 @@ for ac_option do
--disable-corevideo) _corevideo=no ;;
--enable-cocoa) _cocoa=yes ;;
--disable-cocoa) _cocoa=no ;;
- --enable-sharedbuffer) _sharedbuffer=yes ;;
- --disable-sharedbuffer) _sharedbuffer=no ;;
--enable-macosx-finder) _macosx_finder=yes ;;
--disable-macosx-finder) _macosx_finder=no ;;
--enable-macosx-bundle) _macosx_bundle=yes ;;
@@ -2127,26 +2123,6 @@ else
fi
echores "$_corevideo"
-echocheck "SharedBuffer"
-if test "$_sharedbuffer" = auto ; then
- cat > $TMPC <<EOF
-int main(void) {
- NSApplicationLoad();
-}
-EOF
- _sharedbuffer=no
- cc_check -framework Cocoa && _sharedbuffer=yes
-fi
-if test "$_sharedbuffer" = yes ; then
- vomodules="sharedbuffer $vomodules"
- libs_mplayer="$libs_mplayer -framework Cocoa"
- def_sharedbuffer='#define CONFIG_SHAREDBUFFER 1'
-else
- novomodules="sharedbuffer $novomodules"
- def_sharedbuffer='#undef CONFIG_SHAREDBUFFER'
-fi
-echores "$_sharedbuffer"
-
depends_on_application_services(){
test "$_corevideo" = yes
}
@@ -3872,7 +3848,6 @@ CDDB = $_cddb
COCOA = $_cocoa
COREAUDIO = $_coreaudio
COREVIDEO = $_corevideo
-SHAREDBUFFER = $_sharedbuffer
DIRECT3D = $_direct3d
DIRECTFB = $_directfb
DIRECTX = $_directx
@@ -4187,7 +4162,6 @@ $def_lcms2
$def_caca
$def_corevideo
$def_cocoa
-$def_sharedbuffer
$def_direct3d
$def_directfb
$def_directx
diff --git a/libvo/video_out.c b/libvo/video_out.c
index 218dd36d1b..4066146152 100644
--- a/libvo/video_out.c
+++ b/libvo/video_out.c
@@ -87,7 +87,6 @@ extern struct vo_driver video_out_direct3d_shaders;
extern struct vo_driver video_out_directx;
extern struct vo_driver video_out_directfb;
extern struct vo_driver video_out_corevideo;
-extern struct vo_driver video_out_sharedbuffer;
const struct vo_driver *video_out_drivers[] =
{
@@ -124,9 +123,6 @@ const struct vo_driver *video_out_drivers[] =
#endif
&video_out_null,
// should not be auto-selected
-#ifdef CONFIG_SHAREDBUFFER
- &video_out_sharedbuffer,
-#endif
#ifdef CONFIG_DIRECTFB
// vo directfb can call exit() if initialization fails
&video_out_directfb,
diff --git a/libvo/vo_sharedbuffer.h b/libvo/vo_sharedbuffer.h
deleted file mode 100644
index c25463aa0a..0000000000
--- a/libvo/vo_sharedbuffer.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * OSX Shared Buffer Video Output (extracted from mplayer's corevideo)
- *
- * This file is part of mplayer2.
- *
- * mplayer2 is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * mplayer2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with mplayer2. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef MPLAYER_VO_OSX_SHAREDBUFFER_H
-#define MPLAYER_VO_OSX_SHAREDBUFFER_H
-
-#import <Cocoa/Cocoa.h>
-
-// Protocol to communicate with the GUI
-@protocol MPlayerOSXVOProto
-- (int) startWithWidth: (bycopy int)width
- withHeight: (bycopy int)height
- withBytes: (bycopy int)bytes
- withAspect: (bycopy int)aspect;
-- (void) stop;
-- (void) render;
-- (void) toggleFullscreen;
-- (void) ontop;
-@end
-
-#endif /* MPLAYER_VO_OSX_SHAREDBUFFER_H */
diff --git a/libvo/vo_sharedbuffer.m b/libvo/vo_sharedbuffer.m
deleted file mode 100644
index 219ad91474..0000000000
--- a/libvo/vo_sharedbuffer.m
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * OSX Shared Buffer Video Output (extracted from mplayer's corevideo)
- *
- * This file is part of mplayer2.
- *
- * mplayer2 is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * mplayer2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with mplayer2. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * This video output was extracted from mplayer's corevideo. Its purpose is
- * to copy mp_image data to a shared buffer using mmap and to do simple
- * coordination with the GUIs using Distributed Objects.
- */
-
-#include <sys/mman.h>
-
-#include "vo_sharedbuffer.h"
-#include "video_out.h"
-#include "m_option.h"
-#include "talloc.h"
-
-#include "libmpcodecs/vfcap.h"
-#include "libmpcodecs/mp_image.h"
-#include "fastmemcpy.h"
-
-#include "sub/sub.h"
-#include "osd.h"
-
-// declarations
-struct priv {
- char *buffer_name;
- unsigned char *image_data;
- unsigned int image_bytespp;
- unsigned int image_width;
- unsigned int image_height;
-
- void (*vo_draw_alpha_fnc)(int w, int h, unsigned char* src,
- unsigned char *srca, int srcstride, unsigned char* dstbase,
- int dststride);
-
- NSDistantObject *mposx_proxy;
- id <MPlayerOSXVOProto> mposx_proto;
-};
-
-// implementation
-static void draw_alpha(void *ctx, int x0, int y0, int w, int h,
- unsigned char *src, unsigned char *srca,
- int stride)
-{
- struct priv *p = ((struct vo *) ctx)->priv;
- p->vo_draw_alpha_fnc(w, h, src, srca, stride,
- p->image_data + (x0 + y0 * p->image_width) * p->image_bytespp,
- p->image_width * p->image_bytespp);
-}
-
-static unsigned int image_bytes(struct priv *p)
-{
- return p->image_width * p->image_height * p->image_bytespp;
-}
-
-static int preinit(struct vo *vo, const char *arg)
-{
- return 0;
-}
-
-static void flip_page(struct vo *vo)
-{
- struct priv *p = vo->priv;
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
- [p->mposx_proto render];
- [pool release];
-}
-
-static void check_events(struct vo *vo) { }
-
-static uint32_t draw_image(struct vo *vo, mp_image_t *mpi)
-{
- struct priv *p = vo->priv;
- memcpy_pic(p->image_data, mpi->planes[0],
- (p->image_width) * (p->image_bytespp), p->image_height,
- (p->image_width) * (p->image_bytespp), mpi->stride[0]);
- return 0;
-}
-
-static void draw_osd(struct vo *vo, struct osd_state *osd) {
- struct priv *p = vo->priv;
- osd_draw_text(osd, p->image_width, p->image_height, draw_alpha, vo);
-}
-
-static void free_buffers(struct priv *p)
-{
- [p->mposx_proto stop];
- p->mposx_proto = nil;
- [p->mposx_proxy release];
- p->mposx_proxy = nil;
-
- if (p->image_data) {
- if (munmap(p->image_data, image_bytes(p)) == -1)
- mp_msg(MSGT_VO, MSGL_FATAL, "[vo_sharedbuffer] uninit: munmap "
- "failed. Error: %s\n", strerror(errno));
-
- if (shm_unlink(p->buffer_name) == -1)
- mp_msg(MSGT_VO, MSGL_FATAL, "[vo_sharedbuffer] uninit: shm_unlink "
- "failed. Error: %s\n", strerror(errno));
- }
-}
-
-static int config(struct vo *vo, uint32_t width, uint32_t height,
- uint32_t d_width, uint32_t d_height, uint32_t flags,
- uint32_t format)
-{
- struct priv *p = vo->priv;
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
- free_buffers(p);
-
- p->image_width = width;
- p->image_height = height;
-
- mp_msg(MSGT_VO, MSGL_INFO, "[vo_sharedbuffer] writing output to a shared "
- "buffer named \"%s\"\n", p->buffer_name);
-
- // create shared memory
- int shm_fd = shm_open(p->buffer_name, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
- if (shm_fd == -1) {
- mp_msg(MSGT_VO, MSGL_FATAL,
- "[vo_sharedbuffer] failed to open shared memory. Error: %s\n",
- strerror(errno));
- goto err_out;
- }
-
- if (ftruncate(shm_fd, image_bytes(p)) == -1) {
- mp_msg(MSGT_VO, MSGL_FATAL,
- "[vo_sharedbuffer] failed to size shared memory, possibly "
- "already in use. Error: %s\n", strerror(errno));
- close(shm_fd);
- shm_unlink(p->buffer_name);
- goto err_out;
- }
-
- p->image_data = mmap(NULL, image_bytes(p),
- PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0);
- close(shm_fd);
-
- if (p->image_data == MAP_FAILED) {
- mp_msg(MSGT_VO, MSGL_FATAL,
- "[vo_sharedbuffer] failed to map shared memory. "
- "Error: %s\n", strerror(errno));
- shm_unlink(p->buffer_name);
- goto err_out;
- }
-
- //connect to mplayerosx
- p->mposx_proxy = [NSConnection
- rootProxyForConnectionWithRegisteredName:
- [NSString stringWithUTF8String:p->buffer_name] host:nil];
-
- if ([p->mposx_proxy conformsToProtocol:@protocol(MPlayerOSXVOProto)]) {
- [p->mposx_proxy setProtocolForProxy:@protocol(MPlayerOSXVOProto)];
- p->mposx_proto = (id <MPlayerOSXVOProto>)p->mposx_proxy;
- [p->mposx_proto startWithWidth:p->image_width
- withHeight:p->image_height
- withBytes:p->image_bytespp
- withAspect:d_width*100/d_height];
- } else {
- mp_msg(MSGT_VO, MSGL_ERR,
- "[vo_sharedbuffer] distributed object doesn't conform "
- "to the correct protocol.\n");
- [p->mposx_proxy release];
- p->mposx_proxy = nil;
- p->mposx_proto = nil;
- }
-
- [pool release];
- return 0;
-err_out:
- [pool release];
- return 1;
-}
-
-static int query_format(struct vo *vo, uint32_t format)
-{
- struct priv *p = vo->priv;
- unsigned int image_depth = 0;
- switch (format) {
- case IMGFMT_YUY2:
- p->vo_draw_alpha_fnc = vo_draw_alpha_yuy2;
- image_depth = 16;
- goto supported;
- case IMGFMT_RGB24:
- p->vo_draw_alpha_fnc = vo_draw_alpha_rgb24;
- image_depth = 24;
- goto supported;
- case IMGFMT_ARGB:
- p->vo_draw_alpha_fnc = vo_draw_alpha_rgb32;
- image_depth = 32;
- goto supported;
- case IMGFMT_BGRA:
- p->vo_draw_alpha_fnc = vo_draw_alpha_rgb32;
- image_depth = 32;
- goto supported;
- }
- return 0;
-
-supported:
- p->image_bytespp = (image_depth + 7) / 8;
- return VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW |
- VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN |
- VOCAP_NOSLICES;
-}
-
-static void uninit(struct vo *vo)
-{
- struct priv *p = vo->priv;
- free_buffers(p);
-}
-
-static int control(struct vo *vo, uint32_t request, void *data)
-{
- struct priv *p = vo->priv;
- switch (request) {
- case VOCTRL_DRAW_IMAGE:
- return draw_image(vo, data);
- case VOCTRL_FULLSCREEN:
- [p->mposx_proto toggleFullscreen];
- return VO_TRUE;
- case VOCTRL_QUERY_FORMAT:
- return query_format(vo, *(uint32_t*)data);
- case VOCTRL_ONTOP:
- [p->mposx_proto ontop];
- return VO_TRUE;
- }
- return VO_NOTIMPL;
-}
-
-#undef OPT_BASE_STRUCT
-#define OPT_BASE_STRUCT struct priv
-
-const struct vo_driver video_out_sharedbuffer = {
- .is_new = true,
- .info = &(const vo_info_t) {
- "Mac OS X Shared Buffer (headless video output for GUIs)",
- "sharedbuffer",
- "Stefano Pigozzi <stefano.pigozzi@gmail.com> and others.",
- ""
- },
- .preinit = preinit,
- .config = config,
- .control = control,
- .flip_page = flip_page,
- .check_events = check_events,
- .uninit = uninit,
- .draw_osd = draw_osd,
- .priv_size = sizeof(struct priv),
- .options = (const struct m_option[]) {
- OPT_STRING("buffer_name", buffer_name, 0, OPTDEF_STR("mplayerosx")),
- {NULL},
- },
-};