diff options
author | dinoex <dinoex@FreeBSD.org> | 2010-01-24 17:53:05 +0800 |
---|---|---|
committer | dinoex <dinoex@FreeBSD.org> | 2010-01-24 17:53:05 +0800 |
commit | b5ab6ae7250d92b7fa5f2b9452c92da37474cb89 (patch) | |
tree | af1df4363f04a106b911abc4269ba2b808f43222 /multimedia/sabbu | |
parent | fa73264b671cb1cf9bd90e683f8373bb2f0d9f0d (diff) | |
download | freebsd-ports-gnome-b5ab6ae7250d92b7fa5f2b9452c92da37474cb89.tar.gz freebsd-ports-gnome-b5ab6ae7250d92b7fa5f2b9452c92da37474cb89.tar.zst freebsd-ports-gnome-b5ab6ae7250d92b7fa5f2b9452c92da37474cb89.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/
Diffstat (limited to 'multimedia/sabbu')
-rw-r--r-- | multimedia/sabbu/Makefile | 47 | ||||
-rw-r--r-- | multimedia/sabbu/distinfo | 3 | ||||
-rw-r--r-- | multimedia/sabbu/files/patch-common.h | 10 | ||||
-rw-r--r-- | multimedia/sabbu/files/patch-configure | 60 | ||||
-rw-r--r-- | multimedia/sabbu/files/patch-video.cpp | 144 | ||||
-rw-r--r-- | multimedia/sabbu/files/patch-video.h | 16 | ||||
-rw-r--r-- | multimedia/sabbu/pkg-descr | 14 | ||||
-rw-r--r-- | multimedia/sabbu/pkg-plist | 53 |
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%% |