Index: media/cast/test/sender.cc |
diff --git a/media/cast/test/sender.cc b/media/cast/test/sender.cc |
index c2ecb3edd32d840f6b89c0d7635f19778b358acc..603b2de847c0124afda6e6dec1ff6becb689b513 100644 |
--- a/media/cast/test/sender.cc |
+++ b/media/cast/test/sender.cc |
@@ -6,7 +6,6 @@ |
// or read from a file. |
#include "base/at_exit.h" |
-#include "base/file_util.h" |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/threading/thread.h" |
@@ -15,16 +14,13 @@ |
#include "media/cast/cast_config.h" |
#include "media/cast/cast_environment.h" |
#include "media/cast/cast_sender.h" |
-#include "media/cast/logging/encoding_event_subscriber.h" |
#include "media/cast/logging/logging_defines.h" |
-#include "media/cast/logging/proto/raw_events.pb.h" |
#include "media/cast/test/utility/audio_utility.h" |
#include "media/cast/test/utility/input_builder.h" |
#include "media/cast/test/utility/video_utility.h" |
#include "media/cast/transport/cast_transport_defines.h" |
#include "media/cast/transport/cast_transport_sender.h" |
#include "media/cast/transport/transport/udp_transport.h" |
-#include "net/base/big_endian.h" |
#include "ui/gfx/size.h" |
namespace media { |
@@ -45,8 +41,6 @@ |
#define DEFAULT_VIDEO_CODEC_MAX_BITRATE "4000" |
#define DEFAULT_VIDEO_CODEC_MIN_BITRATE "1000" |
-#define DEFAULT_LOGGING_DURATION "30" |
- |
namespace { |
static const int kAudioChannels = 2; |
static const int kAudioSamplingFrequency = 48000; |
@@ -76,20 +70,6 @@ |
ip_address = input.GetStringInput(); |
} |
return ip_address; |
-} |
- |
-int GetLoggingDuration() { |
- test::InputBuilder input( |
- "Choose logging duration (seconds), 0 for no logging.", |
- DEFAULT_LOGGING_DURATION, 0, INT_MAX); |
- return input.GetIntInput(); |
-} |
- |
-std::string GetLogFileDestination() { |
- test::InputBuilder input( |
- "Enter log file destination.", |
- "./raw_events.log", INT_MIN, INT_MAX); |
- return input.GetStringInput(); |
} |
bool ReadFromFile() { |
@@ -327,122 +307,6 @@ |
return net::IPEndPoint(ip_number, port); |
} |
-// TODO(imcheng): Extract this function to another file. |
-bool WriteTo(const media::cast::FrameEventMap& frame_events, |
- const media::cast::PacketEventMap& packet_events, |
- const int stream_id, |
- std::string* output) { |
- // Allow 20MB for encoded uncompressed logs. |
- const int kMaxEncodedSize = 20 * 1000 * 1000; |
- output->resize(kMaxEncodedSize); |
- |
- net::BigEndianWriter writer(&(*output)[0], output->size()); |
- |
- // Write stream id first. |
- bool success = writer.WriteU32(stream_id); |
- if (!success) |
- return false; |
- |
- // Frame events - write size first, then write entries |
- int frame_events_size = frame_events.size(); |
- success = writer.WriteU32(frame_events_size); |
- if (!success) |
- return false; |
- |
- for (media::cast::FrameEventMap::const_iterator it = frame_events.begin(); |
- it != frame_events.end(); ++it) { |
- int proto_size = it->second->ByteSize(); |
- |
- // Write size of the proto, then write the proto |
- success = writer.WriteU16(proto_size); |
- if (!success) |
- return false; |
- |
- success = it->second->SerializeToArray(writer.ptr(), writer.remaining()); |
- if (!success) |
- return false; |
- success = writer.Skip(proto_size); |
- if (!success) |
- return false; |
- } |
- |
- // Write packet events |
- int packet_event_size = packet_events.size(); |
- success = writer.WriteU32(packet_event_size); |
- if (!success) |
- return false; |
- for (media::cast::PacketEventMap::const_iterator it = packet_events.begin(); |
- it != packet_events.end(); ++it) { |
- int proto_size = it->second->ByteSize(); |
- // Write size of the proto, then write the proto |
- success = writer.WriteU16(proto_size); |
- if (!success) |
- return false; |
- success = it->second->SerializeToArray(writer.ptr(), writer.remaining()); |
- if (!success) |
- return false; |
- success = writer.Skip(proto_size); |
- if (!success) |
- return false; |
- } |
- |
- output->resize(output->size() - writer.remaining()); |
- return true; |
-} |
- |
-void WriteLogsToFileAndStopSubscribing( |
- const scoped_refptr<media::cast::CastEnvironment>& cast_environment, |
- scoped_ptr<media::cast::EncodingEventSubscriber> video_subscriber, |
- scoped_ptr<media::cast::EncodingEventSubscriber> audio_subscriber, |
- file_util::ScopedFILE log_file) { |
- cast_environment->Logging()->RemoveRawEventSubscriber(video_subscriber.get()); |
- cast_environment->Logging()->RemoveRawEventSubscriber(audio_subscriber.get()); |
- media::cast::FrameEventMap frame_events; |
- media::cast::PacketEventMap packet_events; |
- video_subscriber->GetFrameEventsAndReset(&frame_events); |
- video_subscriber->GetPacketEventsAndReset(&packet_events); |
- |
- printf("Video frame map size: %lu\n", frame_events.size()); |
- printf("Video packet map size: %lu\n", packet_events.size()); |
- |
- std::string serialized_video_log; |
- bool success = WriteTo(frame_events, packet_events, 0, &serialized_video_log); |
- if (!success) { |
- VLOG(1) << "Failed to serialize video events."; |
- return; |
- } |
- |
- printf("Serialized video log size: %lu\n", serialized_video_log.size()); |
- |
- audio_subscriber->GetFrameEventsAndReset(&frame_events); |
- audio_subscriber->GetPacketEventsAndReset(&packet_events); |
- |
- printf("Audio frame map size: %lu\n", frame_events.size()); |
- printf("Audio packet map size: %lu\n", packet_events.size()); |
- |
- std::string serialized_audio_log; |
- success = WriteTo(frame_events, packet_events, 1, &serialized_audio_log); |
- if (!success) { |
- VLOG(1) << "Failed to serialize audio events."; |
- return; |
- } |
- |
- printf("Serialized audio log size: %lu\n", serialized_audio_log.size()); |
- |
- size_t ret = fwrite(&serialized_video_log[0], 1, serialized_video_log.size(), |
- log_file.get()); |
- if (ret != serialized_video_log.size()) { |
- VLOG(1) << "Failed to write logs to file."; |
- return; |
- } |
- ret = fwrite(&serialized_audio_log[0], 1, serialized_audio_log.size(), |
- log_file.get()); |
- if (ret != serialized_audio_log.size()) { |
- VLOG(1) << "Failed to write logs to file."; |
- return; |
- } |
-} |
- |
} // namespace |
int main(int argc, char** argv) { |
@@ -485,11 +349,8 @@ |
base::Bind(&UpdateCastTransportStatus), |
io_message_loop.message_loop_proxy())); |
- // Enable main and send side threads only. Enable raw event logging. |
+ // Enable main and send side threads only. Disable logging. |
// Running transport on the main thread. |
- media::cast::CastLoggingConfig logging_config; |
- logging_config.enable_raw_data_collection = true; |
- |
scoped_refptr<media::cast::CastEnvironment> cast_environment( |
new media::cast::CastEnvironment( |
clock.Pass(), |
@@ -499,7 +360,7 @@ |
video_thread.message_loop_proxy(), |
NULL, |
io_message_loop.message_loop_proxy(), |
- logging_config)); |
+ media::cast::GetDefaultCastSenderLoggingConfig())); |
scoped_ptr<media::cast::CastSender> cast_sender( |
media::cast::CastSender::CreateCastSender( |
@@ -519,42 +380,11 @@ |
video_config, |
frame_input)); |
- // Set up event subscribers. |
- // TODO(imcheng): Set up separate subscribers for audio / video / other. |
- int logging_duration = media::cast::GetLoggingDuration(); |
- scoped_ptr<media::cast::EncodingEventSubscriber> video_event_subscriber; |
- scoped_ptr<media::cast::EncodingEventSubscriber> audio_event_subscriber; |
- if (logging_duration > 0) { |
- std::string log_file_name(media::cast::GetLogFileDestination()); |
- video_event_subscriber.reset(new media::cast::EncodingEventSubscriber( |
- media::cast::VIDEO_EVENT, 10000)); |
- audio_event_subscriber.reset(new media::cast::EncodingEventSubscriber( |
- media::cast::AUDIO_EVENT, 10000)); |
- cast_environment->Logging()->AddRawEventSubscriber( |
- video_event_subscriber.get()); |
- cast_environment->Logging()->AddRawEventSubscriber( |
- audio_event_subscriber.get()); |
- file_util::ScopedFILE log_file(fopen(log_file_name.c_str(), "w")); |
- if (!log_file) { |
- printf("Failed to open log file for writing.\n"); |
- exit(-1); |
- } |
- |
- io_message_loop.message_loop_proxy()->PostDelayedTask(FROM_HERE, |
- base::Bind(&WriteLogsToFileAndStopSubscribing, |
- cast_environment, |
- base::Passed(&video_event_subscriber), |
- base::Passed(&audio_event_subscriber), |
- base::Passed(&log_file)), |
- base::TimeDelta::FromSeconds(logging_duration)); |
- } |
- |
test_thread.message_loop_proxy()->PostTask( |
FROM_HERE, |
base::Bind(&media::cast::SendProcess::SendFrame, |
base::Unretained(send_process.get()))); |
io_message_loop.Run(); |
- |
return 0; |
} |