Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--build_files/cmake/config/blender_full.cmake1
-rw-r--r--build_files/cmake/config/blender_lite.cmake1
-rw-r--r--build_files/cmake/config/blender_release.cmake1
-rw-r--r--release/scripts/modules/bl_i18n_utils/utils_spell_check.py1
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py1
-rw-r--r--release/windows/contrib/vfapi/README26
-rw-r--r--release/windows/contrib/vfapi/vfapi-plugin.c421
-rw-r--r--source/blender/blenkernel/BKE_writeframeserver.h59
-rw-r--r--source/blender/blenkernel/CMakeLists.txt2
-rw-r--r--source/blender/blenkernel/intern/image.c2
-rw-r--r--source/blender/blenkernel/intern/writeavi.c14
-rw-r--r--source/blender/blenkernel/intern/writeframeserver.c419
-rw-r--r--source/blender/editors/interface/resources.c3
-rw-r--r--source/blender/makesdna/DNA_scene_types.h2
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h2
-rw-r--r--source/blender/makesrna/intern/CMakeLists.txt4
-rw-r--r--source/blender/makesrna/intern/rna_scene.c3
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c5
-rw-r--r--source/blender/python/intern/CMakeLists.txt4
-rw-r--r--source/blender/python/intern/bpy_app_build_options.c7
-rw-r--r--source/blender/render/intern/source/pipeline.c9
-rw-r--r--source/creator/creator_args.c2
23 files changed, 3 insertions, 987 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8a45cce83f8..0540ec85e87 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -319,7 +319,6 @@ option(WITH_IMAGE_TIFF "Enable LibTIFF Support" ON)
option(WITH_IMAGE_DDS "Enable DDS Image Support" ON)
option(WITH_IMAGE_CINEON "Enable CINEON and DPX Image Support" ON)
option(WITH_IMAGE_HDR "Enable HDR Image Support" ON)
-option(WITH_IMAGE_FRAMESERVER "Enable image FrameServer Support for rendering" ON)
# Audio/Video format support
option(WITH_CODEC_AVI "Enable Blenders own AVI file support (raw/jpeg)" ON)
diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake
index 635484633c2..62a26d27834 100644
--- a/build_files/cmake/config/blender_full.cmake
+++ b/build_files/cmake/config/blender_full.cmake
@@ -23,7 +23,6 @@ set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE)
set(WITH_IK_ITASC ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_DDS ON CACHE BOOL "" FORCE)
-set(WITH_IMAGE_FRAMESERVER ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_HDR ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index 5aa0f4f4bf1..b96354847f7 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -28,7 +28,6 @@ set(WITH_IK_SOLVER OFF CACHE BOOL "" FORCE)
set(WITH_IK_ITASC OFF CACHE BOOL "" FORCE)
set(WITH_IMAGE_CINEON OFF CACHE BOOL "" FORCE)
set(WITH_IMAGE_DDS OFF CACHE BOOL "" FORCE)
-set(WITH_IMAGE_FRAMESERVER OFF CACHE BOOL "" FORCE)
set(WITH_IMAGE_HDR OFF CACHE BOOL "" FORCE)
set(WITH_IMAGE_OPENEXR OFF CACHE BOOL "" FORCE)
set(WITH_IMAGE_OPENJPEG OFF CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake
index a21c0d43b66..08272cef9f6 100644
--- a/build_files/cmake/config/blender_release.cmake
+++ b/build_files/cmake/config/blender_release.cmake
@@ -23,7 +23,6 @@ set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE)
set(WITH_IK_ITASC ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_DDS ON CACHE BOOL "" FORCE)
-set(WITH_IMAGE_FRAMESERVER ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_HDR ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
diff --git a/release/scripts/modules/bl_i18n_utils/utils_spell_check.py b/release/scripts/modules/bl_i18n_utils/utils_spell_check.py
index ad25283a3fc..c8f62801af9 100644
--- a/release/scripts/modules/bl_i18n_utils/utils_spell_check.py
+++ b/release/scripts/modules/bl_i18n_utils/utils_spell_check.py
@@ -442,7 +442,6 @@ class SpellChecker:
"fedge", "fedges",
"filmic",
"fluidsim",
- "frameserver",
"freestyle",
"enum", "enums",
"gpencil",
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 454853545a6..566bcfc6b3e 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -480,7 +480,6 @@ class USERPREF_PT_system(Panel):
col = colsplit.column()
col.label(text="General:")
- col.prop(system, "frame_server_port")
col.prop(system, "scrollback", text="Console Scrollback")
col.separator()
diff --git a/release/windows/contrib/vfapi/README b/release/windows/contrib/vfapi/README
deleted file mode 100644
index f4081bfe02a..00000000000
--- a/release/windows/contrib/vfapi/README
+++ /dev/null
@@ -1,26 +0,0 @@
-VFAPI-Plugin
-
-This plugin enables TMPGEnc (or other VFAPI-compliant applications)
-to directly connect to the blender frameserver. (Well, this was the
-intention of the frameserver... ;-)
-
-Use mingw
-
-i586-mingw32msvc-gcc -shared vfapi-plugin.c -o blenderserver.vfp -lwsock32
-i586-mingw32msvc-strip blenderserver.vfp
-
-and copy the resulting plugin into your TMPGenc directory.
-
-Usage:
-
-Create a small file that only contains
-
-host:port
-
-where "host" is running blender frameserver on "port"
-
-and call it something.blu
-
-You can open the blu-file in TMPGenc. That's all. The rest is automagic.
-By the way: the whole thing is developed completely under linux and
-tested successfully with a vanilla wine-0.9.6...
diff --git a/release/windows/contrib/vfapi/vfapi-plugin.c b/release/windows/contrib/vfapi/vfapi-plugin.c
deleted file mode 100644
index 8fe19da3d72..00000000000
--- a/release/windows/contrib/vfapi/vfapi-plugin.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * VFAPI-Plugin
- *
- * Copyright (c) 2006 Peter Schlaile
- *
- * This program 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.
- *
- * This program 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.
- *
- */
-
-#include <windows.h>
-#include <winbase.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <direct.h>
-
-#define VF_STREAM_VIDEO 0x00000001
-#define VF_STREAM_AUDIO 0x00000002
-#define VF_OK 0x00000000
-#define VF_ERROR 0x80004005
-
-typedef struct {
- DWORD dwSize;
- DWORD dwAPIVersion;
- DWORD dwVersion;
- DWORD dwSupportStreamType;
- char cPluginInfo[256];
- char cFileType[256];
-} VF_PluginInfo,*LPVF_PluginInfo;
-
-typedef DWORD VF_FileHandle,*LPVF_FileHandle;
-
-typedef struct {
- DWORD dwSize;
- DWORD dwHasStreams;
-} VF_FileInfo,*LPVF_FileInfo;
-
-typedef struct {
- DWORD dwSize;
- DWORD dwLengthL;
- DWORD dwLengthH;
- DWORD dwRate;
- DWORD dwScale;
- DWORD dwWidth;
- DWORD dwHeight;
- DWORD dwBitCount;
-} VF_StreamInfo_Video,*LPVF_StreamInfo_Video;
-
-typedef struct {
- DWORD dwSize;
- DWORD dwLengthL;
- DWORD dwLengthH;
- DWORD dwRate;
- DWORD dwScale;
- DWORD dwChannels;
- DWORD dwBitsPerSample;
- DWORD dwBlockAlign;
-} VF_StreamInfo_Audio,*LPVF_StreamInfo_Audio;
-
-typedef struct {
- DWORD dwSize;
- DWORD dwFrameNumberL;
- DWORD dwFrameNumberH;
- void *lpData;
- long lPitch;
-} VF_ReadData_Video,*LPVF_ReadData_Video;
-
-typedef struct {
- DWORD dwSize;
- LONGLONG dwSamplePos;
- DWORD dwSampleCount;
- DWORD dwReadedSampleCount;
- DWORD dwBufSize;
- void *lpBuf;
-} VF_ReadData_Audio,*LPVF_ReadData_Audio;
-
-typedef struct {
- DWORD dwSize;
- HRESULT (__stdcall *OpenFile)(
- char *lpFileName, LPVF_FileHandle lpFileHandle );
- HRESULT (__stdcall *CloseFile)( VF_FileHandle hFileHandle );
- HRESULT (__stdcall *GetFileInfo)( VF_FileHandle hFileHandle,
- LPVF_FileInfo lpFileInfo );
- HRESULT (__stdcall *GetStreamInfo)( VF_FileHandle hFileHandle,
- DWORD dwStream,void *lpStreamInfo );
- HRESULT (__stdcall *ReadData)( VF_FileHandle hFileHandle,
- DWORD dwStream,void *lpData );
-} VF_PluginFunc,*LPVF_PluginFunc;
-
-__declspec(dllexport) HRESULT vfGetPluginInfo(
- LPVF_PluginInfo lpPluginInfo )
-{
- if (!lpPluginInfo || lpPluginInfo->dwSize != sizeof(VF_PluginInfo)) {
- return VF_ERROR;
- }
-
- lpPluginInfo->dwAPIVersion = 1;
- lpPluginInfo->dwVersion = 1;
- lpPluginInfo->dwSupportStreamType = VF_STREAM_VIDEO;
- strcpy(lpPluginInfo->cPluginInfo, "Blender Frameserver");
- strcpy(lpPluginInfo->cFileType,
- "Blender Frame-URL-File (*.blu)|*.blu");
-
- return VF_OK;
-}
-
-static unsigned long getipaddress(const char *ipaddr)
-{
- struct hostent *host;
- unsigned long ip;
-
- if (((ip = inet_addr(ipaddr)) == INADDR_NONE) &&
- strcmp(ipaddr, "255.255.255.255") != 0)
- {
- if ((host = gethostbyname(ipaddr)) != NULL) {
- memcpy(&ip, host->h_addr, sizeof(ip));
- }
- }
-
- return (ip);
-}
-
-static void my_send(SOCKET sock, char *str)
-{
- send(sock, str, strlen(str), 0);
-}
-
-static int my_recv(SOCKET sock, char *line, int maxlen)
-{
- int got = 0;
- int toget = maxlen;
-
- while (toget > 0) {
- got = recv(sock, line, toget, 0);
- if (got <= 0) {
- return got;
- }
- toget -= got;
- line += got;
- }
- return maxlen;
-}
-
-static int my_gets(SOCKET sock, char *line, int maxlen)
-{
- int last_rval = 0;
-
- while (((last_rval = my_recv(sock, line, 1)) == 1) && maxlen > 0) {
- if (*line == '\n') {
- line++;
- *line = 0;
- break;
- }
- else {
- line++;
- maxlen--;
- }
- }
- return last_rval;
-}
-
-typedef struct conndesc_ {
- struct sockaddr_in addr;
- int width;
- int height;
- int start;
- int end;
- int rate;
- int ratescale;
-} conndesc;
-
-
-
-HRESULT __stdcall VF_OpenFileFunc_Blen(
- char *lpFileName, LPVF_FileHandle lpFileHandle )
-{
- conndesc * rval;
- char * host;
- char * p;
- int port;
- SOCKET s_in;
- char buf[256];
- struct sockaddr_in addr;
- FILE *fp;
-
- p = lpFileName;
- while (*p && *p != '.') p++;
- if (*p) p++;
- if (strcmp(p, "blu") != 0) {
- return VF_ERROR;
- }
-
- fp = fopen(lpFileName, "r");
- if (!fp) {
- return VF_ERROR;
- }
- fgets(buf, 256, fp);
- fclose(fp);
-
- host = buf;
- p = host;
- while (*p && *p != ':') p++;
- if (*p) p++;
- p[-1] = 0;
- port = atoi(p);
- if (!port) {
- port = 8080;
- }
-
- addr.sin_family = AF_INET;
- addr.sin_port = htons(port);
- addr.sin_addr.s_addr = getipaddress(host);
-
- s_in = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (s_in < 0) {
- return VF_ERROR;
- }
-
- if (connect(s_in, (struct sockaddr*) &addr,
- sizeof(addr)) < 0) {
- closesocket(s_in);
- return VF_ERROR;
- }
-
- rval = (conndesc *) malloc(sizeof(conndesc));
-
- rval->addr = addr;
-
- my_send(s_in, "GET /info.txt HTTP/1.0\n\n");
-
- for (;;) {
- char * key;
- char * val;
-
- if (my_gets(s_in, buf, 250) <= 0) {
- break;
- }
-
- key = buf;
- val = buf;
- while (*val && *val != ' ') val++;
- if (*val) {
- *val = 0;
- val++;
-
- if (strcmp(key, "width") == 0) {
- rval->width = atoi(val);
- }
- else if (strcmp(key, "height") == 0) {
- rval->height = atoi(val);
- }
- else if (strcmp(key, "start") == 0) {
- rval->start = atoi(val);
- }
- else if (strcmp(key, "end") == 0) {
- rval->end = atoi(val);
- }
- else if (strcmp(key, "rate") == 0) {
- rval->rate = atoi(val);
- }
- else if (strcmp(key, "ratescale") == 0) {
- rval->ratescale = atoi(val);
- }
- }
- }
-
- closesocket(s_in);
-
- *lpFileHandle = (VF_FileHandle) rval;
-
- return VF_OK;
-}
-
-HRESULT __stdcall VF_CloseFileFunc_Blen(
- VF_FileHandle hFileHandle )
-{
- free((conndesc *) hFileHandle);
-
- return VF_OK;
-}
-
-HRESULT __stdcall VF_GetFileInfoFunc_Blen(
- VF_FileHandle hFileHandle,
- LPVF_FileInfo lpFileInfo )
-{
- conndesc *c = (conndesc *) hFileHandle;
- if (c == 0) {
- return VF_ERROR;
- }
-
- if (lpFileInfo->dwSize != sizeof(VF_FileInfo)) {
- return VF_ERROR;
- }
-
- lpFileInfo->dwHasStreams = VF_STREAM_VIDEO;
-
- return VF_OK;
-}
-
-HRESULT __stdcall VF_GetStreamInfoFunc_Blen(
- VF_FileHandle hFileHandle,
- DWORD dwStream,void *lpStreamInfo )
-{
- conndesc * c = (conndesc*) hFileHandle;
-
- LPVF_StreamInfo_Video v = (LPVF_StreamInfo_Video) lpStreamInfo;
-
- if (c == 0 || dwStream != VF_STREAM_VIDEO || v == 0) {
- return VF_ERROR;
- }
-
- v->dwLengthL = c->end - c->start;
- v->dwLengthH = 0;
- v->dwScale = c->ratescale;
- v->dwRate = c->rate;
- v->dwWidth = c->width;
- v->dwHeight = c->height;
- v->dwBitCount = 24;
-
- return VF_OK;
-}
-
-HRESULT __stdcall VF_ReadDataFunc_Blen(
- VF_FileHandle hFileHandle,
- DWORD dwStream,void *lpData )
-{
- char req[256];
- char buf[256];
- SOCKET s_in;
- int width;
- int height;
- int y;
- int rval;
- unsigned char * framebuf;
-
- conndesc * c = (conndesc*) hFileHandle;
- LPVF_ReadData_Video v = (LPVF_ReadData_Video) lpData;
-
- if (c == 0 || dwStream != VF_STREAM_VIDEO || v == 0) {
- return VF_ERROR;
- }
-
- s_in = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (s_in < 0) {
- return VF_ERROR;
- }
-
- if (connect(s_in, (struct sockaddr*) &c->addr,
- sizeof(c->addr)) < 0) {
- goto errout;
- }
-
- sprintf(req, "GET /images/ppm/%d.ppm HTTP/1.0\n\n",
- (int) (v->dwFrameNumberL) + c->start);
-
- my_send(s_in, req);
-
- do {
- if (my_gets(s_in, buf, 256) <= 0) {
- goto errout;
- }
- } while (strcmp(buf, "P6\n") != 0);
-
- do {
- rval = my_gets(s_in, buf, 256);
- } while ( (buf[0] == '#' || buf[0] == '\n') && rval >= 0);
-
- if (sscanf(buf, "%d %d\n", &width, &height) != 2) {
- goto errout;
- }
-
- if (width != c->width || height != c->height) {
- goto errout;
- }
-
- my_gets(s_in, buf, 256); /* 255 */
-
- framebuf = (unsigned char *) v->lpData;
-
- for (y = 0; y < height; y++) {
- unsigned char *p = framebuf + v->lPitch * y;
- unsigned char *e = p + width * 3;
-
- my_recv(s_in, (char *)p, width * 3);
- while (p != e) {
- unsigned char tmp = p[2];
- p[2] = p[0];
- p[0] = tmp;
-
- p += 3;
- }
- }
- closesocket(s_in);
- return VF_OK;
- errout:
- closesocket(s_in);
- return VF_ERROR;
-}
-
-__declspec(dllexport) HRESULT vfGetPluginFunc(
- LPVF_PluginFunc lpPluginFunc )
-{
- if (!lpPluginFunc || lpPluginFunc->dwSize != sizeof(VF_PluginFunc)) {
- return VF_ERROR;
- }
-
- lpPluginFunc->OpenFile = VF_OpenFileFunc_Blen;
- lpPluginFunc->CloseFile = VF_CloseFileFunc_Blen;
- lpPluginFunc->GetFileInfo = VF_GetFileInfoFunc_Blen;
- lpPluginFunc->GetStreamInfo = VF_GetStreamInfoFunc_Blen;
- lpPluginFunc->ReadData = VF_ReadDataFunc_Blen;
-
- return VF_OK;
-}
diff --git a/source/blender/blenkernel/BKE_writeframeserver.h b/source/blender/blenkernel/BKE_writeframeserver.h
deleted file mode 100644
index 0837e9bce79..00000000000
--- a/source/blender/blenkernel/BKE_writeframeserver.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __BKE_WRITEFRAMESERVER_H__
-#define __BKE_WRITEFRAMESERVER_H__
-
-/** \file BKE_writeframeserver.h
- * \ingroup bke
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct RenderData;
-struct ReportList;
-struct Scene;
-
-int BKE_frameserver_start(
- void *context_v, struct Scene *scene, struct RenderData *rd, int rectx, int recty,
- struct ReportList *reports, bool preview, const char *suffix);
-void BKE_frameserver_end(void *context_v);
-int BKE_frameserver_append(
- void *context_v, struct RenderData *rd, int start_frame, int frame, int *pixels,
- int rectx, int recty, const char *suffix, struct ReportList *reports);
-int BKE_frameserver_loop(void *context_v, struct RenderData *rd, struct ReportList *reports);
-void *BKE_frameserver_context_create(void);
-void BKE_frameserver_context_free(void *context_v);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index a64d35e09bd..37e08cedb10 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -202,7 +202,6 @@ set(SRC
intern/workspace.c
intern/world.c
intern/writeavi.c
- intern/writeframeserver.c
BKE_DerivedMesh.h
BKE_action.h
@@ -314,7 +313,6 @@ set(SRC
BKE_workspace.h
BKE_world.h
BKE_writeavi.h
- BKE_writeframeserver.h
nla_private.h
tracking_private.h
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 50b1756ff87..8b447bca59f 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -1206,7 +1206,6 @@ bool BKE_imtype_is_movie(const char imtype)
case R_IMF_IMTYPE_H264:
case R_IMF_IMTYPE_THEORA:
case R_IMF_IMTYPE_XVID:
- case R_IMF_IMTYPE_FRAMESERVER:
return true;
}
return false;
@@ -1347,7 +1346,6 @@ char BKE_imtype_from_arg(const char *imtype_arg)
else if (STREQ(imtype_arg, "MULTILAYER")) return R_IMF_IMTYPE_MULTILAYER;
#endif
else if (STREQ(imtype_arg, "FFMPEG")) return R_IMF_IMTYPE_FFMPEG;
- else if (STREQ(imtype_arg, "FRAMESERVER")) return R_IMF_IMTYPE_FRAMESERVER;
#ifdef WITH_CINEON
else if (STREQ(imtype_arg, "CINEON")) return R_IMF_IMTYPE_CINEON;
else if (STREQ(imtype_arg, "DPX")) return R_IMF_IMTYPE_DPX;
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index 2fb4ed03603..e357f13530d 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -84,10 +84,6 @@ static void context_free_avi(void *context_v);
# include "BKE_writeffmpeg.h"
#endif
-#ifdef WITH_FRAMESERVER
-# include "BKE_writeframeserver.h"
-#endif
-
bMovieHandle *BKE_movie_handle_get(const char imtype)
{
static bMovieHandle mh = {NULL};
@@ -121,16 +117,6 @@ bMovieHandle *BKE_movie_handle_get(const char imtype)
mh.context_free = BKE_ffmpeg_context_free;
}
#endif
-#ifdef WITH_FRAMESERVER
- if (imtype == R_IMF_IMTYPE_FRAMESERVER) {
- mh.start_movie = BKE_frameserver_start;
- mh.append_movie = BKE_frameserver_append;
- mh.end_movie = BKE_frameserver_end;
- mh.get_next_frame = BKE_frameserver_loop;
- mh.context_create = BKE_frameserver_context_create;
- mh.context_free = BKE_frameserver_context_free;
- }
-#endif
/* in case all above are disabled */
(void)imtype;
diff --git a/source/blender/blenkernel/intern/writeframeserver.c b/source/blender/blenkernel/intern/writeframeserver.c
deleted file mode 100644
index 4757186f546..00000000000
--- a/source/blender/blenkernel/intern/writeframeserver.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Copyright (c) 2006 Peter Schlaile
- *
- * Contributor(s):
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/blenkernel/intern/writeframeserver.c
- * \ingroup bke
- *
- * Frameserver
- * Makes Blender accessible from TMPGenc directly using VFAPI (you can
- * use firefox too ;-)
- */
-
-#ifdef WITH_FRAMESERVER
-
-#include <string.h>
-#include <stdio.h>
-
-#if defined(_WIN32)
-#include <winsock2.h>
-#include <windows.h>
-#include <winbase.h>
-#include <direct.h>
-#else
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-#include <netdb.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/un.h>
-#include <fcntl.h>
-#endif
-
-#include <stdlib.h>
-
-#include "DNA_userdef_types.h"
-
-#include "BLI_utildefines.h"
-
-#include "BKE_writeframeserver.h"
-#include "BKE_global.h"
-#include "BKE_report.h"
-
-#include "DNA_scene_types.h"
-#include "MEM_guardedalloc.h"
-
-typedef struct FrameserverContext {
- int sock;
- int connsock;
- int write_ppm;
- int render_width;
- int render_height;
-} FrameserverContext;
-
-
-#if defined(_WIN32)
-static int startup_socket_system(void)
-{
- WSADATA wsa;
- return (WSAStartup(MAKEWORD(2, 0), &wsa) == 0);
-}
-
-static void shutdown_socket_system(void)
-{
- WSACleanup();
-}
-static int select_was_interrupted_by_signal(void)
-{
- return (WSAGetLastError() == WSAEINTR);
-}
-#else
-static int startup_socket_system(void)
-{
- return 1;
-}
-
-static void shutdown_socket_system(void)
-{
-}
-
-static int select_was_interrupted_by_signal(void)
-{
- return (errno == EINTR);
-}
-
-static int closesocket(int fd)
-{
- return close(fd);
-}
-#endif
-
-int BKE_frameserver_start(void *context_v, struct Scene *scene, RenderData *UNUSED(rd), int rectx, int recty, ReportList *reports, bool UNUSED(preview), const char *UNUSED(suffix))
-{
- struct sockaddr_in addr;
- int arg = 1;
- FrameserverContext *context = context_v;
-
- (void)scene; /* unused */
-
- if (!startup_socket_system()) {
- BKE_report(reports, RPT_ERROR, "Cannot startup socket system");
- return 0;
- }
-
- if ((context->sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
- shutdown_socket_system();
- BKE_report(reports, RPT_ERROR, "Cannot open socket");
- return 0;
- }
-
- setsockopt(context->sock, SOL_SOCKET, SO_REUSEADDR, (char *) &arg, sizeof(arg));
-
- addr.sin_family = AF_INET;
- addr.sin_port = htons(U.frameserverport);
- addr.sin_addr.s_addr = INADDR_ANY;
-
- if (bind(context->sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
- shutdown_socket_system();
- BKE_report(reports, RPT_ERROR, "Cannot bind to socket");
- return 0;
- }
-
- if (listen(context->sock, SOMAXCONN) < 0) {
- shutdown_socket_system();
- BKE_report(reports, RPT_ERROR, "Cannot establish listen backlog");
- return 0;
- }
- context->connsock = -1;
-
- context->render_width = rectx;
- context->render_height = recty;
-
- return 1;
-}
-
-static char index_page[] =
-"HTTP/1.1 200 OK\r\n"
-"Content-Type: text/html\r\n"
-"\r\n"
-"<html><head><title>Blender Frameserver</title></head>\n"
-"<body><pre>\n"
-"<H2>Blender Frameserver</H2>\n"
-"<A HREF=info.txt>Render Info</A><br>\n"
-"<A HREF=close.txt>Stop Rendering</A><br>\n"
-"\n"
-"Images can be found here\n"
-"\n"
-"images/ppm/%d.ppm\n"
-"\n"
-"</pre></body></html>\n";
-
-static char good_bye[] =
-"HTTP/1.1 200 OK\r\n"
-"Content-Type: text/html\r\n"
-"\r\n"
-"<html><head><title>Blender Frameserver</title></head>\n"
-"<body><pre>\n"
-"Render stopped. Goodbye</pre></body></html>";
-
-static int safe_write(const int connsock, char *s, int tosend)
-{
- int total = tosend;
- do {
- int got = send(connsock, s, tosend, 0);
- if (got < 0) {
- return got;
- }
- tosend -= got;
- s += got;
- } while (tosend > 0);
-
- return total;
-}
-
-static int safe_puts(const int connsock, char *s)
-{
- return safe_write(connsock, s, strlen(s));
-}
-
-static int handle_request(FrameserverContext *context, RenderData *rd, char *req)
-{
- char *p;
- char *path;
- int pathlen;
-
- if (memcmp(req, "GET ", 4) != 0) {
- return -1;
- }
-
- p = req + 4;
- path = p;
-
- while (*p != ' ' && *p) p++;
-
- *p = 0;
-
- if (STREQ(path, "/index.html") || STREQ(path, "/")) {
- safe_puts(context->connsock, index_page);
- return -1;
- }
-
- context->write_ppm = 0;
- pathlen = strlen(path);
-
- if (pathlen > 12 && memcmp(path, "/images/ppm/", 12) == 0) {
- context->write_ppm = 1;
- return atoi(path + 12);
- }
- if (STREQ(path, "/info.txt")) {
- char buf[4096];
-
- sprintf(buf,
- "HTTP/1.1 200 OK\r\n"
- "Content-Type: text/html\r\n"
- "\r\n"
- "start %d\n"
- "end %d\n"
- "width %d\n"
- "height %d\n"
- "rate %d\n"
- "ratescale %d\n",
- rd->sfra,
- rd->efra,
- context->render_width,
- context->render_height,
- rd->frs_sec,
- 1
- );
-
- safe_puts(context->connsock, buf);
- return -1;
- }
- if (STREQ(path, "/close.txt")) {
- safe_puts(context->connsock, good_bye);
- G.is_break = true; /* Abort render */
- return -1;
- }
- return -1;
-}
-
-int BKE_frameserver_loop(void *context_v, RenderData *rd, ReportList *UNUSED(reports))
-{
- fd_set readfds;
- struct timeval tv;
- struct sockaddr_in addr;
- int len, rval;
- unsigned int socklen;
- char buf[4096];
-
- FrameserverContext *context = context_v;
-
- if (context->connsock != -1) {
- closesocket(context->connsock);
- context->connsock = -1;
- }
-
- tv.tv_sec = 1;
- tv.tv_usec = 0;
-
- FD_ZERO(&readfds);
- FD_SET(context->sock, &readfds);
-
- rval = select(context->sock + 1, &readfds, NULL, NULL, &tv);
- if (rval < 0) {
- return -1;
- }
-
- if (rval == 0) { /* nothing to be done */
- return -1;
- }
-
- socklen = sizeof(addr);
-
- if ((context->connsock = accept(context->sock, (struct sockaddr *)&addr, &socklen)) < 0) {
- return -1;
- }
-
- FD_ZERO(&readfds);
- FD_SET(context->connsock, &readfds);
-
- for (;;) {
- /* give 10 seconds for telnet testing... */
- tv.tv_sec = 10;
- tv.tv_usec = 0;
-
- rval = select(context->connsock + 1, &readfds, NULL, NULL, &tv);
- if (rval > 0) {
- break;
- }
- else if (rval == 0) {
- return -1;
- }
- else if (rval < 0) {
- if (!select_was_interrupted_by_signal()) {
- return -1;
- }
- }
- }
-
- len = recv(context->connsock, buf, sizeof(buf) - 1, 0);
-
- if (len < 0) {
- return -1;
- }
-
- buf[len] = 0;
-
- return handle_request(context, rd, buf);
-}
-
-static void serve_ppm(FrameserverContext *context, int *pixels, int rectx, int recty)
-{
- unsigned char *rendered_frame;
- unsigned char *row = (unsigned char *) malloc(context->render_width * 3);
- int y;
- char header[1024];
-
- sprintf(header,
- "HTTP/1.1 200 OK\r\n"
- "Content-Type: image/ppm\r\n"
- "Connection: close\r\n"
- "\r\n"
- "P6\n"
- "# Creator: blender frameserver v0.0.1\n"
- "%d %d\n"
- "255\n",
- rectx, recty);
-
- safe_puts(context->connsock, header);
-
- rendered_frame = (unsigned char *)pixels;
-
- for (y = recty - 1; y >= 0; y--) {
- unsigned char *target = row;
- unsigned char *src = rendered_frame + rectx * 4 * y;
- unsigned char *end = src + rectx * 4;
- while (src != end) {
- target[2] = src[2];
- target[1] = src[1];
- target[0] = src[0];
-
- target += 3;
- src += 4;
- }
- safe_write(context->connsock, (char *)row, 3 * rectx);
- }
- free(row);
- closesocket(context->connsock);
- context->connsock = -1;
-}
-
-int BKE_frameserver_append(void *context_v, RenderData *UNUSED(rd), int UNUSED(start_frame), int frame, int *pixels,
- int rectx, int recty, const char *UNUSED(suffix), ReportList *UNUSED(reports))
-{
- FrameserverContext *context = context_v;
-
- fprintf(stderr, "Serving frame: %d\n", frame);
- if (context->write_ppm) {
- serve_ppm(context, pixels, rectx, recty);
- }
- if (context->connsock != -1) {
- closesocket(context->connsock);
- context->connsock = -1;
- }
-
- return 1;
-}
-
-void BKE_frameserver_end(void *context_v)
-{
- FrameserverContext *context = context_v;
-
- if (context->connsock != -1) {
- closesocket(context->connsock);
- context->connsock = -1;
- }
- closesocket(context->sock);
- shutdown_socket_system();
-}
-
-void *BKE_frameserver_context_create(void)
-{
- FrameserverContext *context = MEM_mallocN(sizeof(FrameserverContext), "Frameserver Context");
- return context;
-}
-
-void BKE_frameserver_context_free(void *context_v)
-{
- FrameserverContext *context = context_v;
- if (context) {
- MEM_freeN(context);
- }
-}
-
-#endif /* WITH_FRAMESERVER */
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index c78342a0713..1b4c289b0eb 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -2475,9 +2475,6 @@ void init_userdef_do_versions(void)
if (U.memcachelimit <= 0) {
U.memcachelimit = 32;
}
- if (U.frameserverport == 0) {
- U.frameserverport = 8080;
- }
if (U.dbl_click_time == 0) {
U.dbl_click_time = 350;
}
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index e12a6d253a8..a164ffd802a 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -432,7 +432,7 @@ typedef struct ImageFormatData {
#define R_IMF_IMTYPE_TIFF 22
#define R_IMF_IMTYPE_OPENEXR 23
#define R_IMF_IMTYPE_FFMPEG 24
-#define R_IMF_IMTYPE_FRAMESERVER 25
+/* #define R_IMF_IMTYPE_FRAMESERVER 25 */ /* frame server is nomore */
#define R_IMF_IMTYPE_CINEON 26
#define R_IMF_IMTYPE_DPX 27
#define R_IMF_IMTYPE_MULTILAYER 28
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index 88cbd848387..74602cf5b40 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -527,7 +527,7 @@ typedef struct UserDef {
int memcachelimit;
int prefetchframes;
float pad_rot_angle; /* control the rotation step of the view when PAD2, PAD4, PAD6&PAD8 is use */
- short frameserverport;
+ short _pad0;
short obcenter_dia;
short rvisize; /* rotating view icon size */
short rvibright; /* rotating view icon brightness */
diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt
index 5e815e16a82..7bd5ad2b959 100644
--- a/source/blender/makesrna/intern/CMakeLists.txt
+++ b/source/blender/makesrna/intern/CMakeLists.txt
@@ -218,10 +218,6 @@ if(WITH_IMAGE_HDR)
add_definitions(-DWITH_HDR)
endif()
-if(WITH_IMAGE_FRAMESERVER)
- add_definitions(-DWITH_FRAMESERVER)
-endif()
-
if(WITH_AUDASPACE)
add_definitions(-DWITH_AUDASPACE)
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 871b260902a..a732a7bc4ff 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -289,9 +289,6 @@ const EnumPropertyItem rna_enum_image_type_items[] = {
{0, "", 0, N_("Movie"), NULL},
{R_IMF_IMTYPE_AVIJPEG, "AVI_JPEG", ICON_FILE_MOVIE, "AVI JPEG", "Output video in AVI JPEG format"},
{R_IMF_IMTYPE_AVIRAW, "AVI_RAW", ICON_FILE_MOVIE, "AVI Raw", "Output video in AVI Raw format"},
-#ifdef WITH_FRAMESERVER
- {R_IMF_IMTYPE_FRAMESERVER, "FRAMESERVER", ICON_FILE_SCRIPT, "Frame Server", "Output image to a frameserver"},
-#endif
#ifdef WITH_FFMPEG
{R_IMF_IMTYPE_FFMPEG, "FFMPEG", ICON_FILE_MOVIE, "FFmpeg video", "The most versatile way to output video files"},
#endif
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index bcaa5f1fc9a..2b557c83867 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -4069,11 +4069,6 @@ static void rna_def_userdef_system(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Memory Cache Limit", "Memory cache limit (in megabytes)");
RNA_def_property_update(prop, 0, "rna_Userdef_memcache_update");
- prop = RNA_def_property(srna, "frame_server_port", PROP_INT, PROP_NONE);
- RNA_def_property_int_sdna(prop, NULL, "frameserverport");
- RNA_def_property_range(prop, 0, 32727);
- RNA_def_property_ui_text(prop, "Frame Server Port", "Frameserver Port for Frameserver Rendering");
-
prop = RNA_def_property(srna, "gl_clip_alpha", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "glalphaclip");
RNA_def_property_range(prop, 0.0f, 1.0f);
diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt
index c6cab3dda65..b3f4b4977bf 100644
--- a/source/blender/python/intern/CMakeLists.txt
+++ b/source/blender/python/intern/CMakeLists.txt
@@ -190,10 +190,6 @@ if(WITH_IMAGE_DDS)
add_definitions(-DWITH_DDS)
endif()
-if(WITH_IMAGE_FRAMESERVER)
- add_definitions(-DWITH_FRAMESERVER)
-endif()
-
if(WITH_IMAGE_HDR)
add_definitions(-DWITH_HDR)
endif()
diff --git a/source/blender/python/intern/bpy_app_build_options.c b/source/blender/python/intern/bpy_app_build_options.c
index 6e3f8da31f9..70c52b8860c 100644
--- a/source/blender/python/intern/bpy_app_build_options.c
+++ b/source/blender/python/intern/bpy_app_build_options.c
@@ -44,7 +44,6 @@ static PyStructSequence_Field app_builtopts_info_fields[] = {
{(char *)"freestyle", NULL},
{(char *)"image_cineon", NULL},
{(char *)"image_dds", NULL},
- {(char *)"image_frameserver", NULL},
{(char *)"image_hdr", NULL},
{(char *)"image_openexr", NULL},
{(char *)"image_openjpeg", NULL},
@@ -150,12 +149,6 @@ static PyObject *make_builtopts_info(void)
SetObjIncref(Py_False);
#endif
-#ifdef WITH_FRAMESERVER
- SetObjIncref(Py_True);
-#else
- SetObjIncref(Py_False);
-#endif
-
#ifdef WITH_HDR
SetObjIncref(Py_True);
#else
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index df356bee295..2fd381d6b1b 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -2540,15 +2540,6 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
if (!render_initialize_from_main(re, &rd, bmain, scene, NULL, camera_override, lay_override, 0, 1))
return;
- /* MULTIVIEW_TODO:
- * in case a new video format is added that implements get_next_frame multiview has to be addressed
- * or the error throwing for R_IMF_IMTYPE_FRAMESERVER has to be extended for those cases as well
- */
- if ((rd.im_format.imtype == R_IMF_IMTYPE_FRAMESERVER) && (totvideos > 1)) {
- BKE_report(re->reports, RPT_ERROR, "Frame Server only support stereo output for multiview rendering");
- return;
- }
-
if (is_movie) {
size_t width, height;
int i;
diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c
index 5d49c954522..30513bd7986 100644
--- a/source/creator/creator_args.c
+++ b/source/creator/creator_args.c
@@ -1220,7 +1220,7 @@ static const char arg_handle_image_type_set_doc[] =
"\tValid options are 'TGA' 'RAWTGA' 'JPEG' 'IRIS' 'IRIZ' 'AVIRAW' 'AVIJPEG' 'PNG' 'BMP'\n"
"\n"
"\tFormats that can be compiled into Blender, not available on all systems: 'HDR' 'TIFF' 'EXR' 'MULTILAYER'\n"
-"\t'MPEG' 'FRAMESERVER' 'CINEON' 'DPX' 'DDS' 'JP2'"
+"\t'MPEG' 'CINEON' 'DPX' 'DDS' 'JP2'"
;
static int arg_handle_image_type_set(int argc, const char **argv, void *data)
{