| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/media/webrtc_rtp_dump_writer.h" | 5 #include "chrome/browser/media/webrtc_rtp_dump_writer.h" |
| 6 | 6 |
| 7 #include "base/big_endian.h" | 7 #include "base/big_endian.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 | 370 |
| 371 scoped_ptr<size_t> bytes_written(new size_t(0)); | 371 scoped_ptr<size_t> bytes_written(new size_t(0)); |
| 372 | 372 |
| 373 FileThreadWorker* worker = incoming ? incoming_file_thread_worker_.get() | 373 FileThreadWorker* worker = incoming ? incoming_file_thread_worker_.get() |
| 374 : outgoing_file_thread_worker_.get(); | 374 : outgoing_file_thread_worker_.get(); |
| 375 | 375 |
| 376 // Using "Unretained(worker)" because |worker| is owner by this object and it | 376 // Using "Unretained(worker)" because |worker| is owner by this object and it |
| 377 // guaranteed to be deleted on the FILE thread before this object goes away. | 377 // guaranteed to be deleted on the FILE thread before this object goes away. |
| 378 base::Closure task = | 378 base::Closure task = |
| 379 base::Bind(&FileThreadWorker::CompressAndWriteToFileOnFileThread, | 379 base::Bind(&FileThreadWorker::CompressAndWriteToFileOnFileThread, |
| 380 base::Unretained(worker), | 380 base::Unretained(worker), base::Passed(&new_buffer), |
| 381 Passed(&new_buffer), | 381 end_stream, result.get(), bytes_written.get()); |
| 382 end_stream, | |
| 383 result.get(), | |
| 384 bytes_written.get()); | |
| 385 | 382 |
| 386 // OnFlushDone is necessary to avoid running the callback after this | 383 // OnFlushDone is necessary to avoid running the callback after this |
| 387 // object is gone. | 384 // object is gone. |
| 388 base::Closure reply = base::Bind(&WebRtcRtpDumpWriter::OnFlushDone, | 385 base::Closure reply = base::Bind( |
| 389 weak_ptr_factory_.GetWeakPtr(), | 386 &WebRtcRtpDumpWriter::OnFlushDone, weak_ptr_factory_.GetWeakPtr(), |
| 390 callback, | 387 callback, base::Passed(&result), base::Passed(&bytes_written)); |
| 391 Passed(&result), | |
| 392 Passed(&bytes_written)); | |
| 393 | 388 |
| 394 // Define the task and reply outside the method call so that getting and | 389 // Define the task and reply outside the method call so that getting and |
| 395 // passing the scoped_ptr does not depend on the argument evaluation order. | 390 // passing the scoped_ptr does not depend on the argument evaluation order. |
| 396 BrowserThread::PostTaskAndReply(BrowserThread::FILE, FROM_HERE, task, reply); | 391 BrowserThread::PostTaskAndReply(BrowserThread::FILE, FROM_HERE, task, reply); |
| 397 | 392 |
| 398 if (end_stream) { | 393 if (end_stream) { |
| 399 bool success = BrowserThread::DeleteSoon( | 394 bool success = BrowserThread::DeleteSoon( |
| 400 BrowserThread::FILE, | 395 BrowserThread::FILE, |
| 401 FROM_HERE, | 396 FROM_HERE, |
| 402 incoming ? incoming_file_thread_worker_.release() | 397 incoming ? incoming_file_thread_worker_.release() |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 base::Bind(&WebRtcRtpDumpWriter::OnDumpEnded, | 440 base::Bind(&WebRtcRtpDumpWriter::OnDumpEnded, |
| 446 weak_ptr_factory_.GetWeakPtr(), | 441 weak_ptr_factory_.GetWeakPtr(), |
| 447 context, | 442 context, |
| 448 false)); | 443 false)); |
| 449 return; | 444 return; |
| 450 } | 445 } |
| 451 | 446 |
| 452 // This object might be deleted after running the callback. | 447 // This object might be deleted after running the callback. |
| 453 context.callback.Run(context.incoming_succeeded, context.outgoing_succeeded); | 448 context.callback.Run(context.incoming_succeeded, context.outgoing_succeeded); |
| 454 } | 449 } |
| OLD | NEW |