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 <dlfcn.h> | 5 #include <dlfcn.h> |
6 #include <errno.h> | 6 #include <errno.h> |
7 #include <fcntl.h> | 7 #include <fcntl.h> |
8 #include <linux/videodev2.h> | 8 #include <linux/videodev2.h> |
9 #include <poll.h> | 9 #include <poll.h> |
10 #include <sys/eventfd.h> | 10 #include <sys/eventfd.h> |
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
644 // the eighth data bit of the NAL; a zero value is encoded with a | 644 // the eighth data bit of the NAL; a zero value is encoded with a |
645 // leading '1' bit in the byte, which we can detect as the byte being | 645 // leading '1' bit in the byte, which we can detect as the byte being |
646 // (unsigned) greater than or equal to 0x80. | 646 // (unsigned) greater than or equal to 0x80. |
647 if (nalu.data[1] >= 0x80) { | 647 if (nalu.data[1] >= 0x80) { |
648 end_of_frame = true; | 648 end_of_frame = true; |
649 break; | 649 break; |
650 } | 650 } |
651 break; | 651 break; |
652 case media::H264NALU::kSPS: | 652 case media::H264NALU::kSPS: |
653 case media::H264NALU::kPPS: | 653 case media::H264NALU::kPPS: |
654 case media::H264NALU::kAUD: | |
654 case media::H264NALU::kEOSeq: | 655 case media::H264NALU::kEOSeq: |
acolwell GONE FROM CHROMIUM
2014/05/08 17:56:34
I think you need to also include kSEIMessage & kRe
Pawel Osciak
2014/05/09 00:37:14
Oh, I didn't notice you added new defines to the e
| |
655 case media::H264NALU::kEOStream: | 656 case media::H264NALU::kEOStream: |
656 // These unconditionally signal a frame boundary. | 657 // These unconditionally signal a frame boundary. |
657 end_of_frame = true; | 658 end_of_frame = true; |
658 break; | 659 break; |
659 default: | 660 default: |
660 // For all others, keep going. | 661 // For all others, keep going. |
661 break; | 662 break; |
662 } | 663 } |
663 if (end_of_frame) { | 664 if (end_of_frame) { |
664 if (!decoder_partial_frame_pending_ && *endpos == 0) { | 665 if (!decoder_partial_frame_pending_ && *endpos == 0) { |
acolwell GONE FROM CHROMIUM
2014/05/08 17:56:34
I'm a little fuzzy on how this code is supposed to
Pawel Osciak
2014/05/09 00:37:14
It actually splits everything but slices of the sa
| |
665 // The frame was previously restarted, and we haven't filled the | 666 // The frame was previously restarted, and we haven't filled the |
666 // current frame with any contents yet. Start the new frame here and | 667 // current frame with any contents yet. Start the new frame here and |
667 // continue parsing NALs. | 668 // continue parsing NALs. |
668 } else { | 669 } else { |
669 // The frame wasn't previously restarted and/or we have contents for | 670 // The frame wasn't previously restarted and/or we have contents for |
670 // the current frame; signal the start of a new frame here: we don't | 671 // the current frame; signal the start of a new frame here: we don't |
671 // have a partial frame anymore. | 672 // have a partial frame anymore. |
672 decoder_partial_frame_pending_ = false; | 673 decoder_partial_frame_pending_ = false; |
673 return true; | 674 return true; |
674 } | 675 } |
(...skipping 1246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1921 gfx::Size new_size(base::checked_cast<int>(format.fmt.pix_mp.width), | 1922 gfx::Size new_size(base::checked_cast<int>(format.fmt.pix_mp.width), |
1922 base::checked_cast<int>(format.fmt.pix_mp.height)); | 1923 base::checked_cast<int>(format.fmt.pix_mp.height)); |
1923 if (frame_buffer_size_ != new_size) { | 1924 if (frame_buffer_size_ != new_size) { |
1924 DVLOG(3) << "IsResolutionChangeNecessary(): Resolution change detected"; | 1925 DVLOG(3) << "IsResolutionChangeNecessary(): Resolution change detected"; |
1925 return true; | 1926 return true; |
1926 } | 1927 } |
1927 return false; | 1928 return false; |
1928 } | 1929 } |
1929 | 1930 |
1930 } // namespace content | 1931 } // namespace content |
OLD | NEW |