Looking at the debug log from both rhythmbox and my test code, I can confirm this. Note that if I change the server and podcast XML to port 80 this test works fine.
When I add the podcast URL, rbox debug output clearly references 8080
(10:06:42) [0x2655ca0] [rb_uri_could_be_podcast] rb-file-helpers.c:596: 'http://localhost:8080/test_podcast_feed.xml' should be Podcast file, HACK (10:06:42) [0x2655ca0] [rb_podcast_parse_load_feed] rb-podcast-parse.c:168: not checking mime type for http://localhost:8080/test_podcast_feed.xml (should be Podcast file) (10:06:42) [0x2655ca0] [rb_podcast_parse_load_feed] rb-podcast-parse.c:241: Parsing http://localhost:8080/test_podcast_feed.xml as a Podcast succeeded
My test server confirms it receives a request for the XML
10:06:42.715 DEBUG test_rbox:190 - Podcast XML file requested 10:06:42.720 DEBUG test_rbox:223 - Host: localhost:8080
When I select the TRACK to be played rbox debug clearly is NO LONGER searching for port 80:
(10:10:04) [0xd296a0] [rb_entry_view_row_activated_cb] rb-entry-view.c:2139: row activated (10:10:04) [0xd296a0] [rb_entry_view_row_activated_cb] rb-entry-view.c:2143: emitting entry activated (10:10:04) [0xd296a0] [episode_entry_activated_cb] rb-podcast-add-dialog.c:633: search result podcast entry http://localhost/001.mp3 activated (10:10:04) [0xd296a0] [load_uri_finish] rb-shell.c:2896: found an entry to play (10:10:04) [0xd296a0] [rb_shell_player_stop] rb-shell-player.c:2124: stopping (10:10:04) [0xd296a0] [rb_shell_player_set_playing_source_internal] rb-shell-player.c:2060: setting playing source to (nil) (10:10:04) [0xd296a0] [rb_shell_player_sync_with_source] rb-shell-player.c:1887: playing source: (nil), active entry: (nil) (10:10:04) [0xd296a0] [rb_shell_set_window_title] rb-shell.c:2397: clearing title (10:10:04) [0xd296a0] [rb_shell_player_sync_buttons] rb-shell-player.c:1979: syncing with source 0x1028630 (10:10:04) [0xd296a0] [rb_shell_playing_source_changed_cb] rb-shell.c:2240: playing source changed (10:10:04) [0xd296a0] [rb_shell_player_sync_with_source] rb-shell-player.c:1887: playing source: (nil), active entry: (nil) (10:10:04) [0xd296a0] [rb_shell_set_window_title] rb-shell.c:2397: clearing title (10:10:04) [0xd296a0] [rb_shell_player_sync_buttons] rb-shell-player.c:1979: syncing with source 0x1028630 (10:10:04) [0xd296a0] [rb_shell_player_set_playing_source_internal] rb-shell-player.c:2060: setting playing source to 0x1028630 (10:10:04) [0xd296a0] [rb_shell_player_sync_with_source] rb-shell-player.c:1887: playing source: 0x1028630, active entry: (nil) (10:10:04) [0xd296a0] [rb_shell_set_window_title] rb-shell.c:2397: clearing title (10:10:04) [0xd296a0] [rb_shell_player_sync_buttons] rb-shell-player.c:1979: syncing with source 0x1028630 (10:10:04) [0xd296a0] [rb_shell_playing_source_changed_cb] rb-shell.c:2240: playing source changed (10:10:04) [0xd296a0] [rebuild_menu] rb-display-page-menu.c:211: building menu, 0 => 0 items (10:10:04) [0xd296a0] [rb_player_gst_try_audio_sink] rb-player-gst-helper.c:101: audio sink autoaudiosink changed to READY state successfully (10:10:04) [0xd296a0] [construct_pipeline] rb-player-gst.c:738: pipeline construction complete (10:10:04) [0xd296a0] [impl_open] rb-player-gst.c:796: setting new uri to http://localhost/001.mp3 (10:10:04) [0xd296a0] [impl_play] rb-player-gst.c:868: not in transition, stopping current track to start the new one (10:10:04) [0xd296a0] [start_state_change] rb-player-gst.c:381: changing state to READY (10:10:04) [0xd296a0] [start_state_change] rb-player-gst.c:385: state change succeeded synchronously (10:10:04) [0xd296a0] [state_change_finished] rb-player-gst.c:410: setting new playback URI http://localhost/001.mp3 (10:10:04) [0xd296a0] [start_state_change] rb-player-gst.c:381: changing state to PLAYING (10:10:04) [0xd296a0] [rb_shell_player_set_playing_entry] rb-shell-player.c:885: Success! (10:10:04) [0xd296a0] [bus_cb] rb-player-gst.c:537: playbin reached state READY (10:10:04) [0xd296a0] [track_change_done] rb-player-gst.c:337: track change finished (10:10:04) [0xd296a0] [playing_stream_cb] rb-shell-player.c:2475: new playing stream: http://localhost/001.mp3 (10:10:04) [0xd296a0] [rb_ext_db_request] rb-ext-db.c:684: starting metadata request (10:10:04) [0xd296a0] [lookup_cb] rb-ext-db.c:536: lookup failed (10:10:04) [0xd296a0] [rb_header_sync] rb-header.c:802: syncing with http://localhost/001.mp3 (10:10:04) [0xd296a0] [rb_shell_player_sync_with_source] rb-shell-player.c:1887: playing source: 0x1028630, active entry: 0x1f8ffe0 (10:10:04) [0xd296a0] [rb_shell_set_window_title] rb-shell.c:2420: setting title to "ubuntu@localhost - Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur pa" (10:10:04) [0xd296a0] [rb_shell_player_sync_buttons] rb-shell-player.c:1979: syncing with source 0x1028630 (10:10:04) [0xd296a0] [rb_player_gst_find_element_with_property] rb-player-gst-helper.c:151: iterating bin looking for property volume (10:10:04) [0xd296a0] [find_property_element] rb-player-gst-helper.c:117: found property "volume" on element autoaudiosink0-actual-sink-pulse (10:10:04) [0xd296a0] [bus_cb] rb-player-gst.c:496: got error from stream: Cannot connect to destination (localhost) (gstsouphttpsrc.c(960): gst_soup_http_src_finished_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: libsoup status code 4) (10:10:04) [0xd296a0] [rb_shell_player_error] rb-shell-player.c:2404: playback error while playing: Cannot connect to destination (localhost) (10:10:04) [0xd296a0] [error_cb] rb-shell-player.c:2514: exiting error hander (10:10:04) [0xd296a0] [start_state_change] rb-player-gst.c:381: changing state to NULL (10:10:04) [0xd296a0] [start_state_change] rb-player-gst.c:385: state change succeeded synchronously (10:10:04) [0xd296a0] [rb_shell_player_handle_eos] rb-shell-player.c:508: handling eos for http://localhost/001.mp3 (10:10:04) [0xd296a0] [rb_shell_player_stop] rb-shell-player.c:2124: stopping (10:10:04) [0xd296a0] [start_state_change] rb-player-gst.c:381: changing state to NULL (10:10:04) [0xd296a0] [start_state_change] rb-player-gst.c:385: state change succeeded synchronously (10:10:04) [0xd296a0] [rb_shell_player_set_playing_source_internal] rb-shell-player.c:2060: setting playing source to (nil) (10:10:04) [0xd296a0] [rb_shell_player_set_playing_source_internal] rb-shell-player.c:2083: source is already playing, stopping it (10:10:04) [0xd296a0] [rb_shell_player_sync_with_source] rb-shell-player.c:1887: playing source: (nil), active entry: (nil) (10:10:04) [0xd296a0] [rb_shell_set_window_title] rb-shell.c:2397: clearing title (10:10:04) [0xd296a0] [rb_shell_player_sync_buttons] rb-shell-player.c:1979: syncing with source 0x1028630 (10:10:04) [0xd296a0] [rb_shell_playing_source_changed_cb] rb-shell.c:2240: playing source changed (10:10:04) [0xd296a0] [rebuild_menu] rb-display-page-menu.c:211: building menu, 0 => 0 items (10:10:04) [0xd296a0] [rb_shell_player_sync_with_source] rb-shell-player.c:1887: playing source: (nil), active entry: (nil) (10:10:04) [0xd296a0] [rb_shell_set_window_title] rb-shell.c:2397: clearing title (10:10:04) [0xd296a0] [rb_header_sync] rb-header.c:912: not playing
Looking at the debug log from both rhythmbox and my test code, I can confirm this. Note that if I change the server and podcast XML to port 80 this test works fine.
When I add the podcast URL, rbox debug output clearly references 8080
(10:06:42) [0x2655ca0] [rb_uri_ could_be_ podcast] rb-file- helpers. c:596: 'http:// localhost: 8080/test_ podcast_ feed.xml' should be Podcast file, HACK parse_load_ feed] rb-podcast- parse.c: 168: not checking mime type for http:// localhost: 8080/test_ podcast_ feed.xml (should be Podcast file) parse_load_ feed] rb-podcast- parse.c: 241: Parsing http:// localhost: 8080/test_ podcast_ feed.xml as a Podcast succeeded
(10:06:42) [0x2655ca0] [rb_podcast_
(10:06:42) [0x2655ca0] [rb_podcast_
My test server confirms it receives a request for the XML
10:06:42.715 DEBUG test_rbox:190 - Podcast XML file requested
10:06:42.720 DEBUG test_rbox:223 - Host: localhost:8080
When I select the TRACK to be played rbox debug clearly is NO LONGER searching for port 80:
(10:10:04) [0xd296a0] [rb_entry_ view_row_ activated_ cb] rb-entry- view.c: 2139: row activated view_row_ activated_ cb] rb-entry- view.c: 2143: emitting entry activated entry_activated _cb] rb-podcast- add-dialog. c:633: search result podcast entry http:// localhost/ 001.mp3 activated player_ stop] rb-shell- player. c:2124: stopping player_ set_playing_ source_ internal] rb-shell- player. c:2060: setting playing source to (nil) player_ sync_with_ source] rb-shell- player. c:1887: playing source: (nil), active entry: (nil) set_window_ title] rb-shell.c:2397: clearing title player_ sync_buttons] rb-shell- player. c:1979: syncing with source 0x1028630 playing_ source_ changed_ cb] rb-shell.c:2240: playing source changed player_ sync_with_ source] rb-shell- player. c:1887: playing source: (nil), active entry: (nil) set_window_ title] rb-shell.c:2397: clearing title player_ sync_buttons] rb-shell- player. c:1979: syncing with source 0x1028630 player_ set_playing_ source_ internal] rb-shell- player. c:2060: setting playing source to 0x1028630 player_ sync_with_ source] rb-shell- player. c:1887: playing source: 0x1028630, active entry: (nil) set_window_ title] rb-shell.c:2397: clearing title player_ sync_buttons] rb-shell- player. c:1979: syncing with source 0x1028630 playing_ source_ changed_ cb] rb-shell.c:2240: playing source changed page-menu. c:211: building menu, 0 => 0 items gst_try_ audio_sink] rb-player- gst-helper. c:101: audio sink autoaudiosink changed to READY state successfully pipeline] rb-player- gst.c:738: pipeline construction complete gst.c:796: setting new uri to http:// localhost/ 001.mp3 gst.c:868: not in transition, stopping current track to start the new one state_change] rb-player- gst.c:381: changing state to READY state_change] rb-player- gst.c:385: state change succeeded synchronously change_ finished] rb-player- gst.c:410: setting new playback URI http:// localhost/ 001.mp3 state_change] rb-player- gst.c:381: changing state to PLAYING player_ set_playing_ entry] rb-shell- player. c:885: Success! gst.c:537: playbin reached state READY gst.c:337: track change finished player. c:2475: new playing stream: http:// localhost/ 001.mp3 localhost/ 001.mp3 player_ sync_with_ source] rb-shell- player. c:1887: playing source: 0x1028630, active entry: 0x1f8ffe0 set_window_ title] rb-shell.c:2420: setting title to "ubuntu@localhost - Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur pa" player_ sync_buttons] rb-shell- player. c:1979: syncing with source 0x1028630 gst_find_ element_ with_property] rb-player- gst-helper. c:151: iterating bin looking for property volume element] rb-player- gst-helper. c:117: found property "volume" on element autoaudiosink0- actual- sink-pulse gst.c:496: got error from stream: Cannot connect to destination (localhost) (gstsouphttpsrc .c(960) : gst_soup_ http_src_ finished_ cb (): /GstPlayBin: playbin0/ GstURIDecodeBin :uridecodebin0/ GstSoupHTTPSrc: source: player_ error] rb-shell- player. c:2404: playback error while playing: Cannot connect to destination (localhost) player. c:2514: exiting error hander state_change] rb-player- gst.c:381: changing state to NULL state_change] rb-player- gst.c:385: state change succeeded synchronously player_ handle_ eos] rb-shell- player. c:508: handling eos for http:// localhost/ 001.mp3 player_ stop] rb-shell- player. c:2124: stopping state_change] rb-player- gst.c:381: changing state to NULL state_change] rb-player- gst.c:385: state change succeeded synchronously player_ set_playing_ source_ internal] rb-shell- player. c:2060: setting playing source to (nil) player_ set_playing_ source_ internal] rb-shell- player. c:2083: source is already playing, stopping it player_ sync_with_ source] rb-shell- player. c:1887: playing source: (nil), active entry: (nil) set_window_ title] rb-shell.c:2397: clearing title player_ sync_buttons] rb-shell- player. c:1979: syncing with source 0x1028630 playing_ source_ changed_ cb] rb-shell.c:2240: playing source changed page-menu. c:211: building menu, 0 => 0 items player_ sync_with_ source] rb-shell- player. c:1887: playing source: (nil), active entry: (nil) set_window_ title] rb-shell.c:2397: clearing title
(10:10:04) [0xd296a0] [rb_entry_
(10:10:04) [0xd296a0] [episode_
(10:10:04) [0xd296a0] [load_uri_finish] rb-shell.c:2896: found an entry to play
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rebuild_menu] rb-display-
(10:10:04) [0xd296a0] [rb_player_
(10:10:04) [0xd296a0] [construct_
(10:10:04) [0xd296a0] [impl_open] rb-player-
(10:10:04) [0xd296a0] [impl_play] rb-player-
(10:10:04) [0xd296a0] [start_
(10:10:04) [0xd296a0] [start_
(10:10:04) [0xd296a0] [state_
(10:10:04) [0xd296a0] [start_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [bus_cb] rb-player-
(10:10:04) [0xd296a0] [track_change_done] rb-player-
(10:10:04) [0xd296a0] [playing_stream_cb] rb-shell-
(10:10:04) [0xd296a0] [rb_ext_db_request] rb-ext-db.c:684: starting metadata request
(10:10:04) [0xd296a0] [lookup_cb] rb-ext-db.c:536: lookup failed
(10:10:04) [0xd296a0] [rb_header_sync] rb-header.c:802: syncing with http://
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_player_
(10:10:04) [0xd296a0] [find_property_
(10:10:04) [0xd296a0] [bus_cb] rb-player-
libsoup status code 4)
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [error_cb] rb-shell-
(10:10:04) [0xd296a0] [start_
(10:10:04) [0xd296a0] [start_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [start_
(10:10:04) [0xd296a0] [start_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rebuild_menu] rb-display-
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_shell_
(10:10:04) [0xd296a0] [rb_header_sync] rb-header.c:912: not playing