Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pianobar for openSUSE:Factory 
checked in at 2022-07-13 13:45:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pianobar (Old)
 and      /work/SRC/openSUSE:Factory/.pianobar.new.1523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pianobar"

Wed Jul 13 13:45:40 2022 rev:6 rq:988944 version:2022.04.01

Changes:
--------
--- /work/SRC/openSUSE:Factory/pianobar/pianobar.changes        2021-04-14 
10:11:44.141570344 +0200
+++ /work/SRC/openSUSE:Factory/.pianobar.new.1523/pianobar.changes      
2022-07-13 13:46:03.958089527 +0200
@@ -1,0 +2,9 @@
+Tue Jul 12 20:50:08 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com>
+
+- Update to version 2022.04.01:
+  * Fix compilation with ffmpeg 5.0 and replace deprecated function
+  * Improved retry handling with unreliable HTTP proxies
+  * Minor UI improvements
+- Update source url to main site.
+
+-------------------------------------------------------------------

Old:
----
  pianobar-2020.11.28.tar.gz

New:
----
  pianobar-2022.04.01.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pianobar.spec ++++++
--- /var/tmp/diff_new_pack.145dIf/_old  2022-07-13 13:46:04.442090215 +0200
+++ /var/tmp/diff_new_pack.145dIf/_new  2022-07-13 13:46:04.446090220 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package pianobar
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 # Copyright (c) 2016 Packman team: http://packman.links2linux.org/
 #
 # All modifications and additions to the file contributed by third parties
@@ -18,13 +18,13 @@
 
 
 Name:           pianobar
-Version:        2020.11.28
+Version:        2022.04.01
 Release:        0
 Summary:        Pandora Player
 License:        MIT
 Group:          Productivity/Multimedia/Sound/Utilities
 URL:            https://6xq.net/pianobar
-Source0:        
https://github.com/PromyLOPh/pianobar/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
+Source0:        %{url}/pianobar-2022.04.01.tar.bz2
 BuildRequires:  libgcrypt-devel
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(ao)
@@ -58,7 +58,7 @@
 make install PREFIX=%{_prefix} DESTDIR=%{buildroot}
 
 %files
-%doc README.md
+%doc README.rst
 %license COPYING
 %{_bindir}/%{name}
 %{_mandir}/man1/%{name}.1%{ext_man}

++++++ pianobar-2020.11.28.tar.gz -> pianobar-2022.04.01.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/.github/workflows/build.yml 
new/pianobar-2022.04.01/.github/workflows/build.yml
--- old/pianobar-2020.11.28/.github/workflows/build.yml 2020-11-28 
11:32:58.000000000 +0100
+++ new/pianobar-2022.04.01/.github/workflows/build.yml 2022-04-01 
13:02:42.000000000 +0200
@@ -13,8 +13,10 @@
 
     steps:
     - uses: actions/checkout@v2
-    - name: deps
-      run: sudo apt install libao-dev libavcodec-dev libavfilter-dev 
libavformat-dev libavutil-dev libcurl4-gnutls-dev libgcrypt20-dev libjson-c-dev 
libpth-dev pkg-config build-essential
-    - name: make
+    - name: Install dependencies
+      run: |
+          sudo apt-get update
+          sudo apt install libao-dev libavcodec-dev libavfilter-dev 
libavformat-dev libavutil-dev libcurl4-gnutls-dev libgcrypt20-dev libjson-c-dev 
libpth-dev pkg-config build-essential
+    - name: Build pianobar
       run: make
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/ChangeLog 
new/pianobar-2022.04.01/ChangeLog
--- old/pianobar-2020.11.28/ChangeLog   2020-11-28 11:32:58.000000000 +0100
+++ new/pianobar-2022.04.01/ChangeLog   2022-04-01 13:02:42.000000000 +0200
@@ -1,3 +1,10 @@
+Release 2022.04.01
+
+- Not a joke
+- Fix compilation with ffmpeg 5.0 and replace deprecated function
+- Improved retry handling with unreliable HTTP proxies
+- Minor UI improvements
+
 Release 2020.11.28
 
 - Support changing station modes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/Makefile 
new/pianobar-2022.04.01/Makefile
--- old/pianobar-2020.11.28/Makefile    2020-11-28 11:32:58.000000000 +0100
+++ new/pianobar-2022.04.01/Makefile    2022-04-01 13:02:42.000000000 +0200
@@ -1,5 +1,6 @@
 # makefile of pianobar
 
+PKG_CONFIG?=pkg-config
 PREFIX:=/usr/local
 BINDIR:=${PREFIX}/bin
 LIBDIR:=${PREFIX}/lib
@@ -45,20 +46,20 @@
 LIBPIANO_RELOBJ:=${LIBPIANO_SRC:.c=.lo}
 LIBPIANO_INCLUDE:=${LIBPIANO_DIR}
 
-LIBAV_CFLAGS:=$(shell pkg-config --cflags libavcodec libavformat libavutil 
libavfilter)
-LIBAV_LDFLAGS:=$(shell pkg-config --libs libavcodec libavformat libavutil 
libavfilter)
+LIBAV_CFLAGS:=$(shell $(PKG_CONFIG) --cflags libavcodec libavformat libavutil 
libavfilter)
+LIBAV_LDFLAGS:=$(shell $(PKG_CONFIG) --libs libavcodec libavformat libavutil 
libavfilter)
 
-LIBCURL_CFLAGS:=$(shell pkg-config --cflags libcurl)
-LIBCURL_LDFLAGS:=$(shell pkg-config --libs libcurl)
+LIBCURL_CFLAGS:=$(shell $(PKG_CONFIG) --cflags libcurl)
+LIBCURL_LDFLAGS:=$(shell $(PKG_CONFIG) --libs libcurl)
 
 LIBGCRYPT_CFLAGS:=
 LIBGCRYPT_LDFLAGS:=-lgcrypt
 
-LIBJSONC_CFLAGS:=$(shell pkg-config --cflags json-c 2>/dev/null || pkg-config 
--cflags json)
-LIBJSONC_LDFLAGS:=$(shell pkg-config --libs json-c 2>/dev/null || pkg-config 
--libs json)
+LIBJSONC_CFLAGS:=$(shell $(PKG_CONFIG) --cflags json-c 2>/dev/null || 
$(PKG_CONFIG) --cflags json)
+LIBJSONC_LDFLAGS:=$(shell $(PKG_CONFIG) --libs json-c 2>/dev/null || 
$(PKG_CONFIG) --libs json)
 
-LIBAO_CFLAGS:=$(shell pkg-config --cflags ao)
-LIBAO_LDFLAGS:=$(shell pkg-config --libs ao)
+LIBAO_CFLAGS:=$(shell $(PKG_CONFIG) --cflags ao)
+LIBAO_LDFLAGS:=$(shell $(PKG_CONFIG) --libs ao)
 
 # combine all flags
 ALL_CFLAGS:=${CFLAGS} -I ${LIBPIANO_INCLUDE} \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/README.md 
new/pianobar-2022.04.01/README.md
--- old/pianobar-2020.11.28/README.md   2020-11-28 11:32:58.000000000 +0100
+++ new/pianobar-2022.04.01/README.md   1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-# pianobar
-
-![build](https://github.com/PromyLOPh/pianobar/workflows/build/badge.svg)
-
-pianobar is a console client for the personalized web radio 
[Pandora](https://www.pandora.com).
-
-### Features
-
-* Play and manage (create, add more music, delete, rename, ...) your stations.
-* Rate played songs and let pandora explain why they have been selected.
-* Show upcoming songs/song history.
-* Configure keybindings.
-* last.fm scrobbling support (external application)
-* Proxy support for listeners outside the USA.
-
-### Source Code
-
-The source code can be downloaded at 
[github.com](https://github.com/PromyLOPh/pianobar)
-or [6xq.net](https://6xq.net/pianobar/).
-
-### Download/Installation
-
-There are community provided packages available for most Linux distributions 
(see your distribution???s package manager), macOS 
([MacPorts](https://www.macports.org) or [Homebrew](https://brew.sh)) and *BSD 
as well as a [native Windows port](https://github.com/thedmd/pianobar-windows).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/README.rst 
new/pianobar-2022.04.01/README.rst
--- old/pianobar-2020.11.28/README.rst  1970-01-01 01:00:00.000000000 +0100
+++ new/pianobar-2022.04.01/README.rst  2022-04-01 13:02:42.000000000 +0200
@@ -0,0 +1,216 @@
+pianobar
+========
+
+pianobar is a free/open-source, console-based client for the personalized
+online radio Pandora_.
+
+.. _Pandora: http://www.pandora.com
+
+.. image:: https://6xq.net/pianobar/pianobar-screenshot.png
+    :target: https://6xq.net/pianobar/pianobar-screenshot.png
+    :alt: pianobar screenshot
+
+Features
+--------
+
+- play and manage (create, add more music, delete, rename, ...) stations
+- rate songs and explain why they have been selected
+- upcoming songs/song history
+- customize keybindings and text output (see `configuration example`_)
+- remote control and eventcmd interface (send tracks to last.fm_, for example)
+- proxy support for listeners outside the USA
+
+.. _last.fm: https://www.last.fm
+.. _configuration example: 
https://github.com/PromyLOPh/pianobar/blob/master/contrib/config-example
+
+Download
+--------
+
+There are community provided packages available for most Linux distributions
+(see your distribution???s package manager), Mac OS X (via homebrew_)
+and \*BSD as well as a `native Windows port`_.
+
+.. _homebrew: http://brew.sh/
+.. _native Windows Port: https://github.com/thedmd/pianobar-windows
+
+The current pianobar release is 2020.11.28_ (sha256__, sign__). More recent and
+experimental code is available at GitHub_ and the local gitweb_. Older releases
+are available here:
+
+- 2020.04.05_ (sha256__, sign__)
+- 2019.02.14_ (sha256__, sign__)
+- 2019.01.25_ (sha256__, sign__)
+- 2018.06.22_ (sha256__, sign__)
+- 2017.08.30_ (sha256__, sign__)
+- 2016.06.02_ (sha256__, sign__)
+- 2015.11.22_ (sha256__, sign__)
+- 2014.09.28_ (sha256__, sign__)
+- 2014.06.08_ (sha256__, sign__)
+- 2013.09.15_ (sha256__, sign__)
+- 2013.05.19_ (sha256__, sign__)
+- 2012.12.01_ (sha256__, sign__)
+- 2012.09.07_ (sha256__, sign__)
+- 2012.06.24_ (sha256__, sign__)
+- 2012.05.06_ (sha256__, sign__)
+- 2012.04.24_ (sha256__, sign__)
+- 2012.01.10_ (sha256__, sign__)
+- 2011.12.11_ (sha256__, sign__)
+- 2011.11.11_ (sha256__, sign__)
+- 2011.11.09_ (sha256__, sign__)
+- 2011.09.22_ (sha256__, sign__)
+- 2011.07.09_ (sha256__, sign__)
+- 2011.04.27_ (sha256__, sign__)
+- 2011.04.10_ (sha256__, sign__)
+- 2011.01.24_ (sha256__)
+- 2010.11.06_ (sha1__)
+- 2010.10.07_ (sha1__)
+- 2010.08.21_ (sha1__)
+
+.. _2020.11.28: https://6xq.net/pianobar/pianobar-2020.11.28.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2020.11.28.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2020.11.28.tar.bz2.asc
+.. _snapshot: http://github.com/PromyLOPh/pianobar/tarball/master
+.. _GitHub: http://github.com/PromyLOPh/pianobar/
+.. _gitweb: https://6xq.net/git/lars/pianobar.git/
+.. _2020.04.05: https://6xq.net/pianobar/pianobar-2020.04.05.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2020.04.05.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2020.04.05.tar.bz2.asc
+.. _2019.02.14: https://6xq.net/pianobar/pianobar-2019.02.14.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2019.02.14.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2019.02.14.tar.bz2.asc
+.. _2019.01.25: https://6xq.net/pianobar/pianobar-2019.01.25.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2019.01.25.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2019.01.25.tar.bz2.asc
+.. _2018.06.22: https://6xq.net/pianobar/pianobar-2018.06.22.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2018.06.22.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2018.06.22.tar.bz2.asc
+.. _2017.08.30: https://6xq.net/pianobar/pianobar-2017.08.30.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2017.08.30.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2017.08.30.tar.bz2.asc
+.. _2016.06.02: https://6xq.net/pianobar/pianobar-2016.06.02.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2016.06.02.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2016.06.02.tar.bz2.asc
+.. _2015.11.22: https://6xq.net/pianobar/pianobar-2015.11.22.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2015.11.22.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2015.11.22.tar.bz2.asc
+.. _2014.09.28: https://6xq.net/pianobar/pianobar-2014.09.28.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2014.09.28.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2014.09.28.tar.bz2.asc
+.. _2014.06.08: https://6xq.net/pianobar/pianobar-2014.06.08.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2014.06.08.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2014.06.08.tar.bz2.asc
+.. _2013.09.15: https://6xq.net/pianobar/pianobar-2013.09.15.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2013.09.15.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2013.09.15.tar.bz2.asc
+.. _2013.05.19: https://6xq.net/pianobar/pianobar-2013.05.19.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2013.05.19.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2013.05.19.tar.bz2.asc
+.. _2012.12.01: https://6xq.net/pianobar/pianobar-2012.12.01.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2012.12.01.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2012.12.01.tar.bz2.asc
+.. _2012.09.07: https://6xq.net/pianobar/pianobar-2012.09.07.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2012.09.07.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2012.09.07.tar.bz2.asc
+.. _2012.06.24: https://6xq.net/pianobar/pianobar-2012.06.24.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2012.06.24.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2012.06.24.tar.bz2.asc
+.. _2012.05.06: https://6xq.net/pianobar/pianobar-2012.05.06.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2012.05.06.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2012.05.06.tar.bz2.asc
+.. _2012.04.24: https://6xq.net/pianobar/pianobar-2012.04.24.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2012.04.24.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2012.04.24.tar.bz2.asc
+.. _2012.01.10: https://6xq.net/pianobar/pianobar-2012.01.10.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2012.01.10.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2012.01.10.tar.bz2.asc
+.. _2011.12.11: https://6xq.net/pianobar/pianobar-2011.12.11.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.12.11.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2011.12.11.tar.bz2.asc
+.. _2011.11.11: https://6xq.net/pianobar/pianobar-2011.11.11.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.11.11.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2011.11.11.tar.bz2.asc
+.. _2011.11.09: https://6xq.net/pianobar/pianobar-2011.11.09.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.11.09.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2011.11.09.tar.bz2.asc
+.. _2011.09.22: https://6xq.net/pianobar/pianobar-2011.09.22.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.09.22.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2011.09.22.tar.bz2.asc
+.. _2011.07.09: https://6xq.net/pianobar/pianobar-2011.07.09.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.07.09.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2011.07.09.tar.bz2.asc
+.. _2011.04.27: https://6xq.net/pianobar/pianobar-2011.04.27.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.04.27.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2011.04.27.tar.bz2.asc
+.. _2011.04.10: https://6xq.net/pianobar/pianobar-2011.04.10.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.04.10.tar.bz2.sha256
+__ https://6xq.net/pianobar/pianobar-2011.04.10.tar.bz2.asc
+.. _2011.01.24: https://6xq.net/pianobar/pianobar-2011.01.24.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2011.01.24.tar.bz2.sha256
+.. _2010.11.06: https://6xq.net/pianobar/pianobar-2010.11.06.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2010.11.06.tar.bz2.sha1
+.. _2010.10.07: https://6xq.net/pianobar/pianobar-2010.10.07.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2010.10.07.tar.bz2.sha1
+.. _2010.08.21: https://6xq.net/pianobar/pianobar-2010.08.21.tar.bz2
+__ https://6xq.net/pianobar/pianobar-2010.08.21.tar.bz2.sha1
+
+FAQ
+---
+
+The audio output does not work as expected. What can I do?
+    pianobar uses libao and most problems are related to a broken libao
+    configuration. Have a look at issue `#167`_ for example.
+Can I donate money? Do you have a Flattr/Bitcoin/??? account?
+    No, money is not necessary to continue working on pianobar. There are many
+    other ways to support pianobar: Reporting bugs, creating `cool stuff`_
+    based on pianobar, blogging about it and the most important one: Keeping
+    Pandora alive.
+
+.. _#167: https://github.com/PromyLOPh/pianobar/issues/167
+.. _cool stuff: `addons`_
+
+External projects
+-----------------
+
+Addons
+++++++
+
+control-pianobar_
+    Scripts that interact with pianobar entirely through notification bubbles
+    and hotkeys
+pianobar.el_
+    Emacs interface for pianobar
+`pianobar-mediaplayer2`_
+    Control pianobar like any other media player through DBUS/MPRIS.
+PianobarNowPlayable_
+    Integrate pianobar with the Now Playing feature of macOS
+
+.. _control-pianobar: http://malabarba.github.io/control-pianobar/
+.. _pianobar.el: https://github.com/agrif/pianobar.el
+.. _pianobar-mediaplayer2: 
https://github.com/ryanswilson59/pianobar-mediaplayer2
+.. _PianobarNowPlayable: https://github.com/iDom818/PianobarNowPlayable
+
+Clients
++++++++
+
+pithos_
+       Python/GTK desktop client
+pianod_
+    Pandora UNIX daemon, based on pianobar
+Hermes_
+    Pandora Client for OS X
+
+.. _pithos: http://pithos.github.io/
+.. _pianod: http://deviousfish.com/pianod/
+.. _Hermes: http://hermesapp.org/
+
+Standalone devices
+++++++++++++++++++
+
+PandoraBar_
+    Beagleboard-based radio device running pianobar
+`Pandora???s Box`_
+    Raspberry Pi-based standalone devices running pianobar
+
+.. _PandoraBar: 
https://hackaday.com/2012/09/20/how-to-build-your-own-dedicated-pandora-radio/
+.. _Pandora???s Box: 
http://www.instructables.com/id/Pandoras-Box-An-Internet-Radio-player-made-with/
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/src/config.h 
new/pianobar-2022.04.01/src/config.h
--- old/pianobar-2020.11.28/src/config.h        2020-11-28 11:32:58.000000000 
+0100
+++ new/pianobar-2022.04.01/src/config.h        2022-04-01 13:02:42.000000000 
+0200
@@ -3,7 +3,7 @@
 /* package name */
 #define PACKAGE "pianobar"
 
-#define VERSION "2020.11.28"
+#define VERSION "2022.04.01"
 
 /* glibc feature test macros, define _before_ including other files */
 #define _POSIX_C_SOURCE 200809L
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/src/player.c 
new/pianobar-2022.04.01/src/player.c
--- old/pianobar-2020.11.28/src/player.c        2020-11-28 11:32:58.000000000 
+0100
+++ new/pianobar-2022.04.01/src/player.c        2022-04-01 13:02:42.000000000 
+0200
@@ -401,12 +401,12 @@
 static int play (player_t * const player) {
        assert (player != NULL);
        const int64_t minBufferHealth = player->settings->bufferSecs;
-
-       AVPacket pkt;
        AVCodecContext * const cctx = player->cctx;
-       av_init_packet (&pkt);
-       pkt.data = NULL;
-       pkt.size = 0;
+
+       AVPacket *pkt = av_packet_alloc ();
+       assert (pkt != NULL);
+       pkt->data = NULL;
+       pkt->size = 0;
 
        AVFrame *frame = NULL;
        frame = av_frame_alloc ();
@@ -418,15 +418,15 @@
        const double timeBase = av_q2d (player->st->time_base);
        while (!shouldQuit (player) && drainMode != DONE) {
                if (drainMode == FILL) {
-                       ret = av_read_frame (player->fctx, &pkt);
+                       ret = av_read_frame (player->fctx, pkt);
                        if (ret == AVERROR_EOF) {
                                /* enter drain mode */
                                drainMode = DRAIN;
                                avcodec_send_packet (cctx, NULL);
                                debugPrint (DEBUG_AUDIO, "decoder entering 
drain mode after EOF\n");
-                       } else if (pkt.stream_index != player->streamIdx) {
+                       } else if (pkt->stream_index != player->streamIdx) {
                                /* unused packet */
-                               av_packet_unref (&pkt);
+                               av_packet_unref (pkt);
                                continue;
                        } else if (ret < 0) {
                                /* error, abort */
@@ -441,7 +441,7 @@
                                break;
                        } else {
                                /* fill buffer */
-                               avcodec_send_packet (cctx, &pkt);
+                               avcodec_send_packet (cctx, pkt);
                        }
                }
 
@@ -490,9 +490,10 @@
                        } while (bufferHealth > minBufferHealth);
                }
 
-               av_packet_unref (&pkt);
+               av_packet_unref (pkt);
        }
        av_frame_free (&frame);
+       av_packet_free (&pkt);
        debugPrint (DEBUG_AUDIO, "decoder is done, waiting for ao player\n");
        pthread_join (aoplaythread, NULL);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/src/player.h 
new/pianobar-2022.04.01/src/player.h
--- old/pianobar-2020.11.28/src/player.h        2020-11-28 11:32:58.000000000 
+0100
+++ new/pianobar-2022.04.01/src/player.h        2022-04-01 13:02:42.000000000 
+0200
@@ -34,6 +34,7 @@
 #include <ao/ao.h>
 #include <libavformat/avformat.h>
 #include <libavfilter/avfilter.h>
+#include <libavcodec/avcodec.h>
 #include <piano.h>
 
 #include "settings.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/src/ui.c 
new/pianobar-2022.04.01/src/ui.c
--- old/pianobar-2020.11.28/src/ui.c    2020-11-28 11:32:58.000000000 +0100
+++ new/pianobar-2022.04.01/src/ui.c    2022-04-01 13:02:42.000000000 +0200
@@ -171,6 +171,27 @@
        }
 }
 
+/*     Error codes from libcurl, which may be temporary and should be retried.
+ */
+static bool temporaryCurlError (const CURLcode code) {
+       switch (code) {
+               case CURLE_COULDNT_RESOLVE_PROXY:
+               case CURLE_COULDNT_RESOLVE_HOST:
+               case CURLE_COULDNT_CONNECT:
+               case CURLE_WEIRD_SERVER_REPLY:
+               case CURLE_READ_ERROR:
+               case CURLE_OPERATION_TIMEDOUT:
+               case CURLE_SSL_CONNECT_ERROR:
+               case CURLE_GOT_NOTHING:
+               case CURLE_SEND_ERROR:
+               case CURLE_RECV_ERROR:
+                       return true;
+
+               default:
+                       return false;
+       }
+}
+
 #define setAndCheck(k,v) \
        httpret = curl_easy_setopt (http, k, v); \
        assert (httpret == CURLE_OK);
@@ -248,7 +269,7 @@
        do {
                httpret = curl_easy_perform (http);
                ++retry;
-               if (httpret == CURLE_OPERATION_TIMEDOUT) {
+               if (temporaryCurlError (httpret)) {
                        free (buffer.data);
                        buffer.data = NULL;
                        buffer.pos = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pianobar-2020.11.28/src/ui_act.c 
new/pianobar-2022.04.01/src/ui_act.c
--- old/pianobar-2020.11.28/src/ui_act.c        2020-11-28 11:32:58.000000000 
+0100
+++ new/pianobar-2022.04.01/src/ui_act.c        2022-04-01 13:02:42.000000000 
+0200
@@ -785,7 +785,12 @@
        }
 
        /* enable submenus depending on data availability */
-       strcpy (question, "Delete ");
+       if (reqData.info.artistSeeds != NULL ||
+                       reqData.info.songSeeds != NULL ||
+                       reqData.info.stationSeeds != NULL ||
+                       reqData.info.feedback != NULL) {
+               strcpy (question, "Delete ");
+       }
        if (reqData.info.artistSeeds != NULL) {
                strcat (question, "[a]rtist");
                *allowedPos++ = 'a';
@@ -814,15 +819,22 @@
                strcat (question, "[f]eedback");
                *allowedPos++ = 'f';
        }
-       /* station mode is always available */
        if (allowedPos != allowedActions) {
                strcat (question, "? ");
        }
-       strcat (question, "Manage [m]ode? ");
-       *allowedPos++ = 'm';
+       /* station mode is not available for QuickMix. */
+       if (!selStation->isQuickMix) {
+               strcat (question, "Manage [m]ode? ");
+               *allowedPos++ = 'm';
+       }
 
        *allowedPos = '\0';
 
+       if (allowedPos == allowedActions) {
+               BarUiMsg (&app->settings, MSG_INFO, "No actions available.\n");
+               return;
+       }
+
        assert (strlen (question) < sizeof (question) / sizeof (*question));
 
        BarUiMsg (&app->settings, MSG_QUESTION, "%s", question);

Reply via email to