ping ! Anyone using cmus ?
On Wed, 17 Apr 2019, Paco Esteban wrote: > 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