Here's a diff for cmus port 2.7.1 --> 2.8.0
According to changelog:
Major new features:
multiple playlists support in playlist view
new :pl-* commands for playlist management
CoreAudio output plugin
BASS input plugin
D-Bus (MPRIS) support
Notable changes:
use of internal cue parser instead of libcue
24-bit playback support for
FLAC
JACK
sndio
plugin ABI versioning checks
new themes:
dracula
gruvbox
gruvbox-alt
jellybeans
new commands:
:left-view / :right-view
:player-pause-playback
:raise-vte
:rand
:version
:win-half-page-down / :win-half-page-up
new options:
color_win_cur_attr
input.*.priority
lib_add_filter
start_view
time_show_leading_zero
I basically removed some patches that seem to be now integrated
upstream related to ffmpeg plugin and sndio. Configure patch has been
also tweaked to apply cleanly. I've left the rest untouched.
Works fine for me on amd64.
Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/cmus/Makefile,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile
--- Makefile 16 Apr 2019 20:19:01 -0000 1.20
+++ Makefile 17 Apr 2019 09:58:49 -0000
@@ -3,11 +3,11 @@
COMMENT-main= ncurses-based music player
COMMENT-ffmpeg= ffmpeg input plugin for cmus (.aac, .mp4...)
-V= 2.7.1
+V= 2.8.0
DISTNAME= cmus-${V}
PKGNAME-main= ${PKGNAME}
PKGNAME-ffmpeg= cmus-ffmpeg-${V}
-REVISION= 6
+REVISION= 0
GH_ACCOUNT= cmus
GH_PROJECT= cmus
@@ -21,12 +21,11 @@ PERMIT_PACKAGE_CDROM= Yes
MULTI_PACKAGES= -main -ffmpeg
-WANTLIB-main+= c cdio cdio_cdda cue curses discid FLAC iconv m mad
+WANTLIB-main+= c cdio cdio_cdda curses discid FLAC iconv m mad
WANTLIB-main+= ogg opusfile pthread sndio vorbis vorbisfile wavpack
LIB_DEPENDS-main= audio/flac \
audio/libcdio \
- audio/libcue \
audio/libdiscid \
audio/libmad \
audio/libogg \
Index: distinfo
===================================================================
RCS file: /cvs/ports/audio/cmus/distinfo,v
retrieving revision 1.4
diff -u -p -r1.4 distinfo
--- distinfo 17 Jan 2016 01:16:38 -0000 1.4
+++ distinfo 17 Apr 2019 09:58:49 -0000
@@ -1,2 +1,2 @@
-SHA256 (cmus-2.7.1.tar.gz) = gXmnqEPSV921hfTGVZmES8DlFv6F6X9vh6fOreTrUWU=
-SIZE (cmus-2.7.1.tar.gz) = 296818
+SHA256 (cmus-2.8.0.tar.gz) = dWzixiQbIQTcGQl0iCJd5VmsGAKhdb4CM8+2+8AvO9I=
+SIZE (cmus-2.8.0.tar.gz) = 317243
Index: patches/patch-Makefile
===================================================================
RCS file: /cvs/ports/audio/cmus/patches/patch-Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 patch-Makefile
--- patches/patch-Makefile 17 Jan 2016 01:16:38 -0000 1.2
+++ patches/patch-Makefile 17 Apr 2019 09:58:49 -0000
@@ -2,9 +2,10 @@ $OpenBSD: patch-Makefile,v 1.2 2016/01/1
Fix install(1) usage.
---- Makefile.orig Mon Jul 13 12:00:56 2015
-+++ Makefile Tue Jul 28 14:05:50 2015
-@@ -262,17 +262,21 @@ plugins: $(ip-y) $(op-y)
+Index: Makefile
+--- Makefile.orig
++++ Makefile
+@@ -272,17 +272,21 @@ plugins: $(ip-y) $(op-y)
man: $(man1) $(man7)
install-main: main
Index: patches/patch-configure
===================================================================
RCS file: /cvs/ports/audio/cmus/patches/patch-configure,v
retrieving revision 1.5
diff -u -p -r1.5 patch-configure
--- patches/patch-configure 6 Jun 2018 12:14:44 -0000 1.5
+++ patches/patch-configure 17 Apr 2019 09:58:49 -0000
@@ -11,16 +11,7 @@ final build.
Index: configure
--- configure.orig
+++ configure
-@@ -378,7 +378,7 @@ check_aac()
- check_ffmpeg()
- {
- HAVE_FFMPEG_AVCODEC_H=y
-- pkg_config FFMPEG "libavformat" || return $?
-+ pkg_config FFMPEG "libavformat libavcodec" || return $?
- if check_header "libavcodec/avcodec.h" $FFMPEG_CFLAGS
- then
- HAVE_FFMPEG_AVCODEC_H=n
-@@ -387,7 +387,7 @@ check_ffmpeg()
+@@ -439,7 +439,7 @@ check_ffmpeg()
fi
# ffmpeg api changes so frequently that it is best to compile the module
libs="$LDDLFLAGS $FFMPEG_LIBS"
Index: patches/patch-ffmpeg_c
===================================================================
RCS file: patches/patch-ffmpeg_c
diff -N patches/patch-ffmpeg_c
--- patches/patch-ffmpeg_c 6 Jun 2018 12:14:44 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,493 +0,0 @@
-$OpenBSD: patch-ffmpeg_c,v 1.1 2018/06/06 12:14:44 kn Exp $
-
-Various updates from upstream for newer ffmpeg versions.
-
-among other things:
-
-903282c: Fix ffmpeg segfault
-98ab2a6: Replace deprecated FFmpeg API
-ef65f69: remove dead code for ancient ffmpeg versions
-b595b8c: Fix ffmpeg plugin build
-
-Index: ffmpeg.c
---- ffmpeg.c.orig
-+++ ffmpeg.c
-@@ -26,49 +26,16 @@
- #endif
-
- #include <stdio.h>
--#ifdef HAVE_FFMPEG_AVCODEC_H
--#include <ffmpeg/avcodec.h>
--#include <ffmpeg/avformat.h>
--#include <ffmpeg/avio.h>
--#include <ffmpeg/swresample.h>
--#include <ffmpeg/opt.h>
--#include <ffmpeg/audioconvert.h>
--#else
- #include <libavcodec/avcodec.h>
- #include <libavformat/avformat.h>
- #include <libavformat/avio.h>
- #include <libswresample/swresample.h>
- #include <libavutil/opt.h>
--#include <libavutil/audioconvert.h>
-+#include <libavutil/channel_layout.h>
- #ifndef AVUTIL_MATHEMATICS_H
- #include <libavutil/mathematics.h>
- #endif
--#endif
-
--#if (LIBAVFORMAT_VERSION_INT < ((52<<16)+(31<<8)+0))
--# define NUM_FFMPEG_KEYS 8
--#endif
--
--#if (LIBAVCODEC_VERSION_INT < ((52<<16)+(64<<8)+0))
--# define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO
--#endif
--
--#if (LIBAVCODEC_VERSION_INT < ((52<<16)+(94<<8)+1))
--#define AV_SAMPLE_FMT_U8 SAMPLE_FMT_U8
--#define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16
--#define AV_SAMPLE_FMT_S32 SAMPLE_FMT_S32
--#define AV_SAMPLE_FMT_FLT SAMPLE_FMT_FLT
--#if (LIBAVCODEC_VERSION_INT > ((51<<16)+(64<<8)+0))
--#define AV_SAMPLE_FMT_DBL SAMPLE_FMT_DBL
--#endif
--#endif
--
--#if (LIBAVUTIL_VERSION_INT < ((51<<16)+(5<<8)+0))
--#define AV_DICT_IGNORE_SUFFIX AV_METADATA_IGNORE_SUFFIX
--#define av_dict_get av_metadata_get
--#define AVDictionaryEntry AVMetadataTag
--#endif
--
- #ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
- #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
- #endif
-@@ -77,6 +44,7 @@ struct ffmpeg_input {
- AVPacket pkt;
- int curr_pkt_size;
- uint8_t *curr_pkt_buf;
-+ int stream_index;
-
- unsigned long curr_size;
- unsigned long curr_duration;
-@@ -94,7 +62,6 @@ struct ffmpeg_private {
- AVFormatContext *input_context;
- AVCodec *codec;
- SwrContext *swr;
-- int stream_index;
-
- struct ffmpeg_input *input;
- struct ffmpeg_output *output;
-@@ -115,7 +82,11 @@ static struct ffmpeg_input *ffmpeg_input_create(void)
-
- static void ffmpeg_input_free(struct ffmpeg_input *input)
- {
-+#if LIBAVCODEC_VERSION_MAJOR >= 56
-+ av_packet_unref(&input->pkt);
-+#else
- av_free_packet(&input->pkt);
-+#endif
- free(input);
- }
-
-@@ -157,30 +128,9 @@ static void ffmpeg_init(void)
-
- av_log_set_level(AV_LOG_QUIET);
-
--#if (LIBAVFORMAT_VERSION_INT <= ((50<<16) + (4<<8) + 0))
-- avcodec_init();
-- register_avcodec(&wmav1_decoder);
-- register_avcodec(&wmav2_decoder);
--
-- /* libavformat versions <= 50.4.0 have asf_init(). From SVN revision
-- * 5697->5707 of asf.c, this function was removed, preferring the use of
-- * explicit calls. Note that version 50.5.0 coincides with SVN revision
-- * 5729, so there is a window of incompatibility for revisions 5707 and
5720
-- * of asf.c.
-- */
-- asf_init();
--
-- /* Uncomment this for shorten (.shn) support.
-- register_avcodec(&shorten_decoder);
-- raw_init();
-- */
--
-- register_protocol(&file_protocol);
--#else
- /* We could register decoders explicitly to save memory, but we have to
- * be careful about compatibility. */
- av_register_all();
--#endif
- }
-
- static int ffmpeg_open(struct input_plugin_data *ip_data)
-@@ -197,22 +147,14 @@ static int ffmpeg_open(struct input_plugin_data *ip_da
-
- ffmpeg_init();
-
--#if (LIBAVFORMAT_VERSION_INT <= ((53<<16)+(2<<8)+0))
-- err = av_open_input_file(&ic, ip_data->filename, NULL, 0, NULL);
--#else
- err = avformat_open_input(&ic, ip_data->filename, NULL, NULL);
--#endif
- if (err < 0) {
- d_print("av_open failed: %d\n", err);
- return -IP_ERROR_FILE_FORMAT;
- }
-
- do {
--#if (LIBAVFORMAT_VERSION_INT <= ((53<<16)+(5<<8)+0))
-- err = av_find_stream_info(ic);
--#else
- err = avformat_find_stream_info(ic, NULL);
--#endif
- if (err < 0) {
- d_print("unable to find stream info: %d\n", err);
- err = -IP_ERROR_FILE_FORMAT;
-@@ -235,20 +177,16 @@ static int ffmpeg_open(struct input_plugin_data *ip_da
-
- codec = avcodec_find_decoder(cc->codec_id);
- if (!codec) {
-- d_print("codec not found: %d, %s\n", cc->codec_id,
cc->codec_name);
-+ d_print("codec not found: %d, %s\n", cc->codec_id,
avcodec_get_name(cc->codec_id));
- err = -IP_ERROR_UNSUPPORTED_FILE_TYPE;
- break;
- }
-
-- if (codec->capabilities & CODEC_CAP_TRUNCATED)
-- cc->flags |= CODEC_FLAG_TRUNCATED;
-+ if (codec->capabilities & AV_CODEC_CAP_TRUNCATED)
-+ cc->flags |= AV_CODEC_FLAG_TRUNCATED;
-
--#if (LIBAVCODEC_VERSION_INT < ((53<<16)+(8<<8)+0))
-- if (avcodec_open(cc, codec) < 0) {
--#else
- if (avcodec_open2(cc, codec, NULL) < 0) {
--#endif
-- d_print("could not open codec: %d, %s\n", cc->codec_id,
cc->codec_name);
-+ d_print("could not open codec: %d, %s\n", cc->codec_id,
avcodec_get_name(cc->codec_id));
- err = -IP_ERROR_UNSUPPORTED_FILE_TYPE;
- break;
- }
-@@ -258,11 +196,7 @@ static int ffmpeg_open(struct input_plugin_data *ip_da
-
- if (err < 0) {
- /* Clean up. cc is never opened at this point. (See above
assumption.) */
--#if (LIBAVCODEC_VERSION_INT < ((53<<16)+(25<<8)+0))
-- av_close_input_file(ic);
--#else
- avformat_close_input(&ic);
--#endif
- return err;
- }
-
-@@ -270,18 +204,14 @@ static int ffmpeg_open(struct input_plugin_data *ip_da
- priv->codec_context = cc;
- priv->input_context = ic;
- priv->codec = codec;
-- priv->stream_index = stream_index;
- priv->input = ffmpeg_input_create();
- if (priv->input == NULL) {
- avcodec_close(cc);
--#if (LIBAVCODEC_VERSION_INT < ((53<<16)+(25<<8)+0))
-- av_close_input_file(ic);
--#else
- avformat_close_input(&ic);
--#endif
- free(priv);
- return -IP_ERROR_INTERNAL;
- }
-+ priv->input->stream_index = stream_index;
- priv->output = ffmpeg_output_create();
-
- /* Prepare for resampling. */
-@@ -314,9 +244,7 @@ static int ffmpeg_open(struct input_plugin_data *ip_da
- #ifdef WORDS_BIGENDIAN
- ip_data->sf |= sf_bigendian(1);
- #endif
--#if (LIBAVCODEC_VERSION_INT > ((52<<16)+(1<<8)+0))
- channel_layout = cc->channel_layout;
--#endif
- channel_map_init_waveex(cc->channels, channel_layout,
ip_data->channel_map);
- return 0;
- }
-@@ -326,11 +254,7 @@ static int ffmpeg_close(struct input_plugin_data *ip_d
- struct ffmpeg_private *priv = ip_data->private;
-
- avcodec_close(priv->codec_context);
--#if (LIBAVCODEC_VERSION_INT < ((53<<16)+(25<<8)+0))
-- av_close_input_file(priv->input_context);
--#else
- avformat_close_input(&priv->input_context);
--#endif
- swr_free(&priv->swr);
- ffmpeg_input_free(priv->input);
- ffmpeg_output_free(priv->output);
-@@ -346,62 +270,50 @@ static int ffmpeg_close(struct input_plugin_data *ip_d
- static int ffmpeg_fill_buffer(AVFormatContext *ic, AVCodecContext *cc, struct
ffmpeg_input *input,
- struct ffmpeg_output *output, SwrContext *swr)
- {
--#if (LIBAVCODEC_VERSION_INT >= ((53<<16) + (25<<8) + 0))
-+#if LIBAVCODEC_VERSION_MAJOR >= 56
-+ AVFrame *frame = av_frame_alloc();
-+#else
- AVFrame *frame = avcodec_alloc_frame();
-- int got_frame;
- #endif
-+ int got_frame;
- while (1) {
--#if (LIBAVCODEC_VERSION_INT < ((53<<16) + (25<<8) + 0))
-- /* frame_size specifies the size of output->buffer for
-- * avcodec_decode_audio2. */
-- int frame_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
--#endif
- int len;
-
- if (input->curr_pkt_size <= 0) {
-+#if LIBAVCODEC_VERSION_MAJOR >= 56
-+ av_packet_unref(&input->pkt);
-+#else
- av_free_packet(&input->pkt);
-+#endif
- if (av_read_frame(ic, &input->pkt) < 0) {
- /* Force EOF once we can read no longer. */
--#if (LIBAVCODEC_VERSION_INT >= ((53<<16) + (25<<8) + 0))
-+#if LIBAVCODEC_VERSION_MAJOR >= 56
-+ av_frame_free(&frame);
-+#else
- avcodec_free_frame(&frame);
- #endif
- return 0;
- }
-- input->curr_pkt_size = input->pkt.size;
-- input->curr_pkt_buf = input->pkt.data;
-- input->curr_size += input->pkt.size;
-- input->curr_duration += input->pkt.duration;
-+ if (input->pkt.stream_index == input->stream_index) {
-+ input->curr_pkt_size = input->pkt.size;
-+ input->curr_pkt_buf = input->pkt.data;
-+ input->curr_size += input->pkt.size;
-+ input->curr_duration += input->pkt.duration;
-+ }
- continue;
- }
-
-- /* The change to avcodec_decode_audio2 occurred between
-- * 51.28.0 and 51.29.0 */
--#if (LIBAVCODEC_VERSION_INT <= ((51<<16) + (28<<8) + 0))
-- len = avcodec_decode_audio(cc, (int16_t *)output->buffer,
&frame_size,
-- input->curr_pkt_buf, input->curr_pkt_size);
-- /* The change to avcodec_decode_audio3 occurred between
-- * 52.25.0 and 52.26.0 */
--#elif (LIBAVCODEC_VERSION_INT <= ((52<<16) + (25<<8) + 0))
-- len = avcodec_decode_audio2(cc, (int16_t *) output->buffer,
&frame_size,
-- input->curr_pkt_buf, input->curr_pkt_size);
--#elif (LIBAVCODEC_VERSION_INT < ((53<<16) + (25<<8) + 0))
- {
- AVPacket avpkt;
-- av_init_packet(&avpkt);
-- avpkt.data = input->curr_pkt_buf;
-- avpkt.size = input->curr_pkt_size;
-- len = avcodec_decode_audio3(cc, (int16_t *)
output->buffer, &frame_size, &avpkt);
-- av_free_packet(&avpkt);
-- }
--#else
-- {
-- AVPacket avpkt;
- av_new_packet(&avpkt, input->curr_pkt_size);
- memcpy(avpkt.data, input->curr_pkt_buf,
input->curr_pkt_size);
- len = avcodec_decode_audio4(cc, frame, &got_frame,
&avpkt);
-+#if LIBAVCODEC_VERSION_MAJOR >= 56
-+ av_packet_unref(&avpkt);
-+#else
- av_free_packet(&avpkt);
-- }
- #endif
-+ }
- if (len < 0) {
- /* this is often reached when seeking, not sure why */
- input->curr_pkt_size = 0;
-@@ -409,13 +321,6 @@ static int ffmpeg_fill_buffer(AVFormatContext *ic, AVC
- }
- input->curr_pkt_size -= len;
- input->curr_pkt_buf += len;
--#if (LIBAVCODEC_VERSION_INT < ((53<<16) + (25<<8) + 0))
-- if (frame_size > 0) {
-- output->buffer_pos = output->buffer;
-- output->buffer_used_len = frame_size;
-- return frame_size;
-- }
--#else
- if (got_frame) {
- int res = swr_convert(swr,
- &output->buffer,
-@@ -426,10 +331,13 @@ static int ffmpeg_fill_buffer(AVFormatContext *ic, AVC
- res = 0;
- output->buffer_pos = output->buffer;
- output->buffer_used_len = res * cc->channels *
sizeof(int16_t);
-+#if LIBAVCODEC_VERSION_MAJOR >= 56
-+ av_frame_free(&frame);
-+#else
- avcodec_free_frame(&frame);
-+#endif
- return output->buffer_used_len;
- }
--#endif
- }
- /* This should never get here. */
- return -IP_ERROR_INTERNAL;
-@@ -459,30 +367,16 @@ static int ffmpeg_read(struct input_plugin_data *ip_da
- static int ffmpeg_seek(struct input_plugin_data *ip_data, double offset)
- {
- struct ffmpeg_private *priv = ip_data->private;
-- AVStream *st = priv->input_context->streams[priv->stream_index];
-+ AVStream *st = priv->input_context->streams[priv->input->stream_index];
- int ret;
-
-- /* There is a bug that was fixed in ffmpeg revision 5099 that affects
seeking.
-- * Apparently, the stream's timebase was not used consistently in asf.c.
-- * Prior to 5099, ASF seeking assumed seconds as inputs. There is a
-- * window of incompatibility, since avformat's version was not updated
at
-- * the same time. Instead, the transition to 50.3.0 occurred at
-- * revision 5028. */
--#if (LIBAVFORMAT_VERSION_INT < ((50<<16)+(3<<8)+0))
-- int64_t pts = (int64_t) offset;
--#else
- int64_t pts = av_rescale_q(offset * AV_TIME_BASE, AV_TIME_BASE_Q,
st->time_base);
--#endif
-
--#if (LIBAVFORMAT_VERSION_INT >= ((53<<16) + (25<<8) + 0))
-- {
-- avcodec_flush_buffers(priv->codec_context);
-- /* Force reading a new packet in next ffmpeg_fill_buffer(). */
-- priv->input->curr_pkt_size = 0;
-- }
--#endif
-+ avcodec_flush_buffers(priv->codec_context);
-+ /* Force reading a new packet in next ffmpeg_fill_buffer(). */
-+ priv->input->curr_pkt_size = 0;
-
-- ret = av_seek_frame(priv->input_context, priv->stream_index, pts, 0);
-+ ret = av_seek_frame(priv->input_context, priv->input->stream_index,
pts, 0);
-
- if (ret < 0) {
- return -IP_ERROR_FUNCTION_NOT_SUPPORTED;
-@@ -492,56 +386,30 @@ static int ffmpeg_seek(struct input_plugin_data *ip_da
- }
- }
-
--#if (LIBAVFORMAT_VERSION_INT < ((52<<16)+(31<<8)+0))
--/* Return new i. */
--static int set_comment(struct keyval *comment, int i, const char *key, const
char *val)
-+static void ffmpeg_read_metadata(struct growing_keyvals *c, AVDictionary
*metadata)
- {
-- if (val[0] == 0) {
-- return i;
-+ AVDictionaryEntry *tag = NULL;
-+
-+ while ((tag = av_dict_get(metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) {
-+ if (tag->value[0])
-+ comments_add_const(c, tag->key, tag->value);
- }
-- comment[i].key = xstrdup(key);
-- comment[i].val = xstrdup(val);
-- return i + 1;
- }
--#endif
-
- static int ffmpeg_read_comments(struct input_plugin_data *ip_data, struct
keyval **comments)
- {
- struct ffmpeg_private *priv = ip_data->private;
- AVFormatContext *ic = priv->input_context;
-
--#if (LIBAVFORMAT_VERSION_INT < ((52<<16)+(31<<8)+0))
-- char buff[16];
-- int i = 0;
--
-- *comments = keyvals_new(NUM_FFMPEG_KEYS);
--
-- i = set_comment(*comments, i, "artist", ic->author);
-- i = set_comment(*comments, i, "album", ic->album);
-- i = set_comment(*comments, i, "title", ic->title);
-- i = set_comment(*comments, i, "genre", ic->genre);
--
-- if (ic->year != 0) {
-- snprintf(buff, sizeof(buff), "%d", ic->year);
-- i = set_comment(*comments, i, "date", buff);
-- }
--
-- if (ic->track != 0) {
-- snprintf(buff, sizeof(buff), "%d", ic->track);
-- i = set_comment(*comments, i, "tracknumber", buff);
-- }
--#else
- GROWING_KEYVALS(c);
-- AVDictionaryEntry *tag = NULL;
-
-- while ((tag = av_dict_get(ic->metadata, "", tag,
AV_DICT_IGNORE_SUFFIX))) {
-- if (tag && tag->value[0])
-- comments_add_const(&c, tag->key, tag->value);
-+ ffmpeg_read_metadata(&c, ic->metadata);
-+ for (unsigned i = 0; i < ic->nb_streams; i++) {
-+ ffmpeg_read_metadata(&c, ic->streams[i]->metadata);
- }
-
- keyvals_terminate(&c);
- *comments = c.keyvals;
--#endif
-
- return 0;
- }
-@@ -562,13 +430,15 @@ static long ffmpeg_bitrate(struct input_plugin_data *i
- static long ffmpeg_current_bitrate(struct input_plugin_data *ip_data)
- {
- struct ffmpeg_private *priv = ip_data->private;
-- AVStream *st = priv->input_context->streams[priv->stream_index];
-+ AVStream *st = priv->input_context->streams[priv->input->stream_index];
- long bitrate = -1;
--#if (LIBAVFORMAT_VERSION_INT > ((51<<16)+(43<<8)+0))
- /* ape codec returns silly numbers */
-+#if LIBAVCODEC_VERSION_MAJOR >= 55
-+ if (priv->codec->id == AV_CODEC_ID_APE)
-+#else
- if (priv->codec->id == CODEC_ID_APE)
-- return -1;
- #endif
-+ return -1;
- if (priv->input->curr_duration > 0) {
- double seconds = priv->input->curr_duration *
av_q2d(st->time_base);
- bitrate = (8 * priv->input->curr_size) / seconds;
-@@ -584,32 +454,11 @@ static char *ffmpeg_codec(struct input_plugin_data *ip
- return xstrdup(priv->codec->name);
- }
-
--#if (LIBAVCODEC_VERSION_INT < ((52<<16)+(104<<8)+0))
--static const char *codec_profile_to_str(int profile)
--{
--#if (LIBAVCODEC_VERSION_INT >= ((51<<16)+(41<<8)+0))
-- switch (profile) {
-- case FF_PROFILE_AAC_MAIN: return "Main";
-- case FF_PROFILE_AAC_LOW: return "LC";
-- case FF_PROFILE_AAC_SSR: return "SSR";
-- case FF_PROFILE_AAC_LTP: return "LTP";
-- }
--#endif
-- return NULL;
--}
--#endif
--
- static char *ffmpeg_codec_profile(struct input_plugin_data *ip_data)
- {
- struct ffmpeg_private *priv = ip_data->private;
- const char *profile;
--
--#if (LIBAVCODEC_VERSION_INT < ((52<<16)+(104<<8)+0))
-- profile = codec_profile_to_str(priv->codec_context->profile);
--#else
- profile = av_get_profile_name(priv->codec,
priv->codec_context->profile);
--#endif
--
- return profile ? xstrdup(profile) : NULL;
- }
-
Index: patches/patch-ip_ffmpeg_c
===================================================================
RCS file: patches/patch-ip_ffmpeg_c
diff -N patches/patch-ip_ffmpeg_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ip_ffmpeg_c 17 Apr 2019 09:58:49 -0000
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: ip/ffmpeg.c
+--- ip/ffmpeg.c.orig
++++ ip/ffmpeg.c
+@@ -62,6 +62,7 @@ struct ffmpeg_private {
+ AVFormatContext *input_context;
+ AVCodec *codec;
+ SwrContext *swr;
++ int stream_index;
+
+ struct ffmpeg_input *input;
+ struct ffmpeg_output *output;
Index: patches/patch-sndio_c
===================================================================
RCS file: patches/patch-sndio_c
diff -N patches/patch-sndio_c
--- patches/patch-sndio_c 18 Feb 2017 10:16:34 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
-$OpenBSD: patch-sndio_c,v 1.2 2017/02/18 10:16:34 jca Exp $
-
-Support 32-bit/24-bit encoding.
-
-Commits 84f33584be91 and bf87f0d76f87 upstream.
-
---- sndio.c.orig Mon Jul 13 12:00:56 2015
-+++ sndio.c Thu Feb 9 12:11:30 2017
-@@ -20,7 +20,6 @@
-
- #include <sys/types.h>
- #include <sys/ioctl.h>
--#include <sys/audioio.h>
- #include <sys/stat.h>
- #include <errno.h>
- #include <fcntl.h>
-@@ -82,6 +81,13 @@ static int sndio_set_sf(sample_format_t sf)
- par.le = 1;
-
- switch (sf_get_bits(sndio_sf)) {
-+ case 32:
-+ par.bits = 32;
-+ break;
-+ case 24:
-+ par.bits = 24;
-+ par.bps = 3;
-+ break;
- case 16:
- par.bits = 16;
- break;
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/audio/cmus/pkg/PLIST-main,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST-main
--- pkg/PLIST-main 17 Jan 2016 01:16:38 -0000 1.3
+++ pkg/PLIST-main 17 Apr 2019 09:58:49 -0000
@@ -22,9 +22,13 @@ lib/cmus/op/sndio.so
share/cmus/
share/cmus/cyan.theme
share/cmus/default.theme
+share/cmus/dracula.theme
share/cmus/gray-88.theme
share/cmus/green-mono-88.theme
share/cmus/green.theme
+share/cmus/gruvbox-alt.theme
+share/cmus/gruvbox.theme
+share/cmus/jellybeans.theme
share/cmus/night.theme
share/cmus/rc
share/cmus/solarized-dark.theme
--
Paco Esteban.
https://onna.be/gpgkey.asc
9A6B 6083 AD9E FDC2 0EAF 5CB3 5818 130B 8A6D BC03