@ -57,6 +57,7 @@ typedef struct AviSynthLibrary {
AVSC_DECLARE_FUNC ( avs_get_version ) ;
AVSC_DECLARE_FUNC ( avs_get_video_info ) ;
AVSC_DECLARE_FUNC ( avs_invoke ) ;
AVSC_DECLARE_FUNC ( avs_is_color_space ) ;
AVSC_DECLARE_FUNC ( avs_release_clip ) ;
AVSC_DECLARE_FUNC ( avs_release_value ) ;
AVSC_DECLARE_FUNC ( avs_release_video_frame ) ;
@ -133,6 +134,7 @@ static av_cold int avisynth_load_library(void)
LOAD_AVS_FUNC ( avs_get_version , 0 ) ;
LOAD_AVS_FUNC ( avs_get_video_info , 0 ) ;
LOAD_AVS_FUNC ( avs_invoke , 0 ) ;
LOAD_AVS_FUNC ( avs_is_color_space , 1 ) ;
LOAD_AVS_FUNC ( avs_release_clip , 0 ) ;
LOAD_AVS_FUNC ( avs_release_value , 0 ) ;
LOAD_AVS_FUNC ( avs_release_video_frame , 0 ) ;
@ -628,7 +630,6 @@ static int avisynth_read_packet_video(AVFormatContext *s, AVPacket *pkt,
const unsigned char * src_p ;
int n , i , plane , rowsize , planeheight , pitch , bits , ret ;
const char * error ;
int avsplus av_unused ;
if ( avs - > curr_frame > = avs - > vi - > num_frames )
return AVERROR_EOF ;
@ -638,19 +639,6 @@ static int avisynth_read_packet_video(AVFormatContext *s, AVPacket *pkt,
if ( discard )
return 0 ;
# ifdef _WIN32
/* Detect whether we're using AviSynth 2.6 or AviSynth+ by
* looking for whether avs_is_planar_rgb exists . */
if ( GetProcAddress ( avs_library . library , " avs_is_planar_rgb " ) = = NULL )
avsplus = 0 ;
else
avsplus = 1 ;
# else
/* AviSynth+ is now the only variant of AviSynth we support
* on Linux and macOS . */
avsplus = 1 ;
# endif
bits = avs_library . avs_bits_per_pixel ( avs - > vi ) ;
/* Without the cast to int64_t, calculation overflows at about 9k x 9k
@ -687,14 +675,9 @@ static int avisynth_read_packet_video(AVFormatContext *s, AVPacket *pkt,
planeheight = avs_library . avs_get_height_p ( frame , plane ) ;
/* Flip RGB video. */
if ( avs_is_rgb24 ( avs - > vi ) | | avs_is_rgb ( avs - > vi ) ) {
src_p = src_p + ( planeheight - 1 ) * pitch ;
pitch = - pitch ;
}
/* Flip Planar RGB video */
if ( avsplus & & ( avs_library . avs_is_planar_rgb ( avs - > vi ) | |
avs_library . avs_is_planar_rgba ( avs - > vi ) ) ) {
if ( avs_library . avs_is_color_space ( avs - > vi , AVS_CS_BGR ) | |
avs_library . avs_is_color_space ( avs - > vi , AVS_CS_BGR48 ) | |
avs_library . avs_is_color_space ( avs - > vi , AVS_CS_BGR64 ) ) {
src_p = src_p + ( planeheight - 1 ) * pitch ;
pitch = - pitch ;
}