-
Notifications
You must be signed in to change notification settings - Fork 16
Improvements for Rockchip ffmpeg #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: rockchip
Are you sure you want to change the base?
Changes from 1 commit
9e5abe3
c6e5e78
ee8067a
64ebcff
47235e7
8d6ad12
12354fb
a1ba2e4
30c267e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -337,7 +337,6 @@ static int rkmpp_retrieve_frame(AVCodecContext *avctx, AVFrame *frame) | |
| MppBuffer buffer = NULL; | ||
| AVDRMFrameDescriptor *desc = NULL; | ||
| AVDRMLayerDescriptor *layer = NULL; | ||
| int retrycount = 0; | ||
| int format, mode; | ||
|
|
||
| // on start of decoding, MPP can return -1, which is supposed to be expected | ||
|
|
@@ -352,6 +351,18 @@ static int rkmpp_retrieve_frame(AVCodecContext *avctx, AVFrame *frame) | |
| goto fail; | ||
| } | ||
|
|
||
| if (decoder->eos_reached && !mpp_frame_get_eos(mppframe)) { | ||
| if (mppframe) | ||
| mpp_frame_deinit(&mppframe); | ||
| usleep(10000); | ||
| goto retry_get_frame; | ||
| } | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Mpp frames are all released upon avframe relase. Realeasing some here dosn't make sene |
||
| if (mppframe && mpp_frame_get_eos(mppframe)) { | ||
| av_log(avctx, AV_LOG_DEBUG, "EOS frame found\n"); | ||
| ret = AVERROR_EXIT; | ||
| goto fail; | ||
| } | ||
|
|
||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That return code is not appropriate here. Once again i have already upstreamed those changes and if you feel that a few things should be changed, you need to send those patches to ffmpeg upstream, as the reference code is there now :) |
||
| if (mppframe) { | ||
| // Check wether we have a special frame or not | ||
| if (mpp_frame_get_info_change(mppframe)) { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would happen almost at each start and was confirmed by rk, we don't want error log in normal conditions at each start