fix: pip video freeze
This commit is contained in:
1 parent
57b12d7a54
commit
0473233775
1 file changed
+5
-12
@@ -39,10 +39,11 @@ extern int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size,
|
|||||||
|
|
||||||
- (void)reinitializeDisplayLayer
|
- (void)reinitializeDisplayLayer
|
||||||
{
|
{
|
||||||
CALayer *oldLayer = _displayLayer;
|
if (_displayLayer == nil) {
|
||||||
|
_displayLayer = [[AVSampleBufferDisplayLayer alloc] init];
|
||||||
_displayLayer = [[AVSampleBufferDisplayLayer alloc] init];
|
_displayLayer.backgroundColor = [UIColor blackColor].CGColor;
|
||||||
_displayLayer.backgroundColor = [UIColor blackColor].CGColor;
|
[_view.layer addSublayer:_displayLayer];
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure the AVSampleBufferDisplayLayer is sized to preserve the aspect ratio
|
// Ensure the AVSampleBufferDisplayLayer is sized to preserve the aspect ratio
|
||||||
// of the video stream. We used to use AVLayerVideoGravityResizeAspect, but that
|
// of the video stream. We used to use AVLayerVideoGravityResizeAspect, but that
|
||||||
@@ -63,14 +64,6 @@ extern int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size,
|
|||||||
// can see the loading progress label as the stream is starting.
|
// can see the loading progress label as the stream is starting.
|
||||||
_displayLayer.hidden = YES;
|
_displayLayer.hidden = YES;
|
||||||
|
|
||||||
if (oldLayer != nil) {
|
|
||||||
// Switch out the old display layer with the new one
|
|
||||||
[_view.layer replaceSublayer:oldLayer with:_displayLayer];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[_view.layer addSublayer:_displayLayer];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (formatDesc != nil) {
|
if (formatDesc != nil) {
|
||||||
CFRelease(formatDesc);
|
CFRelease(formatDesc);
|
||||||
formatDesc = nil;
|
formatDesc = nil;
|
||||||
|
|||||||
Reference in new issue
Block a user