diff --git a/modules/codec/avcodec/fourcc.c b/modules/codec/avcodec/fourcc.c index b9fa1bba33..de7b9e1377 100644 --- a/modules/codec/avcodec/fourcc.c +++ b/modules/codec/avcodec/fourcc.c @@ -563,9 +563,9 @@ bool GetFfmpegCodec( const es_format_t *es, const struct vlc_avcodec_fourcc *base; size_t count; - if (es->i_codec == VLC_CODEC_VP8 && es->i_level) // contains alpha extradata + if (es->i_codec == VLC_CODEC_VP8 && es->i_level != 0 && es->i_level != -1) // contains alpha extradata return false; - if (es->i_codec == VLC_CODEC_VP9 && es->i_level) // contains alpha extradata + if (es->i_codec == VLC_CODEC_VP9 && es->i_level != 0 && es->i_level != -1) // contains alpha extradata return false; switch( es->i_cat ) diff --git a/modules/codec/gstreamer/gstdecode.c b/modules/codec/gstreamer/gstdecode.c index 08cfc70060..5269f296ba 100644 --- a/modules/codec/gstreamer/gstdecode.c +++ b/modules/codec/gstreamer/gstdecode.c @@ -408,12 +408,12 @@ static GstStructure* vlc_to_gst_fmt( const es_format_t *p_fmt ) "systemstream", G_TYPE_BOOLEAN, FALSE, NULL ); break; case VLC_CODEC_VP8: - if (p_fmt->i_level) // contains alpha extradata + if (p_fmt->i_level != 0 && p_fmt->i_level != -1) // contains alpha extradata return NULL; p_str = gst_structure_new_empty( "video/x-vp8" ); break; case VLC_CODEC_VP9: - if (p_fmt->i_level) // contains alpha extradata + if (p_fmt->i_level != 0 && p_fmt->i_level != -1) // contains alpha extradata return NULL; p_str = gst_structure_new_empty( "video/x-vp9" ); break; diff --git a/modules/codec/omxil/mediacodec.c b/modules/codec/omxil/mediacodec.c index a844d719f1..050734fdac 100644 --- a/modules/codec/omxil/mediacodec.c +++ b/modules/codec/omxil/mediacodec.c @@ -809,11 +809,11 @@ static int OpenDecoder(vlc_object_t *p_this, pf_MediaCodecApi_init pf_init) case VLC_CODEC_WMV3: mime = "video/x-ms-wmv"; break; case VLC_CODEC_VC1: mime = "video/wvc1"; break; case VLC_CODEC_VP8: - if (p_dec->fmt_in->i_level) // contains alpha extradata + if (p_dec->fmt_in->i_level != 0 && p_dec->fmt_in->i_level != -1) // contains alpha extradata return VLC_ENOTSUP; mime = "video/x-vnd.on2.vp8"; break; case VLC_CODEC_VP9: - if (p_dec->fmt_in->i_level) // contains alpha extradata + if (p_dec->fmt_in->i_level != 0 && p_dec->fmt_in->i_level != -1) // contains alpha extradata return VLC_ENOTSUP; mime = "video/x-vnd.on2.vp9"; break; } diff --git a/modules/codec/omxil/utils.c b/modules/codec/omxil/utils.c index eaa53831e1..90f8e79c98 100644 --- a/modules/codec/omxil/utils.c +++ b/modules/codec/omxil/utils.c @@ -598,9 +598,9 @@ OMX_VIDEO_CODINGTYPE GetOmxVideoFormat( const es_format_t *es ) for( size_t i = 0; i < ARRAY_SIZE(video_format_table); i++ ) if( video_format_table[i].i_fourcc == i_fourcc ) { - if (es->i_codec == VLC_CODEC_VP8 && es->i_level) // contains alpha extradata + if (es->i_codec == VLC_CODEC_VP8 && es->i_level != 0 && es->i_level != -1) // contains alpha extradata continue; - if (es->i_codec == VLC_CODEC_VP9 && es->i_level) // contains alpha extradata + if (es->i_codec == VLC_CODEC_VP9 && es->i_level != 0 && es->i_level != -1) // contains alpha extradata continue; return video_format_table[i].i_codec; @@ -628,9 +628,9 @@ static const char *GetOmxVideoRole( const es_format_t *es ) for( size_t i = 0; i < ARRAY_SIZE(video_format_table); i++ ) if( video_format_table[i].i_fourcc == i_fourcc ) { - if (es->i_codec == VLC_CODEC_VP8 && es->i_level) // contains alpha extradata + if (es->i_codec == VLC_CODEC_VP8 && es->i_level != 0 && es->i_level != -1) // contains alpha extradata continue; - if (es->i_codec == VLC_CODEC_VP9 && es->i_level) // contains alpha extradata + if (es->i_codec == VLC_CODEC_VP9 && es->i_level != 0 && es->i_level != -1) // contains alpha extradata continue; return video_format_table[i].psz_role; diff --git a/modules/codec/vpx.c b/modules/codec/vpx.c index 55ed75171d..0401ac1d3d 100644 --- a/modules/codec/vpx.c +++ b/modules/codec/vpx.c @@ -310,7 +310,7 @@ static int OpenDecoder(vlc_object_t *p_this) { #ifdef ENABLE_VP8_DECODER case VLC_CODEC_VP8: - if (dec->fmt_in->i_level) // contains alpha extradata + if (dec->fmt_in->i_level != 0 && dec->fmt_in->i_level != -1) // contains alpha extradata return VLC_ENOTSUP; // fallthrough case VLC_CODEC_WEBP: @@ -321,7 +321,7 @@ static int OpenDecoder(vlc_object_t *p_this) #endif #ifdef ENABLE_VP9_DECODER case VLC_CODEC_VP9: - if (dec->fmt_in->i_level) // contains alpha extradata + if (dec->fmt_in->i_level != 0 && dec->fmt_in->i_level != -1) // contains alpha extradata return VLC_ENOTSUP; // fallthrough case VLC_CODEC_VP9ALPHA_ES: @@ -413,7 +413,7 @@ static int OpenEncoder(vlc_object_t *p_this) { #ifdef ENABLE_VP8_ENCODER case VLC_CODEC_VP8: - if (p_enc->fmt_out.i_level) // contains alpha extradata + if (p_enc->fmt_out.i_level != 0 && p_enc->fmt_out.i_level != -1) // contains alpha extradata return VLC_ENOTSUP; // fallthrough case VLC_CODEC_WEBP: @@ -423,7 +423,7 @@ static int OpenEncoder(vlc_object_t *p_this) #endif #ifdef ENABLE_VP9_ENCODER case VLC_CODEC_VP9: - if (p_enc->fmt_out.i_level) // contains alpha extradata + if (p_enc->fmt_out.i_level != 0 && p_enc->fmt_out.i_level != -1) // contains alpha extradata return VLC_ENOTSUP; iface = &vpx_codec_vp9_cx_algo; vp_version = 9; diff --git a/modules/codec/vpx_alpha.c b/modules/codec/vpx_alpha.c index 930ddcd7b7..7569189c72 100644 --- a/modules/codec/vpx_alpha.c +++ b/modules/codec/vpx_alpha.c @@ -438,7 +438,7 @@ int OpenDecoder(vlc_object_t *o) decoder_t *dec = container_of(o, decoder_t, obj); if (dec->fmt_in->i_codec != VLC_CODEC_VP8 && dec->fmt_in->i_codec != VLC_CODEC_VP9) return VLC_ENOTSUP; - if (dec->fmt_in->i_level == 0) + if (dec->fmt_in->i_level == 0 || dec->fmt_in->i_level == -1) return VLC_ENOTSUP; vpx_alpha *p_sys = vlc_obj_calloc(o, 1, sizeof(*p_sys)); diff --git a/modules/hw/mmal/codec.c b/modules/hw/mmal/codec.c index 352848d41e..76b284be9d 100644 --- a/modules/hw/mmal/codec.c +++ b/modules/hw/mmal/codec.c @@ -151,7 +151,7 @@ static MMAL_FOURCC_T vlc_to_mmal_es_fourcc(const es_format_t *es) case VLC_CODEC_VP6: return MMAL_ENCODING_VP6; case VLC_CODEC_VP8: - if (es->i_level) // contains alpha extradata + if (es->i_level != 0 && es->i_level != -1) // contains alpha extradata return 0; return MMAL_ENCODING_VP8; case VLC_CODEC_WMV1: diff --git a/modules/hw/nvdec/nvdec.c b/modules/hw/nvdec/nvdec.c index d69189a183..e5d780358d 100644 --- a/modules/hw/nvdec/nvdec.c +++ b/modules/hw/nvdec/nvdec.c @@ -815,7 +815,7 @@ static int OpenDecoder(vlc_object_t *p_this) case VLC_CODEC_MP4V: break; case VLC_CODEC_VP8: - if (p_dec->fmt_in->i_level) // contains alpha extradata + if (p_dec->fmt_in->i_level != 0 && p_dec->fmt_in->i_level != -1) // contains alpha extradata goto early_exit; break; case VLC_CODEC_VP9: @@ -824,7 +824,7 @@ static int OpenDecoder(vlc_object_t *p_this) msg_Warn(p_dec, "Unsupported VP9 profile %d", p_dec->fmt_in->i_profile); goto early_exit; } - if (p_dec->fmt_in->i_level) // contains alpha extradata + if (p_dec->fmt_in->i_level != 0 && p_dec->fmt_in->i_level != -1) // contains alpha extradata goto early_exit; break; default: diff --git a/modules/packetizer/avparser.c b/modules/packetizer/avparser.c index 1bb9f0b447..61db932cba 100644 --- a/modules/packetizer/avparser.c +++ b/modules/packetizer/avparser.c @@ -88,7 +88,7 @@ int avparser_OpenPacketizer( vlc_object_t *p_this ) /* Restrict to VP9 for now */ if( p_dec->fmt_in->i_codec != VLC_CODEC_VP9 ) return VLC_ENOTSUP; - if( p_dec->fmt_in->i_level ) // contains alpha extradata + if( p_dec->fmt_in->i_level != 0 && p_dec->fmt_in->i_level != -1 ) // contains alpha extradata return VLC_ENOTSUP; enum AVCodecID i_avcodec_id; diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp index f3191579f0..9324e82e4e 100644 --- a/modules/stream_out/chromecast/cast.cpp +++ b/modules/stream_out/chromecast/cast.cpp @@ -773,11 +773,11 @@ bool sout_stream_sys_t::canDecodeVideo( const es_format_t *es ) const case VLC_CODEC_HEVC: return true; case VLC_CODEC_VP8: - if (es->i_level) // contains alpha extradata + if (es->i_level != 0 && es->i_level != -1) // contains alpha extradata return false; return true; case VLC_CODEC_VP9: - if (es->i_level) // contains alpha extradata + if (es->i_level != 0 && es->i_level != -1) // contains alpha extradata return false; return true; default: diff --git a/modules/stream_out/rtpfmt.c b/modules/stream_out/rtpfmt.c index 51f21f4084..65c100fb5e 100644 --- a/modules/stream_out/rtpfmt.c +++ b/modules/stream_out/rtpfmt.c @@ -644,7 +644,7 @@ int rtp_get_fmt( vlc_object_t *obj, const es_format_t *p_fmt, const char *mux, rtp_fmt->fmtp = strdup( "sprop-stereo=1" ); break; case VLC_CODEC_VP8: - if (p_fmt->i_level) // contains alpha extradata + if (p_fmt->i_level != 0 && p_fmt->i_level != -1) // contains alpha extradata return VLC_ENOTSUP; rtp_fmt->ptname = "VP8"; rtp_fmt->pf_packetize = rtp_packetize_vp8;