[vlc-commits] lib/media_player: use INPUT_GET_FULL_TITLE_INFO
Thomas Guillem
git at videolan.org
Thu Jul 12 12:08:37 CEST 2018
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Thu Jul 12 11:21:31 2018 +0200| [9dc070b930b2c62d73535358c43b1298a3ee4e3b] | committer: Thomas Guillem
lib/media_player: use INPUT_GET_FULL_TITLE_INFO
Don't use INPUT_GET_TITLE_INFO that depends on a variable.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9dc070b930b2c62d73535358c43b1298a3ee4e3b
---
lib/media_player.c | 41 +++++++++++++++--------------------------
1 file changed, 15 insertions(+), 26 deletions(-)
diff --git a/lib/media_player.c b/lib/media_player.c
index 426ba88903..7903d3ea43 100644
--- a/lib/media_player.c
+++ b/lib/media_player.c
@@ -1555,33 +1555,22 @@ int libvlc_media_player_get_full_chapter_descriptions( libvlc_media_player_t *p_
return -1;
seekpoint_t **p_seekpoint = NULL;
+ input_title_t **pp_title, *p_title = NULL;
+ int i_title_count = 0, ci_chapter_count = 0;
+ int ret = input_Control( p_input_thread, INPUT_GET_FULL_TITLE_INFO, &pp_title,
+ &i_title_count );
+ vlc_object_release( p_input_thread );
- /* fetch data */
- int ci_chapter_count = i_chapters_of_title;
-
- int ret = input_Control(p_input_thread, INPUT_GET_SEEKPOINTS, &p_seekpoint, &ci_chapter_count);
- if( ret != VLC_SUCCESS)
- {
- vlc_object_release( p_input_thread );
- return -1;
- }
+ if( ret != VLC_SUCCESS || i_chapters_of_title >= i_title_count )
+ goto error;
- if (ci_chapter_count == 0 || p_seekpoint == NULL)
- {
- vlc_object_release( p_input_thread );
- return 0;
- }
+ p_title = pp_title[i_chapters_of_title];
+ int64_t i_title_duration = MS_FROM_VLC_TICK(p_title->i_length);
+ p_seekpoint = p_title->seekpoint;
+ ci_chapter_count = p_title->i_seekpoint;
- input_title_t *p_title;
- ret = input_Control( p_input_thread, INPUT_GET_TITLE_INFO, &p_title,
- &i_chapters_of_title );
- vlc_object_release( p_input_thread );
- if( ret != VLC_SUCCESS )
- {
+ if( ci_chapter_count == 0 || p_seekpoint == NULL)
goto error;
- }
- int64_t i_title_duration = MS_FROM_VLC_TICK(p_title->i_length);
- vlc_input_title_Delete( p_title );
*pp_chapters = calloc( ci_chapter_count, sizeof(**pp_chapters) );
if( !*pp_chapters )
@@ -1632,9 +1621,9 @@ int libvlc_media_player_get_full_chapter_descriptions( libvlc_media_player_t *p_
error:
if( *pp_chapters )
libvlc_chapter_descriptions_release( *pp_chapters, ci_chapter_count );
- for ( int i = 0; i < ci_chapter_count; ++i )
- vlc_seekpoint_Delete( p_seekpoint[i] );
- free( p_seekpoint );
+ for( int i = 0; i < i_title_count; i++ )
+ vlc_input_title_Delete( pp_title[i] );
+ free( pp_title ) ;
return -1;
}
More information about the vlc-commits
mailing list