mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
h264_ps: Use more meaningful error values
This commit is contained in:
parent
330ad1f6a5
commit
c18838f5eb
@ -110,7 +110,7 @@ static inline int decode_hrd_parameters(H264Context *h, SPS *sps)
|
|||||||
|
|
||||||
if (cpb_count > 32U) {
|
if (cpb_count > 32U) {
|
||||||
av_log(h->avctx, AV_LOG_ERROR, "cpb_count %d invalid\n", cpb_count);
|
av_log(h->avctx, AV_LOG_ERROR, "cpb_count %d invalid\n", cpb_count);
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_bits(&h->gb, 4); /* bit_rate_scale */
|
get_bits(&h->gb, 4); /* bit_rate_scale */
|
||||||
@ -144,7 +144,7 @@ static inline int decode_vui_parameters(H264Context *h, SPS *sps)
|
|||||||
sps->sar = pixel_aspect[aspect_ratio_idc];
|
sps->sar = pixel_aspect[aspect_ratio_idc];
|
||||||
} else {
|
} else {
|
||||||
av_log(h->avctx, AV_LOG_ERROR, "illegal aspect ratio\n");
|
av_log(h->avctx, AV_LOG_ERROR, "illegal aspect ratio\n");
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sps->sar.num =
|
sps->sar.num =
|
||||||
@ -188,7 +188,7 @@ static inline int decode_vui_parameters(H264Context *h, SPS *sps)
|
|||||||
av_log(h->avctx, AV_LOG_ERROR,
|
av_log(h->avctx, AV_LOG_ERROR,
|
||||||
"time_scale/num_units_in_tick invalid or unsupported (%d/%d)\n",
|
"time_scale/num_units_in_tick invalid or unsupported (%d/%d)\n",
|
||||||
sps->time_scale, sps->num_units_in_tick);
|
sps->time_scale, sps->num_units_in_tick);
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
sps->fixed_frame_rate_flag = get_bits1(&h->gb);
|
sps->fixed_frame_rate_flag = get_bits1(&h->gb);
|
||||||
}
|
}
|
||||||
@ -196,11 +196,11 @@ static inline int decode_vui_parameters(H264Context *h, SPS *sps)
|
|||||||
sps->nal_hrd_parameters_present_flag = get_bits1(&h->gb);
|
sps->nal_hrd_parameters_present_flag = get_bits1(&h->gb);
|
||||||
if (sps->nal_hrd_parameters_present_flag)
|
if (sps->nal_hrd_parameters_present_flag)
|
||||||
if (decode_hrd_parameters(h, sps) < 0)
|
if (decode_hrd_parameters(h, sps) < 0)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
sps->vcl_hrd_parameters_present_flag = get_bits1(&h->gb);
|
sps->vcl_hrd_parameters_present_flag = get_bits1(&h->gb);
|
||||||
if (sps->vcl_hrd_parameters_present_flag)
|
if (sps->vcl_hrd_parameters_present_flag)
|
||||||
if (decode_hrd_parameters(h, sps) < 0)
|
if (decode_hrd_parameters(h, sps) < 0)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
if (sps->nal_hrd_parameters_present_flag ||
|
if (sps->nal_hrd_parameters_present_flag ||
|
||||||
sps->vcl_hrd_parameters_present_flag)
|
sps->vcl_hrd_parameters_present_flag)
|
||||||
get_bits1(&h->gb); /* low_delay_hrd_flag */
|
get_bits1(&h->gb); /* low_delay_hrd_flag */
|
||||||
@ -225,7 +225,7 @@ static inline int decode_vui_parameters(H264Context *h, SPS *sps)
|
|||||||
/* max_dec_frame_buffering || max_dec_frame_buffering > 16 */) {
|
/* max_dec_frame_buffering || max_dec_frame_buffering > 16 */) {
|
||||||
av_log(h->avctx, AV_LOG_ERROR,
|
av_log(h->avctx, AV_LOG_ERROR,
|
||||||
"illegal num_reorder_frames %d\n", sps->num_reorder_frames);
|
"illegal num_reorder_frames %d\n", sps->num_reorder_frames);
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (get_bits_left(&h->gb) < 0) {
|
if (get_bits_left(&h->gb) < 0) {
|
||||||
@ -310,11 +310,11 @@ int ff_h264_decode_seq_parameter_set(H264Context *h)
|
|||||||
|
|
||||||
if (sps_id >= MAX_SPS_COUNT) {
|
if (sps_id >= MAX_SPS_COUNT) {
|
||||||
av_log(h->avctx, AV_LOG_ERROR, "sps_id (%d) out of range\n", sps_id);
|
av_log(h->avctx, AV_LOG_ERROR, "sps_id (%d) out of range\n", sps_id);
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
sps = av_mallocz(sizeof(SPS));
|
sps = av_mallocz(sizeof(SPS));
|
||||||
if (sps == NULL)
|
if (!sps)
|
||||||
return -1;
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
sps->time_offset_length = 24;
|
sps->time_offset_length = 24;
|
||||||
sps->profile_idc = profile_idc;
|
sps->profile_idc = profile_idc;
|
||||||
@ -521,7 +521,7 @@ int ff_h264_decode_picture_parameter_set(H264Context *h, int bit_length)
|
|||||||
|
|
||||||
if (pps_id >= MAX_PPS_COUNT) {
|
if (pps_id >= MAX_PPS_COUNT) {
|
||||||
av_log(h->avctx, AV_LOG_ERROR, "pps_id (%d) out of range\n", pps_id);
|
av_log(h->avctx, AV_LOG_ERROR, "pps_id (%d) out of range\n", pps_id);
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
} else if (h->sps.bit_depth_luma > 10) {
|
} else if (h->sps.bit_depth_luma > 10) {
|
||||||
av_log(h->avctx, AV_LOG_ERROR,
|
av_log(h->avctx, AV_LOG_ERROR,
|
||||||
"Unimplemented luma bit depth=%d (max=10)\n",
|
"Unimplemented luma bit depth=%d (max=10)\n",
|
||||||
@ -530,8 +530,8 @@ int ff_h264_decode_picture_parameter_set(H264Context *h, int bit_length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pps = av_mallocz(sizeof(PPS));
|
pps = av_mallocz(sizeof(PPS));
|
||||||
if (pps == NULL)
|
if (!pps)
|
||||||
return -1;
|
return AVERROR(ENOMEM);
|
||||||
pps->sps_id = get_ue_golomb_31(&h->gb);
|
pps->sps_id = get_ue_golomb_31(&h->gb);
|
||||||
if ((unsigned)pps->sps_id >= MAX_SPS_COUNT ||
|
if ((unsigned)pps->sps_id >= MAX_SPS_COUNT ||
|
||||||
h->sps_buffers[pps->sps_id] == NULL) {
|
h->sps_buffers[pps->sps_id] == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user