mirror of https://git.ffmpeg.org/ffmpeg.git
frame-mt: return consumed packet size in ff_thread_decode_frame
This is required to fulfill avcodec_decode_video2() promise to return the number of consumed bytes on success.
This commit is contained in:
parent
d14d4d982c
commit
117e2a30f2
|
@ -522,7 +522,7 @@ int ff_thread_decode_frame(AVCodecContext *avctx,
|
||||||
if (fctx->next_decoding >= (avctx->thread_count-1)) fctx->delaying = 0;
|
if (fctx->next_decoding >= (avctx->thread_count-1)) fctx->delaying = 0;
|
||||||
|
|
||||||
*got_picture_ptr=0;
|
*got_picture_ptr=0;
|
||||||
return 0;
|
return avpkt->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -563,7 +563,8 @@ int ff_thread_decode_frame(AVCodecContext *avctx,
|
||||||
|
|
||||||
fctx->next_finished = finished;
|
fctx->next_finished = finished;
|
||||||
|
|
||||||
return p->result;
|
/* return the size of the consumed packet if no error occurred */
|
||||||
|
return (p->result >= 0) ? avpkt->size : p->result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ff_thread_report_progress(AVFrame *f, int n, int field)
|
void ff_thread_report_progress(AVFrame *f, int n, int field)
|
||||||
|
|
|
@ -42,6 +42,9 @@ void ff_thread_flush(AVCodecContext *avctx);
|
||||||
* Submits a new frame to a decoding thread.
|
* Submits a new frame to a decoding thread.
|
||||||
* Returns the next available frame in picture. *got_picture_ptr
|
* Returns the next available frame in picture. *got_picture_ptr
|
||||||
* will be 0 if none is available.
|
* will be 0 if none is available.
|
||||||
|
* The return value on success is the size of the consumed packet for
|
||||||
|
* compatiblity with avcodec_decode_video2(). This means the decoder
|
||||||
|
* has to consume the full packet.
|
||||||
*
|
*
|
||||||
* Parameters are the same as avcodec_decode_video2().
|
* Parameters are the same as avcodec_decode_video2().
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue