OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string.h> | 5 #include <string.h> |
6 | 6 |
7 #include <iostream> | 7 #include <iostream> |
8 #include <list> | 8 #include <list> |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 if (encoded_data_next_pos_to_decode_ == kDataLen) { | 334 if (encoded_data_next_pos_to_decode_ == kDataLen) { |
335 ++encoded_data_next_pos_to_decode_; | 335 ++encoded_data_next_pos_to_decode_; |
336 pp::CompletionCallback cb = callback_factory_.NewCallback( | 336 pp::CompletionCallback cb = callback_factory_.NewCallback( |
337 &VideoDecodeDemoInstance::DecoderClient::DecoderFlushDone); | 337 &VideoDecodeDemoInstance::DecoderClient::DecoderFlushDone); |
338 decoder_->Flush(cb); | 338 decoder_->Flush(cb); |
339 return; | 339 return; |
340 } | 340 } |
341 size_t start_pos = encoded_data_next_pos_to_decode_; | 341 size_t start_pos = encoded_data_next_pos_to_decode_; |
342 size_t end_pos; | 342 size_t end_pos; |
343 GetNextNALUBoundary(start_pos, &end_pos); | 343 GetNextNALUBoundary(start_pos, &end_pos); |
344 pp::Buffer_Dev* buffer = new pp::Buffer_Dev(gles2_, end_pos - start_pos); | 344 pp::Buffer_Dev* buffer = new pp::Buffer_Dev( |
| 345 gles2_, static_cast<uint32_t>(end_pos - start_pos)); |
345 PP_VideoBitstreamBuffer_Dev bitstream_buffer; | 346 PP_VideoBitstreamBuffer_Dev bitstream_buffer; |
346 int id = ++next_bitstream_buffer_id_; | 347 int id = ++next_bitstream_buffer_id_; |
347 bitstream_buffer.id = id; | 348 bitstream_buffer.id = id; |
348 bitstream_buffer.size = end_pos - start_pos; | 349 bitstream_buffer.size = static_cast<uint32_t>(end_pos - start_pos); |
349 bitstream_buffer.data = buffer->pp_resource(); | 350 bitstream_buffer.data = buffer->pp_resource(); |
350 memcpy(buffer->data(), kData + start_pos, end_pos - start_pos); | 351 memcpy(buffer->data(), kData + start_pos, end_pos - start_pos); |
351 assert(bitstream_buffers_by_id_.insert(std::make_pair(id, buffer)).second); | 352 assert(bitstream_buffers_by_id_.insert(std::make_pair(id, buffer)).second); |
352 | 353 |
353 pp::CompletionCallback cb = | 354 pp::CompletionCallback cb = |
354 callback_factory_.NewCallback( | 355 callback_factory_.NewCallback( |
355 &VideoDecodeDemoInstance::DecoderClient::DecoderBitstreamDone, id); | 356 &VideoDecodeDemoInstance::DecoderClient::DecoderBitstreamDone, id); |
356 assert(bitstream_ids_at_decoder_.insert(id).second); | 357 assert(bitstream_ids_at_decoder_.insert(id).second); |
357 encoded_data_next_pos_to_decode_ = end_pos; | 358 encoded_data_next_pos_to_decode_ = end_pos; |
358 decoder_->Decode(bitstream_buffer, cb); | 359 decoder_->Decode(bitstream_buffer, cb); |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
630 CreateProgram(kVertexShader, kFragmentShaderRectangle); | 631 CreateProgram(kVertexShader, kFragmentShaderRectangle); |
631 } | 632 } |
632 | 633 |
633 Shader VideoDecodeDemoInstance::CreateProgram(const char* vertex_shader, | 634 Shader VideoDecodeDemoInstance::CreateProgram(const char* vertex_shader, |
634 const char* fragment_shader) { | 635 const char* fragment_shader) { |
635 Shader shader; | 636 Shader shader; |
636 | 637 |
637 // Create shader program. | 638 // Create shader program. |
638 shader.program = gles2_if_->CreateProgram(context_->pp_resource()); | 639 shader.program = gles2_if_->CreateProgram(context_->pp_resource()); |
639 CreateShader(shader.program, GL_VERTEX_SHADER, vertex_shader, | 640 CreateShader(shader.program, GL_VERTEX_SHADER, vertex_shader, |
640 strlen(vertex_shader)); | 641 static_cast<int>(strlen(vertex_shader))); |
641 CreateShader(shader.program, GL_FRAGMENT_SHADER, fragment_shader, | 642 CreateShader(shader.program, GL_FRAGMENT_SHADER, fragment_shader, |
642 strlen(fragment_shader)); | 643 static_cast<int>(strlen(fragment_shader))); |
643 gles2_if_->LinkProgram(context_->pp_resource(), shader.program); | 644 gles2_if_->LinkProgram(context_->pp_resource(), shader.program); |
644 gles2_if_->UseProgram(context_->pp_resource(), shader.program); | 645 gles2_if_->UseProgram(context_->pp_resource(), shader.program); |
645 gles2_if_->Uniform1i( | 646 gles2_if_->Uniform1i( |
646 context_->pp_resource(), | 647 context_->pp_resource(), |
647 gles2_if_->GetUniformLocation( | 648 gles2_if_->GetUniformLocation( |
648 context_->pp_resource(), shader.program, "s_texture"), 0); | 649 context_->pp_resource(), shader.program, "s_texture"), 0); |
649 assertNoGLError(); | 650 assertNoGLError(); |
650 | 651 |
651 shader.texcoord_scale_location = gles2_if_->GetUniformLocation( | 652 shader.texcoord_scale_location = gles2_if_->GetUniformLocation( |
652 context_->pp_resource(), shader.program, "v_scale"); | 653 context_->pp_resource(), shader.program, "v_scale"); |
(...skipping 26 matching lines...) Expand all Loading... |
679 gles2_if_->DeleteShader(context_->pp_resource(), shader); | 680 gles2_if_->DeleteShader(context_->pp_resource(), shader); |
680 } | 681 } |
681 } // anonymous namespace | 682 } // anonymous namespace |
682 | 683 |
683 namespace pp { | 684 namespace pp { |
684 // Factory function for your specialization of the Module object. | 685 // Factory function for your specialization of the Module object. |
685 Module* CreateModule() { | 686 Module* CreateModule() { |
686 return new VideoDecodeDemoModule(); | 687 return new VideoDecodeDemoModule(); |
687 } | 688 } |
688 } // namespace pp | 689 } // namespace pp |
OLD | NEW |