mirror of https://git.ffmpeg.org/ffmpeg.git
Remove truncated support, use an AVParser if you used that, it is the same.
Originally committed as revision 14350 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
617e42e2c4
commit
f3ba9db42d
|
@ -7712,18 +7712,11 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){
|
||||||
* returns the number of bytes consumed for building the current frame
|
* returns the number of bytes consumed for building the current frame
|
||||||
*/
|
*/
|
||||||
static int get_consumed_bytes(MpegEncContext *s, int pos, int buf_size){
|
static int get_consumed_bytes(MpegEncContext *s, int pos, int buf_size){
|
||||||
if(s->flags&CODEC_FLAG_TRUNCATED){
|
|
||||||
pos -= s->parse_context.last_index;
|
|
||||||
if(pos<0) pos=0; // FIXME remove (unneeded?)
|
|
||||||
|
|
||||||
return pos;
|
|
||||||
}else{
|
|
||||||
if(pos==0) pos=1; //avoid infinite loops (i doubt that is needed but ...)
|
if(pos==0) pos=1; //avoid infinite loops (i doubt that is needed but ...)
|
||||||
if(pos+10>buf_size) pos=buf_size; // oops ;)
|
if(pos+10>buf_size) pos=buf_size; // oops ;)
|
||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static int decode_frame(AVCodecContext *avctx,
|
static int decode_frame(AVCodecContext *avctx,
|
||||||
void *data, int *data_size,
|
void *data, int *data_size,
|
||||||
|
@ -7737,15 +7730,6 @@ static int decode_frame(AVCodecContext *avctx,
|
||||||
s->flags= avctx->flags;
|
s->flags= avctx->flags;
|
||||||
s->flags2= avctx->flags2;
|
s->flags2= avctx->flags2;
|
||||||
|
|
||||||
if(s->flags&CODEC_FLAG_TRUNCATED){
|
|
||||||
const int next= ff_h264_find_frame_end(h, buf, buf_size);
|
|
||||||
assert((buf_size > 0) || (next == END_NOT_FOUND));
|
|
||||||
|
|
||||||
if( ff_combine_frame(&s->parse_context, next, &buf, &buf_size) < 0 )
|
|
||||||
return buf_size;
|
|
||||||
//printf("next:%d buf_size:%d last_index:%d\n", next, buf_size, s->parse_context.last_index);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* no supplementary picture */
|
/* no supplementary picture */
|
||||||
if (buf_size == 0) {
|
if (buf_size == 0) {
|
||||||
Picture *out;
|
Picture *out;
|
||||||
|
@ -8166,7 +8150,7 @@ AVCodec h264_decoder = {
|
||||||
NULL,
|
NULL,
|
||||||
decode_end,
|
decode_end,
|
||||||
decode_frame,
|
decode_frame,
|
||||||
/*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
|
/*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_DELAY,
|
||||||
.flush= flush_dpb,
|
.flush= flush_dpb,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
|
.long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue