mirror of https://git.ffmpeg.org/ffmpeg.git
dirac: use meaningful return values
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
44c56a1617
commit
72e8d86b19
|
@ -123,20 +123,20 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
|
|||
if (source->chroma_format > 2) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Unknown chroma format %d\n",
|
||||
source->chroma_format);
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
if (get_bits1(gb))
|
||||
source->interlaced = svq3_get_ue_golomb(gb);
|
||||
if (source->interlaced > 1)
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
// frame rate
|
||||
if (get_bits1(gb)) {
|
||||
source->frame_rate_index = svq3_get_ue_golomb(gb);
|
||||
|
||||
if (source->frame_rate_index > 10)
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
if (!source->frame_rate_index) {
|
||||
frame_rate.num = svq3_get_ue_golomb(gb);
|
||||
|
@ -157,7 +157,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
|
|||
source->aspect_ratio_index = svq3_get_ue_golomb(gb);
|
||||
|
||||
if (source->aspect_ratio_index > 6)
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
if (!source->aspect_ratio_index) {
|
||||
avctx->sample_aspect_ratio.num = svq3_get_ue_golomb(gb);
|
||||
|
@ -180,7 +180,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
|
|||
source->pixel_range_index = svq3_get_ue_golomb(gb);
|
||||
|
||||
if (source->pixel_range_index > 4)
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
// This assumes either fullrange or MPEG levels only
|
||||
if (!source->pixel_range_index) {
|
||||
|
@ -208,7 +208,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
|
|||
idx = source->color_spec_index = svq3_get_ue_golomb(gb);
|
||||
|
||||
if (source->color_spec_index > 4)
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
avctx->color_primaries = dirac_color_presets[idx].color_primaries;
|
||||
avctx->colorspace = dirac_color_presets[idx].colorspace;
|
||||
|
@ -247,6 +247,7 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb,
|
|||
{
|
||||
unsigned version_major;
|
||||
unsigned video_format, picture_coding_mode;
|
||||
int ret;
|
||||
|
||||
version_major = svq3_get_ue_golomb(gb);
|
||||
svq3_get_ue_golomb(gb); /* version_minor */
|
||||
|
@ -260,17 +261,17 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb,
|
|||
av_log(avctx, AV_LOG_WARNING, "Stream may have unhandled features\n");
|
||||
|
||||
if (video_format > 20)
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
// Fill in defaults for the source parameters.
|
||||
*source = dirac_source_parameters_defaults[video_format];
|
||||
|
||||
// Override the defaults.
|
||||
if (parse_source_parameters(avctx, gb, source))
|
||||
return -1;
|
||||
if (ret = parse_source_parameters(avctx, gb, source))
|
||||
return ret;
|
||||
|
||||
if (av_image_check_size(source->width, source->height, 0, avctx))
|
||||
return -1;
|
||||
if (ret = av_image_check_size(source->width, source->height, 0, avctx))
|
||||
return ret;
|
||||
|
||||
avcodec_set_dimensions(avctx, source->width, source->height);
|
||||
|
||||
|
@ -279,7 +280,7 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb,
|
|||
if (picture_coding_mode != 0) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Unsupported picture coding mode %d",
|
||||
picture_coding_mode);
|
||||
return -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue