diff --git a/ijkmedia/ijkplayer/ff_ffplay.c b/ijkmedia/ijkplayer/ff_ffplay.c index af615a51957df633f1cc41678d26a95b1d05b7ff..2e02de0336c6ee613175863219ce08e0d0ca7570 100644 --- a/ijkmedia/ijkplayer/ff_ffplay.c +++ b/ijkmedia/ijkplayer/ff_ffplay.c @@ -105,6 +105,9 @@ static const AVOption ffp_context_options[] = { VIDEO_PICTURE_QUEUE_SIZE_MIN, VIDEO_PICTURE_QUEUE_SIZE_MAX) }, + { "max-buffer-size", "max buffer size should be pre-read", + OPTION_OFFSET(max_buffer_size), OPTION_INT(MAX_QUEUE_SIZE, 0, MAX_QUEUE_SIZE) }, + { NULL } }; #undef OPTION_INT @@ -3088,14 +3091,6 @@ void ffp_set_overlay_format(FFPlayer *ffp, int chroma_fourcc) } } -void ffp_set_max_buffer_size(FFPlayer *ffp, int max_buffer_size) -{ - if (max_buffer_size < 0 || max_buffer_size > MAX_QUEUE_SIZE) - ffp->max_buffer_size = MAX_QUEUE_SIZE; - else - ffp->max_buffer_size = max_buffer_size; -} - int ffp_get_video_codec_info(FFPlayer *ffp, char **codec_info) { if (!codec_info) diff --git a/ijkmedia/ijkplayer/ff_ffplay.h b/ijkmedia/ijkplayer/ff_ffplay.h index 80d264b283cce3fd044b352c06d7eb88bb80cd8b..70708b0e235d47e914353fe48bb81d07b5152a76 100644 --- a/ijkmedia/ijkplayer/ff_ffplay.h +++ b/ijkmedia/ijkplayer/ff_ffplay.h @@ -47,8 +47,6 @@ void ffp_set_format_callback(FFPlayer *ffp, ijk_format_control_message cb, void ffp_set_option(FFPlayer *ffp, int opt_category, const char *name, const char *value); void ffp_set_option_int(FFPlayer *ffp, int opt_category, const char *name, int64_t value); -void ffp_set_max_buffer_size(FFPlayer *ffp, int max_buffer_size); - int ffp_get_video_codec_info(FFPlayer *ffp, char **codec_info); int ffp_get_audio_codec_info(FFPlayer *ffp, char **codec_info); diff --git a/ijkmedia/ijkplayer/ijkplayer.c b/ijkmedia/ijkplayer/ijkplayer.c index 76e56c33be3b972e62f951e7e85228da765e9c3c..d886d9e9d3a7ef3da129dfce01d5ab9cd8d0ad06 100644 --- a/ijkmedia/ijkplayer/ijkplayer.c +++ b/ijkmedia/ijkplayer/ijkplayer.c @@ -233,11 +233,7 @@ void ijkmp_set_max_buffer_size(IjkMediaPlayer *mp, int max_buffer_size) { assert(mp); - MPTRACE("%s(%d)\n", __func__, max_buffer_size); - pthread_mutex_lock(&mp->mutex); - ffp_set_max_buffer_size(mp->ffplayer, max_buffer_size); - pthread_mutex_unlock(&mp->mutex); - MPTRACE("%s()=void\n", __func__); + ijkmp_set_option_int(mp, IJKMP_OPT_CATEGORY_PLAYER, "max-buffer-size", max_buffer_size); } int ijkmp_get_video_codec_info(IjkMediaPlayer *mp, char **codec_info) diff --git a/ijkmedia/ijkplayer/ijkplayer.h b/ijkmedia/ijkplayer/ijkplayer.h index 5fd69c0566fb045d0d2747425d09b92f8c51a394..c6133d3f20699fb79be2daa5711d091bde17e03c 100644 --- a/ijkmedia/ijkplayer/ijkplayer.h +++ b/ijkmedia/ijkplayer/ijkplayer.h @@ -184,6 +184,7 @@ attribute_deprecated void ijkmp_set_framedrop(IjkMediaPlayer *mp, int framedrop); attribute_deprecated void ijkmp_set_auto_play_on_prepared(IjkMediaPlayer *mp, int auto_play_on_prepared); +attribute_deprecated void ijkmp_set_max_buffer_size(IjkMediaPlayer *mp, int max_buffer_size); int ijkmp_get_video_codec_info(IjkMediaPlayer *mp, char **codec_info); diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m index a7fc1980bba20e54abdc107a18735c753c058e02..8d7b450ff891b01f83bb2d9f38bafd99451ae077 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m @@ -307,7 +307,7 @@ void IJKFFIOStatCompleteRegister(void (*cb)(const char *url, if (!_mediaPlayer) return; - ijkmp_set_max_buffer_size(_mediaPlayer, maxBufferSize); + ijkmp_set_option_int(_mediaPlayer, IJKMP_OPT_CATEGORY_PLAYER, "max-buffer-size", maxBufferSize); } + (void)setLogReport:(BOOL)preferLogReport diff --git a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFOptions.m b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFOptions.m index 064d750fbf02ea39df67d301245b75ca492cea48..824a3bdb0477a51af15ad249fb06f4bda99bfb0e 100644 --- a/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFOptions.m +++ b/ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFOptions.m @@ -43,6 +43,7 @@ ijkmp_set_option_int(mediaPlayer, IJKMP_OPT_CATEGORY_PLAYER, "max-fps", _maxFps); ijkmp_set_option_int(mediaPlayer, IJKMP_OPT_CATEGORY_PLAYER, "framedrop", _frameDrop); ijkmp_set_option_int(mediaPlayer, IJKMP_OPT_CATEGORY_PLAYER, "video-pictq-size", _frameBufferCount); + ijkmp_set_option_int(mediaPlayer, IJKMP_OPT_CATEGORY_PLAYER, "max-buffer-size", 123); ijkmp_ios_set_videotoolbox_enabled(mediaPlayer, _videotoolboxEnabled); ijkmp_ios_set_frame_max_width(mediaPlayer, _frameMaxWidth);