Merge "Declare the operator== overload for M128A in the global namespace."
diff --git a/test/resize_test.cc b/test/resize_test.cc
index eaebd75..90f5452 100644
--- a/test/resize_test.cc
+++ b/test/resize_test.cc
@@ -7,6 +7,8 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <stdio.h>
+
#include <climits>
#include <vector>
#include "third_party/googletest/src/include/gtest/gtest.h"
@@ -558,9 +560,13 @@
}
}
+#if CONFIG_VP9_DECODER
// Verify that we get 1 resize down event in this test.
ASSERT_EQ(1, resize_count) << "Resizing should occur.";
EXPECT_EQ(static_cast<unsigned int>(0), GetMismatchFrames());
+#else
+ printf("Warning: VP9 decoder unavailable, unable to check resize count!\n");
+#endif
}
// Verify the dynamic resizer behavior for real time, 1 pass CBR mode.
@@ -602,9 +608,13 @@
}
}
+#if CONFIG_VP9_DECODER
// Verify that we get 2 resize events in this test.
ASSERT_EQ(resize_count, 2) << "Resizing should occur twice.";
EXPECT_EQ(static_cast<unsigned int>(0), GetMismatchFrames());
+#else
+ printf("Warning: VP9 decoder unavailable, unable to check resize count!\n");
+#endif
}
vpx_img_fmt_t CspForFrameNumber(int frame) {
diff --git a/test/vp9_ethread_test.cc b/test/vp9_ethread_test.cc
index d828e84..4983d7f 100644
--- a/test/vp9_ethread_test.cc
+++ b/test/vp9_ethread_test.cc
@@ -82,6 +82,7 @@
}
virtual void FramePktHook(const vpx_codec_cx_pkt_t *pkt) {
+#if CONFIG_VP9_DECODER
const vpx_codec_err_t res = decoder_->DecodeFrame(
reinterpret_cast<uint8_t*>(pkt->data.frame.buf), pkt->data.frame.sz);
if (res != VPX_CODEC_OK) {
@@ -95,6 +96,9 @@
md5_res.Add(img);
md5_.push_back(md5_res.Get());
}
+#else
+ ASSERT_EQ(NULL, decoder_);
+#endif
}
bool encoder_initialized_;
diff --git a/test/webm_video_source.h b/test/webm_video_source.h
index 650bc52..8258756 100644
--- a/test/webm_video_source.h
+++ b/test/webm_video_source.h
@@ -62,7 +62,7 @@
void FillFrame() {
ASSERT_TRUE(vpx_ctx_->file != NULL);
- const int status = webm_read_frame(webm_ctx_, &buf_, &buf_sz_, &buf_sz_);
+ const int status = webm_read_frame(webm_ctx_, &buf_, &buf_sz_);
ASSERT_GE(status, 0) << "webm_read_frame failed";
if (status == 1) {
end_of_file_ = true;
@@ -72,7 +72,7 @@
void SeekToNextKeyFrame() {
ASSERT_TRUE(vpx_ctx_->file != NULL);
do {
- const int status = webm_read_frame(webm_ctx_, &buf_, &buf_sz_, &buf_sz_);
+ const int status = webm_read_frame(webm_ctx_, &buf_, &buf_sz_);
ASSERT_GE(status, 0) << "webm_read_frame failed";
++frame_;
if (status == 1) {
diff --git a/vpxdec.c b/vpxdec.c
index 285d58e..1bef4bd 100644
--- a/vpxdec.c
+++ b/vpxdec.c
@@ -257,8 +257,7 @@
switch (input->vpx_input_ctx->file_type) {
#if CONFIG_WEBM_IO
case FILE_TYPE_WEBM:
- return webm_read_frame(input->webm_ctx,
- buf, bytes_in_buffer, buffer_size);
+ return webm_read_frame(input->webm_ctx, buf, bytes_in_buffer);
#endif
case FILE_TYPE_RAW:
return raw_read_frame(input->vpx_input_ctx->file,
diff --git a/vpxenc.c b/vpxenc.c
index 50e7c7f..a6cbbc7 100644
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -790,7 +790,7 @@
#if !CONFIG_WEBM_IO
typedef int stereo_format_t;
-struct EbmlGlobal { int debug; };
+struct WebmOutputContext { int debug; };
#endif
/* Per-stream configuration */
@@ -818,7 +818,7 @@
struct stream_config config;
FILE *file;
struct rate_hist *rate_hist;
- struct EbmlGlobal ebml;
+ struct WebmOutputContext webm_ctx;
uint64_t psnr_sse_total;
uint64_t psnr_samples_total;
double psnr_totals[4];
@@ -1061,13 +1061,13 @@
stream->config.write_webm = 1;
#if CONFIG_WEBM_IO
stream->config.stereo_fmt = STEREO_FORMAT_MONO;
- stream->ebml.last_pts_ns = -1;
- stream->ebml.writer = NULL;
- stream->ebml.segment = NULL;
+ stream->webm_ctx.last_pts_ns = -1;
+ stream->webm_ctx.writer = NULL;
+ stream->webm_ctx.segment = NULL;
#endif
/* Allows removal of the application version from the EBML tags */
- stream->ebml.debug = global->debug;
+ stream->webm_ctx.debug = global->debug;
/* Default lag_in_frames is 0 in realtime mode */
if (global->deadline == VPX_DL_REALTIME)
@@ -1449,8 +1449,8 @@
#if CONFIG_WEBM_IO
if (stream->config.write_webm) {
- stream->ebml.stream = stream->file;
- write_webm_file_header(&stream->ebml, cfg,
+ stream->webm_ctx.stream = stream->file;
+ write_webm_file_header(&stream->webm_ctx, cfg,
&global->framerate,
stream->config.stereo_fmt,
global->codec->fourcc,
@@ -1475,7 +1475,7 @@
#if CONFIG_WEBM_IO
if (stream->config.write_webm) {
- write_webm_file_footer(&stream->ebml);
+ write_webm_file_footer(&stream->webm_ctx);
}
#endif
@@ -1702,7 +1702,7 @@
update_rate_histogram(stream->rate_hist, cfg, pkt);
#if CONFIG_WEBM_IO
if (stream->config.write_webm) {
- write_webm_block(&stream->ebml, cfg, pkt);
+ write_webm_block(&stream->webm_ctx, cfg, pkt);
}
#endif
if (!stream->config.write_webm) {
diff --git a/webmdec.cc b/webmdec.cc
index 81150aa..93835e1 100644
--- a/webmdec.cc
+++ b/webmdec.cc
@@ -122,7 +122,6 @@
int webm_read_frame(struct WebmInputContext *webm_ctx,
uint8_t **buffer,
- size_t *bytes_in_buffer,
size_t *buffer_size) {
// This check is needed for frame parallel decoding, in which case this
// function could be called even after it has reached end of input stream.
@@ -147,7 +146,7 @@
} else if (block_entry_eos || block_entry->EOS()) {
cluster = segment->GetNext(cluster);
if (cluster == NULL || cluster->EOS()) {
- *bytes_in_buffer = 0;
+ *buffer_size = 0;
webm_ctx->reached_eos = 1;
return 1;
}
@@ -187,10 +186,9 @@
if (*buffer == NULL) {
return -1;
}
- *buffer_size = frame.len;
webm_ctx->buffer = *buffer;
}
- *bytes_in_buffer = frame.len;
+ *buffer_size = frame.len;
webm_ctx->timestamp_ns = block->GetTime(cluster);
webm_ctx->is_key_frame = block->IsKey();
@@ -203,10 +201,9 @@
struct VpxInputContext *vpx_ctx) {
uint32_t i = 0;
uint8_t *buffer = NULL;
- size_t bytes_in_buffer = 0;
size_t buffer_size = 0;
while (webm_ctx->timestamp_ns < 1000000000 && i < 50) {
- if (webm_read_frame(webm_ctx, &buffer, &bytes_in_buffer, &buffer_size)) {
+ if (webm_read_frame(webm_ctx, &buffer, &buffer_size)) {
break;
}
++i;
diff --git a/webmdec.h b/webmdec.h
index 7d16380..aa371f3 100644
--- a/webmdec.h
+++ b/webmdec.h
@@ -42,22 +42,18 @@
// Reads a WebM Video Frame. Memory for the buffer is created, owned and managed
// by this function. For the first call, |buffer| should be NULL and
-// |*bytes_in_buffer| should be 0. Once all the frames are read and used,
+// |*buffer_size| should be 0. Once all the frames are read and used,
// webm_free() should be called, otherwise there will be a leak.
// Parameters:
// webm_ctx - WebmInputContext object
// buffer - pointer where the frame data will be filled.
-// bytes_in_buffer - pointer to buffer size.
-// buffer_size - unused TODO(vigneshv): remove this
+// buffer_size - pointer to buffer size.
// Return values:
// 0 - Success
// 1 - End of Stream
// -1 - Error
-// TODO(vigneshv): Make the return values consistent across all functions in
-// this file.
int webm_read_frame(struct WebmInputContext *webm_ctx,
uint8_t **buffer,
- size_t *bytes_in_buffer,
size_t *buffer_size);
// Guesses the frame rate of the input file based on the container timestamps.
diff --git a/webmenc.cc b/webmenc.cc
index caf4391..b1d3259 100644
--- a/webmenc.cc
+++ b/webmenc.cc
@@ -20,13 +20,13 @@
const int kVideoTrackNumber = 1;
} // namespace
-void write_webm_file_header(struct EbmlGlobal *glob,
+void write_webm_file_header(struct WebmOutputContext *webm_ctx,
const vpx_codec_enc_cfg_t *cfg,
const struct vpx_rational *fps,
stereo_format_t stereo_fmt,
unsigned int fourcc,
const struct VpxRational *par) {
- mkvmuxer::MkvWriter *const writer = new mkvmuxer::MkvWriter(glob->stream);
+ mkvmuxer::MkvWriter *const writer = new mkvmuxer::MkvWriter(webm_ctx->stream);
mkvmuxer::Segment *const segment = new mkvmuxer::Segment();
segment->Init(writer);
segment->set_mode(mkvmuxer::Segment::kFile);
@@ -36,7 +36,7 @@
const uint64_t kTimecodeScale = 1000000;
info->set_timecode_scale(kTimecodeScale);
std::string version = "vpxenc";
- if (!glob->debug) {
+ if (!webm_ctx->debug) {
version.append(std::string(" ") + vpx_codec_version_str());
}
info->set_writing_app(version.c_str());
@@ -74,23 +74,23 @@
video_track->set_display_width(display_width);
video_track->set_display_height(cfg->g_h);
}
- if (glob->debug) {
+ if (webm_ctx->debug) {
video_track->set_uid(kDebugTrackUid);
}
- glob->writer = writer;
- glob->segment = segment;
+ webm_ctx->writer = writer;
+ webm_ctx->segment = segment;
}
-void write_webm_block(struct EbmlGlobal *glob,
+void write_webm_block(struct WebmOutputContext *webm_ctx,
const vpx_codec_enc_cfg_t *cfg,
const vpx_codec_cx_pkt_t *pkt) {
mkvmuxer::Segment *const segment =
- reinterpret_cast<mkvmuxer::Segment*>(glob->segment);
+ reinterpret_cast<mkvmuxer::Segment*>(webm_ctx->segment);
int64_t pts_ns = pkt->data.frame.pts * 1000000000ll *
cfg->g_timebase.num / cfg->g_timebase.den;
- if (pts_ns <= glob->last_pts_ns)
- pts_ns = glob->last_pts_ns + 1000000;
- glob->last_pts_ns = pts_ns;
+ if (pts_ns <= webm_ctx->last_pts_ns)
+ pts_ns = webm_ctx->last_pts_ns + 1000000;
+ webm_ctx->last_pts_ns = pts_ns;
segment->AddFrame(static_cast<uint8_t*>(pkt->data.frame.buf),
pkt->data.frame.sz,
@@ -99,14 +99,14 @@
pkt->data.frame.flags & VPX_FRAME_IS_KEY);
}
-void write_webm_file_footer(struct EbmlGlobal *glob) {
+void write_webm_file_footer(struct WebmOutputContext *webm_ctx) {
mkvmuxer::MkvWriter *const writer =
- reinterpret_cast<mkvmuxer::MkvWriter*>(glob->writer);
+ reinterpret_cast<mkvmuxer::MkvWriter*>(webm_ctx->writer);
mkvmuxer::Segment *const segment =
- reinterpret_cast<mkvmuxer::Segment*>(glob->segment);
+ reinterpret_cast<mkvmuxer::Segment*>(webm_ctx->segment);
segment->Finalize();
delete segment;
delete writer;
- glob->writer = NULL;
- glob->segment = NULL;
+ webm_ctx->writer = NULL;
+ webm_ctx->segment = NULL;
}
diff --git a/webmenc.h b/webmenc.h
index c255d3d..ad30664 100644
--- a/webmenc.h
+++ b/webmenc.h
@@ -20,8 +20,7 @@
extern "C" {
#endif
-/* TODO(vigneshv): Rename this struct */
-struct EbmlGlobal {
+struct WebmOutputContext {
int debug;
FILE *stream;
int64_t last_pts_ns;
@@ -38,18 +37,18 @@
STEREO_FORMAT_RIGHT_LEFT = 11
} stereo_format_t;
-void write_webm_file_header(struct EbmlGlobal *glob,
+void write_webm_file_header(struct WebmOutputContext *webm_ctx,
const vpx_codec_enc_cfg_t *cfg,
const struct vpx_rational *fps,
stereo_format_t stereo_fmt,
unsigned int fourcc,
const struct VpxRational *par);
-void write_webm_block(struct EbmlGlobal *glob,
+void write_webm_block(struct WebmOutputContext *webm_ctx,
const vpx_codec_enc_cfg_t *cfg,
const vpx_codec_cx_pkt_t *pkt);
-void write_webm_file_footer(struct EbmlGlobal *glob);
+void write_webm_file_footer(struct WebmOutputContext *webm_ctx);
#ifdef __cplusplus
} // extern "C"