Commit 72e8d86b authored by Jordi Ortiz's avatar Jordi Ortiz Committed by Luca Barbato

dirac: use meaningful return values

Signed-off-by: 's avatarLuca Barbato <lu_zero@gentoo.org>
parent 44c56a16
...@@ -123,20 +123,20 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb, ...@@ -123,20 +123,20 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
if (source->chroma_format > 2) { if (source->chroma_format > 2) {
av_log(avctx, AV_LOG_ERROR, "Unknown chroma format %d\n", av_log(avctx, AV_LOG_ERROR, "Unknown chroma format %d\n",
source->chroma_format); source->chroma_format);
return -1; return AVERROR_INVALIDDATA;
} }
if (get_bits1(gb)) if (get_bits1(gb))
source->interlaced = svq3_get_ue_golomb(gb); source->interlaced = svq3_get_ue_golomb(gb);
if (source->interlaced > 1) if (source->interlaced > 1)
return -1; return AVERROR_INVALIDDATA;
// frame rate // frame rate
if (get_bits1(gb)) { if (get_bits1(gb)) {
source->frame_rate_index = svq3_get_ue_golomb(gb); source->frame_rate_index = svq3_get_ue_golomb(gb);
if (source->frame_rate_index > 10) if (source->frame_rate_index > 10)
return -1; return AVERROR_INVALIDDATA;
if (!source->frame_rate_index) { if (!source->frame_rate_index) {
frame_rate.num = svq3_get_ue_golomb(gb); frame_rate.num = svq3_get_ue_golomb(gb);
...@@ -157,7 +157,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb, ...@@ -157,7 +157,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
source->aspect_ratio_index = svq3_get_ue_golomb(gb); source->aspect_ratio_index = svq3_get_ue_golomb(gb);
if (source->aspect_ratio_index > 6) if (source->aspect_ratio_index > 6)
return -1; return AVERROR_INVALIDDATA;
if (!source->aspect_ratio_index) { if (!source->aspect_ratio_index) {
avctx->sample_aspect_ratio.num = svq3_get_ue_golomb(gb); avctx->sample_aspect_ratio.num = svq3_get_ue_golomb(gb);
...@@ -180,7 +180,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb, ...@@ -180,7 +180,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
source->pixel_range_index = svq3_get_ue_golomb(gb); source->pixel_range_index = svq3_get_ue_golomb(gb);
if (source->pixel_range_index > 4) if (source->pixel_range_index > 4)
return -1; return AVERROR_INVALIDDATA;
// This assumes either fullrange or MPEG levels only // This assumes either fullrange or MPEG levels only
if (!source->pixel_range_index) { if (!source->pixel_range_index) {
...@@ -208,7 +208,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb, ...@@ -208,7 +208,7 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
idx = source->color_spec_index = svq3_get_ue_golomb(gb); idx = source->color_spec_index = svq3_get_ue_golomb(gb);
if (source->color_spec_index > 4) if (source->color_spec_index > 4)
return -1; return AVERROR_INVALIDDATA;
avctx->color_primaries = dirac_color_presets[idx].color_primaries; avctx->color_primaries = dirac_color_presets[idx].color_primaries;
avctx->colorspace = dirac_color_presets[idx].colorspace; avctx->colorspace = dirac_color_presets[idx].colorspace;
...@@ -247,6 +247,7 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb, ...@@ -247,6 +247,7 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb,
{ {
unsigned version_major; unsigned version_major;
unsigned video_format, picture_coding_mode; unsigned video_format, picture_coding_mode;
int ret;
version_major = svq3_get_ue_golomb(gb); version_major = svq3_get_ue_golomb(gb);
svq3_get_ue_golomb(gb); /* version_minor */ svq3_get_ue_golomb(gb); /* version_minor */
...@@ -260,17 +261,17 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb, ...@@ -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"); av_log(avctx, AV_LOG_WARNING, "Stream may have unhandled features\n");
if (video_format > 20) if (video_format > 20)
return -1; return AVERROR_INVALIDDATA;
// Fill in defaults for the source parameters. // Fill in defaults for the source parameters.
*source = dirac_source_parameters_defaults[video_format]; *source = dirac_source_parameters_defaults[video_format];
// Override the defaults. // Override the defaults.
if (parse_source_parameters(avctx, gb, source)) if (ret = parse_source_parameters(avctx, gb, source))
return -1; return ret;
if (av_image_check_size(source->width, source->height, 0, avctx)) if (ret = av_image_check_size(source->width, source->height, 0, avctx))
return -1; return ret;
avcodec_set_dimensions(avctx, source->width, source->height); avcodec_set_dimensions(avctx, source->width, source->height);
...@@ -279,7 +280,7 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb, ...@@ -279,7 +280,7 @@ int avpriv_dirac_parse_sequence_header(AVCodecContext *avctx, GetBitContext *gb,
if (picture_coding_mode != 0) { if (picture_coding_mode != 0) {
av_log(avctx, AV_LOG_ERROR, "Unsupported picture coding mode %d", av_log(avctx, AV_LOG_ERROR, "Unsupported picture coding mode %d",
picture_coding_mode); picture_coding_mode);
return -1; return AVERROR_INVALIDDATA;
} }
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment