diff options
author | Niclas Zeising <zeising@FreeBSD.org> | 2017-11-18 19:38:30 +0000 |
---|---|---|
committer | Niclas Zeising <zeising@FreeBSD.org> | 2017-11-18 19:38:30 +0000 |
commit | 7614763208b8b08529b266a12e496fc9e6aee1af (patch) | |
tree | 73820240fcb0d2aba93c875962e5b707a18e6164 /multimedia/bino | |
parent | 55987928538ce3586f89f88725b7d302950239e2 (diff) |
Notes
Diffstat (limited to 'multimedia/bino')
-rw-r--r-- | multimedia/bino/Makefile | 16 | ||||
-rw-r--r-- | multimedia/bino/distinfo | 5 | ||||
-rw-r--r-- | multimedia/bino/files/glew-fix-7098cd6a.patch | 208 | ||||
-rw-r--r-- | multimedia/bino/files/patch-src_base_str.cpp | 20 | ||||
-rw-r--r-- | multimedia/bino/files/patch-src_base_str.h | 10 | ||||
-rw-r--r-- | multimedia/bino/files/patch-src_media__object.cpp | 216 | ||||
-rw-r--r-- | multimedia/bino/pkg-plist | 4 |
7 files changed, 233 insertions, 246 deletions
diff --git a/multimedia/bino/Makefile b/multimedia/bino/Makefile index 6e49fe6af23a..43a8f0999f4f 100644 --- a/multimedia/bino/Makefile +++ b/multimedia/bino/Makefile @@ -2,10 +2,9 @@ # $FreeBSD$ PORTNAME= bino -PORTVERSION= 1.4.2 -PORTREVISION= 12 +PORTVERSION= 1.6.5 CATEGORIES= multimedia -MASTER_SITES= http://download.savannah.nongnu.org/releases/bino/ http://levsha.me/ports/distfiles/ +MASTER_SITES= https://download.savannah.nongnu.org/releases/bino/ MAINTAINER= i@levsha.me COMMENT= 3D video player with multi-display support @@ -17,14 +16,17 @@ LIB_DEPENDS= libass.so:multimedia/libass \ libavformat.so:multimedia/ffmpeg \ libopenal.so:audio/openal-soft -USES= desktop-file-utils gmake pkgconfig tar:xz -USE_GL= glew +USES= autoreconf desktop-file-utils gmake iconv pkgconfig tar:xz +USE_GL= gl glu glew GNU_CONFIGURE= yes INSTALLS_ICONS= yes -USE_QT4= moc_build opengl rcc_build +USE_QT5= buildtools_build core gui opengl widgets +USE_CXXSTD= c++11 # no port fow equalizer now, lirc detecting not working -CONFIGURE_ARGS= --without-equalizer --without-liblircclient --docdir=${DOCSDIR} +CONFIGURE_ARGS= --without-equalizer --without-lirc --docdir=${DOCSDIR} + +EXTRA_PATCHES= ${FILESDIR}/glew-fix-7098cd6a.patch INFO= bino diff --git a/multimedia/bino/distinfo b/multimedia/bino/distinfo index 127bdc0d38a7..1efa37c1b6d0 100644 --- a/multimedia/bino/distinfo +++ b/multimedia/bino/distinfo @@ -1,2 +1,3 @@ -SHA256 (bino-1.4.2.tar.xz) = 6cd88eb16ffee30a3cbb9b5d313feb61b91068387ae846ff96d9e99dcb5c88b6 -SIZE (bino-1.4.2.tar.xz) = 794272 +TIMESTAMP = 1509794928 +SHA256 (bino-1.6.5.tar.xz) = 3254316d3ae81cc69643dcd823caaac1233704d91289272d0011ced5e5cdffe2 +SIZE (bino-1.6.5.tar.xz) = 825008 diff --git a/multimedia/bino/files/glew-fix-7098cd6a.patch b/multimedia/bino/files/glew-fix-7098cd6a.patch new file mode 100644 index 000000000000..c21b19be7a38 --- /dev/null +++ b/multimedia/bino/files/glew-fix-7098cd6a.patch @@ -0,0 +1,208 @@ +From 7098cd6afb7ed805de085ed72a5a3ff56e529277 Mon Sep 17 00:00:00 2001 +From: Martin Lambers <marlam@marlam.de> +Date: Sun, 18 Dec 2016 14:37:52 +0100 +Subject: Revert "Always use GLEWmx, do not fall back to GLEW." + +This reverts commit eaf9278782b32a13cea19d1be331cb74a6cddce9. +--- + configure.ac | 15 +++++++++++++-- + src/Makefile.am | 8 ++++++-- + src/video_output.h | 4 +++- + src/video_output_qt.cpp | 13 ++++++++----- + src/video_output_qt.h | 20 +++++++++++++------- + 5 files changed, 43 insertions(+), 17 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 52181ed..03c6b58 100644 +--- configure.ac ++++ configure.ac +@@ -296,7 +296,9 @@ fi + AC_DEFINE_UNQUOTED([HAVE_LIBEQUALIZER], [$HAVE_LIBEQUALIZER], [Have Equalizer?]) + AM_CONDITIONAL([HAVE_LIBEQUALIZER], [test "$HAVE_LIBEQUALIZER" = "1"]) + +-dnl glewmx ++dnl glew ++dnl With Equalizer, we need glewmx, since that is what Equalizer uses. ++dnl Without Equalizer, glew (without mx) is ok to use, too. + PKG_CHECK_MODULES([libglewmx], [glewmx >= 1.6.0], [HAVE_LIBGLEWMX=1], [HAVE_LIBGLEWMX=0]) + if test "$HAVE_LIBGLEWMX" != "1"; then + AC_MSG_WARN([required library libglewmx >= 1.6.0 not found:]) +@@ -304,6 +306,15 @@ if test "$HAVE_LIBGLEWMX" != "1"; then + AC_MSG_WARN([libglewmx is provided by glew; Debian package: libglewmx-dev]) + fi + AM_CONDITIONAL([HAVE_LIBGLEWMX], [test "$HAVE_LIBGLEWMX" = "1"]) ++if test "$HAVE_LIBGLEWMX" != "1" -a "$HAVE_LIBEQUALIZER" != "1"; then ++ AC_MSG_NOTICE([trying to use libglew instead of libglewmx]) ++ PKG_CHECK_MODULES([libglew], [glew >= 1.6.0], [HAVE_LIBGLEW=1], [HAVE_LIBGLEW=0]) ++ if test "$HAVE_LIBGLEW" != "1"; then ++ AC_MSG_WARN([required library libglew >= 1.6.0 not found:]) ++ AC_MSG_WARN([$libglew_PKG_ERRORS]) ++ AC_MSG_WARN([libglew is provided by glew; Debian package: libglew-dev]) ++ fi ++fi + + dnl libXNVCtrl + AC_ARG_WITH([xnvctrl], +@@ -390,7 +401,7 @@ if test "$am_cv_func_iconv" != "yes" \ + -o "$HAVE_LIBASS" != "1" \ + -o "$HAVE_LIBOPENAL" != "1" \ + -o "$HAVE_LIBQTOPENGL" != "1" \ +- -o "$HAVE_LIBGLEWMX" != "1" \ ++ -o \( "$HAVE_LIBGLEWMX" != "1" -a "$HAVE_LIBGLEW" != "1" \) \ + -o \( "$equalizer" = "yes" -a "$HAVE_LIBEQUALIZER" != "1" \) \ + -o \( "$xnvctrl" = "yes" -a "$HAVE_LIBXNVCTRL" != "1" \) \ + -o \( "$lirc" = "yes" -a "$HAVE_LIRC" != "1" \) ; then +diff --git a/src/Makefile.am b/src/Makefile.am +index 6fc12bb..65cbae6 100644 +--- src/Makefile.am ++++ src/Makefile.am +@@ -149,11 +149,15 @@ DEFS += -DHTMLDIR=\"$(htmldir)\" -DLOCALEDIR=\"$(localedir)\" + + AM_CPPFLAGS = \ + $(libavformat_CFLAGS) $(libavdevice_CFLAGS) $(libswscale_CFLAGS) $(libass_CFLAGS) \ +- $(libopenal_CFLAGS) $(libgl_CFLAGS) $(libglewmx_CFLAGS) $(libqtopengl_CFLAGS) ++ $(libopenal_CFLAGS) $(libgl_CFLAGS) $(libglewmx_CFLAGS) $(libglew_CFLAGS) $(libqtopengl_CFLAGS) + + bino_LDADD = $(top_builddir)/src/base/libbase.a $(LIBINTL) $(LIBICONV) \ + $(libavformat_LIBS) $(libavdevice_LIBS) $(libswscale_LIBS) $(libass_LIBS) \ +- $(libopenal_LIBS) $(libgl_LIBS) $(libglewmx_LIBS) $(libqtopengl_LIBS) ++ $(libopenal_LIBS) $(libgl_LIBS) $(libglewmx_LIBS) $(libglew_LIBS) $(libqtopengl_LIBS) ++ ++if HAVE_LIBGLEWMX ++AM_CPPFLAGS += -DGLEW_MX ++endif + + if HAVE_LIBEQUALIZER + bino_SOURCES += player_equalizer.h player_equalizer.cpp +diff --git a/src/video_output.h b/src/video_output.h +index 8430ddc..2fd72ce 100644 +--- src/video_output.h ++++ src/video_output.h +@@ -1,7 +1,7 @@ + /* + * This file is part of bino, a 3D video player. + * +- * Copyright (C) 2010, 2011, 2012, 2015 ++ * Copyright (C) 2010, 2011, 2012, 2015, 2016 + * Martin Lambers <marlam@marlam.de> + * Frédéric Devernay <Frederic.Devernay@inrialpes.fr> + * Joe <cuchac@email.cz> +@@ -128,7 +128,9 @@ private: + protected: + subtitle_renderer _subtitle_renderer; + ++#ifdef GLEW_MX + virtual GLEWContext* glewGetContext() const = 0; ++#endif + + // Get the total viewport size. + int full_display_width() const; +diff --git a/src/video_output_qt.cpp b/src/video_output_qt.cpp +index 0758892..ab82388 100644 +--- src/video_output_qt.cpp ++++ src/video_output_qt.cpp +@@ -1,7 +1,7 @@ + /* + * This file is part of bino, a 3D video player. + * +- * Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015 ++ * Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016 + * Martin Lambers <marlam@marlam.de> + * Frédéric Devernay <frederic.devernay@inrialpes.fr> + * Joe <cuchac@email.cz> +@@ -80,11 +80,13 @@ gl_thread::gl_thread(video_output_qt* vo_qt, video_output_qt_widget* vo_qt_widge + { + } + +-#if HAVE_X11 ++#ifdef GLEW_MX ++# if HAVE_X11 + GLXEWContext* gl_thread::glxewGetContext() const + { + return _vo_qt->glxewGetContext(); + } ++# endif + #endif + + void gl_thread::set_render(bool r) +@@ -781,17 +783,18 @@ void video_output_qt::create_widget() + process_events(); + } + +-#if HAVE_X11 ++#ifdef GLEW_MX ++# if HAVE_X11 + GLXEWContext* video_output_qt::glxewGetContext() const + { + return const_cast<GLXEWContext*>(&_glxew_context); + } +-#endif +- ++# endif + GLEWContext* video_output_qt::glewGetContext() const + { + return const_cast<GLEWContext*>(&_glew_context); + } ++#endif + + bool video_output_qt::context_is_stereo() const + { +diff --git a/src/video_output_qt.h b/src/video_output_qt.h +index 1cc3174..089bac9 100644 +--- src/video_output_qt.h ++++ src/video_output_qt.h +@@ -1,7 +1,7 @@ + /* + * This file is part of bino, a 3D video player. + * +- * Copyright (C) 2010, 2011, 2012, 2013, 2015 ++ * Copyright (C) 2010, 2011, 2012, 2013, 2015, 2016 + * Martin Lambers <marlam@marlam.de> + * + * This program is free software; you can redistribute it and/or modify +@@ -69,8 +69,10 @@ private: + public: + gl_thread(video_output_qt* vo_qt, video_output_qt_widget* vo_qt_widget); + +-#if HAVE_X11 ++#ifdef GLEW_MX ++# if HAVE_X11 + GLXEWContext* glxewGetContext() const; ++# endif + #endif + + void set_render(bool r); +@@ -166,10 +168,12 @@ protected: + class video_output_qt : public video_output + { + private: +-#if HAVE_X11 ++#ifdef GLEW_MX ++# if HAVE_X11 + GLXEWContext _glxew_context; +-#endif ++# endif + GLEWContext _glew_context; ++#endif + int _screen_width, _screen_height; + float _screen_pixel_aspect_ratio; + video_container_widget *_container_widget; +@@ -192,10 +196,12 @@ private: + void resume_screensaver(); + + protected: +-#if HAVE_X11 +- GLXEWContext* glxewGetContext() const; +-#endif ++#ifdef GLEW_MX ++# if HAVE_X11 ++ virtual GLXEWContext* glxewGetContext() const; ++# endif + virtual GLEWContext* glewGetContext() const; ++#endif + virtual bool context_is_stereo() const; + virtual void recreate_context(bool stereo); + virtual void trigger_resize(int w, int h); +-- +cgit v1.0-41-gc330 + diff --git a/multimedia/bino/files/patch-src_base_str.cpp b/multimedia/bino/files/patch-src_base_str.cpp deleted file mode 100644 index f04ce6810f42..000000000000 --- a/multimedia/bino/files/patch-src_base_str.cpp +++ /dev/null @@ -1,20 +0,0 @@ ---- src/base/str.cpp.orig 2012-10-13 05:01:40 UTC -+++ src/base/str.cpp -@@ -77,7 +77,7 @@ static inline std::string uint_to_str(T - do - { - // this assumes an ASCII-compatible character set -- s.insert(0, 1, '0' + x % 10); -+ s.insert((size_t)0, (size_t)1, (char)('0' + x % 10)); - x /= 10; - } - while (x != 0); -@@ -94,7 +94,7 @@ static inline std::string int_to_str(T x - do - { - // this assumes an ASCII-compatible character set -- s.insert(0, 1, (negative ? ('0' - x % 10) : ('0' + x % 10))); -+ s.insert((size_t)0, (size_t)1, (char)(negative ? ('0' - x % 10) : ('0' + x % 10))); - x /= 10; - } - while (x != 0); diff --git a/multimedia/bino/files/patch-src_base_str.h b/multimedia/bino/files/patch-src_base_str.h new file mode 100644 index 000000000000..85445094f4fe --- /dev/null +++ b/multimedia/bino/files/patch-src_base_str.h @@ -0,0 +1,10 @@ +--- src/base/str.h.orig 2017-11-04 13:56:43 UTC ++++ src/base/str.h +@@ -31,6 +31,7 @@ + #include <vector> + #include <cstdarg> + #include <cerrno> ++#include <ctime> + + #ifdef __GNUC__ + # define STR_AFP(a, b) __attribute__ ((format (printf, a, b))) diff --git a/multimedia/bino/files/patch-src_media__object.cpp b/multimedia/bino/files/patch-src_media__object.cpp deleted file mode 100644 index cfae5b68fe05..000000000000 --- a/multimedia/bino/files/patch-src_media__object.cpp +++ /dev/null @@ -1,216 +0,0 @@ -Some changes are identical to upstream: -http://git.savannah.gnu.org/cgit/bino.git/commit/?id=bcba7045c99f -http://git.savannah.gnu.org/cgit/bino.git/commit/?id=50b7109633fa -http://git.savannah.gnu.org/cgit/bino.git/commit/?id=78023424d4cf - ---- src/media_object.cpp.orig 2013-01-27 21:04:48 UTC -+++ src/media_object.cpp -@@ -56,6 +56,23 @@ extern "C" - - #include "media_object.h" - -+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(51, 42, 0) -+#define AVPixelFormat PixelFormat -+#define AV_PIX_FMT_BGRA PIX_FMT_BGRA -+#define AV_PIX_FMT_YUV420P PIX_FMT_YUV420P -+#define AV_PIX_FMT_YUV420P10 PIX_FMT_YUV420P10 -+#define AV_PIX_FMT_YUV422P PIX_FMT_YUV422P -+#define AV_PIX_FMT_YUV422P10 PIX_FMT_YUV422P10 -+#define AV_PIX_FMT_YUV444P PIX_FMT_YUV444P -+#define AV_PIX_FMT_YUV444P10 PIX_FMT_YUV444P10 -+#define AV_PIX_FMT_YUVJ420P PIX_FMT_YUVJ420P -+#define AV_PIX_FMT_YUVJ422P PIX_FMT_YUVJ422P -+#define AV_PIX_FMT_YUVJ444P PIX_FMT_YUVJ444P -+#endif -+ -+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 25, 0) -+#define AV_CODEC_ID_TEXT CODEC_ID_TEXT -+#endif - - // The read thread. - // This thread reads packets from the AVFormatContext and stores them in the -@@ -150,7 +167,8 @@ public: - // Hide the FFmpeg stuff so that their messy header files cannot cause problems - // in other source files. - --static const size_t audio_tmpbuf_size = (AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2; -+static const size_t max_audio_frame_size = 19200; // 1 second of 48khz 32bit audio -+static const size_t audio_tmpbuf_size = (max_audio_frame_size * 3) / 2; - - struct ffmpeg_stuff - { -@@ -422,20 +440,20 @@ void media_object::set_video_frame_templ - video_frame_template.value_range = video_frame::u8_full; - video_frame_template.chroma_location = video_frame::center; - if (!_always_convert_to_bgra32 -- && (video_codec_ctx->pix_fmt == PIX_FMT_YUV444P -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV444P10 -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV422P -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV422P10 -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV420P -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV420P10)) -+ && (video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV444P -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV444P10 -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV422P -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV422P10 -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV420P -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV420P10)) - { -- if (video_codec_ctx->pix_fmt == PIX_FMT_YUV444P -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV444P10) -+ if (video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV444P -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV444P10) - { - video_frame_template.layout = video_frame::yuv444p; - } -- else if (video_codec_ctx->pix_fmt == PIX_FMT_YUV422P -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV422P10) -+ else if (video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV422P -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV422P10) - { - video_frame_template.layout = video_frame::yuv422p; - } -@@ -448,9 +466,9 @@ void media_object::set_video_frame_templ - { - video_frame_template.color_space = video_frame::yuv709; - } -- if (video_codec_ctx->pix_fmt == PIX_FMT_YUV444P10 -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV422P10 -- || video_codec_ctx->pix_fmt == PIX_FMT_YUV420P10) -+ if (video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV444P10 -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV422P10 -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUV420P10) - { - video_frame_template.value_range = video_frame::u10_mpeg; - if (video_codec_ctx->color_range == AVCOL_RANGE_JPEG) -@@ -477,15 +495,15 @@ void media_object::set_video_frame_templ - } - } - else if (!_always_convert_to_bgra32 -- && (video_codec_ctx->pix_fmt == PIX_FMT_YUVJ444P -- || video_codec_ctx->pix_fmt == PIX_FMT_YUVJ422P -- || video_codec_ctx->pix_fmt == PIX_FMT_YUVJ420P)) -+ && (video_codec_ctx->pix_fmt == AV_PIX_FMT_YUVJ444P -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUVJ422P -+ || video_codec_ctx->pix_fmt == AV_PIX_FMT_YUVJ420P)) - { -- if (video_codec_ctx->pix_fmt == PIX_FMT_YUVJ444P) -+ if (video_codec_ctx->pix_fmt == AV_PIX_FMT_YUVJ444P) - { - video_frame_template.layout = video_frame::yuv444p; - } -- else if (video_codec_ctx->pix_fmt == PIX_FMT_YUVJ422P) -+ else if (video_codec_ctx->pix_fmt == AV_PIX_FMT_YUVJ422P) - { - video_frame_template.layout = video_frame::yuv422p; - } -@@ -879,7 +897,7 @@ void media_object::open(const std::strin - { - _ffmpeg->format_ctx->streams[i]->discard = AVDISCARD_ALL; // ignore by default; user must activate streams - AVCodecContext *codec_ctx = _ffmpeg->format_ctx->streams[i]->codec; -- AVCodec *codec = (codec_ctx->codec_id == CODEC_ID_TEXT -+ AVCodec *codec = (codec_ctx->codec_id == AV_CODEC_ID_TEXT - ? NULL : avcodec_find_decoder(codec_ctx->codec_id)); - // XXX: Sometimes the reported width and height for a video stream change after avcodec_open(), - // but the original values seem to be correct. This seems to happen mostly with 1920x1080 video -@@ -899,8 +917,8 @@ void media_object::open(const std::strin - if (codec_ctx->lowres || (codec && (codec->capabilities & CODEC_CAP_DR1))) - codec_ctx->flags |= CODEC_FLAG_EMU_EDGE; - } -- // Find and open the codec. CODEC_ID_TEXT is a special case: it has no decoder since it is unencoded raw data. -- if (codec_ctx->codec_id != CODEC_ID_TEXT && (!codec || (e = avcodec_open2(codec_ctx, codec, NULL)) < 0)) -+ // Find and open the codec. AV_CODEC_ID_TEXT is a special case: it has no decoder since it is unencoded raw data. -+ if (codec_ctx->codec_id != AV_CODEC_ID_TEXT && (!codec || (e = avcodec_open2(codec_ctx, codec, NULL)) < 0)) - { - msg::wrn(_("%s stream %d: Cannot open %s: %s"), _url.c_str(), i, - codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO ? _("video codec") -@@ -928,10 +946,15 @@ void media_object::open(const std::strin - _ffmpeg->video_packets.push_back(AVPacket()); - av_init_packet(&(_ffmpeg->video_packets[j])); - _ffmpeg->video_decode_threads.push_back(video_decode_thread(_url, _ffmpeg, j)); -+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55, 28, 1) - _ffmpeg->video_frames.push_back(avcodec_alloc_frame()); - _ffmpeg->video_buffered_frames.push_back(avcodec_alloc_frame()); -- enum PixelFormat frame_fmt = (_ffmpeg->video_frame_templates[j].layout == video_frame::bgra32 -- ? PIX_FMT_BGRA : _ffmpeg->video_codec_ctxs[j]->pix_fmt); -+#else -+ _ffmpeg->video_frames.push_back(av_frame_alloc()); -+ _ffmpeg->video_buffered_frames.push_back(av_frame_alloc()); -+#endif -+ enum AVPixelFormat frame_fmt = (_ffmpeg->video_frame_templates[j].layout == video_frame::bgra32 -+ ? AV_PIX_FMT_BGRA : _ffmpeg->video_codec_ctxs[j]->pix_fmt); - int frame_bufsize = (avpicture_get_size(frame_fmt, - _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height)); - _ffmpeg->video_buffers.push_back(static_cast<uint8_t *>(av_malloc(frame_bufsize))); -@@ -944,20 +967,24 @@ void media_object::open(const std::strin - if (_ffmpeg->video_frame_templates[j].layout == video_frame::bgra32) - { - // Initialize things needed for software pixel format conversion -- int sws_bufsize = avpicture_get_size(PIX_FMT_BGRA, -+ int sws_bufsize = avpicture_get_size(AV_PIX_FMT_BGRA, - _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height); -+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55, 28, 1) - _ffmpeg->video_sws_frames.push_back(avcodec_alloc_frame()); -+#else -+ _ffmpeg->video_sws_frames.push_back(av_frame_alloc()); -+#endif - _ffmpeg->video_sws_buffers.push_back(static_cast<uint8_t *>(av_malloc(sws_bufsize))); - if (!_ffmpeg->video_sws_frames[j] || !_ffmpeg->video_sws_buffers[j]) - { - throw exc(HERE + ": " + strerror(ENOMEM)); - } - avpicture_fill(reinterpret_cast<AVPicture *>(_ffmpeg->video_sws_frames[j]), _ffmpeg->video_sws_buffers[j], -- PIX_FMT_BGRA, _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height); -+ AV_PIX_FMT_BGRA, _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height); - // Call sws_getCachedContext(NULL, ...) instead of sws_getContext(...) just to avoid a deprecation warning. - _ffmpeg->video_sws_ctxs.push_back(sws_getCachedContext(NULL, - _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height, _ffmpeg->video_codec_ctxs[j]->pix_fmt, -- _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height, PIX_FMT_BGRA, -+ _ffmpeg->video_codec_ctxs[j]->width, _ffmpeg->video_codec_ctxs[j]->height, AV_PIX_FMT_BGRA, - SWS_POINT, NULL, NULL, NULL)); - if (!_ffmpeg->video_sws_ctxs[j]) - { -@@ -1000,9 +1027,9 @@ void media_object::open(const std::strin - int j = _ffmpeg->subtitle_streams.size() - 1; - msg::dbg(_url + " stream " + str::from(i) + " is subtitle stream " + str::from(j) + "."); - _ffmpeg->subtitle_codec_ctxs.push_back(codec_ctx); -- // CODEC_ID_TEXT does not have any decoder; it is just UTF-8 text in the packet data. -+ // AV_CODEC_ID_TEXT does not have any decoder; it is just UTF-8 text in the packet data. - _ffmpeg->subtitle_codecs.push_back( -- _ffmpeg->subtitle_codec_ctxs[j]->codec_id == CODEC_ID_TEXT ? NULL : codec); -+ _ffmpeg->subtitle_codec_ctxs[j]->codec_id == AV_CODEC_ID_TEXT ? NULL : codec); - _ffmpeg->subtitle_box_templates.push_back(subtitle_box()); - set_subtitle_box_template(j); - _ffmpeg->subtitle_decode_threads.push_back(subtitle_decode_thread(_url, _ffmpeg, j)); -@@ -1505,7 +1532,7 @@ read_frame: - // We need to buffer the data because FFmpeg will clubber it when decoding the next frame. - av_picture_copy(reinterpret_cast<AVPicture *>(_ffmpeg->video_buffered_frames[_video_stream]), - reinterpret_cast<AVPicture *>(_ffmpeg->video_frames[_video_stream]), -- static_cast<enum PixelFormat>(_ffmpeg->video_codec_ctxs[_video_stream]->pix_fmt), -+ static_cast<enum AVPixelFormat>(_ffmpeg->video_codec_ctxs[_video_stream]->pix_fmt), - _ffmpeg->video_codec_ctxs[_video_stream]->width, - _ffmpeg->video_codec_ctxs[_video_stream]->height); - src_frame = _ffmpeg->video_buffered_frames[_video_stream]; -@@ -1776,8 +1803,8 @@ void subtitle_decode_thread::run() - int got_subtitle; - tmppacket = packet; - -- // CODEC_ID_TEXT does not have any decoder; it is just UTF-8 text in the packet data. -- if (_ffmpeg->subtitle_codec_ctxs[_subtitle_stream]->codec_id == CODEC_ID_TEXT) -+ // AV_CODEC_ID_TEXT does not have any decoder; it is just UTF-8 text in the packet data. -+ if (_ffmpeg->subtitle_codec_ctxs[_subtitle_stream]->codec_id == AV_CODEC_ID_TEXT) - { - int64_t duration = packet.convergence_duration * 1000000 - * _ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[_subtitle_stream]]->time_base.num -@@ -1937,9 +1964,9 @@ void media_object::seek(int64_t dest_pos - } - for (size_t i = 0; i < _ffmpeg->subtitle_streams.size(); i++) - { -- if (_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec->codec_id != CODEC_ID_TEXT) -+ if (_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec->codec_id != AV_CODEC_ID_TEXT) - { -- // CODEC_ID_TEXT has no decoder, so we cannot flush its buffers -+ // AV_CODEC_ID_TEXT has no decoder, so we cannot flush its buffers - avcodec_flush_buffers(_ffmpeg->format_ctx->streams[_ffmpeg->subtitle_streams[i]]->codec); - } - _ffmpeg->subtitle_box_buffers[i].clear(); diff --git a/multimedia/bino/pkg-plist b/multimedia/bino/pkg-plist index b29d5cb511ed..8c993511a559 100644 --- a/multimedia/bino/pkg-plist +++ b/multimedia/bino/pkg-plist @@ -36,10 +36,12 @@ %%DOCSDIR%%/input-layout-alternating-left-right.png %%DOCSDIR%%/input-layout-alternating-right-left.png %%DOCSDIR%%/output-type-alternating.png +%%NLS%%share/locale/bg/LC_MESSAGES/bino.mo +%%NLS%%share/locale/cs/LC_MESSAGES/bino.mo %%NLS%%share/locale/de/LC_MESSAGES/bino.mo %%NLS%%share/locale/fr/LC_MESSAGES/bino.mo %%NLS%%share/locale/ru/LC_MESSAGES/bino.mo -%%NLS%%share/locale/bg/LC_MESSAGES/bino.mo +%%NLS%%share/locale/zh_cn/LC_MESSAGES/bino.mo bin/bino share/applications/bino.desktop share/icons/hicolor/16x16/apps/bino.png |