OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/gpu/android_video_decode_accelerator.h" | 5 #include "media/gpu/android_video_decode_accelerator.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 1398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1409 // Note that async codec construction might still be in progress. In that | 1409 // Note that async codec construction might still be in progress. In that |
1410 // case, the codec will be deleted when it completes once we invalidate all | 1410 // case, the codec will be deleted when it completes once we invalidate all |
1411 // our weak refs. | 1411 // our weak refs. |
1412 weak_this_factory_.InvalidateWeakPtrs(); | 1412 weak_this_factory_.InvalidateWeakPtrs(); |
1413 if (media_codec_) { | 1413 if (media_codec_) { |
1414 manager->StopTimer(this); | 1414 manager->StopTimer(this); |
1415 // If codec construction is broken, then we can't release this codec if it's | 1415 // If codec construction is broken, then we can't release this codec if it's |
1416 // backed by hardware, else it may hang too. Post it to the construction | 1416 // backed by hardware, else it may hang too. Post it to the construction |
1417 // thread, and it'll get freed if things start working. If things are | 1417 // thread, and it'll get freed if things start working. If things are |
1418 // already working, then it'll be freed soon. | 1418 // already working, then it'll be freed soon. |
1419 if (media_codec_->IsSoftwareCodec()) { | 1419 manager->ConstructionTaskRunner()->DeleteSoon(FROM_HERE, |
1420 media_codec_.reset(); | 1420 media_codec_.release()); |
1421 } else { | |
1422 manager->ConstructionTaskRunner()->DeleteSoon(FROM_HERE, | |
1423 media_codec_.release()); | |
1424 } | |
1425 } | 1421 } |
1426 delete this; | 1422 delete this; |
1427 } | 1423 } |
1428 | 1424 |
1429 bool AndroidVideoDecodeAccelerator::TryToSetupDecodeOnSeparateThread( | 1425 bool AndroidVideoDecodeAccelerator::TryToSetupDecodeOnSeparateThread( |
1430 const base::WeakPtr<Client>& decode_client, | 1426 const base::WeakPtr<Client>& decode_client, |
1431 const scoped_refptr<base::SingleThreadTaskRunner>& decode_task_runner) { | 1427 const scoped_refptr<base::SingleThreadTaskRunner>& decode_task_runner) { |
1432 return false; | 1428 return false; |
1433 } | 1429 } |
1434 | 1430 |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1750 // http://crbug.com/582170 | 1746 // http://crbug.com/582170 |
1751 capabilities.flags |= media::VideoDecodeAccelerator::Capabilities:: | 1747 capabilities.flags |= media::VideoDecodeAccelerator::Capabilities:: |
1752 SUPPORTS_EXTERNAL_OUTPUT_SURFACE; | 1748 SUPPORTS_EXTERNAL_OUTPUT_SURFACE; |
1753 } | 1749 } |
1754 } | 1750 } |
1755 | 1751 |
1756 return capabilities; | 1752 return capabilities; |
1757 } | 1753 } |
1758 | 1754 |
1759 } // namespace media | 1755 } // namespace media |
OLD | NEW |