aboutsummaryrefslogtreecommitdiff
path: root/multimedia/sabbu
diff options
context:
space:
mode:
authorDirk Meyer <dinoex@FreeBSD.org>2010-01-24 09:53:05 +0000
committerDirk Meyer <dinoex@FreeBSD.org>2010-01-24 09:53:05 +0000
commita8169321fda0a675400817a60d3b8f4e5d0ae1c9 (patch)
tree869298f59eea91762f2a48c6f25496672904834c /multimedia/sabbu
parentbac447f190b4a4578bf9343254e689a7545c4f17 (diff)
downloadports-a8169321fda0a675400817a60d3b8f4e5d0ae1c9.tar.gz
ports-a8169321fda0a675400817a60d3b8f4e5d0ae1c9.zip
program used to "time" subtitles:
* Any WAVE file can be used for timing * Reads/Writes SSA (Sub Station Alpha) and ASS (Advanced Sub Station) formats. * Instant preview of subtitle with all effects * Ability to place subtitles visually (Needs more testing) * Ability to mute specific channel * Ability to open alternate views of the same wave * Ability to mark key frames from a video on the waveform * Ability to save Workspace (saves information such as currently opened sound, video files and position in the wave) * Ability to format script on save * "Code Hiding" WWW: http://sourceforge.net/projects/sabbu/
Notes
Notes: svn path=/head/; revision=248464
Diffstat (limited to 'multimedia/sabbu')
-rw-r--r--multimedia/sabbu/Makefile47
-rw-r--r--multimedia/sabbu/distinfo3
-rw-r--r--multimedia/sabbu/files/patch-common.h10
-rw-r--r--multimedia/sabbu/files/patch-configure60
-rw-r--r--multimedia/sabbu/files/patch-video.cpp144
-rw-r--r--multimedia/sabbu/files/patch-video.h16
-rw-r--r--multimedia/sabbu/pkg-descr14
-rw-r--r--multimedia/sabbu/pkg-plist53
8 files changed, 347 insertions, 0 deletions
diff --git a/multimedia/sabbu/Makefile b/multimedia/sabbu/Makefile
new file mode 100644
index 000000000000..2b45fc60583a
--- /dev/null
+++ b/multimedia/sabbu/Makefile
@@ -0,0 +1,47 @@
+# New ports collection makefile for: sabbu
+# Date created: 2005-04-14
+# Whom: dikr.meyer@dinoex.sub.org
+#
+# $FreeBSD$
+#
+
+PORTNAME= sabbu
+PORTVERSION= 0.3.0
+PORTREVISION= 5
+CATEGORIES= multimedia
+MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/Sabbu%20${PORTVERSION}
+
+MAINTAINER= dinoex@FreeBSD.org
+COMMENT= Program used to time subtitles
+
+BUILD_DEPENDS= pkg-config:${PORTSDIR}/devel/pkg-config
+LIB_DEPENDS= avcodec.1:${PORTSDIR}/multimedia/ffmpeg \
+ sndfile:${PORTSDIR}/audio/libsndfile
+
+USE_BZIP2= yes
+USE_GMAKE= yes
+USE_ICONV= yes
+GNU_CONFIGURE= yes
+
+USE_GNOME= gtk20
+CFLAGS+= ${PTHREAD_CFLAGS} -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib ${PTHREAD_LIBS} -lswscale
+CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}"
+
+.if defined(WITHOUT_NLS)
+CONFIGURE_ARGS+= --disable-nls
+PLIST_SUB+= WITH_NLS="@comment "
+.else
+USE_GETTEXT= yes
+PLIST_SUB+= WITH_NLS=""
+.endif
+
+ASPELL_PORT?= textproc/aspell
+.if !defined(WITHOUT_GTKSPELL)
+LIB_DEPENDS+= gtkspell.0:${PORTSDIR}/textproc/gtkspell
+PLIST_SUB+= WITH_ASPELL=""
+.else
+PLIST_SUB+= WITH_ASPELL="@comment "
+.endif
+
+.include <bsd.port.mk>
diff --git a/multimedia/sabbu/distinfo b/multimedia/sabbu/distinfo
new file mode 100644
index 000000000000..9e9d02dc9dd1
--- /dev/null
+++ b/multimedia/sabbu/distinfo
@@ -0,0 +1,3 @@
+MD5 (sabbu-0.3.0.tar.bz2) = c380b921301cb9cebac117783083f846
+SHA256 (sabbu-0.3.0.tar.bz2) = e510cb2947d45ff6e8a2b5e470f90e1695919e6b3be09f721674b61155b88b98
+SIZE (sabbu-0.3.0.tar.bz2) = 605499
diff --git a/multimedia/sabbu/files/patch-common.h b/multimedia/sabbu/files/patch-common.h
new file mode 100644
index 000000000000..ee337ff5b194
--- /dev/null
+++ b/multimedia/sabbu/files/patch-common.h
@@ -0,0 +1,10 @@
+--- Source/common.h.orig Wed Aug 10 17:29:30 2005
++++ Source/common.h Sun May 27 09:51:29 2007
+@@ -31,4 +31,7 @@
+ #include "alloc.h"
+ #include "util.h"
+
++#ifndef __STDC_CONSTANT_MACROS
++#define __STDC_CONSTANT_MACROS 1
++#endif
+
diff --git a/multimedia/sabbu/files/patch-configure b/multimedia/sabbu/files/patch-configure
new file mode 100644
index 000000000000..c69aa667cc5d
--- /dev/null
+++ b/multimedia/sabbu/files/patch-configure
@@ -0,0 +1,60 @@
+--- configure.orig 2005-11-27 01:30:25.000000000 +0100
++++ configure 2008-05-04 10:42:17.000000000 +0200
+@@ -3222,6 +3222,7 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+ $ac_declaration
++#include <stdlib.h>
+ int
+ main ()
+ {
+@@ -6277,6 +6278,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
++#include <stdlib.h>
+ #include <ffmpeg/avformat.h>
+ int
+ main ()
+@@ -6320,6 +6322,9 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
++
++#define __STDC_CONSTANT_MACROS
++#include <stdlib.h>
+ #include <ffmpeg/avformat.h>
+ int
+ main ()
+@@ -6385,6 +6390,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
++#include <stdlib.h>
+ #include <iconv.h>
+ int
+ main ()
+@@ -6428,6 +6434,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
++#include <stdlib.h>
+ #include <iconv.h>
+ int
+ main ()
+@@ -6912,6 +6919,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
++#include <stdlib.h>
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+ # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+@@ -7550,6 +7558,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
++#include <stdlib.h>
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+ # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
diff --git a/multimedia/sabbu/files/patch-video.cpp b/multimedia/sabbu/files/patch-video.cpp
new file mode 100644
index 000000000000..25f818bd7ee8
--- /dev/null
+++ b/multimedia/sabbu/files/patch-video.cpp
@@ -0,0 +1,144 @@
+--- Source/video.cpp.orig 2005-08-11 19:16:17.000000000 +0200
++++ Source/video.cpp 2010-01-24 10:30:13.000000000 +0100
+@@ -74,9 +74,11 @@
+ }
+ #else
+
++extern "C" {
+ #ifndef _WINDOWS
+ #include <ffmpeg/avformat.h>
+ #include <ffmpeg/avcodec.h>
++#include <libswscale/swscale.h>
+ #else
+ void (*av_register_all)(void) = NULL;
+ int (*av_open_input_file)(AVFormatContext **ic_ptr, const char *filename, AVInputFormat *fmt, int buf_size, AVFormatParameters *ap) = NULL;
+@@ -99,6 +101,7 @@
+ int (*avpicture_alloc)(AVPicture *picture, int pix_fmt, int width, int height) = NULL;
+ void (*avpicture_free)(AVPicture *picture) = NULL;
+ #endif
++}
+
+
+ GModule *module_avformat = NULL;
+@@ -213,7 +216,7 @@
+
+ for(i = 0; i < video->ic->nb_streams; i++)
+ {
+- AVCodecContext *enc = &video->ic->streams[i]->codec;
++ AVCodecContext *enc = video->ic->streams[i]->codec;
+ if(enc->codec_type == CODEC_TYPE_VIDEO)
+ {
+ video->video_index = i;
+@@ -227,7 +230,7 @@
+ throw kryError(_("The video file does not seem to contain a video stream."));
+ }
+
+- enc = &video->ic->streams[video->video_index]->codec;
++ enc = video->ic->streams[video->video_index]->codec;
+ enc->debug_mv = 0;
+ enc->debug = 0;
+ enc->workaround_bugs = 1;
+@@ -277,10 +280,16 @@
+ avpicture_free(pict);
+ }
+
++static struct SwsContext *img_convert_ctx;
++
+ int video_get_picture(struct video_ffmpeg *video, AVPicture *pict)
+ {
+ AVFrame *frame;
++#if 0
+ int dst_pix_fmt = PIX_FMT_RGBA32;
++#else
++ PixelFormat dst_pix_fmt = PIX_FMT_RGBA32;
++#endif
+ int got_picture;
+ int len;
+ int width, height;
+@@ -291,9 +300,9 @@
+ frame = avcodec_alloc_frame();
+ while(1)
+ {
+- len = avcodec_decode_video(&video->ic->streams[video->video_index]->codec,
+- frame, &got_picture,
+- video->last_pkt->data, video->last_pkt->size);
++ len = avcodec_decode_video(video->ic->streams[video->video_index]->codec,
++ frame, &got_picture,
++ video->last_pkt->data, video->last_pkt->size);
+
+ if(got_picture)
+ break;
+@@ -302,15 +311,26 @@
+ return FALSE;
+ }
+
+- width = video->ic->streams[video->video_index]->codec.width;
+- height = video->ic->streams[video->video_index]->codec.height;
++ width = video->ic->streams[video->video_index]->codec->width;
++ height = video->ic->streams[video->video_index]->codec->height;
+
+ pict->data[0] = (uint8_t*) malloc(4 * width * height);
+ pict->linesize[0] = width * 4;
+
++#if 0
+ if(img_convert(pict, dst_pix_fmt,
+- (AVPicture *) frame, video->ic->streams[video->video_index]->codec.pix_fmt,
++ (AVPicture *) frame, video->ic->streams[video->video_index]->codec->pix_fmt,
+ width, height) < 0)
++#else
++ img_convert_ctx = sws_getContext(width, height,
++ video->ic->streams[video->video_index]->codec->pix_fmt,
++ width, height,
++ dst_pix_fmt, SWS_BICUBIC, NULL, NULL, NULL);
++ if (sws_scale(img_convert_ctx, frame->data,
++ frame->linesize, 0,
++ height,
++ pict->data, pict->linesize) < 0)
++#endif
+ {
+ av_free(frame);
+ return FALSE;
+@@ -323,17 +343,17 @@
+
+ int video_get_width(struct video_ffmpeg *video)
+ {
+- return video->ic->streams[video->video_index]->codec.width;
++ return video->ic->streams[video->video_index]->codec->width;
+ }
+
+ int video_get_height(struct video_ffmpeg *video)
+ {
+- return video->ic->streams[video->video_index]->codec.height;
++ return video->ic->streams[video->video_index]->codec->height;
+ }
+
+ double video_get_fps(struct video_ffmpeg *video)
+ {
+- return (video->ic->streams[video->video_index]->r_frame_rate / (double) video->ic->streams[video->video_index]->r_frame_rate_base);
++ return (video->ic->streams[video->video_index]->r_frame_rate.num / (double) video->ic->streams[video->video_index]->r_frame_rate.den);
+ }
+
+ int64_t video_get_duration(struct video_ffmpeg *video)
+@@ -348,7 +368,7 @@
+ free(video->last_pkt);
+ video->last_pkt = NULL;
+ }
+- avcodec_close(&video->ic->streams[video->video_index]->codec);
++ avcodec_close(video->ic->streams[video->video_index]->codec);
+ av_close_input_file(video->ic);
+ }
+
+@@ -376,11 +396,11 @@
+ if(av_seek_frame(video->ic, -1, target_time) < 0)
+ #endif
+ {
+- g_warning("seek failed... %lld", target_time);
++ g_warning("seek failed... %lld", (long long) target_time);
+ return FALSE;
+ }
+
+- avcodec_flush_buffers(&video->ic->streams[video->video_index]->codec);
++ avcodec_flush_buffers(video->ic->streams[video->video_index]->codec);
+ }
+
+ if(video->last_pkt)
diff --git a/multimedia/sabbu/files/patch-video.h b/multimedia/sabbu/files/patch-video.h
new file mode 100644
index 000000000000..0b0f69dba90d
--- /dev/null
+++ b/multimedia/sabbu/files/patch-video.h
@@ -0,0 +1,16 @@
+--- Source/video.h.orig Thu Jul 14 17:52:07 2005
++++ Source/video.h Sun Jun 17 08:57:32 2007
+@@ -23,11 +23,13 @@
+ };
+
+ #else
++extern "C" {
+ #ifndef _WINDOWS
+ #include <ffmpeg/avformat.h>
+ #else
+ #include "video_ffmpeg.h"
+ #endif
++}
+ #endif
+
+ void video_uninit();
diff --git a/multimedia/sabbu/pkg-descr b/multimedia/sabbu/pkg-descr
new file mode 100644
index 000000000000..64e78712430b
--- /dev/null
+++ b/multimedia/sabbu/pkg-descr
@@ -0,0 +1,14 @@
+program used to "time" subtitles:
+* Any WAVE file can be used for timing
+* Reads/Writes SSA (Sub Station Alpha) and ASS (Advanced Sub Station) formats.
+* Instant preview of subtitle with all effects
+* Ability to place subtitles visually (Needs more testing)
+* Ability to mute specific channel
+* Ability to open alternate views of the same wave
+* Ability to mark key frames from a video on the waveform
+* Ability to save Workspace (saves information such as currently opened sound,
+ video files and position in the wave)
+* Ability to format script on save
+* "Code Hiding"
+
+WWW: http://sourceforge.net/projects/sabbu/
diff --git a/multimedia/sabbu/pkg-plist b/multimedia/sabbu/pkg-plist
new file mode 100644
index 000000000000..19d917687eb7
--- /dev/null
+++ b/multimedia/sabbu/pkg-plist
@@ -0,0 +1,53 @@
+bin/sabbu
+%%WITH_NLS%%share/locale/es/LC_MESSAGES/sabbu.mo
+%%WITH_NLS%%share/locale/id/LC_MESSAGES/sabbu.mo
+%%WITH_NLS%%share/locale/ja/LC_MESSAGES/sabbu.mo
+%%WITH_NLS%%share/locale/pt_BR/LC_MESSAGES/sabbu.mo
+%%WITH_NLS%%share/locale/pl/LC_MESSAGES/sabbu.mo
+%%WITH_NLS%%share/locale/zh_CN/LC_MESSAGES/sabbu.mo
+%%DATADIR%%/angle.png
+%%DATADIR%%/arrow-down.png
+%%DATADIR%%/arrow-right.png
+%%DATADIR%%/focus-selected.png
+%%DATADIR%%/gear.png
+%%DATADIR%%/grab-times.png
+%%DATADIR%%/karaoke_box.png
+%%DATADIR%%/karaoke_line.png
+%%DATADIR%%/lead-both.png
+%%DATADIR%%/lead-in.png
+%%DATADIR%%/lead-out.png
+%%DATADIR%%/margin-left.png
+%%DATADIR%%/margin-right.png
+%%DATADIR%%/margin-vertical.png
+%%DATADIR%%/play-last.png
+%%DATADIR%%/play-selection.png
+%%DATADIR%%/play-stop.png
+%%DATADIR%%/play.png
+%%DATADIR%%/sabbu.jpg
+%%DATADIR%%/sarrow-center.png
+%%DATADIR%%/sarrow-down-left.png
+%%DATADIR%%/sarrow-down-right.png
+%%DATADIR%%/sarrow-down.png
+%%DATADIR%%/sarrow-left.png
+%%DATADIR%%/sarrow-right.png
+%%DATADIR%%/sarrow-up-left.png
+%%DATADIR%%/sarrow-up-right.png
+%%DATADIR%%/sarrow-up.png
+%%DATADIR%%/scale-down.png
+%%DATADIR%%/scale-up.png
+%%DATADIR%%/scale-x.png
+%%DATADIR%%/scale-y.png
+%%DATADIR%%/search-indicator.png
+%%DATADIR%%/show-keyframes.png
+%%DATADIR%%/show-time.png
+%%DATADIR%%/spacing.png
+%%DATADIR%%/sync-scale.png
+%%DATADIR%%/sync-scroll.png
+%%DATADIR%%/sync-zoom.png
+%%DATADIR%%/syntax.png
+%%DATADIR%%/syntax_off.png
+%%DATADIR%%/time-left-2.png
+%%DATADIR%%/time-left.png
+%%DATADIR%%/time-right-2.png
+%%DATADIR%%/time-right.png
+@dirrm %%DATADIR%%