/src/vlc/include/vlc_block_helper.h
Line | Count | Source |
1 | | /***************************************************************************** |
2 | | * vlc_block_helper.h: Helper functions for data blocks management. |
3 | | ***************************************************************************** |
4 | | * Copyright (C) 2003-2017 VLC authors and VideoLAN |
5 | | * |
6 | | * Authors: Gildas Bazin <gbazin@netcourrier.com> |
7 | | * |
8 | | * This program is free software; you can redistribute it and/or modify it |
9 | | * under the terms of the GNU Lesser General Public License as published by |
10 | | * the Free Software Foundation; either version 2.1 of the License, or |
11 | | * (at your option) any later version. |
12 | | * |
13 | | * This program is distributed in the hope that it will be useful, |
14 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | | * GNU Lesser General Public License for more details. |
17 | | * |
18 | | * You should have received a copy of the GNU Lesser General Public License |
19 | | * along with this program; if not, write to the Free Software Foundation, |
20 | | * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
21 | | *****************************************************************************/ |
22 | | |
23 | | #ifndef VLC_BLOCK_HELPER_H |
24 | | #define VLC_BLOCK_HELPER_H 1 |
25 | | |
26 | | #include <vlc_block.h> |
27 | | |
28 | | typedef struct block_bytestream_t |
29 | | { |
30 | | block_t *p_chain; /**< byte stream head block */ |
31 | | block_t **pp_last; /**< tail ppointer for appends */ |
32 | | block_t *p_block; /**< byte stream read pointer block */ |
33 | | size_t i_block_offset; /**< byte stream read pointer offset within block */ |
34 | | size_t i_base_offset; /**< block base offset (previous blocks total size) */ |
35 | | size_t i_total; /**< total bytes over all linked blocks */ |
36 | | } block_bytestream_t; |
37 | | |
38 | | /***************************************************************************** |
39 | | * block_bytestream_t management |
40 | | *****************************************************************************/ |
41 | | static inline void block_BytestreamInit( block_bytestream_t *p_bytestream ) |
42 | 728k | { |
43 | 728k | p_bytestream->p_chain = p_bytestream->p_block = NULL; |
44 | 728k | p_bytestream->pp_last = &p_bytestream->p_chain; |
45 | 728k | p_bytestream->i_block_offset = 0; |
46 | 728k | p_bytestream->i_base_offset = 0; |
47 | 728k | p_bytestream->i_total = 0; |
48 | 728k | } a52.c:block_BytestreamInit Line | Count | Source | 42 | 21.2k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 21.2k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 21.2k | p_bytestream->i_block_offset = 0; | 46 | 21.2k | p_bytestream->i_base_offset = 0; | 47 | 21.2k | p_bytestream->i_total = 0; | 48 | 21.2k | } |
dts.c:block_BytestreamInit Line | Count | Source | 42 | 5.56k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 5.56k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 5.56k | p_bytestream->i_block_offset = 0; | 46 | 5.56k | p_bytestream->i_base_offset = 0; | 47 | 5.56k | p_bytestream->i_total = 0; | 48 | 5.56k | } |
flac.c:block_BytestreamInit Line | Count | Source | 42 | 17.9k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 17.9k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 17.9k | p_bytestream->i_block_offset = 0; | 46 | 17.9k | p_bytestream->i_base_offset = 0; | 47 | 17.9k | p_bytestream->i_total = 0; | 48 | 17.9k | } |
h264.c:block_BytestreamInit Line | Count | Source | 42 | 291k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 291k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 291k | p_bytestream->i_block_offset = 0; | 46 | 291k | p_bytestream->i_base_offset = 0; | 47 | 291k | p_bytestream->i_total = 0; | 48 | 291k | } |
hevc.c:block_BytestreamInit Line | Count | Source | 42 | 17.5k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 17.5k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 17.5k | p_bytestream->i_block_offset = 0; | 46 | 17.5k | p_bytestream->i_base_offset = 0; | 47 | 17.5k | p_bytestream->i_total = 0; | 48 | 17.5k | } |
mlp.c:block_BytestreamInit Line | Count | Source | 42 | 8.80k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 8.80k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 8.80k | p_bytestream->i_block_offset = 0; | 46 | 8.80k | p_bytestream->i_base_offset = 0; | 47 | 8.80k | p_bytestream->i_total = 0; | 48 | 8.80k | } |
mpeg4audio.c:block_BytestreamInit Line | Count | Source | 42 | 98.0k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 98.0k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 98.0k | p_bytestream->i_block_offset = 0; | 46 | 98.0k | p_bytestream->i_base_offset = 0; | 47 | 98.0k | p_bytestream->i_total = 0; | 48 | 98.0k | } |
mpeg4video.c:block_BytestreamInit Line | Count | Source | 42 | 38.6k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 38.6k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 38.6k | p_bytestream->i_block_offset = 0; | 46 | 38.6k | p_bytestream->i_base_offset = 0; | 47 | 38.6k | p_bytestream->i_total = 0; | 48 | 38.6k | } |
mpegaudio.c:block_BytestreamInit Line | Count | Source | 42 | 112k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 112k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 112k | p_bytestream->i_block_offset = 0; | 46 | 112k | p_bytestream->i_base_offset = 0; | 47 | 112k | p_bytestream->i_total = 0; | 48 | 112k | } |
mpegvideo.c:block_BytestreamInit Line | Count | Source | 42 | 109k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 109k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 109k | p_bytestream->i_block_offset = 0; | 46 | 109k | p_bytestream->i_base_offset = 0; | 47 | 109k | p_bytestream->i_total = 0; | 48 | 109k | } |
vc1.c:block_BytestreamInit Line | Count | Source | 42 | 8.09k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 8.09k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 8.09k | p_bytestream->i_block_offset = 0; | 46 | 8.09k | p_bytestream->i_base_offset = 0; | 47 | 8.09k | p_bytestream->i_total = 0; | 48 | 8.09k | } |
Unexecuted instantiation: av1.c:block_BytestreamInit mjpeg.c:block_BytestreamInit Line | Count | Source | 42 | 7 | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 7 | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 7 | p_bytestream->i_block_offset = 0; | 46 | 7 | p_bytestream->i_base_offset = 0; | 47 | 7 | p_bytestream->i_total = 0; | 48 | 7 | } |
|
49 | | |
50 | | static inline void block_BytestreamRelease( block_bytestream_t *p_bytestream ) |
51 | 728k | { |
52 | 728k | block_ChainRelease( p_bytestream->p_chain ); |
53 | 728k | } a52.c:block_BytestreamRelease Line | Count | Source | 51 | 21.2k | { | 52 | 21.2k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 21.2k | } |
dts.c:block_BytestreamRelease Line | Count | Source | 51 | 5.56k | { | 52 | 5.56k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 5.56k | } |
flac.c:block_BytestreamRelease Line | Count | Source | 51 | 17.9k | { | 52 | 17.9k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 17.9k | } |
h264.c:block_BytestreamRelease Line | Count | Source | 51 | 291k | { | 52 | 291k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 291k | } |
hevc.c:block_BytestreamRelease Line | Count | Source | 51 | 17.5k | { | 52 | 17.5k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 17.5k | } |
mlp.c:block_BytestreamRelease Line | Count | Source | 51 | 8.80k | { | 52 | 8.80k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 8.80k | } |
mpeg4audio.c:block_BytestreamRelease Line | Count | Source | 51 | 98.0k | { | 52 | 98.0k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 98.0k | } |
mpeg4video.c:block_BytestreamRelease Line | Count | Source | 51 | 38.6k | { | 52 | 38.6k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 38.6k | } |
mpegaudio.c:block_BytestreamRelease Line | Count | Source | 51 | 112k | { | 52 | 112k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 112k | } |
mpegvideo.c:block_BytestreamRelease Line | Count | Source | 51 | 109k | { | 52 | 109k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 109k | } |
vc1.c:block_BytestreamRelease Line | Count | Source | 51 | 8.09k | { | 52 | 8.09k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 8.09k | } |
Unexecuted instantiation: av1.c:block_BytestreamRelease mjpeg.c:block_BytestreamRelease Line | Count | Source | 51 | 7 | { | 52 | 7 | block_ChainRelease( p_bytestream->p_chain ); | 53 | 7 | } |
|
54 | | |
55 | | /** |
56 | | * It flush all data (read and unread) from a block_bytestream_t. |
57 | | */ |
58 | | static inline void block_BytestreamEmpty( block_bytestream_t *p_bytestream ) |
59 | 401k | { |
60 | 401k | block_BytestreamRelease( p_bytestream ); |
61 | 401k | block_BytestreamInit( p_bytestream ); |
62 | 401k | } a52.c:block_BytestreamEmpty Line | Count | Source | 59 | 12.7k | { | 60 | 12.7k | block_BytestreamRelease( p_bytestream ); | 61 | 12.7k | block_BytestreamInit( p_bytestream ); | 62 | 12.7k | } |
dts.c:block_BytestreamEmpty Line | Count | Source | 59 | 2.29k | { | 60 | 2.29k | block_BytestreamRelease( p_bytestream ); | 61 | 2.29k | block_BytestreamInit( p_bytestream ); | 62 | 2.29k | } |
flac.c:block_BytestreamEmpty Line | Count | Source | 59 | 16.9k | { | 60 | 16.9k | block_BytestreamRelease( p_bytestream ); | 61 | 16.9k | block_BytestreamInit( p_bytestream ); | 62 | 16.9k | } |
h264.c:block_BytestreamEmpty Line | Count | Source | 59 | 226k | { | 60 | 226k | block_BytestreamRelease( p_bytestream ); | 61 | 226k | block_BytestreamInit( p_bytestream ); | 62 | 226k | } |
hevc.c:block_BytestreamEmpty Line | Count | Source | 59 | 6.28k | { | 60 | 6.28k | block_BytestreamRelease( p_bytestream ); | 61 | 6.28k | block_BytestreamInit( p_bytestream ); | 62 | 6.28k | } |
mlp.c:block_BytestreamEmpty Line | Count | Source | 59 | 5.81k | { | 60 | 5.81k | block_BytestreamRelease( p_bytestream ); | 61 | 5.81k | block_BytestreamInit( p_bytestream ); | 62 | 5.81k | } |
mpeg4audio.c:block_BytestreamEmpty Line | Count | Source | 59 | 9.32k | { | 60 | 9.32k | block_BytestreamRelease( p_bytestream ); | 61 | 9.32k | block_BytestreamInit( p_bytestream ); | 62 | 9.32k | } |
mpeg4video.c:block_BytestreamEmpty Line | Count | Source | 59 | 31.4k | { | 60 | 31.4k | block_BytestreamRelease( p_bytestream ); | 61 | 31.4k | block_BytestreamInit( p_bytestream ); | 62 | 31.4k | } |
mpegaudio.c:block_BytestreamEmpty Line | Count | Source | 59 | 39.1k | { | 60 | 39.1k | block_BytestreamRelease( p_bytestream ); | 61 | 39.1k | block_BytestreamInit( p_bytestream ); | 62 | 39.1k | } |
mpegvideo.c:block_BytestreamEmpty Line | Count | Source | 59 | 48.8k | { | 60 | 48.8k | block_BytestreamRelease( p_bytestream ); | 61 | 48.8k | block_BytestreamInit( p_bytestream ); | 62 | 48.8k | } |
vc1.c:block_BytestreamEmpty Line | Count | Source | 59 | 2.79k | { | 60 | 2.79k | block_BytestreamRelease( p_bytestream ); | 61 | 2.79k | block_BytestreamInit( p_bytestream ); | 62 | 2.79k | } |
Unexecuted instantiation: av1.c:block_BytestreamEmpty Unexecuted instantiation: mjpeg.c:block_BytestreamEmpty |
63 | | |
64 | | /** |
65 | | * It flushes all already read data from a block_bytestream_t. |
66 | | */ |
67 | | static inline void block_BytestreamFlush( block_bytestream_t *p_bytestream ) |
68 | 37.6M | { |
69 | 37.6M | block_t *block = p_bytestream->p_chain; |
70 | | |
71 | 49.5M | while( block != p_bytestream->p_block ) |
72 | 11.8M | { |
73 | 11.8M | block_t *p_next = block->p_next; |
74 | | |
75 | 11.8M | p_bytestream->i_total -= block->i_buffer; |
76 | 11.8M | p_bytestream->i_base_offset -= block->i_buffer; |
77 | 11.8M | block_Release( block ); |
78 | 11.8M | block = p_next; |
79 | 11.8M | } |
80 | | |
81 | 44.0M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) |
82 | 6.36M | { |
83 | 6.36M | block_t *p_next = block->p_next; |
84 | | |
85 | 6.36M | p_bytestream->i_total -= block->i_buffer; |
86 | 6.36M | block_Release( block ); |
87 | 6.36M | block = p_next; |
88 | 6.36M | p_bytestream->i_block_offset = 0; |
89 | 6.36M | } |
90 | | |
91 | 37.6M | p_bytestream->p_chain = p_bytestream->p_block = block; |
92 | 37.6M | if( p_bytestream->p_chain == NULL ) |
93 | 166k | p_bytestream->pp_last = &p_bytestream->p_chain; |
94 | 37.6M | } a52.c:block_BytestreamFlush Line | Count | Source | 68 | 3.82M | { | 69 | 3.82M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 5.31M | while( block != p_bytestream->p_block ) | 72 | 1.49M | { | 73 | 1.49M | block_t *p_next = block->p_next; | 74 | | | 75 | 1.49M | p_bytestream->i_total -= block->i_buffer; | 76 | 1.49M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.49M | block_Release( block ); | 78 | 1.49M | block = p_next; | 79 | 1.49M | } | 80 | | | 81 | 5.25M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 1.42M | { | 83 | 1.42M | block_t *p_next = block->p_next; | 84 | | | 85 | 1.42M | p_bytestream->i_total -= block->i_buffer; | 86 | 1.42M | block_Release( block ); | 87 | 1.42M | block = p_next; | 88 | 1.42M | p_bytestream->i_block_offset = 0; | 89 | 1.42M | } | 90 | | | 91 | 3.82M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 3.82M | if( p_bytestream->p_chain == NULL ) | 93 | 42.0k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 3.82M | } |
dts.c:block_BytestreamFlush Line | Count | Source | 68 | 1.21M | { | 69 | 1.21M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 3.36M | while( block != p_bytestream->p_block ) | 72 | 2.14M | { | 73 | 2.14M | block_t *p_next = block->p_next; | 74 | | | 75 | 2.14M | p_bytestream->i_total -= block->i_buffer; | 76 | 2.14M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 2.14M | block_Release( block ); | 78 | 2.14M | block = p_next; | 79 | 2.14M | } | 80 | | | 81 | 1.50M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 291k | { | 83 | 291k | block_t *p_next = block->p_next; | 84 | | | 85 | 291k | p_bytestream->i_total -= block->i_buffer; | 86 | 291k | block_Release( block ); | 87 | 291k | block = p_next; | 88 | 291k | p_bytestream->i_block_offset = 0; | 89 | 291k | } | 90 | | | 91 | 1.21M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 1.21M | if( p_bytestream->p_chain == NULL ) | 93 | 3.42k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 1.21M | } |
flac.c:block_BytestreamFlush Line | Count | Source | 68 | 1.78M | { | 69 | 1.78M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 1.84M | while( block != p_bytestream->p_block ) | 72 | 61.2k | { | 73 | 61.2k | block_t *p_next = block->p_next; | 74 | | | 75 | 61.2k | p_bytestream->i_total -= block->i_buffer; | 76 | 61.2k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 61.2k | block_Release( block ); | 78 | 61.2k | block = p_next; | 79 | 61.2k | } | 80 | | | 81 | 1.86M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 73.9k | { | 83 | 73.9k | block_t *p_next = block->p_next; | 84 | | | 85 | 73.9k | p_bytestream->i_total -= block->i_buffer; | 86 | 73.9k | block_Release( block ); | 87 | 73.9k | block = p_next; | 88 | 73.9k | p_bytestream->i_block_offset = 0; | 89 | 73.9k | } | 90 | | | 91 | 1.78M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 1.78M | if( p_bytestream->p_chain == NULL ) | 93 | 25.0k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 1.78M | } |
h264.c:block_BytestreamFlush Line | Count | Source | 68 | 1.78M | { | 69 | 1.78M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 1.85M | while( block != p_bytestream->p_block ) | 72 | 68.3k | { | 73 | 68.3k | block_t *p_next = block->p_next; | 74 | | | 75 | 68.3k | p_bytestream->i_total -= block->i_buffer; | 76 | 68.3k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 68.3k | block_Release( block ); | 78 | 68.3k | block = p_next; | 79 | 68.3k | } | 80 | | | 81 | 1.81M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 28.0k | { | 83 | 28.0k | block_t *p_next = block->p_next; | 84 | | | 85 | 28.0k | p_bytestream->i_total -= block->i_buffer; | 86 | 28.0k | block_Release( block ); | 87 | 28.0k | block = p_next; | 88 | 28.0k | p_bytestream->i_block_offset = 0; | 89 | 28.0k | } | 90 | | | 91 | 1.78M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 1.78M | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 1.78M | } |
hevc.c:block_BytestreamFlush Line | Count | Source | 68 | 12.1M | { | 69 | 12.1M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 14.0M | while( block != p_bytestream->p_block ) | 72 | 1.95M | { | 73 | 1.95M | block_t *p_next = block->p_next; | 74 | | | 75 | 1.95M | p_bytestream->i_total -= block->i_buffer; | 76 | 1.95M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.95M | block_Release( block ); | 78 | 1.95M | block = p_next; | 79 | 1.95M | } | 80 | | | 81 | 12.1M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 4.31k | { | 83 | 4.31k | block_t *p_next = block->p_next; | 84 | | | 85 | 4.31k | p_bytestream->i_total -= block->i_buffer; | 86 | 4.31k | block_Release( block ); | 87 | 4.31k | block = p_next; | 88 | 4.31k | p_bytestream->i_block_offset = 0; | 89 | 4.31k | } | 90 | | | 91 | 12.1M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 12.1M | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 12.1M | } |
mlp.c:block_BytestreamFlush Line | Count | Source | 68 | 370k | { | 69 | 370k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 425k | while( block != p_bytestream->p_block ) | 72 | 54.6k | { | 73 | 54.6k | block_t *p_next = block->p_next; | 74 | | | 75 | 54.6k | p_bytestream->i_total -= block->i_buffer; | 76 | 54.6k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 54.6k | block_Release( block ); | 78 | 54.6k | block = p_next; | 79 | 54.6k | } | 80 | | | 81 | 519k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 149k | { | 83 | 149k | block_t *p_next = block->p_next; | 84 | | | 85 | 149k | p_bytestream->i_total -= block->i_buffer; | 86 | 149k | block_Release( block ); | 87 | 149k | block = p_next; | 88 | 149k | p_bytestream->i_block_offset = 0; | 89 | 149k | } | 90 | | | 91 | 370k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 370k | if( p_bytestream->p_chain == NULL ) | 93 | 1.15k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 370k | } |
mpeg4audio.c:block_BytestreamFlush Line | Count | Source | 68 | 42.2k | { | 69 | 42.2k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 83.7k | while( block != p_bytestream->p_block ) | 72 | 41.5k | { | 73 | 41.5k | block_t *p_next = block->p_next; | 74 | | | 75 | 41.5k | p_bytestream->i_total -= block->i_buffer; | 76 | 41.5k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 41.5k | block_Release( block ); | 78 | 41.5k | block = p_next; | 79 | 41.5k | } | 80 | | | 81 | 44.6k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 2.36k | { | 83 | 2.36k | block_t *p_next = block->p_next; | 84 | | | 85 | 2.36k | p_bytestream->i_total -= block->i_buffer; | 86 | 2.36k | block_Release( block ); | 87 | 2.36k | block = p_next; | 88 | 2.36k | p_bytestream->i_block_offset = 0; | 89 | 2.36k | } | 90 | | | 91 | 42.2k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 42.2k | if( p_bytestream->p_chain == NULL ) | 93 | 13.2k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 42.2k | } |
mpeg4video.c:block_BytestreamFlush Line | Count | Source | 68 | 422k | { | 69 | 422k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 462k | while( block != p_bytestream->p_block ) | 72 | 39.4k | { | 73 | 39.4k | block_t *p_next = block->p_next; | 74 | | | 75 | 39.4k | p_bytestream->i_total -= block->i_buffer; | 76 | 39.4k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 39.4k | block_Release( block ); | 78 | 39.4k | block = p_next; | 79 | 39.4k | } | 80 | | | 81 | 424k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 1.31k | { | 83 | 1.31k | block_t *p_next = block->p_next; | 84 | | | 85 | 1.31k | p_bytestream->i_total -= block->i_buffer; | 86 | 1.31k | block_Release( block ); | 87 | 1.31k | block = p_next; | 88 | 1.31k | p_bytestream->i_block_offset = 0; | 89 | 1.31k | } | 90 | | | 91 | 422k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 422k | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 422k | } |
mpegaudio.c:block_BytestreamFlush Line | Count | Source | 68 | 10.2M | { | 69 | 10.2M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 16.0M | while( block != p_bytestream->p_block ) | 72 | 5.79M | { | 73 | 5.79M | block_t *p_next = block->p_next; | 74 | | | 75 | 5.79M | p_bytestream->i_total -= block->i_buffer; | 76 | 5.79M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 5.79M | block_Release( block ); | 78 | 5.79M | block = p_next; | 79 | 5.79M | } | 80 | | | 81 | 14.3M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 4.07M | { | 83 | 4.07M | block_t *p_next = block->p_next; | 84 | | | 85 | 4.07M | p_bytestream->i_total -= block->i_buffer; | 86 | 4.07M | block_Release( block ); | 87 | 4.07M | block = p_next; | 88 | 4.07M | p_bytestream->i_block_offset = 0; | 89 | 4.07M | } | 90 | | | 91 | 10.2M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 10.2M | if( p_bytestream->p_chain == NULL ) | 93 | 81.4k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 10.2M | } |
mpegvideo.c:block_BytestreamFlush Line | Count | Source | 68 | 3.20M | { | 69 | 3.20M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 3.39M | while( block != p_bytestream->p_block ) | 72 | 191k | { | 73 | 191k | block_t *p_next = block->p_next; | 74 | | | 75 | 191k | p_bytestream->i_total -= block->i_buffer; | 76 | 191k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 191k | block_Release( block ); | 78 | 191k | block = p_next; | 79 | 191k | } | 80 | | | 81 | 3.33M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 123k | { | 83 | 123k | block_t *p_next = block->p_next; | 84 | | | 85 | 123k | p_bytestream->i_total -= block->i_buffer; | 86 | 123k | block_Release( block ); | 87 | 123k | block = p_next; | 88 | 123k | p_bytestream->i_block_offset = 0; | 89 | 123k | } | 90 | | | 91 | 3.20M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 3.20M | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 3.20M | } |
vc1.c:block_BytestreamFlush Line | Count | Source | 68 | 2.59M | { | 69 | 2.59M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 2.61M | while( block != p_bytestream->p_block ) | 72 | 16.8k | { | 73 | 16.8k | block_t *p_next = block->p_next; | 74 | | | 75 | 16.8k | p_bytestream->i_total -= block->i_buffer; | 76 | 16.8k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 16.8k | block_Release( block ); | 78 | 16.8k | block = p_next; | 79 | 16.8k | } | 80 | | | 81 | 2.78M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 192k | { | 83 | 192k | block_t *p_next = block->p_next; | 84 | | | 85 | 192k | p_bytestream->i_total -= block->i_buffer; | 86 | 192k | block_Release( block ); | 87 | 192k | block = p_next; | 88 | 192k | p_bytestream->i_block_offset = 0; | 89 | 192k | } | 90 | | | 91 | 2.59M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 2.59M | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 2.59M | } |
Unexecuted instantiation: av1.c:block_BytestreamFlush mjpeg.c:block_BytestreamFlush Line | Count | Source | 68 | 261 | { | 69 | 261 | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 1.98k | while( block != p_bytestream->p_block ) | 72 | 1.72k | { | 73 | 1.72k | block_t *p_next = block->p_next; | 74 | | | 75 | 1.72k | p_bytestream->i_total -= block->i_buffer; | 76 | 1.72k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.72k | block_Release( block ); | 78 | 1.72k | block = p_next; | 79 | 1.72k | } | 80 | | | 81 | 261 | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 0 | { | 83 | 0 | block_t *p_next = block->p_next; | 84 | |
| 85 | 0 | p_bytestream->i_total -= block->i_buffer; | 86 | 0 | block_Release( block ); | 87 | 0 | block = p_next; | 88 | 0 | p_bytestream->i_block_offset = 0; | 89 | 0 | } | 90 | | | 91 | 261 | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 261 | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 261 | } |
|
95 | | |
96 | | static inline void block_BytestreamPush( block_bytestream_t *p_bytestream, |
97 | | block_t *p_block ) |
98 | 37.1M | { |
99 | 37.1M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); |
100 | 37.1M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; |
101 | 74.3M | for( ; p_block; p_block = p_block->p_next ) |
102 | 37.1M | p_bytestream->i_total += p_block->i_buffer; |
103 | 37.1M | } a52.c:block_BytestreamPush Line | Count | Source | 98 | 5.89M | { | 99 | 5.89M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 5.89M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 11.7M | for( ; p_block; p_block = p_block->p_next ) | 102 | 5.89M | p_bytestream->i_total += p_block->i_buffer; | 103 | 5.89M | } |
dts.c:block_BytestreamPush Line | Count | Source | 98 | 2.96M | { | 99 | 2.96M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 2.96M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 5.93M | for( ; p_block; p_block = p_block->p_next ) | 102 | 2.96M | p_bytestream->i_total += p_block->i_buffer; | 103 | 2.96M | } |
flac.c:block_BytestreamPush Line | Count | Source | 98 | 265k | { | 99 | 265k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 265k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 531k | for( ; p_block; p_block = p_block->p_next ) | 102 | 265k | p_bytestream->i_total += p_block->i_buffer; | 103 | 265k | } |
h264.c:block_BytestreamPush Line | Count | Source | 98 | 430k | { | 99 | 430k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 430k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 860k | for( ; p_block; p_block = p_block->p_next ) | 102 | 430k | p_bytestream->i_total += p_block->i_buffer; | 103 | 430k | } |
hevc.c:block_BytestreamPush Line | Count | Source | 98 | 5.71M | { | 99 | 5.71M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 5.71M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 11.4M | for( ; p_block; p_block = p_block->p_next ) | 102 | 5.71M | p_bytestream->i_total += p_block->i_buffer; | 103 | 5.71M | } |
mlp.c:block_BytestreamPush Line | Count | Source | 98 | 552k | { | 99 | 552k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 552k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 1.10M | for( ; p_block; p_block = p_block->p_next ) | 102 | 552k | p_bytestream->i_total += p_block->i_buffer; | 103 | 552k | } |
mpeg4audio.c:block_BytestreamPush Line | Count | Source | 98 | 88.8k | { | 99 | 88.8k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 88.8k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 177k | for( ; p_block; p_block = p_block->p_next ) | 102 | 88.8k | p_bytestream->i_total += p_block->i_buffer; | 103 | 88.8k | } |
mpeg4video.c:block_BytestreamPush Line | Count | Source | 98 | 87.0k | { | 99 | 87.0k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 87.0k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 174k | for( ; p_block; p_block = p_block->p_next ) | 102 | 87.0k | p_bytestream->i_total += p_block->i_buffer; | 103 | 87.0k | } |
mpegaudio.c:block_BytestreamPush Line | Count | Source | 98 | 19.4M | { | 99 | 19.4M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 19.4M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 38.9M | for( ; p_block; p_block = p_block->p_next ) | 102 | 19.4M | p_bytestream->i_total += p_block->i_buffer; | 103 | 19.4M | } |
mpegvideo.c:block_BytestreamPush Line | Count | Source | 98 | 740k | { | 99 | 740k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 740k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 1.48M | for( ; p_block; p_block = p_block->p_next ) | 102 | 740k | p_bytestream->i_total += p_block->i_buffer; | 103 | 740k | } |
vc1.c:block_BytestreamPush Line | Count | Source | 98 | 938k | { | 99 | 938k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 938k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 1.87M | for( ; p_block; p_block = p_block->p_next ) | 102 | 938k | p_bytestream->i_total += p_block->i_buffer; | 103 | 938k | } |
Unexecuted instantiation: av1.c:block_BytestreamPush mjpeg.c:block_BytestreamPush Line | Count | Source | 98 | 2.22k | { | 99 | 2.22k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 2.22k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 4.44k | for( ; p_block; p_block = p_block->p_next ) | 102 | 2.22k | p_bytestream->i_total += p_block->i_buffer; | 103 | 2.22k | } |
|
104 | | |
105 | | static inline size_t block_BytestreamRemaining( const block_bytestream_t *p_bytestream ) |
106 | 1.67G | { |
107 | 1.67G | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? |
108 | 1.67G | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; |
109 | 1.67G | } a52.c:block_BytestreamRemaining Line | Count | Source | 106 | 138M | { | 107 | 138M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 138M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 138M | } |
dts.c:block_BytestreamRemaining Line | Count | Source | 106 | 143M | { | 107 | 143M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 143M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 143M | } |
flac.c:block_BytestreamRemaining Line | Count | Source | 106 | 36.0M | { | 107 | 36.0M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 36.0M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 36.0M | } |
h264.c:block_BytestreamRemaining Line | Count | Source | 106 | 1.84M | { | 107 | 1.84M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 1.84M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 1.84M | } |
hevc.c:block_BytestreamRemaining Line | Count | Source | 106 | 8.41M | { | 107 | 8.41M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 8.41M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 8.41M | } |
mlp.c:block_BytestreamRemaining Line | Count | Source | 106 | 38.5M | { | 107 | 38.5M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 38.5M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 38.5M | } |
mpeg4audio.c:block_BytestreamRemaining Line | Count | Source | 106 | 51.3M | { | 107 | 51.3M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 51.3M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 51.3M | } |
mpeg4video.c:block_BytestreamRemaining Line | Count | Source | 106 | 450k | { | 107 | 450k | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 450k | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 450k | } |
mpegaudio.c:block_BytestreamRemaining Line | Count | Source | 106 | 1.25G | { | 107 | 1.25G | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 1.25G | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 1.25G | } |
mpegvideo.c:block_BytestreamRemaining Line | Count | Source | 106 | 2.97M | { | 107 | 2.97M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 2.97M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 2.97M | } |
vc1.c:block_BytestreamRemaining Line | Count | Source | 106 | 1.88M | { | 107 | 1.88M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 1.88M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 1.88M | } |
Unexecuted instantiation: av1.c:block_BytestreamRemaining mjpeg.c:block_BytestreamRemaining Line | Count | Source | 106 | 147 | { | 107 | 147 | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 147 | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 147 | } |
|
110 | | |
111 | | VLC_USED |
112 | | static inline block_t *block_BytestreamPop( block_bytestream_t *p_bytestream ) |
113 | 17.8M | { |
114 | 17.8M | block_t *p_block; |
115 | | |
116 | 17.8M | block_BytestreamFlush( p_bytestream ); |
117 | | |
118 | 17.8M | p_block = p_bytestream->p_block; |
119 | 17.8M | if( unlikely( p_block == NULL ) ) |
120 | 22.4k | { |
121 | 22.4k | return NULL; |
122 | 22.4k | } |
123 | 17.8M | else if( !p_block->p_next ) |
124 | 11.2M | { |
125 | 11.2M | p_block->p_buffer += p_bytestream->i_block_offset; |
126 | 11.2M | p_block->i_buffer -= p_bytestream->i_block_offset; |
127 | 11.2M | p_bytestream->i_block_offset = 0; |
128 | 11.2M | p_bytestream->i_total = 0; |
129 | 11.2M | p_bytestream->p_chain = p_bytestream->p_block = NULL; |
130 | 11.2M | p_bytestream->pp_last = &p_bytestream->p_chain; |
131 | 11.2M | return p_block; |
132 | 11.2M | } |
133 | | |
134 | 139M | while( p_block->p_next && p_block->p_next->p_next ) |
135 | 132M | p_block = p_block->p_next; |
136 | | |
137 | 6.60M | block_t *p_block_old = p_block; |
138 | 6.60M | p_block = p_block->p_next; |
139 | 6.60M | p_block_old->p_next = NULL; |
140 | 6.60M | p_bytestream->pp_last = &p_block_old->p_next; |
141 | 6.60M | if( p_block ) |
142 | 6.60M | p_bytestream->i_total -= p_block->i_buffer; |
143 | | |
144 | 6.60M | return p_block; |
145 | 17.8M | } a52.c:block_BytestreamPop Line | Count | Source | 113 | 2.90M | { | 114 | 2.90M | block_t *p_block; | 115 | | | 116 | 2.90M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 2.90M | p_block = p_bytestream->p_block; | 119 | 2.90M | if( unlikely( p_block == NULL ) ) | 120 | 16.4k | { | 121 | 16.4k | return NULL; | 122 | 16.4k | } | 123 | 2.88M | else if( !p_block->p_next ) | 124 | 1.14M | { | 125 | 1.14M | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 1.14M | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 1.14M | p_bytestream->i_block_offset = 0; | 128 | 1.14M | p_bytestream->i_total = 0; | 129 | 1.14M | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 1.14M | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 1.14M | return p_block; | 132 | 1.14M | } | 133 | | | 134 | 47.3M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 45.6M | p_block = p_block->p_next; | 136 | | | 137 | 1.74M | block_t *p_block_old = p_block; | 138 | 1.74M | p_block = p_block->p_next; | 139 | 1.74M | p_block_old->p_next = NULL; | 140 | 1.74M | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 1.74M | if( p_block ) | 142 | 1.74M | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 1.74M | return p_block; | 145 | 2.90M | } |
dts.c:block_BytestreamPop Line | Count | Source | 113 | 199k | { | 114 | 199k | block_t *p_block; | 115 | | | 116 | 199k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 199k | p_block = p_bytestream->p_block; | 119 | 199k | if( unlikely( p_block == NULL ) ) | 120 | 985 | { | 121 | 985 | return NULL; | 122 | 985 | } | 123 | 198k | else if( !p_block->p_next ) | 124 | 176k | { | 125 | 176k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 176k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 176k | p_bytestream->i_block_offset = 0; | 128 | 176k | p_bytestream->i_total = 0; | 129 | 176k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 176k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 176k | return p_block; | 132 | 176k | } | 133 | | | 134 | 164k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 143k | p_block = p_block->p_next; | 136 | | | 137 | 21.2k | block_t *p_block_old = p_block; | 138 | 21.2k | p_block = p_block->p_next; | 139 | 21.2k | p_block_old->p_next = NULL; | 140 | 21.2k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 21.2k | if( p_block ) | 142 | 21.2k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 21.2k | return p_block; | 145 | 199k | } |
flac.c:block_BytestreamPop Line | Count | Source | 113 | 98.4k | { | 114 | 98.4k | block_t *p_block; | 115 | | | 116 | 98.4k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 98.4k | p_block = p_bytestream->p_block; | 119 | 98.4k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 98.4k | else if( !p_block->p_next ) | 124 | 82.9k | { | 125 | 82.9k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 82.9k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 82.9k | p_bytestream->i_block_offset = 0; | 128 | 82.9k | p_bytestream->i_total = 0; | 129 | 82.9k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 82.9k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 82.9k | return p_block; | 132 | 82.9k | } | 133 | | | 134 | 433k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 417k | p_block = p_block->p_next; | 136 | | | 137 | 15.4k | block_t *p_block_old = p_block; | 138 | 15.4k | p_block = p_block->p_next; | 139 | 15.4k | p_block_old->p_next = NULL; | 140 | 15.4k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 15.4k | if( p_block ) | 142 | 15.4k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 15.4k | return p_block; | 145 | 98.4k | } |
h264.c:block_BytestreamPop Line | Count | Source | 113 | 93.5k | { | 114 | 93.5k | block_t *p_block; | 115 | | | 116 | 93.5k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 93.5k | p_block = p_bytestream->p_block; | 119 | 93.5k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 93.5k | else if( !p_block->p_next ) | 124 | 85.7k | { | 125 | 85.7k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 85.7k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 85.7k | p_bytestream->i_block_offset = 0; | 128 | 85.7k | p_bytestream->i_total = 0; | 129 | 85.7k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 85.7k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 85.7k | return p_block; | 132 | 85.7k | } | 133 | | | 134 | 10.9k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 3.09k | p_block = p_block->p_next; | 136 | | | 137 | 7.81k | block_t *p_block_old = p_block; | 138 | 7.81k | p_block = p_block->p_next; | 139 | 7.81k | p_block_old->p_next = NULL; | 140 | 7.81k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 7.81k | if( p_block ) | 142 | 7.81k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 7.81k | return p_block; | 145 | 93.5k | } |
hevc.c:block_BytestreamPop Line | Count | Source | 113 | 3.73M | { | 114 | 3.73M | block_t *p_block; | 115 | | | 116 | 3.73M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 3.73M | p_block = p_bytestream->p_block; | 119 | 3.73M | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 3.73M | else if( !p_block->p_next ) | 124 | 3.71M | { | 125 | 3.71M | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 3.71M | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 3.71M | p_bytestream->i_block_offset = 0; | 128 | 3.71M | p_bytestream->i_total = 0; | 129 | 3.71M | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 3.71M | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 3.71M | return p_block; | 132 | 3.71M | } | 133 | | | 134 | 95.8k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 80.0k | p_block = p_block->p_next; | 136 | | | 137 | 15.8k | block_t *p_block_old = p_block; | 138 | 15.8k | p_block = p_block->p_next; | 139 | 15.8k | p_block_old->p_next = NULL; | 140 | 15.8k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 15.8k | if( p_block ) | 142 | 15.8k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 15.8k | return p_block; | 145 | 3.73M | } |
mlp.c:block_BytestreamPop Line | Count | Source | 113 | 321k | { | 114 | 321k | block_t *p_block; | 115 | | | 116 | 321k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 321k | p_block = p_bytestream->p_block; | 119 | 321k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 321k | else if( !p_block->p_next ) | 124 | 133k | { | 125 | 133k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 133k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 133k | p_bytestream->i_block_offset = 0; | 128 | 133k | p_bytestream->i_total = 0; | 129 | 133k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 133k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 133k | return p_block; | 132 | 133k | } | 133 | | | 134 | 1.23M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 1.04M | p_block = p_block->p_next; | 136 | | | 137 | 188k | block_t *p_block_old = p_block; | 138 | 188k | p_block = p_block->p_next; | 139 | 188k | p_block_old->p_next = NULL; | 140 | 188k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 188k | if( p_block ) | 142 | 188k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 188k | return p_block; | 145 | 321k | } |
mpeg4audio.c:block_BytestreamPop Line | Count | Source | 113 | 5.87k | { | 114 | 5.87k | block_t *p_block; | 115 | | | 116 | 5.87k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 5.87k | p_block = p_bytestream->p_block; | 119 | 5.87k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 5.87k | else if( !p_block->p_next ) | 124 | 5.40k | { | 125 | 5.40k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 5.40k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 5.40k | p_bytestream->i_block_offset = 0; | 128 | 5.40k | p_bytestream->i_total = 0; | 129 | 5.40k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 5.40k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 5.40k | return p_block; | 132 | 5.40k | } | 133 | | | 134 | 2.10k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 1.63k | p_block = p_block->p_next; | 136 | | | 137 | 470 | block_t *p_block_old = p_block; | 138 | 470 | p_block = p_block->p_next; | 139 | 470 | p_block_old->p_next = NULL; | 140 | 470 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 470 | if( p_block ) | 142 | 470 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 470 | return p_block; | 145 | 5.87k | } |
mpeg4video.c:block_BytestreamPop Line | Count | Source | 113 | 2.67k | { | 114 | 2.67k | block_t *p_block; | 115 | | | 116 | 2.67k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 2.67k | p_block = p_bytestream->p_block; | 119 | 2.67k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 2.67k | else if( !p_block->p_next ) | 124 | 2.03k | { | 125 | 2.03k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 2.03k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 2.03k | p_bytestream->i_block_offset = 0; | 128 | 2.03k | p_bytestream->i_total = 0; | 129 | 2.03k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 2.03k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 2.03k | return p_block; | 132 | 2.03k | } | 133 | | | 134 | 674 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 40 | p_block = p_block->p_next; | 136 | | | 137 | 634 | block_t *p_block_old = p_block; | 138 | 634 | p_block = p_block->p_next; | 139 | 634 | p_block_old->p_next = NULL; | 140 | 634 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 634 | if( p_block ) | 142 | 634 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 634 | return p_block; | 145 | 2.67k | } |
mpegaudio.c:block_BytestreamPop Line | Count | Source | 113 | 9.51M | { | 114 | 9.51M | block_t *p_block; | 115 | | | 116 | 9.51M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 9.51M | p_block = p_bytestream->p_block; | 119 | 9.51M | if( unlikely( p_block == NULL ) ) | 120 | 5.08k | { | 121 | 5.08k | return NULL; | 122 | 5.08k | } | 123 | 9.50M | else if( !p_block->p_next ) | 124 | 5.05M | { | 125 | 5.05M | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 5.05M | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 5.05M | p_bytestream->i_block_offset = 0; | 128 | 5.05M | p_bytestream->i_total = 0; | 129 | 5.05M | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 5.05M | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 5.05M | return p_block; | 132 | 5.05M | } | 133 | | | 134 | 88.3M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 83.8M | p_block = p_block->p_next; | 136 | | | 137 | 4.44M | block_t *p_block_old = p_block; | 138 | 4.44M | p_block = p_block->p_next; | 139 | 4.44M | p_block_old->p_next = NULL; | 140 | 4.44M | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 4.44M | if( p_block ) | 142 | 4.44M | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 4.44M | return p_block; | 145 | 9.51M | } |
mpegvideo.c:block_BytestreamPop Line | Count | Source | 113 | 282k | { | 114 | 282k | block_t *p_block; | 115 | | | 116 | 282k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 282k | p_block = p_bytestream->p_block; | 119 | 282k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 282k | else if( !p_block->p_next ) | 124 | 235k | { | 125 | 235k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 235k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 235k | p_bytestream->i_block_offset = 0; | 128 | 235k | p_bytestream->i_total = 0; | 129 | 235k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 235k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 235k | return p_block; | 132 | 235k | } | 133 | | | 134 | 944k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 897k | p_block = p_block->p_next; | 136 | | | 137 | 47.0k | block_t *p_block_old = p_block; | 138 | 47.0k | p_block = p_block->p_next; | 139 | 47.0k | p_block_old->p_next = NULL; | 140 | 47.0k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 47.0k | if( p_block ) | 142 | 47.0k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 47.0k | return p_block; | 145 | 282k | } |
vc1.c:block_BytestreamPop Line | Count | Source | 113 | 716k | { | 114 | 716k | block_t *p_block; | 115 | | | 116 | 716k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 716k | p_block = p_bytestream->p_block; | 119 | 716k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 716k | else if( !p_block->p_next ) | 124 | 607k | { | 125 | 607k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 607k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 607k | p_bytestream->i_block_offset = 0; | 128 | 607k | p_bytestream->i_total = 0; | 129 | 607k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 607k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 607k | return p_block; | 132 | 607k | } | 133 | | | 134 | 785k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 676k | p_block = p_block->p_next; | 136 | | | 137 | 109k | block_t *p_block_old = p_block; | 138 | 109k | p_block = p_block->p_next; | 139 | 109k | p_block_old->p_next = NULL; | 140 | 109k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 109k | if( p_block ) | 142 | 109k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 109k | return p_block; | 145 | 716k | } |
Unexecuted instantiation: av1.c:block_BytestreamPop mjpeg.c:block_BytestreamPop Line | Count | Source | 113 | 119 | { | 114 | 119 | block_t *p_block; | 115 | | | 116 | 119 | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 119 | p_block = p_bytestream->p_block; | 119 | 119 | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 119 | else if( !p_block->p_next ) | 124 | 109 | { | 125 | 109 | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 109 | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 109 | p_bytestream->i_block_offset = 0; | 128 | 109 | p_bytestream->i_total = 0; | 129 | 109 | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 109 | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 109 | return p_block; | 132 | 109 | } | 133 | | | 134 | 10 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 0 | p_block = p_block->p_next; | 136 | | | 137 | 10 | block_t *p_block_old = p_block; | 138 | 10 | p_block = p_block->p_next; | 139 | 10 | p_block_old->p_next = NULL; | 140 | 10 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 10 | if( p_block ) | 142 | 10 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 10 | return p_block; | 145 | 119 | } |
|
146 | | |
147 | | static inline int block_WaitBytes( block_bytestream_t *p_bytestream, |
148 | | size_t i_data ) |
149 | 13.0M | { |
150 | 13.0M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) |
151 | 12.9M | return VLC_SUCCESS; |
152 | 37.6k | return VLC_EGENERIC; |
153 | 13.0M | } Line | Count | Source | 149 | 2.99M | { | 150 | 2.99M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 2.96M | return VLC_SUCCESS; | 152 | 30.9k | return VLC_EGENERIC; | 153 | 2.99M | } |
Line | Count | Source | 149 | 207k | { | 150 | 207k | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 202k | return VLC_SUCCESS; | 152 | 5.34k | return VLC_EGENERIC; | 153 | 207k | } |
Unexecuted instantiation: flac.c:block_WaitBytes Unexecuted instantiation: h264.c:block_WaitBytes Unexecuted instantiation: hevc.c:block_WaitBytes Line | Count | Source | 149 | 327k | { | 150 | 327k | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 325k | return VLC_SUCCESS; | 152 | 1.40k | return VLC_EGENERIC; | 153 | 327k | } |
Unexecuted instantiation: mpeg4audio.c:block_WaitBytes Unexecuted instantiation: mpeg4video.c:block_WaitBytes mpegaudio.c:block_WaitBytes Line | Count | Source | 149 | 9.46M | { | 150 | 9.46M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 9.46M | return VLC_SUCCESS; | 152 | 0 | return VLC_EGENERIC; | 153 | 9.46M | } |
Unexecuted instantiation: mpegvideo.c:block_WaitBytes Unexecuted instantiation: vc1.c:block_WaitBytes Unexecuted instantiation: av1.c:block_WaitBytes Unexecuted instantiation: mjpeg.c:block_WaitBytes |
154 | | |
155 | | static inline int block_PeekBytes( block_bytestream_t *p_bytestream, |
156 | | uint8_t *p_data, size_t i_data ) |
157 | 378M | { |
158 | 378M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) |
159 | 2.84M | return VLC_EGENERIC; |
160 | | |
161 | | /* Copy the data */ |
162 | 375M | size_t i_offset = p_bytestream->i_block_offset; |
163 | 375M | size_t i_size = i_data; |
164 | 375M | for( block_t *p_block = p_bytestream->p_block; |
165 | 403M | p_block != NULL; p_block = p_block->p_next ) |
166 | 403M | { |
167 | 403M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
168 | 403M | i_size -= i_copy; |
169 | | |
170 | 403M | if( i_copy ) |
171 | 398M | { |
172 | 398M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
173 | 398M | p_data += i_copy; |
174 | 398M | } |
175 | | |
176 | 403M | i_offset = 0; |
177 | | |
178 | 403M | if( !i_size ) break; |
179 | 403M | } |
180 | | |
181 | 375M | return VLC_SUCCESS; |
182 | 378M | } Line | Count | Source | 157 | 68.0M | { | 158 | 68.0M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 941k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 67.0M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 67.0M | size_t i_size = i_data; | 164 | 67.0M | for( block_t *p_block = p_bytestream->p_block; | 165 | 69.4M | p_block != NULL; p_block = p_block->p_next ) | 166 | 69.4M | { | 167 | 69.4M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 69.4M | i_size -= i_copy; | 169 | | | 170 | 69.4M | if( i_copy ) | 171 | 68.3M | { | 172 | 68.3M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 68.3M | p_data += i_copy; | 174 | 68.3M | } | 175 | | | 176 | 69.4M | i_offset = 0; | 177 | | | 178 | 69.4M | if( !i_size ) break; | 179 | 69.4M | } | 180 | | | 181 | 67.0M | return VLC_SUCCESS; | 182 | 68.0M | } |
Line | Count | Source | 157 | 56.1M | { | 158 | 56.1M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 1.03M | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 55.0M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 55.0M | size_t i_size = i_data; | 164 | 55.0M | for( block_t *p_block = p_bytestream->p_block; | 165 | 69.7M | p_block != NULL; p_block = p_block->p_next ) | 166 | 69.7M | { | 167 | 69.7M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 69.7M | i_size -= i_copy; | 169 | | | 170 | 69.7M | if( i_copy ) | 171 | 67.4M | { | 172 | 67.4M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 67.4M | p_data += i_copy; | 174 | 67.4M | } | 175 | | | 176 | 69.7M | i_offset = 0; | 177 | | | 178 | 69.7M | if( !i_size ) break; | 179 | 69.7M | } | 180 | | | 181 | 55.0M | return VLC_SUCCESS; | 182 | 56.1M | } |
Line | Count | Source | 157 | 1.48M | { | 158 | 1.48M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 9.58k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 1.47M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 1.47M | size_t i_size = i_data; | 164 | 1.47M | for( block_t *p_block = p_bytestream->p_block; | 165 | 1.49M | p_block != NULL; p_block = p_block->p_next ) | 166 | 1.49M | { | 167 | 1.49M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 1.49M | i_size -= i_copy; | 169 | | | 170 | 1.49M | if( i_copy ) | 171 | 1.49M | { | 172 | 1.49M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 1.49M | p_data += i_copy; | 174 | 1.49M | } | 175 | | | 176 | 1.49M | i_offset = 0; | 177 | | | 178 | 1.49M | if( !i_size ) break; | 179 | 1.49M | } | 180 | | | 181 | 1.47M | return VLC_SUCCESS; | 182 | 1.48M | } |
Unexecuted instantiation: h264.c:block_PeekBytes Unexecuted instantiation: hevc.c:block_PeekBytes Line | Count | Source | 157 | 19.0M | { | 158 | 19.0M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 48.6k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 18.9M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 18.9M | size_t i_size = i_data; | 164 | 18.9M | for( block_t *p_block = p_bytestream->p_block; | 165 | 25.1M | p_block != NULL; p_block = p_block->p_next ) | 166 | 25.1M | { | 167 | 25.1M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 25.1M | i_size -= i_copy; | 169 | | | 170 | 25.1M | if( i_copy ) | 171 | 24.9M | { | 172 | 24.9M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 24.9M | p_data += i_copy; | 174 | 24.9M | } | 175 | | | 176 | 25.1M | i_offset = 0; | 177 | | | 178 | 25.1M | if( !i_size ) break; | 179 | 25.1M | } | 180 | | | 181 | 18.9M | return VLC_SUCCESS; | 182 | 19.0M | } |
mpeg4audio.c:block_PeekBytes Line | Count | Source | 157 | 25.6M | { | 158 | 25.6M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 39.0k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 25.5M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 25.5M | size_t i_size = i_data; | 164 | 25.5M | for( block_t *p_block = p_bytestream->p_block; | 165 | 25.7M | p_block != NULL; p_block = p_block->p_next ) | 166 | 25.7M | { | 167 | 25.7M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 25.7M | i_size -= i_copy; | 169 | | | 170 | 25.7M | if( i_copy ) | 171 | 25.6M | { | 172 | 25.6M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 25.6M | p_data += i_copy; | 174 | 25.6M | } | 175 | | | 176 | 25.7M | i_offset = 0; | 177 | | | 178 | 25.7M | if( !i_size ) break; | 179 | 25.7M | } | 180 | | | 181 | 25.5M | return VLC_SUCCESS; | 182 | 25.6M | } |
Unexecuted instantiation: mpeg4video.c:block_PeekBytes mpegaudio.c:block_PeekBytes Line | Count | Source | 157 | 208M | { | 158 | 208M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 775k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 207M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 207M | size_t i_size = i_data; | 164 | 207M | for( block_t *p_block = p_bytestream->p_block; | 165 | 212M | p_block != NULL; p_block = p_block->p_next ) | 166 | 212M | { | 167 | 212M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 212M | i_size -= i_copy; | 169 | | | 170 | 212M | if( i_copy ) | 171 | 210M | { | 172 | 210M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 210M | p_data += i_copy; | 174 | 210M | } | 175 | | | 176 | 212M | i_offset = 0; | 177 | | | 178 | 212M | if( !i_size ) break; | 179 | 212M | } | 180 | | | 181 | 207M | return VLC_SUCCESS; | 182 | 208M | } |
Unexecuted instantiation: mpegvideo.c:block_PeekBytes Unexecuted instantiation: vc1.c:block_PeekBytes Unexecuted instantiation: av1.c:block_PeekBytes Unexecuted instantiation: mjpeg.c:block_PeekBytes |
183 | | |
184 | | static inline int block_GetBytes( block_bytestream_t *p_bytestream, |
185 | | uint8_t *p_data, size_t i_data ) |
186 | 344M | { |
187 | 344M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) |
188 | 146k | return VLC_EGENERIC; |
189 | | |
190 | | /* Copy the data */ |
191 | 344M | size_t i_offset = p_bytestream->i_block_offset; |
192 | 344M | size_t i_size = i_data; |
193 | 344M | size_t i_copy = 0; |
194 | 344M | block_t *p_block; |
195 | 344M | for( p_block = p_bytestream->p_block; |
196 | 356M | p_block != NULL; p_block = p_block->p_next ) |
197 | 356M | { |
198 | 356M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
199 | 356M | i_size -= i_copy; |
200 | | |
201 | 356M | if( i_copy && p_data != NULL ) |
202 | 35.3M | { |
203 | 35.3M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
204 | 35.3M | p_data += i_copy; |
205 | 35.3M | } |
206 | | |
207 | 356M | if( i_size == 0 ) |
208 | 344M | break; |
209 | | |
210 | 12.3M | p_bytestream->i_base_offset += p_block->i_buffer; |
211 | 12.3M | i_offset = 0; |
212 | 12.3M | } |
213 | | |
214 | 344M | p_bytestream->p_block = p_block; |
215 | 344M | p_bytestream->i_block_offset = i_offset + i_copy; |
216 | | |
217 | 344M | return VLC_SUCCESS; |
218 | 344M | } Line | Count | Source | 186 | 62.7M | { | 187 | 62.7M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 99.3k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 62.6M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 62.6M | size_t i_size = i_data; | 193 | 62.6M | size_t i_copy = 0; | 194 | 62.6M | block_t *p_block; | 195 | 62.6M | for( p_block = p_bytestream->p_block; | 196 | 64.2M | p_block != NULL; p_block = p_block->p_next ) | 197 | 64.2M | { | 198 | 64.2M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 64.2M | i_size -= i_copy; | 200 | | | 201 | 64.2M | if( i_copy && p_data != NULL ) | 202 | 3.47M | { | 203 | 3.47M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 3.47M | p_data += i_copy; | 205 | 3.47M | } | 206 | | | 207 | 64.2M | if( i_size == 0 ) | 208 | 62.6M | break; | 209 | | | 210 | 1.51M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 1.51M | i_offset = 0; | 212 | 1.51M | } | 213 | | | 214 | 62.6M | p_bytestream->p_block = p_block; | 215 | 62.6M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 62.6M | return VLC_SUCCESS; | 218 | 62.7M | } |
Line | Count | Source | 186 | 53.4M | { | 187 | 53.4M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 24.5k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 53.3M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 53.3M | size_t i_size = i_data; | 193 | 53.3M | size_t i_copy = 0; | 194 | 53.3M | block_t *p_block; | 195 | 53.3M | for( p_block = p_bytestream->p_block; | 196 | 55.8M | p_block != NULL; p_block = p_block->p_next ) | 197 | 55.8M | { | 198 | 55.8M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 55.8M | i_size -= i_copy; | 200 | | | 201 | 55.8M | if( i_copy && p_data != NULL ) | 202 | 326k | { | 203 | 326k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 326k | p_data += i_copy; | 205 | 326k | } | 206 | | | 207 | 55.8M | if( i_size == 0 ) | 208 | 53.3M | break; | 209 | | | 210 | 2.41M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 2.41M | i_offset = 0; | 212 | 2.41M | } | 213 | | | 214 | 53.3M | p_bytestream->p_block = p_block; | 215 | 53.3M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 53.3M | return VLC_SUCCESS; | 218 | 53.4M | } |
Line | Count | Source | 186 | 2.97M | { | 187 | 2.97M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 192 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 2.97M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 2.97M | size_t i_size = i_data; | 193 | 2.97M | size_t i_copy = 0; | 194 | 2.97M | block_t *p_block; | 195 | 2.97M | for( p_block = p_bytestream->p_block; | 196 | 3.03M | p_block != NULL; p_block = p_block->p_next ) | 197 | 3.03M | { | 198 | 3.03M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 3.03M | i_size -= i_copy; | 200 | | | 201 | 3.03M | if( i_copy && p_data != NULL ) | 202 | 0 | { | 203 | 0 | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 0 | p_data += i_copy; | 205 | 0 | } | 206 | | | 207 | 3.03M | if( i_size == 0 ) | 208 | 2.97M | break; | 209 | | | 210 | 61.2k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 61.2k | i_offset = 0; | 212 | 61.2k | } | 213 | | | 214 | 2.97M | p_bytestream->p_block = p_block; | 215 | 2.97M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 2.97M | return VLC_SUCCESS; | 218 | 2.97M | } |
Line | Count | Source | 186 | 1.69M | { | 187 | 1.69M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 1.69M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 1.69M | size_t i_size = i_data; | 193 | 1.69M | size_t i_copy = 0; | 194 | 1.69M | block_t *p_block; | 195 | 1.69M | for( p_block = p_bytestream->p_block; | 196 | 1.78M | p_block != NULL; p_block = p_block->p_next ) | 197 | 1.78M | { | 198 | 1.78M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 1.78M | i_size -= i_copy; | 200 | | | 201 | 1.78M | if( i_copy && p_data != NULL ) | 202 | 1.67M | { | 203 | 1.67M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 1.67M | p_data += i_copy; | 205 | 1.67M | } | 206 | | | 207 | 1.78M | if( i_size == 0 ) | 208 | 1.69M | break; | 209 | | | 210 | 86.0k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 86.0k | i_offset = 0; | 212 | 86.0k | } | 213 | | | 214 | 1.69M | p_bytestream->p_block = p_block; | 215 | 1.69M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 1.69M | return VLC_SUCCESS; | 218 | 1.69M | } |
Line | Count | Source | 186 | 8.40M | { | 187 | 8.40M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 8.40M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 8.40M | size_t i_size = i_data; | 193 | 8.40M | size_t i_copy = 0; | 194 | 8.40M | block_t *p_block; | 195 | 8.40M | for( p_block = p_bytestream->p_block; | 196 | 10.3M | p_block != NULL; p_block = p_block->p_next ) | 197 | 10.3M | { | 198 | 10.3M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 10.3M | i_size -= i_copy; | 200 | | | 201 | 10.3M | if( i_copy && p_data != NULL ) | 202 | 10.3M | { | 203 | 10.3M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 10.3M | p_data += i_copy; | 205 | 10.3M | } | 206 | | | 207 | 10.3M | if( i_size == 0 ) | 208 | 8.40M | break; | 209 | | | 210 | 1.96M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 1.96M | i_offset = 0; | 212 | 1.96M | } | 213 | | | 214 | 8.40M | p_bytestream->p_block = p_block; | 215 | 8.40M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 8.40M | return VLC_SUCCESS; | 218 | 8.40M | } |
Line | Count | Source | 186 | 18.3M | { | 187 | 18.3M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 18.3M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 18.3M | size_t i_size = i_data; | 193 | 18.3M | size_t i_copy = 0; | 194 | 18.3M | block_t *p_block; | 195 | 18.3M | for( p_block = p_bytestream->p_block; | 196 | 18.4M | p_block != NULL; p_block = p_block->p_next ) | 197 | 18.4M | { | 198 | 18.4M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 18.4M | i_size -= i_copy; | 200 | | | 201 | 18.4M | if( i_copy && p_data != NULL ) | 202 | 338k | { | 203 | 338k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 338k | p_data += i_copy; | 205 | 338k | } | 206 | | | 207 | 18.4M | if( i_size == 0 ) | 208 | 18.3M | break; | 209 | | | 210 | 58.0k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 58.0k | i_offset = 0; | 212 | 58.0k | } | 213 | | | 214 | 18.3M | p_bytestream->p_block = p_block; | 215 | 18.3M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 18.3M | return VLC_SUCCESS; | 218 | 18.3M | } |
mpeg4audio.c:block_GetBytes Line | Count | Source | 186 | 25.5M | { | 187 | 25.5M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 25.5M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 25.5M | size_t i_size = i_data; | 193 | 25.5M | size_t i_copy = 0; | 194 | 25.5M | block_t *p_block; | 195 | 25.5M | for( p_block = p_bytestream->p_block; | 196 | 25.6M | p_block != NULL; p_block = p_block->p_next ) | 197 | 25.6M | { | 198 | 25.6M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 25.6M | i_size -= i_copy; | 200 | | | 201 | 25.6M | if( i_copy && p_data != NULL ) | 202 | 30.4k | { | 203 | 30.4k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 30.4k | p_data += i_copy; | 205 | 30.4k | } | 206 | | | 207 | 25.6M | if( i_size == 0 ) | 208 | 25.5M | break; | 209 | | | 210 | 63.5k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 63.5k | i_offset = 0; | 212 | 63.5k | } | 213 | | | 214 | 25.5M | p_bytestream->p_block = p_block; | 215 | 25.5M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 25.5M | return VLC_SUCCESS; | 218 | 25.5M | } |
mpeg4video.c:block_GetBytes Line | Count | Source | 186 | 421k | { | 187 | 421k | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 421k | size_t i_offset = p_bytestream->i_block_offset; | 192 | 421k | size_t i_size = i_data; | 193 | 421k | size_t i_copy = 0; | 194 | 421k | block_t *p_block; | 195 | 421k | for( p_block = p_bytestream->p_block; | 196 | 466k | p_block != NULL; p_block = p_block->p_next ) | 197 | 466k | { | 198 | 466k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 466k | i_size -= i_copy; | 200 | | | 201 | 466k | if( i_copy && p_data != NULL ) | 202 | 430k | { | 203 | 430k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 430k | p_data += i_copy; | 205 | 430k | } | 206 | | | 207 | 466k | if( i_size == 0 ) | 208 | 421k | break; | 209 | | | 210 | 45.1k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 45.1k | i_offset = 0; | 212 | 45.1k | } | 213 | | | 214 | 421k | p_bytestream->p_block = p_block; | 215 | 421k | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 421k | return VLC_SUCCESS; | 218 | 421k | } |
mpegaudio.c:block_GetBytes Line | Count | Source | 186 | 165M | { | 187 | 165M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 22.9k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 165M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 165M | size_t i_size = i_data; | 193 | 165M | size_t i_copy = 0; | 194 | 165M | block_t *p_block; | 195 | 165M | for( p_block = p_bytestream->p_block; | 196 | 171M | p_block != NULL; p_block = p_block->p_next ) | 197 | 171M | { | 198 | 171M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 171M | i_size -= i_copy; | 200 | | | 201 | 171M | if( i_copy && p_data != NULL ) | 202 | 13.7M | { | 203 | 13.7M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 13.7M | p_data += i_copy; | 205 | 13.7M | } | 206 | | | 207 | 171M | if( i_size == 0 ) | 208 | 165M | break; | 209 | | | 210 | 5.82M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 5.82M | i_offset = 0; | 212 | 5.82M | } | 213 | | | 214 | 165M | p_bytestream->p_block = p_block; | 215 | 165M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 165M | return VLC_SUCCESS; | 218 | 165M | } |
mpegvideo.c:block_GetBytes Line | Count | Source | 186 | 2.92M | { | 187 | 2.92M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 2.92M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 2.92M | size_t i_size = i_data; | 193 | 2.92M | size_t i_copy = 0; | 194 | 2.92M | block_t *p_block; | 195 | 2.92M | for( p_block = p_bytestream->p_block; | 196 | 3.16M | p_block != NULL; p_block = p_block->p_next ) | 197 | 3.16M | { | 198 | 3.16M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 3.16M | i_size -= i_copy; | 200 | | | 201 | 3.16M | if( i_copy && p_data != NULL ) | 202 | 3.06M | { | 203 | 3.06M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 3.06M | p_data += i_copy; | 205 | 3.06M | } | 206 | | | 207 | 3.16M | if( i_size == 0 ) | 208 | 2.92M | break; | 209 | | | 210 | 241k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 241k | i_offset = 0; | 212 | 241k | } | 213 | | | 214 | 2.92M | p_bytestream->p_block = p_block; | 215 | 2.92M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 2.92M | return VLC_SUCCESS; | 218 | 2.92M | } |
Line | Count | Source | 186 | 1.87M | { | 187 | 1.87M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 1.87M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 1.87M | size_t i_size = i_data; | 193 | 1.87M | size_t i_copy = 0; | 194 | 1.87M | block_t *p_block; | 195 | 1.87M | for( p_block = p_bytestream->p_block; | 196 | 1.89M | p_block != NULL; p_block = p_block->p_next ) | 197 | 1.89M | { | 198 | 1.89M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 1.89M | i_size -= i_copy; | 200 | | | 201 | 1.89M | if( i_copy && p_data != NULL ) | 202 | 1.88M | { | 203 | 1.88M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 1.88M | p_data += i_copy; | 205 | 1.88M | } | 206 | | | 207 | 1.89M | if( i_size == 0 ) | 208 | 1.87M | break; | 209 | | | 210 | 20.0k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 20.0k | i_offset = 0; | 212 | 20.0k | } | 213 | | | 214 | 1.87M | p_bytestream->p_block = p_block; | 215 | 1.87M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 1.87M | return VLC_SUCCESS; | 218 | 1.87M | } |
Unexecuted instantiation: av1.c:block_GetBytes Line | Count | Source | 186 | 142 | { | 187 | 142 | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 142 | size_t i_offset = p_bytestream->i_block_offset; | 192 | 142 | size_t i_size = i_data; | 193 | 142 | size_t i_copy = 0; | 194 | 142 | block_t *p_block; | 195 | 142 | for( p_block = p_bytestream->p_block; | 196 | 2.10k | p_block != NULL; p_block = p_block->p_next ) | 197 | 2.10k | { | 198 | 2.10k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 2.10k | i_size -= i_copy; | 200 | | | 201 | 2.10k | if( i_copy && p_data != NULL ) | 202 | 458 | { | 203 | 458 | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 458 | p_data += i_copy; | 205 | 458 | } | 206 | | | 207 | 2.10k | if( i_size == 0 ) | 208 | 142 | break; | 209 | | | 210 | 1.96k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 1.96k | i_offset = 0; | 212 | 1.96k | } | 213 | | | 214 | 142 | p_bytestream->p_block = p_block; | 215 | 142 | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 142 | return VLC_SUCCESS; | 218 | 142 | } |
|
219 | | |
220 | | static inline int block_SkipBytes( block_bytestream_t *p_bytestream, |
221 | | size_t i_data ) |
222 | 2.35M | { |
223 | 2.35M | return block_GetBytes( p_bytestream, NULL, i_data ); |
224 | 2.35M | } Line | Count | Source | 222 | 313k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 313k | } |
Line | Count | Source | 222 | 91.7k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 91.7k | } |
Line | Count | Source | 222 | 1.68M | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 1.68M | } |
Line | Count | Source | 222 | 98.8k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 98.8k | } |
Line | Count | Source | 222 | 43.2k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 43.2k | } |
Unexecuted instantiation: mlp.c:block_SkipBytes mpeg4audio.c:block_SkipBytes Line | Count | Source | 222 | 14.9k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 14.9k | } |
mpeg4video.c:block_SkipBytes Line | Count | Source | 222 | 31.9k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 31.9k | } |
Unexecuted instantiation: mpegaudio.c:block_SkipBytes mpegvideo.c:block_SkipBytes Line | Count | Source | 222 | 64.2k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 64.2k | } |
Line | Count | Source | 222 | 9.32k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 9.32k | } |
Unexecuted instantiation: av1.c:block_SkipBytes Line | Count | Source | 222 | 18 | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 18 | } |
|
225 | | |
226 | | static inline int block_SkipByte( block_bytestream_t *p_bytestream ) |
227 | 313M | { |
228 | 313M | return block_GetBytes( p_bytestream, NULL, 1 ); |
229 | 313M | } Line | Count | Source | 227 | 59.5M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 59.5M | } |
Line | Count | Source | 227 | 53.1M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 53.1M | } |
Line | Count | Source | 227 | 1.28M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 1.28M | } |
Unexecuted instantiation: h264.c:block_SkipByte Unexecuted instantiation: hevc.c:block_SkipByte Line | Count | Source | 227 | 18.0M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 18.0M | } |
mpeg4audio.c:block_SkipByte Line | Count | Source | 227 | 25.5M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 25.5M | } |
Unexecuted instantiation: mpeg4video.c:block_SkipByte mpegaudio.c:block_SkipByte Line | Count | Source | 227 | 156M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 156M | } |
Unexecuted instantiation: mpegvideo.c:block_SkipByte Unexecuted instantiation: vc1.c:block_SkipByte Unexecuted instantiation: av1.c:block_SkipByte Unexecuted instantiation: mjpeg.c:block_SkipByte |
230 | | |
231 | | static inline int block_PeekOffsetBytes( block_bytestream_t *p_bytestream, |
232 | | size_t i_peek_offset, uint8_t *p_data, size_t i_data ) |
233 | 938M | { |
234 | 938M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); |
235 | 938M | if( i_remain < i_data + i_peek_offset ) |
236 | 13.2M | return VLC_EGENERIC; |
237 | | |
238 | | /* Find the right place */ |
239 | 925M | size_t i_offset = p_bytestream->i_block_offset; |
240 | 925M | size_t i_size = i_peek_offset; |
241 | 925M | size_t i_copy = 0; |
242 | 925M | block_t *p_block; |
243 | 925M | for( p_block = p_bytestream->p_block; |
244 | 8.33G | p_block != NULL; p_block = p_block->p_next ) |
245 | 8.33G | { |
246 | 8.33G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
247 | 8.33G | i_size -= i_copy; |
248 | | |
249 | 8.33G | if( !i_size ) break; |
250 | | |
251 | 7.40G | i_offset = 0; |
252 | 7.40G | } |
253 | | |
254 | | /* Copy the data */ |
255 | 925M | i_offset += i_copy; |
256 | 925M | i_size = i_data; |
257 | 988M | for( ; p_block != NULL; p_block = p_block->p_next ) |
258 | 988M | { |
259 | 988M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
260 | 988M | i_size -= i_copy; |
261 | | |
262 | 988M | if( i_copy ) |
263 | 977M | { |
264 | 977M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
265 | 977M | p_data += i_copy; |
266 | 977M | } |
267 | | |
268 | 988M | i_offset = 0; |
269 | | |
270 | 988M | if( !i_size ) break; |
271 | 988M | } |
272 | | |
273 | 925M | return VLC_SUCCESS; |
274 | 938M | } a52.c:block_PeekOffsetBytes Line | Count | Source | 233 | 4.87M | { | 234 | 4.87M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 4.87M | if( i_remain < i_data + i_peek_offset ) | 236 | 1.90M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 2.96M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 2.96M | size_t i_size = i_peek_offset; | 241 | 2.96M | size_t i_copy = 0; | 242 | 2.96M | block_t *p_block; | 243 | 2.96M | for( p_block = p_bytestream->p_block; | 244 | 49.6M | p_block != NULL; p_block = p_block->p_next ) | 245 | 49.6M | { | 246 | 49.6M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 49.6M | i_size -= i_copy; | 248 | | | 249 | 49.6M | if( !i_size ) break; | 250 | | | 251 | 46.6M | i_offset = 0; | 252 | 46.6M | } | 253 | | | 254 | | /* Copy the data */ | 255 | 2.96M | i_offset += i_copy; | 256 | 2.96M | i_size = i_data; | 257 | 4.03M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 4.03M | { | 259 | 4.03M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 4.03M | i_size -= i_copy; | 261 | | | 262 | 4.03M | if( i_copy ) | 263 | 3.79M | { | 264 | 3.79M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 3.79M | p_data += i_copy; | 266 | 3.79M | } | 267 | | | 268 | 4.03M | i_offset = 0; | 269 | | | 270 | 4.03M | if( !i_size ) break; | 271 | 4.03M | } | 272 | | | 273 | 2.96M | return VLC_SUCCESS; | 274 | 4.87M | } |
dts.c:block_PeekOffsetBytes Line | Count | Source | 233 | 34.1M | { | 234 | 34.1M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 34.1M | if( i_remain < i_data + i_peek_offset ) | 236 | 1.71M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 32.4M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 32.4M | size_t i_size = i_peek_offset; | 241 | 32.4M | size_t i_copy = 0; | 242 | 32.4M | block_t *p_block; | 243 | 32.4M | for( p_block = p_bytestream->p_block; | 244 | 396M | p_block != NULL; p_block = p_block->p_next ) | 245 | 396M | { | 246 | 396M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 396M | i_size -= i_copy; | 248 | | | 249 | 396M | if( !i_size ) break; | 250 | | | 251 | 363M | i_offset = 0; | 252 | 363M | } | 253 | | | 254 | | /* Copy the data */ | 255 | 32.4M | i_offset += i_copy; | 256 | 32.4M | i_size = i_data; | 257 | 32.7M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 32.7M | { | 259 | 32.7M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 32.7M | i_size -= i_copy; | 261 | | | 262 | 32.7M | if( i_copy ) | 263 | 32.6M | { | 264 | 32.6M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 32.6M | p_data += i_copy; | 266 | 32.6M | } | 267 | | | 268 | 32.7M | i_offset = 0; | 269 | | | 270 | 32.7M | if( !i_size ) break; | 271 | 32.7M | } | 272 | | | 273 | 32.4M | return VLC_SUCCESS; | 274 | 34.1M | } |
flac.c:block_PeekOffsetBytes Line | Count | Source | 233 | 31.3M | { | 234 | 31.3M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 31.3M | if( i_remain < i_data + i_peek_offset ) | 236 | 13.1k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 31.3M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 31.3M | size_t i_size = i_peek_offset; | 241 | 31.3M | size_t i_copy = 0; | 242 | 31.3M | block_t *p_block; | 243 | 31.3M | for( p_block = p_bytestream->p_block; | 244 | 1.10G | p_block != NULL; p_block = p_block->p_next ) | 245 | 1.10G | { | 246 | 1.10G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 1.10G | i_size -= i_copy; | 248 | | | 249 | 1.10G | if( !i_size ) break; | 250 | | | 251 | 1.07G | i_offset = 0; | 252 | 1.07G | } | 253 | | | 254 | | /* Copy the data */ | 255 | 31.3M | i_offset += i_copy; | 256 | 31.3M | i_size = i_data; | 257 | 32.9M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 32.9M | { | 259 | 32.9M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 32.9M | i_size -= i_copy; | 261 | | | 262 | 32.9M | if( i_copy ) | 263 | 31.5M | { | 264 | 31.5M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 31.5M | p_data += i_copy; | 266 | 31.5M | } | 267 | | | 268 | 32.9M | i_offset = 0; | 269 | | | 270 | 32.9M | if( !i_size ) break; | 271 | 32.9M | } | 272 | | | 273 | 31.3M | return VLC_SUCCESS; | 274 | 31.3M | } |
Unexecuted instantiation: h264.c:block_PeekOffsetBytes Unexecuted instantiation: hevc.c:block_PeekOffsetBytes mlp.c:block_PeekOffsetBytes Line | Count | Source | 233 | 784k | { | 234 | 784k | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 784k | if( i_remain < i_data + i_peek_offset ) | 236 | 192k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 592k | size_t i_offset = p_bytestream->i_block_offset; | 240 | 592k | size_t i_size = i_peek_offset; | 241 | 592k | size_t i_copy = 0; | 242 | 592k | block_t *p_block; | 243 | 592k | for( p_block = p_bytestream->p_block; | 244 | 813k | p_block != NULL; p_block = p_block->p_next ) | 245 | 813k | { | 246 | 813k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 813k | i_size -= i_copy; | 248 | | | 249 | 813k | if( !i_size ) break; | 250 | | | 251 | 221k | i_offset = 0; | 252 | 221k | } | 253 | | | 254 | | /* Copy the data */ | 255 | 592k | i_offset += i_copy; | 256 | 592k | i_size = i_data; | 257 | 1.58M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 1.58M | { | 259 | 1.58M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 1.58M | i_size -= i_copy; | 261 | | | 262 | 1.58M | if( i_copy ) | 263 | 1.44M | { | 264 | 1.44M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 1.44M | p_data += i_copy; | 266 | 1.44M | } | 267 | | | 268 | 1.58M | i_offset = 0; | 269 | | | 270 | 1.58M | if( !i_size ) break; | 271 | 1.58M | } | 272 | | | 273 | 592k | return VLC_SUCCESS; | 274 | 784k | } |
mpeg4audio.c:block_PeekOffsetBytes Line | Count | Source | 233 | 131k | { | 234 | 131k | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 131k | if( i_remain < i_data + i_peek_offset ) | 236 | 62.4k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 69.5k | size_t i_offset = p_bytestream->i_block_offset; | 240 | 69.5k | size_t i_size = i_peek_offset; | 241 | 69.5k | size_t i_copy = 0; | 242 | 69.5k | block_t *p_block; | 243 | 69.5k | for( p_block = p_bytestream->p_block; | 244 | 699k | p_block != NULL; p_block = p_block->p_next ) | 245 | 699k | { | 246 | 699k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 699k | i_size -= i_copy; | 248 | | | 249 | 699k | if( !i_size ) break; | 250 | | | 251 | 629k | i_offset = 0; | 252 | 629k | } | 253 | | | 254 | | /* Copy the data */ | 255 | 69.5k | i_offset += i_copy; | 256 | 69.5k | i_size = i_data; | 257 | 72.0k | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 72.0k | { | 259 | 72.0k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 72.0k | i_size -= i_copy; | 261 | | | 262 | 72.0k | if( i_copy ) | 263 | 71.0k | { | 264 | 71.0k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 71.0k | p_data += i_copy; | 266 | 71.0k | } | 267 | | | 268 | 72.0k | i_offset = 0; | 269 | | | 270 | 72.0k | if( !i_size ) break; | 271 | 72.0k | } | 272 | | | 273 | 69.5k | return VLC_SUCCESS; | 274 | 131k | } |
Unexecuted instantiation: mpeg4video.c:block_PeekOffsetBytes mpegaudio.c:block_PeekOffsetBytes Line | Count | Source | 233 | 867M | { | 234 | 867M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 867M | if( i_remain < i_data + i_peek_offset ) | 236 | 9.39M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 858M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 858M | size_t i_size = i_peek_offset; | 241 | 858M | size_t i_copy = 0; | 242 | 858M | block_t *p_block; | 243 | 858M | for( p_block = p_bytestream->p_block; | 244 | 6.77G | p_block != NULL; p_block = p_block->p_next ) | 245 | 6.77G | { | 246 | 6.77G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 6.77G | i_size -= i_copy; | 248 | | | 249 | 6.77G | if( !i_size ) break; | 250 | | | 251 | 5.91G | i_offset = 0; | 252 | 5.91G | } | 253 | | | 254 | | /* Copy the data */ | 255 | 858M | i_offset += i_copy; | 256 | 858M | i_size = i_data; | 257 | 917M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 917M | { | 259 | 917M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 917M | i_size -= i_copy; | 261 | | | 262 | 917M | if( i_copy ) | 263 | 908M | { | 264 | 908M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 908M | p_data += i_copy; | 266 | 908M | } | 267 | | | 268 | 917M | i_offset = 0; | 269 | | | 270 | 917M | if( !i_size ) break; | 271 | 917M | } | 272 | | | 273 | 858M | return VLC_SUCCESS; | 274 | 867M | } |
Unexecuted instantiation: mpegvideo.c:block_PeekOffsetBytes Unexecuted instantiation: vc1.c:block_PeekOffsetBytes Unexecuted instantiation: av1.c:block_PeekOffsetBytes Unexecuted instantiation: mjpeg.c:block_PeekOffsetBytes |
275 | | |
276 | | typedef const uint8_t * (*block_startcode_helper_t)( const uint8_t *, const uint8_t * ); |
277 | | typedef bool (*block_startcode_matcher_t)( uint8_t, size_t, const uint8_t * ); |
278 | | |
279 | | static inline int block_FindStartcodeFromOffset( |
280 | | const block_bytestream_t *p_bytestream, size_t *pi_offset, |
281 | | const uint8_t *p_startcode, size_t i_startcode_length, |
282 | | block_startcode_helper_t p_startcode_helper, |
283 | | block_startcode_matcher_t p_startcode_matcher ) |
284 | 60.0M | { |
285 | 60.0M | block_t *p_block, *p_block_backup = NULL; |
286 | 60.0M | ssize_t i_size; |
287 | 60.0M | size_t i_offset, i_offset_backup = 0; |
288 | 60.0M | size_t i_caller_offset_backup = 0; |
289 | 60.0M | size_t i_match; |
290 | | |
291 | | /* Find the right place */ |
292 | 60.0M | i_size = *pi_offset + p_bytestream->i_block_offset; |
293 | 60.0M | for( p_block = p_bytestream->p_block; |
294 | 708M | p_block != NULL; p_block = p_block->p_next ) |
295 | 708M | { |
296 | 708M | i_size -= p_block->i_buffer; |
297 | 708M | if( i_size < 0 ) break; |
298 | 708M | } |
299 | | |
300 | 60.0M | if( unlikely( i_size >= 0 ) ) |
301 | 284k | { |
302 | | /* Not enough data, bail out */ |
303 | 284k | return VLC_EGENERIC; |
304 | 284k | } |
305 | | |
306 | | /* Begin the search. |
307 | | * We first look for an occurrence of the 1st startcode byte and |
308 | | * if found, we do a more thorough check. */ |
309 | 59.7M | i_size += p_block->i_buffer; |
310 | 59.7M | *pi_offset -= i_size; |
311 | 59.7M | i_match = 0; |
312 | 246M | for( ; p_block != NULL; p_block = p_block->p_next ) |
313 | 242M | { |
314 | 582M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) |
315 | 396M | { |
316 | | /* Use optimized helper when possible */ |
317 | 396M | if( p_startcode_helper && !i_match && |
318 | 243M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) |
319 | 103M | { |
320 | 103M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], |
321 | 103M | &p_block->p_buffer[p_block->i_buffer] ); |
322 | 103M | if( p_res ) |
323 | 53.8M | { |
324 | 53.8M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); |
325 | 53.8M | return VLC_SUCCESS; |
326 | 53.8M | } |
327 | | /* Then parsing boundary with legacy code */ |
328 | 50.0M | i_offset = p_block->i_buffer + 1 - i_startcode_length; |
329 | 50.0M | } |
330 | | |
331 | 396M | bool b_matched = ( p_startcode_matcher ) |
332 | 342M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) |
333 | 342M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; |
334 | 342M | if( b_matched ) |
335 | 128M | { |
336 | 128M | if( i_match == 0 ) |
337 | 80.1M | { |
338 | 80.1M | p_block_backup = p_block; |
339 | 80.1M | i_offset_backup = i_offset; |
340 | 80.1M | i_caller_offset_backup = *pi_offset; |
341 | 80.1M | } |
342 | | |
343 | 128M | if( i_match + 1 == i_startcode_length ) |
344 | 2.40M | { |
345 | | /* We have it */ |
346 | 2.40M | *pi_offset += i_offset - i_match; |
347 | 2.40M | return VLC_SUCCESS; |
348 | 2.40M | } |
349 | | |
350 | 126M | i_match++; |
351 | 126M | } |
352 | 213M | else if ( i_match != 0 ) |
353 | 77.3M | { |
354 | | /* False positive */ |
355 | 77.3M | p_block = p_block_backup; |
356 | 77.3M | i_offset = i_offset_backup; |
357 | 77.3M | *pi_offset = i_caller_offset_backup; |
358 | 77.3M | i_match = 0; |
359 | 77.3M | } |
360 | | |
361 | 342M | } |
362 | 186M | i_size = 0; |
363 | 186M | *pi_offset += i_offset; |
364 | 186M | } |
365 | | |
366 | 3.50M | *pi_offset -= i_match; |
367 | 3.50M | return VLC_EGENERIC; |
368 | 59.7M | } a52.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 2.38M | { | 285 | 2.38M | block_t *p_block, *p_block_backup = NULL; | 286 | 2.38M | ssize_t i_size; | 287 | 2.38M | size_t i_offset, i_offset_backup = 0; | 288 | 2.38M | size_t i_caller_offset_backup = 0; | 289 | 2.38M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 2.38M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 2.38M | for( p_block = p_bytestream->p_block; | 294 | 2.41M | p_block != NULL; p_block = p_block->p_next ) | 295 | 2.41M | { | 296 | 2.41M | i_size -= p_block->i_buffer; | 297 | 2.41M | if( i_size < 0 ) break; | 298 | 2.41M | } | 299 | | | 300 | 2.38M | if( unlikely( i_size >= 0 ) ) | 301 | 0 | { | 302 | | /* Not enough data, bail out */ | 303 | 0 | return VLC_EGENERIC; | 304 | 0 | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 2.38M | i_size += p_block->i_buffer; | 310 | 2.38M | *pi_offset -= i_size; | 311 | 2.38M | i_match = 0; | 312 | 3.55M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 3.54M | { | 314 | 30.8M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 29.6M | { | 316 | | /* Use optimized helper when possible */ | 317 | 29.6M | if( p_startcode_helper && !i_match && | 318 | 0 | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 0 | { | 320 | 0 | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 0 | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 0 | if( p_res ) | 323 | 0 | { | 324 | 0 | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 0 | return VLC_SUCCESS; | 326 | 0 | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 0 | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 0 | } | 330 | | | 331 | 29.6M | bool b_matched = ( p_startcode_matcher ) | 332 | 29.6M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 29.6M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 29.6M | if( b_matched ) | 335 | 5.21M | { | 336 | 5.21M | if( i_match == 0 ) | 337 | 2.83M | { | 338 | 2.83M | p_block_backup = p_block; | 339 | 2.83M | i_offset_backup = i_offset; | 340 | 2.83M | i_caller_offset_backup = *pi_offset; | 341 | 2.83M | } | 342 | | | 343 | 5.21M | if( i_match + 1 == i_startcode_length ) | 344 | 2.37M | { | 345 | | /* We have it */ | 346 | 2.37M | *pi_offset += i_offset - i_match; | 347 | 2.37M | return VLC_SUCCESS; | 348 | 2.37M | } | 349 | | | 350 | 2.83M | i_match++; | 351 | 2.83M | } | 352 | 24.4M | else if ( i_match != 0 ) | 353 | 462k | { | 354 | | /* False positive */ | 355 | 462k | p_block = p_block_backup; | 356 | 462k | i_offset = i_offset_backup; | 357 | 462k | *pi_offset = i_caller_offset_backup; | 358 | 462k | i_match = 0; | 359 | 462k | } | 360 | | | 361 | 29.6M | } | 362 | 1.17M | i_size = 0; | 363 | 1.17M | *pi_offset += i_offset; | 364 | 1.17M | } | 365 | | | 366 | 5.49k | *pi_offset -= i_match; | 367 | 5.49k | return VLC_EGENERIC; | 368 | 2.38M | } |
Unexecuted instantiation: dts.c:block_FindStartcodeFromOffset flac.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 23.9M | { | 285 | 23.9M | block_t *p_block, *p_block_backup = NULL; | 286 | 23.9M | ssize_t i_size; | 287 | 23.9M | size_t i_offset, i_offset_backup = 0; | 288 | 23.9M | size_t i_caller_offset_backup = 0; | 289 | 23.9M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 23.9M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 23.9M | for( p_block = p_bytestream->p_block; | 294 | 671M | p_block != NULL; p_block = p_block->p_next ) | 295 | 671M | { | 296 | 671M | i_size -= p_block->i_buffer; | 297 | 671M | if( i_size < 0 ) break; | 298 | 671M | } | 299 | | | 300 | 23.9M | if( unlikely( i_size >= 0 ) ) | 301 | 4.93k | { | 302 | | /* Not enough data, bail out */ | 303 | 4.93k | return VLC_EGENERIC; | 304 | 4.93k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 23.9M | i_size += p_block->i_buffer; | 310 | 23.9M | *pi_offset -= i_size; | 311 | 23.9M | i_match = 0; | 312 | 24.9M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 24.8M | { | 314 | 25.8M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 24.8M | { | 316 | | /* Use optimized helper when possible */ | 317 | 24.8M | if( p_startcode_helper && !i_match && | 318 | 24.8M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 24.6M | { | 320 | 24.6M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 24.6M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 24.6M | if( p_res ) | 323 | 23.8M | { | 324 | 23.8M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 23.8M | return VLC_SUCCESS; | 326 | 23.8M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 824k | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 824k | } | 330 | | | 331 | 24.8M | bool b_matched = ( p_startcode_matcher ) | 332 | 991k | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 991k | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 991k | if( b_matched ) | 335 | 21.1k | { | 336 | 21.1k | if( i_match == 0 ) | 337 | 19.1k | { | 338 | 19.1k | p_block_backup = p_block; | 339 | 19.1k | i_offset_backup = i_offset; | 340 | 19.1k | i_caller_offset_backup = *pi_offset; | 341 | 19.1k | } | 342 | | | 343 | 21.1k | if( i_match + 1 == i_startcode_length ) | 344 | 2.00k | { | 345 | | /* We have it */ | 346 | 2.00k | *pi_offset += i_offset - i_match; | 347 | 2.00k | return VLC_SUCCESS; | 348 | 2.00k | } | 349 | | | 350 | 19.1k | i_match++; | 351 | 19.1k | } | 352 | 970k | else if ( i_match != 0 ) | 353 | 8.95k | { | 354 | | /* False positive */ | 355 | 8.95k | p_block = p_block_backup; | 356 | 8.95k | i_offset = i_offset_backup; | 357 | 8.95k | *pi_offset = i_caller_offset_backup; | 358 | 8.95k | i_match = 0; | 359 | 8.95k | } | 360 | | | 361 | 991k | } | 362 | 995k | i_size = 0; | 363 | 995k | *pi_offset += i_offset; | 364 | 995k | } | 365 | | | 366 | 141k | *pi_offset -= i_match; | 367 | 141k | return VLC_EGENERIC; | 368 | 23.9M | } |
h264.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 3.74M | { | 285 | 3.74M | block_t *p_block, *p_block_backup = NULL; | 286 | 3.74M | ssize_t i_size; | 287 | 3.74M | size_t i_offset, i_offset_backup = 0; | 288 | 3.74M | size_t i_caller_offset_backup = 0; | 289 | 3.74M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 3.74M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 3.74M | for( p_block = p_bytestream->p_block; | 294 | 3.99M | p_block != NULL; p_block = p_block->p_next ) | 295 | 3.83M | { | 296 | 3.83M | i_size -= p_block->i_buffer; | 297 | 3.83M | if( i_size < 0 ) break; | 298 | 3.83M | } | 299 | | | 300 | 3.74M | if( unlikely( i_size >= 0 ) ) | 301 | 156k | { | 302 | | /* Not enough data, bail out */ | 303 | 156k | return VLC_EGENERIC; | 304 | 156k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 3.58M | i_size += p_block->i_buffer; | 310 | 3.58M | *pi_offset -= i_size; | 311 | 3.58M | i_match = 0; | 312 | 6.72M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 6.19M | { | 314 | 12.2M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 9.13M | { | 316 | | /* Use optimized helper when possible */ | 317 | 9.13M | if( p_startcode_helper && !i_match && | 318 | 8.00M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 5.51M | { | 320 | 5.51M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 5.51M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 5.51M | if( p_res ) | 323 | 3.05M | { | 324 | 3.05M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 3.05M | return VLC_SUCCESS; | 326 | 3.05M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 2.46M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 2.46M | } | 330 | | | 331 | 9.13M | bool b_matched = ( p_startcode_matcher ) | 332 | 6.07M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 6.07M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 6.07M | if( b_matched ) | 335 | 1.18M | { | 336 | 1.18M | if( i_match == 0 ) | 337 | 792k | { | 338 | 792k | p_block_backup = p_block; | 339 | 792k | i_offset_backup = i_offset; | 340 | 792k | i_caller_offset_backup = *pi_offset; | 341 | 792k | } | 342 | | | 343 | 1.18M | if( i_match + 1 == i_startcode_length ) | 344 | 1.88k | { | 345 | | /* We have it */ | 346 | 1.88k | *pi_offset += i_offset - i_match; | 347 | 1.88k | return VLC_SUCCESS; | 348 | 1.88k | } | 349 | | | 350 | 1.17M | i_match++; | 351 | 1.17M | } | 352 | 4.89M | else if ( i_match != 0 ) | 353 | 741k | { | 354 | | /* False positive */ | 355 | 741k | p_block = p_block_backup; | 356 | 741k | i_offset = i_offset_backup; | 357 | 741k | *pi_offset = i_caller_offset_backup; | 358 | 741k | i_match = 0; | 359 | 741k | } | 360 | | | 361 | 6.07M | } | 362 | 3.13M | i_size = 0; | 363 | 3.13M | *pi_offset += i_offset; | 364 | 3.13M | } | 365 | | | 366 | 531k | *pi_offset -= i_match; | 367 | 531k | return VLC_EGENERIC; | 368 | 3.58M | } |
hevc.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 18.7M | { | 285 | 18.7M | block_t *p_block, *p_block_backup = NULL; | 286 | 18.7M | ssize_t i_size; | 287 | 18.7M | size_t i_offset, i_offset_backup = 0; | 288 | 18.7M | size_t i_caller_offset_backup = 0; | 289 | 18.7M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 18.7M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 18.7M | for( p_block = p_bytestream->p_block; | 294 | 18.8M | p_block != NULL; p_block = p_block->p_next ) | 295 | 18.7M | { | 296 | 18.7M | i_size -= p_block->i_buffer; | 297 | 18.7M | if( i_size < 0 ) break; | 298 | 18.7M | } | 299 | | | 300 | 18.7M | if( unlikely( i_size >= 0 ) ) | 301 | 18.0k | { | 302 | | /* Not enough data, bail out */ | 303 | 18.0k | return VLC_EGENERIC; | 304 | 18.0k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 18.7M | i_size += p_block->i_buffer; | 310 | 18.7M | *pi_offset -= i_size; | 311 | 18.7M | i_match = 0; | 312 | 28.1M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 26.1M | { | 314 | 44.7M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 35.3M | { | 316 | | /* Use optimized helper when possible */ | 317 | 35.3M | if( p_startcode_helper && !i_match && | 318 | 32.1M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 24.3M | { | 320 | 24.3M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 24.3M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 24.3M | if( p_res ) | 323 | 16.7M | { | 324 | 16.7M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 16.7M | return VLC_SUCCESS; | 326 | 16.7M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 7.57M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 7.57M | } | 330 | | | 331 | 35.3M | bool b_matched = ( p_startcode_matcher ) | 332 | 18.5M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 18.5M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 18.5M | if( b_matched ) | 335 | 3.32M | { | 336 | 3.32M | if( i_match == 0 ) | 337 | 1.91M | { | 338 | 1.91M | p_block_backup = p_block; | 339 | 1.91M | i_offset_backup = i_offset; | 340 | 1.91M | i_caller_offset_backup = *pi_offset; | 341 | 1.91M | } | 342 | | | 343 | 3.32M | if( i_match + 1 == i_startcode_length ) | 344 | 8.38k | { | 345 | | /* We have it */ | 346 | 8.38k | *pi_offset += i_offset - i_match; | 347 | 8.38k | return VLC_SUCCESS; | 348 | 8.38k | } | 349 | | | 350 | 3.31M | i_match++; | 351 | 3.31M | } | 352 | 15.2M | else if ( i_match != 0 ) | 353 | 1.85M | { | 354 | | /* False positive */ | 355 | 1.85M | p_block = p_block_backup; | 356 | 1.85M | i_offset = i_offset_backup; | 357 | 1.85M | *pi_offset = i_caller_offset_backup; | 358 | 1.85M | i_match = 0; | 359 | 1.85M | } | 360 | | | 361 | 18.5M | } | 362 | 9.41M | i_size = 0; | 363 | 9.41M | *pi_offset += i_offset; | 364 | 9.41M | } | 365 | | | 366 | 1.98M | *pi_offset -= i_match; | 367 | 1.98M | return VLC_EGENERIC; | 368 | 18.7M | } |
Unexecuted instantiation: mlp.c:block_FindStartcodeFromOffset Unexecuted instantiation: mpeg4audio.c:block_FindStartcodeFromOffset mpeg4video.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 898k | { | 285 | 898k | block_t *p_block, *p_block_backup = NULL; | 286 | 898k | ssize_t i_size; | 287 | 898k | size_t i_offset, i_offset_backup = 0; | 288 | 898k | size_t i_caller_offset_backup = 0; | 289 | 898k | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 898k | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 898k | for( p_block = p_bytestream->p_block; | 294 | 986k | p_block != NULL; p_block = p_block->p_next ) | 295 | 955k | { | 296 | 955k | i_size -= p_block->i_buffer; | 297 | 955k | if( i_size < 0 ) break; | 298 | 955k | } | 299 | | | 300 | 898k | if( unlikely( i_size >= 0 ) ) | 301 | 31.1k | { | 302 | | /* Not enough data, bail out */ | 303 | 31.1k | return VLC_EGENERIC; | 304 | 31.1k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 866k | i_size += p_block->i_buffer; | 310 | 866k | *pi_offset -= i_size; | 311 | 866k | i_match = 0; | 312 | 4.95M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 4.84M | { | 314 | 12.7M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 8.63M | { | 316 | | /* Use optimized helper when possible */ | 317 | 8.63M | if( p_startcode_helper && !i_match && | 318 | 5.51M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 2.13M | { | 320 | 2.13M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 2.13M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 2.13M | if( p_res ) | 323 | 752k | { | 324 | 752k | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 752k | return VLC_SUCCESS; | 326 | 752k | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 1.38M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 1.38M | } | 330 | | | 331 | 8.63M | bool b_matched = ( p_startcode_matcher ) | 332 | 7.88M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 7.88M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 7.88M | if( b_matched ) | 335 | 3.15M | { | 336 | 3.15M | if( i_match == 0 ) | 337 | 1.76M | { | 338 | 1.76M | p_block_backup = p_block; | 339 | 1.76M | i_offset_backup = i_offset; | 340 | 1.76M | i_caller_offset_backup = *pi_offset; | 341 | 1.76M | } | 342 | | | 343 | 3.15M | if( i_match + 1 == i_startcode_length ) | 344 | 1.63k | { | 345 | | /* We have it */ | 346 | 1.63k | *pi_offset += i_offset - i_match; | 347 | 1.63k | return VLC_SUCCESS; | 348 | 1.63k | } | 349 | | | 350 | 3.15M | i_match++; | 351 | 3.15M | } | 352 | 4.73M | else if ( i_match != 0 ) | 353 | 1.73M | { | 354 | | /* False positive */ | 355 | 1.73M | p_block = p_block_backup; | 356 | 1.73M | i_offset = i_offset_backup; | 357 | 1.73M | *pi_offset = i_caller_offset_backup; | 358 | 1.73M | i_match = 0; | 359 | 1.73M | } | 360 | | | 361 | 7.88M | } | 362 | 4.08M | i_size = 0; | 363 | 4.08M | *pi_offset += i_offset; | 364 | 4.08M | } | 365 | | | 366 | 112k | *pi_offset -= i_match; | 367 | 112k | return VLC_EGENERIC; | 368 | 866k | } |
Unexecuted instantiation: mpegaudio.c:block_FindStartcodeFromOffset mpegvideo.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 6.27M | { | 285 | 6.27M | block_t *p_block, *p_block_backup = NULL; | 286 | 6.27M | ssize_t i_size; | 287 | 6.27M | size_t i_offset, i_offset_backup = 0; | 288 | 6.27M | size_t i_caller_offset_backup = 0; | 289 | 6.27M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 6.27M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 6.27M | for( p_block = p_bytestream->p_block; | 294 | 6.75M | p_block != NULL; p_block = p_block->p_next ) | 295 | 6.68M | { | 296 | 6.68M | i_size -= p_block->i_buffer; | 297 | 6.68M | if( i_size < 0 ) break; | 298 | 6.68M | } | 299 | | | 300 | 6.27M | if( unlikely( i_size >= 0 ) ) | 301 | 63.2k | { | 302 | | /* Not enough data, bail out */ | 303 | 63.2k | return VLC_EGENERIC; | 304 | 63.2k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 6.21M | i_size += p_block->i_buffer; | 310 | 6.21M | *pi_offset -= i_size; | 311 | 6.21M | i_match = 0; | 312 | 172M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 171M | { | 314 | 448M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 282M | { | 316 | | /* Use optimized helper when possible */ | 317 | 282M | if( p_startcode_helper && !i_match && | 318 | 167M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 42.5M | { | 320 | 42.5M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 42.5M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 42.5M | if( p_res ) | 323 | 5.69M | { | 324 | 5.69M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 5.69M | return VLC_SUCCESS; | 326 | 5.69M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 36.8M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 36.8M | } | 330 | | | 331 | 282M | bool b_matched = ( p_startcode_matcher ) | 332 | 276M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 276M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 276M | if( b_matched ) | 335 | 115M | { | 336 | 115M | if( i_match == 0 ) | 337 | 72.4M | { | 338 | 72.4M | p_block_backup = p_block; | 339 | 72.4M | i_offset_backup = i_offset; | 340 | 72.4M | i_caller_offset_backup = *pi_offset; | 341 | 72.4M | } | 342 | | | 343 | 115M | if( i_match + 1 == i_startcode_length ) | 344 | 14.6k | { | 345 | | /* We have it */ | 346 | 14.6k | *pi_offset += i_offset - i_match; | 347 | 14.6k | return VLC_SUCCESS; | 348 | 14.6k | } | 349 | | | 350 | 115M | i_match++; | 351 | 115M | } | 352 | 161M | else if ( i_match != 0 ) | 353 | 72.2M | { | 354 | | /* False positive */ | 355 | 72.2M | p_block = p_block_backup; | 356 | 72.2M | i_offset = i_offset_backup; | 357 | 72.2M | *pi_offset = i_caller_offset_backup; | 358 | 72.2M | i_match = 0; | 359 | 72.2M | } | 360 | | | 361 | 276M | } | 362 | 166M | i_size = 0; | 363 | 166M | *pi_offset += i_offset; | 364 | 166M | } | 365 | | | 366 | 499k | *pi_offset -= i_match; | 367 | 499k | return VLC_EGENERIC; | 368 | 6.21M | } |
vc1.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 3.98M | { | 285 | 3.98M | block_t *p_block, *p_block_backup = NULL; | 286 | 3.98M | ssize_t i_size; | 287 | 3.98M | size_t i_offset, i_offset_backup = 0; | 288 | 3.98M | size_t i_caller_offset_backup = 0; | 289 | 3.98M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 3.98M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 3.98M | for( p_block = p_bytestream->p_block; | 294 | 4.28M | p_block != NULL; p_block = p_block->p_next ) | 295 | 4.27M | { | 296 | 4.27M | i_size -= p_block->i_buffer; | 297 | 4.27M | if( i_size < 0 ) break; | 298 | 4.27M | } | 299 | | | 300 | 3.98M | if( unlikely( i_size >= 0 ) ) | 301 | 10.1k | { | 302 | | /* Not enough data, bail out */ | 303 | 10.1k | return VLC_EGENERIC; | 304 | 10.1k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 3.97M | i_size += p_block->i_buffer; | 310 | 3.97M | *pi_offset -= i_size; | 311 | 3.97M | i_match = 0; | 312 | 5.24M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 5.02M | { | 314 | 7.48M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 6.20M | { | 316 | | /* Use optimized helper when possible */ | 317 | 6.20M | if( p_startcode_helper && !i_match && | 318 | 5.60M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 4.62M | { | 320 | 4.62M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 4.62M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 4.62M | if( p_res ) | 323 | 3.74M | { | 324 | 3.74M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 3.74M | return VLC_SUCCESS; | 326 | 3.74M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 884k | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 884k | } | 330 | | | 331 | 6.20M | bool b_matched = ( p_startcode_matcher ) | 332 | 2.46M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 2.46M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 2.46M | if( b_matched ) | 335 | 686k | { | 336 | 686k | if( i_match == 0 ) | 337 | 394k | { | 338 | 394k | p_block_backup = p_block; | 339 | 394k | i_offset_backup = i_offset; | 340 | 394k | i_caller_offset_backup = *pi_offset; | 341 | 394k | } | 342 | | | 343 | 686k | if( i_match + 1 == i_startcode_length ) | 344 | 1.97k | { | 345 | | /* We have it */ | 346 | 1.97k | *pi_offset += i_offset - i_match; | 347 | 1.97k | return VLC_SUCCESS; | 348 | 1.97k | } | 349 | | | 350 | 684k | i_match++; | 351 | 684k | } | 352 | 1.77M | else if ( i_match != 0 ) | 353 | 307k | { | 354 | | /* False positive */ | 355 | 307k | p_block = p_block_backup; | 356 | 307k | i_offset = i_offset_backup; | 357 | 307k | *pi_offset = i_caller_offset_backup; | 358 | 307k | i_match = 0; | 359 | 307k | } | 360 | | | 361 | 2.46M | } | 362 | 1.27M | i_size = 0; | 363 | 1.27M | *pi_offset += i_offset; | 364 | 1.27M | } | 365 | | | 366 | 224k | *pi_offset -= i_match; | 367 | 224k | return VLC_EGENERIC; | 368 | 3.97M | } |
Unexecuted instantiation: av1.c:block_FindStartcodeFromOffset mjpeg.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 2.37k | { | 285 | 2.37k | block_t *p_block, *p_block_backup = NULL; | 286 | 2.37k | ssize_t i_size; | 287 | 2.37k | size_t i_offset, i_offset_backup = 0; | 288 | 2.37k | size_t i_caller_offset_backup = 0; | 289 | 2.37k | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 2.37k | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 2.37k | for( p_block = p_bytestream->p_block; | 294 | 2.37k | p_block != NULL; p_block = p_block->p_next ) | 295 | 2.37k | { | 296 | 2.37k | i_size -= p_block->i_buffer; | 297 | 2.37k | if( i_size < 0 ) break; | 298 | 2.37k | } | 299 | | | 300 | 2.37k | if( unlikely( i_size >= 0 ) ) | 301 | 5 | { | 302 | | /* Not enough data, bail out */ | 303 | 5 | return VLC_EGENERIC; | 304 | 5 | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 2.36k | i_size += p_block->i_buffer; | 310 | 2.36k | *pi_offset -= i_size; | 311 | 2.36k | i_match = 0; | 312 | 147k | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 145k | { | 314 | 268k | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 123k | { | 316 | | /* Use optimized helper when possible */ | 317 | 123k | if( p_startcode_helper && !i_match && | 318 | 123k | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 41.3k | { | 320 | 41.3k | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 41.3k | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 41.3k | if( p_res ) | 323 | 271 | { | 324 | 271 | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 271 | return VLC_SUCCESS; | 326 | 271 | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 41.1k | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 41.1k | } | 330 | | | 331 | 123k | bool b_matched = ( p_startcode_matcher ) | 332 | 123k | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 123k | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 123k | if( b_matched ) | 335 | 25 | { | 336 | 25 | if( i_match == 0 ) | 337 | 24 | { | 338 | 24 | p_block_backup = p_block; | 339 | 24 | i_offset_backup = i_offset; | 340 | 24 | i_caller_offset_backup = *pi_offset; | 341 | 24 | } | 342 | | | 343 | 25 | if( i_match + 1 == i_startcode_length ) | 344 | 0 | { | 345 | | /* We have it */ | 346 | 0 | *pi_offset += i_offset - i_match; | 347 | 0 | return VLC_SUCCESS; | 348 | 0 | } | 349 | | | 350 | 25 | i_match++; | 351 | 25 | } | 352 | 123k | else if ( i_match != 0 ) | 353 | 14 | { | 354 | | /* False positive */ | 355 | 14 | p_block = p_block_backup; | 356 | 14 | i_offset = i_offset_backup; | 357 | 14 | *pi_offset = i_caller_offset_backup; | 358 | 14 | i_match = 0; | 359 | 14 | } | 360 | | | 361 | 123k | } | 362 | 145k | i_size = 0; | 363 | 145k | *pi_offset += i_offset; | 364 | 145k | } | 365 | | | 366 | 2.09k | *pi_offset -= i_match; | 367 | 2.09k | return VLC_EGENERIC; | 368 | 2.36k | } |
|
369 | | |
370 | | #endif /* VLC_BLOCK_HELPER_H */ |