/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 | 462k | { |
43 | 462k | p_bytestream->p_chain = p_bytestream->p_block = NULL; |
44 | 462k | p_bytestream->pp_last = &p_bytestream->p_chain; |
45 | 462k | p_bytestream->i_block_offset = 0; |
46 | 462k | p_bytestream->i_base_offset = 0; |
47 | 462k | p_bytestream->i_total = 0; |
48 | 462k | } a52.c:block_BytestreamInit Line | Count | Source | 42 | 10.6k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 10.6k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 10.6k | p_bytestream->i_block_offset = 0; | 46 | 10.6k | p_bytestream->i_base_offset = 0; | 47 | 10.6k | p_bytestream->i_total = 0; | 48 | 10.6k | } |
dts.c:block_BytestreamInit Line | Count | Source | 42 | 4.06k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 4.06k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 4.06k | p_bytestream->i_block_offset = 0; | 46 | 4.06k | p_bytestream->i_base_offset = 0; | 47 | 4.06k | p_bytestream->i_total = 0; | 48 | 4.06k | } |
flac.c:block_BytestreamInit Line | Count | Source | 42 | 27.3k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 27.3k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 27.3k | p_bytestream->i_block_offset = 0; | 46 | 27.3k | p_bytestream->i_base_offset = 0; | 47 | 27.3k | p_bytestream->i_total = 0; | 48 | 27.3k | } |
h264.c:block_BytestreamInit Line | Count | Source | 42 | 227k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 227k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 227k | p_bytestream->i_block_offset = 0; | 46 | 227k | p_bytestream->i_base_offset = 0; | 47 | 227k | p_bytestream->i_total = 0; | 48 | 227k | } |
hevc.c:block_BytestreamInit Line | Count | Source | 42 | 28.2k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 28.2k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 28.2k | p_bytestream->i_block_offset = 0; | 46 | 28.2k | p_bytestream->i_base_offset = 0; | 47 | 28.2k | p_bytestream->i_total = 0; | 48 | 28.2k | } |
mlp.c:block_BytestreamInit Line | Count | Source | 42 | 1.52k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 1.52k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 1.52k | p_bytestream->i_block_offset = 0; | 46 | 1.52k | p_bytestream->i_base_offset = 0; | 47 | 1.52k | p_bytestream->i_total = 0; | 48 | 1.52k | } |
mpeg4audio.c:block_BytestreamInit Line | Count | Source | 42 | 34.5k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 34.5k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 34.5k | p_bytestream->i_block_offset = 0; | 46 | 34.5k | p_bytestream->i_base_offset = 0; | 47 | 34.5k | p_bytestream->i_total = 0; | 48 | 34.5k | } |
mpeg4video.c:block_BytestreamInit Line | Count | Source | 42 | 31.5k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 31.5k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 31.5k | p_bytestream->i_block_offset = 0; | 46 | 31.5k | p_bytestream->i_base_offset = 0; | 47 | 31.5k | p_bytestream->i_total = 0; | 48 | 31.5k | } |
mpegaudio.c:block_BytestreamInit Line | Count | Source | 42 | 32.0k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 32.0k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 32.0k | p_bytestream->i_block_offset = 0; | 46 | 32.0k | p_bytestream->i_base_offset = 0; | 47 | 32.0k | p_bytestream->i_total = 0; | 48 | 32.0k | } |
mpegvideo.c:block_BytestreamInit Line | Count | Source | 42 | 63.8k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 63.8k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 63.8k | p_bytestream->i_block_offset = 0; | 46 | 63.8k | p_bytestream->i_base_offset = 0; | 47 | 63.8k | p_bytestream->i_total = 0; | 48 | 63.8k | } |
vc1.c:block_BytestreamInit Line | Count | Source | 42 | 764 | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 764 | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 764 | p_bytestream->i_block_offset = 0; | 46 | 764 | p_bytestream->i_base_offset = 0; | 47 | 764 | p_bytestream->i_total = 0; | 48 | 764 | } |
Unexecuted instantiation: av1.c:block_BytestreamInit mjpeg.c:block_BytestreamInit Line | Count | Source | 42 | 474 | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 474 | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 474 | p_bytestream->i_block_offset = 0; | 46 | 474 | p_bytestream->i_base_offset = 0; | 47 | 474 | p_bytestream->i_total = 0; | 48 | 474 | } |
|
49 | | |
50 | | static inline void block_BytestreamRelease( block_bytestream_t *p_bytestream ) |
51 | 462k | { |
52 | 462k | block_ChainRelease( p_bytestream->p_chain ); |
53 | 462k | } a52.c:block_BytestreamRelease Line | Count | Source | 51 | 10.6k | { | 52 | 10.6k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 10.6k | } |
dts.c:block_BytestreamRelease Line | Count | Source | 51 | 4.06k | { | 52 | 4.06k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 4.06k | } |
flac.c:block_BytestreamRelease Line | Count | Source | 51 | 27.3k | { | 52 | 27.3k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 27.3k | } |
h264.c:block_BytestreamRelease Line | Count | Source | 51 | 227k | { | 52 | 227k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 227k | } |
hevc.c:block_BytestreamRelease Line | Count | Source | 51 | 28.2k | { | 52 | 28.2k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 28.2k | } |
mlp.c:block_BytestreamRelease Line | Count | Source | 51 | 1.52k | { | 52 | 1.52k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 1.52k | } |
mpeg4audio.c:block_BytestreamRelease Line | Count | Source | 51 | 34.5k | { | 52 | 34.5k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 34.5k | } |
mpeg4video.c:block_BytestreamRelease Line | Count | Source | 51 | 31.5k | { | 52 | 31.5k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 31.5k | } |
mpegaudio.c:block_BytestreamRelease Line | Count | Source | 51 | 32.0k | { | 52 | 32.0k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 32.0k | } |
mpegvideo.c:block_BytestreamRelease Line | Count | Source | 51 | 63.8k | { | 52 | 63.8k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 63.8k | } |
vc1.c:block_BytestreamRelease Line | Count | Source | 51 | 764 | { | 52 | 764 | block_ChainRelease( p_bytestream->p_chain ); | 53 | 764 | } |
Unexecuted instantiation: av1.c:block_BytestreamRelease mjpeg.c:block_BytestreamRelease Line | Count | Source | 51 | 474 | { | 52 | 474 | block_ChainRelease( p_bytestream->p_chain ); | 53 | 474 | } |
|
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 | 279k | { |
60 | 279k | block_BytestreamRelease( p_bytestream ); |
61 | 279k | block_BytestreamInit( p_bytestream ); |
62 | 279k | } a52.c:block_BytestreamEmpty Line | Count | Source | 59 | 5.18k | { | 60 | 5.18k | block_BytestreamRelease( p_bytestream ); | 61 | 5.18k | block_BytestreamInit( p_bytestream ); | 62 | 5.18k | } |
dts.c:block_BytestreamEmpty Line | Count | Source | 59 | 261 | { | 60 | 261 | block_BytestreamRelease( p_bytestream ); | 61 | 261 | block_BytestreamInit( p_bytestream ); | 62 | 261 | } |
flac.c:block_BytestreamEmpty Line | Count | Source | 59 | 23.3k | { | 60 | 23.3k | block_BytestreamRelease( p_bytestream ); | 61 | 23.3k | block_BytestreamInit( p_bytestream ); | 62 | 23.3k | } |
h264.c:block_BytestreamEmpty Line | Count | Source | 59 | 181k | { | 60 | 181k | block_BytestreamRelease( p_bytestream ); | 61 | 181k | block_BytestreamInit( p_bytestream ); | 62 | 181k | } |
hevc.c:block_BytestreamEmpty Line | Count | Source | 59 | 5.82k | { | 60 | 5.82k | block_BytestreamRelease( p_bytestream ); | 61 | 5.82k | block_BytestreamInit( p_bytestream ); | 62 | 5.82k | } |
mlp.c:block_BytestreamEmpty Line | Count | Source | 59 | 5 | { | 60 | 5 | block_BytestreamRelease( p_bytestream ); | 61 | 5 | block_BytestreamInit( p_bytestream ); | 62 | 5 | } |
mpeg4audio.c:block_BytestreamEmpty Line | Count | Source | 59 | 1.18k | { | 60 | 1.18k | block_BytestreamRelease( p_bytestream ); | 61 | 1.18k | block_BytestreamInit( p_bytestream ); | 62 | 1.18k | } |
mpeg4video.c:block_BytestreamEmpty Line | Count | Source | 59 | 25.7k | { | 60 | 25.7k | block_BytestreamRelease( p_bytestream ); | 61 | 25.7k | block_BytestreamInit( p_bytestream ); | 62 | 25.7k | } |
mpegaudio.c:block_BytestreamEmpty Line | Count | Source | 59 | 6.45k | { | 60 | 6.45k | block_BytestreamRelease( p_bytestream ); | 61 | 6.45k | block_BytestreamInit( p_bytestream ); | 62 | 6.45k | } |
mpegvideo.c:block_BytestreamEmpty Line | Count | Source | 59 | 30.3k | { | 60 | 30.3k | block_BytestreamRelease( p_bytestream ); | 61 | 30.3k | block_BytestreamInit( p_bytestream ); | 62 | 30.3k | } |
vc1.c:block_BytestreamEmpty Line | Count | Source | 59 | 34 | { | 60 | 34 | block_BytestreamRelease( p_bytestream ); | 61 | 34 | block_BytestreamInit( p_bytestream ); | 62 | 34 | } |
Unexecuted instantiation: av1.c:block_BytestreamEmpty mjpeg.c:block_BytestreamEmpty Line | Count | Source | 59 | 94 | { | 60 | 94 | block_BytestreamRelease( p_bytestream ); | 61 | 94 | block_BytestreamInit( p_bytestream ); | 62 | 94 | } |
|
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 | 80.6M | { |
69 | 80.6M | block_t *block = p_bytestream->p_chain; |
70 | | |
71 | 91.6M | while( block != p_bytestream->p_block ) |
72 | 11.0M | { |
73 | 11.0M | block_t *p_next = block->p_next; |
74 | | |
75 | 11.0M | p_bytestream->i_total -= block->i_buffer; |
76 | 11.0M | p_bytestream->i_base_offset -= block->i_buffer; |
77 | 11.0M | block_Release( block ); |
78 | 11.0M | block = p_next; |
79 | 11.0M | } |
80 | | |
81 | 83.8M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) |
82 | 3.21M | { |
83 | 3.21M | block_t *p_next = block->p_next; |
84 | | |
85 | 3.21M | p_bytestream->i_total -= block->i_buffer; |
86 | 3.21M | block_Release( block ); |
87 | 3.21M | block = p_next; |
88 | 3.21M | p_bytestream->i_block_offset = 0; |
89 | 3.21M | } |
90 | | |
91 | 80.6M | p_bytestream->p_chain = p_bytestream->p_block = block; |
92 | 80.6M | if( p_bytestream->p_chain == NULL ) |
93 | 239k | p_bytestream->pp_last = &p_bytestream->p_chain; |
94 | 80.6M | } a52.c:block_BytestreamFlush Line | Count | Source | 68 | 3.09M | { | 69 | 3.09M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 5.73M | while( block != p_bytestream->p_block ) | 72 | 2.64M | { | 73 | 2.64M | block_t *p_next = block->p_next; | 74 | | | 75 | 2.64M | p_bytestream->i_total -= block->i_buffer; | 76 | 2.64M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 2.64M | block_Release( block ); | 78 | 2.64M | block = p_next; | 79 | 2.64M | } | 80 | | | 81 | 4.99M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 1.90M | { | 83 | 1.90M | block_t *p_next = block->p_next; | 84 | | | 85 | 1.90M | p_bytestream->i_total -= block->i_buffer; | 86 | 1.90M | block_Release( block ); | 87 | 1.90M | block = p_next; | 88 | 1.90M | p_bytestream->i_block_offset = 0; | 89 | 1.90M | } | 90 | | | 91 | 3.09M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 3.09M | if( p_bytestream->p_chain == NULL ) | 93 | 30.1k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 3.09M | } |
dts.c:block_BytestreamFlush Line | Count | Source | 68 | 822k | { | 69 | 822k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 2.66M | while( block != p_bytestream->p_block ) | 72 | 1.84M | { | 73 | 1.84M | block_t *p_next = block->p_next; | 74 | | | 75 | 1.84M | p_bytestream->i_total -= block->i_buffer; | 76 | 1.84M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.84M | block_Release( block ); | 78 | 1.84M | block = p_next; | 79 | 1.84M | } | 80 | | | 81 | 1.14M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 318k | { | 83 | 318k | block_t *p_next = block->p_next; | 84 | | | 85 | 318k | p_bytestream->i_total -= block->i_buffer; | 86 | 318k | block_Release( block ); | 87 | 318k | block = p_next; | 88 | 318k | p_bytestream->i_block_offset = 0; | 89 | 318k | } | 90 | | | 91 | 822k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 822k | if( p_bytestream->p_chain == NULL ) | 93 | 1.68k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 822k | } |
flac.c:block_BytestreamFlush Line | Count | Source | 68 | 2.96M | { | 69 | 2.96M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 3.10M | while( block != p_bytestream->p_block ) | 72 | 133k | { | 73 | 133k | block_t *p_next = block->p_next; | 74 | | | 75 | 133k | p_bytestream->i_total -= block->i_buffer; | 76 | 133k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 133k | block_Release( block ); | 78 | 133k | block = p_next; | 79 | 133k | } | 80 | | | 81 | 3.08M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 114k | { | 83 | 114k | block_t *p_next = block->p_next; | 84 | | | 85 | 114k | p_bytestream->i_total -= block->i_buffer; | 86 | 114k | block_Release( block ); | 87 | 114k | block = p_next; | 88 | 114k | p_bytestream->i_block_offset = 0; | 89 | 114k | } | 90 | | | 91 | 2.96M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 2.96M | if( p_bytestream->p_chain == NULL ) | 93 | 46.6k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 2.96M | } |
h264.c:block_BytestreamFlush Line | Count | Source | 68 | 4.37M | { | 69 | 4.37M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 4.64M | while( block != p_bytestream->p_block ) | 72 | 264k | { | 73 | 264k | block_t *p_next = block->p_next; | 74 | | | 75 | 264k | p_bytestream->i_total -= block->i_buffer; | 76 | 264k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 264k | block_Release( block ); | 78 | 264k | block = p_next; | 79 | 264k | } | 80 | | | 81 | 4.46M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 85.5k | { | 83 | 85.5k | block_t *p_next = block->p_next; | 84 | | | 85 | 85.5k | p_bytestream->i_total -= block->i_buffer; | 86 | 85.5k | block_Release( block ); | 87 | 85.5k | block = p_next; | 88 | 85.5k | p_bytestream->i_block_offset = 0; | 89 | 85.5k | } | 90 | | | 91 | 4.37M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 4.37M | if( p_bytestream->p_chain == NULL ) | 93 | 49.7k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 4.37M | } |
hevc.c:block_BytestreamFlush Line | Count | Source | 68 | 64.8M | { | 69 | 64.8M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 66.4M | while( block != p_bytestream->p_block ) | 72 | 1.52M | { | 73 | 1.52M | block_t *p_next = block->p_next; | 74 | | | 75 | 1.52M | p_bytestream->i_total -= block->i_buffer; | 76 | 1.52M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.52M | block_Release( block ); | 78 | 1.52M | block = p_next; | 79 | 1.52M | } | 80 | | | 81 | 64.9M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 22.3k | { | 83 | 22.3k | block_t *p_next = block->p_next; | 84 | | | 85 | 22.3k | p_bytestream->i_total -= block->i_buffer; | 86 | 22.3k | block_Release( block ); | 87 | 22.3k | block = p_next; | 88 | 22.3k | p_bytestream->i_block_offset = 0; | 89 | 22.3k | } | 90 | | | 91 | 64.8M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 64.8M | if( p_bytestream->p_chain == NULL ) | 93 | 18.6k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 64.8M | } |
mlp.c:block_BytestreamFlush Line | Count | Source | 68 | 687k | { | 69 | 687k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 1.72M | while( block != p_bytestream->p_block ) | 72 | 1.04M | { | 73 | 1.04M | block_t *p_next = block->p_next; | 74 | | | 75 | 1.04M | p_bytestream->i_total -= block->i_buffer; | 76 | 1.04M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.04M | block_Release( block ); | 78 | 1.04M | block = p_next; | 79 | 1.04M | } | 80 | | | 81 | 1.07M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 391k | { | 83 | 391k | block_t *p_next = block->p_next; | 84 | | | 85 | 391k | p_bytestream->i_total -= block->i_buffer; | 86 | 391k | block_Release( block ); | 87 | 391k | block = p_next; | 88 | 391k | p_bytestream->i_block_offset = 0; | 89 | 391k | } | 90 | | | 91 | 687k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 687k | if( p_bytestream->p_chain == NULL ) | 93 | 107 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 687k | } |
mpeg4audio.c:block_BytestreamFlush Line | Count | Source | 68 | 9.83k | { | 69 | 9.83k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 26.3k | while( block != p_bytestream->p_block ) | 72 | 16.5k | { | 73 | 16.5k | block_t *p_next = block->p_next; | 74 | | | 75 | 16.5k | p_bytestream->i_total -= block->i_buffer; | 76 | 16.5k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 16.5k | block_Release( block ); | 78 | 16.5k | block = p_next; | 79 | 16.5k | } | 80 | | | 81 | 10.1k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 333 | { | 83 | 333 | block_t *p_next = block->p_next; | 84 | | | 85 | 333 | p_bytestream->i_total -= block->i_buffer; | 86 | 333 | block_Release( block ); | 87 | 333 | block = p_next; | 88 | 333 | p_bytestream->i_block_offset = 0; | 89 | 333 | } | 90 | | | 91 | 9.83k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 9.83k | if( p_bytestream->p_chain == NULL ) | 93 | 2.40k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 9.83k | } |
mpeg4video.c:block_BytestreamFlush Line | Count | Source | 68 | 453k | { | 69 | 453k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 517k | while( block != p_bytestream->p_block ) | 72 | 63.7k | { | 73 | 63.7k | block_t *p_next = block->p_next; | 74 | | | 75 | 63.7k | p_bytestream->i_total -= block->i_buffer; | 76 | 63.7k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 63.7k | block_Release( block ); | 78 | 63.7k | block = p_next; | 79 | 63.7k | } | 80 | | | 81 | 466k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 12.8k | { | 83 | 12.8k | block_t *p_next = block->p_next; | 84 | | | 85 | 12.8k | p_bytestream->i_total -= block->i_buffer; | 86 | 12.8k | block_Release( block ); | 87 | 12.8k | block = p_next; | 88 | 12.8k | p_bytestream->i_block_offset = 0; | 89 | 12.8k | } | 90 | | | 91 | 453k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 453k | if( p_bytestream->p_chain == NULL ) | 93 | 10.5k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 453k | } |
mpegaudio.c:block_BytestreamFlush Line | Count | Source | 68 | 1.00M | { | 69 | 1.00M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 4.22M | while( block != p_bytestream->p_block ) | 72 | 3.22M | { | 73 | 3.22M | block_t *p_next = block->p_next; | 74 | | | 75 | 3.22M | p_bytestream->i_total -= block->i_buffer; | 76 | 3.22M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 3.22M | block_Release( block ); | 78 | 3.22M | block = p_next; | 79 | 3.22M | } | 80 | | | 81 | 1.29M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 297k | { | 83 | 297k | block_t *p_next = block->p_next; | 84 | | | 85 | 297k | p_bytestream->i_total -= block->i_buffer; | 86 | 297k | block_Release( block ); | 87 | 297k | block = p_next; | 88 | 297k | p_bytestream->i_block_offset = 0; | 89 | 297k | } | 90 | | | 91 | 1.00M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 1.00M | if( p_bytestream->p_chain == NULL ) | 93 | 27.3k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 1.00M | } |
mpegvideo.c:block_BytestreamFlush Line | Count | Source | 68 | 2.16M | { | 69 | 2.16M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 2.44M | while( block != p_bytestream->p_block ) | 72 | 289k | { | 73 | 289k | block_t *p_next = block->p_next; | 74 | | | 75 | 289k | p_bytestream->i_total -= block->i_buffer; | 76 | 289k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 289k | block_Release( block ); | 78 | 289k | block = p_next; | 79 | 289k | } | 80 | | | 81 | 2.20M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 45.1k | { | 83 | 45.1k | block_t *p_next = block->p_next; | 84 | | | 85 | 45.1k | p_bytestream->i_total -= block->i_buffer; | 86 | 45.1k | block_Release( block ); | 87 | 45.1k | block = p_next; | 88 | 45.1k | p_bytestream->i_block_offset = 0; | 89 | 45.1k | } | 90 | | | 91 | 2.16M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 2.16M | if( p_bytestream->p_chain == NULL ) | 93 | 28.5k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 2.16M | } |
vc1.c:block_BytestreamFlush Line | Count | Source | 68 | 114k | { | 69 | 114k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 114k | while( block != p_bytestream->p_block ) | 72 | 43 | { | 73 | 43 | block_t *p_next = block->p_next; | 74 | | | 75 | 43 | p_bytestream->i_total -= block->i_buffer; | 76 | 43 | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 43 | block_Release( block ); | 78 | 43 | block = p_next; | 79 | 43 | } | 80 | | | 81 | 115k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 1.02k | { | 83 | 1.02k | block_t *p_next = block->p_next; | 84 | | | 85 | 1.02k | p_bytestream->i_total -= block->i_buffer; | 86 | 1.02k | block_Release( block ); | 87 | 1.02k | block = p_next; | 88 | 1.02k | p_bytestream->i_block_offset = 0; | 89 | 1.02k | } | 90 | | | 91 | 114k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 114k | if( p_bytestream->p_chain == NULL ) | 93 | 2 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 114k | } |
Unexecuted instantiation: av1.c:block_BytestreamFlush mjpeg.c:block_BytestreamFlush Line | Count | Source | 68 | 31.1k | { | 69 | 31.1k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 54.4k | while( block != p_bytestream->p_block ) | 72 | 23.2k | { | 73 | 23.2k | block_t *p_next = block->p_next; | 74 | | | 75 | 23.2k | p_bytestream->i_total -= block->i_buffer; | 76 | 23.2k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 23.2k | block_Release( block ); | 78 | 23.2k | block = p_next; | 79 | 23.2k | } | 80 | | | 81 | 55.8k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 24.6k | { | 83 | 24.6k | block_t *p_next = block->p_next; | 84 | | | 85 | 24.6k | p_bytestream->i_total -= block->i_buffer; | 86 | 24.6k | block_Release( block ); | 87 | 24.6k | block = p_next; | 88 | 24.6k | p_bytestream->i_block_offset = 0; | 89 | 24.6k | } | 90 | | | 91 | 31.1k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 31.1k | if( p_bytestream->p_chain == NULL ) | 93 | 23.7k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 31.1k | } |
|
95 | | |
96 | | static inline void block_BytestreamPush( block_bytestream_t *p_bytestream, |
97 | | block_t *p_block ) |
98 | 22.0M | { |
99 | 22.0M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); |
100 | 22.0M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; |
101 | 44.1M | for( ; p_block; p_block = p_block->p_next ) |
102 | 22.0M | p_bytestream->i_total += p_block->i_buffer; |
103 | 22.0M | } a52.c:block_BytestreamPush Line | Count | Source | 98 | 5.95M | { | 99 | 5.95M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 5.95M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 11.9M | for( ; p_block; p_block = p_block->p_next ) | 102 | 5.95M | p_bytestream->i_total += p_block->i_buffer; | 103 | 5.95M | } |
dts.c:block_BytestreamPush Line | Count | Source | 98 | 3.13M | { | 99 | 3.13M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 3.13M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 6.26M | for( ; p_block; p_block = p_block->p_next ) | 102 | 3.13M | p_bytestream->i_total += p_block->i_buffer; | 103 | 3.13M | } |
flac.c:block_BytestreamPush Line | Count | Source | 98 | 435k | { | 99 | 435k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 435k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 870k | for( ; p_block; p_block = p_block->p_next ) | 102 | 435k | p_bytestream->i_total += p_block->i_buffer; | 103 | 435k | } |
h264.c:block_BytestreamPush Line | Count | Source | 98 | 1.09M | { | 99 | 1.09M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 1.09M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 2.18M | for( ; p_block; p_block = p_block->p_next ) | 102 | 1.09M | p_bytestream->i_total += p_block->i_buffer; | 103 | 1.09M | } |
hevc.c:block_BytestreamPush Line | Count | Source | 98 | 4.26M | { | 99 | 4.26M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 4.26M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 8.52M | for( ; p_block; p_block = p_block->p_next ) | 102 | 4.26M | p_bytestream->i_total += p_block->i_buffer; | 103 | 4.26M | } |
mlp.c:block_BytestreamPush Line | Count | Source | 98 | 1.91M | { | 99 | 1.91M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 1.91M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 3.83M | for( ; p_block; p_block = p_block->p_next ) | 102 | 1.91M | p_bytestream->i_total += p_block->i_buffer; | 103 | 1.91M | } |
mpeg4audio.c:block_BytestreamPush Line | Count | Source | 98 | 20.7k | { | 99 | 20.7k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 20.7k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 41.4k | for( ; p_block; p_block = p_block->p_next ) | 102 | 20.7k | p_bytestream->i_total += p_block->i_buffer; | 103 | 20.7k | } |
mpeg4video.c:block_BytestreamPush Line | Count | Source | 98 | 113k | { | 99 | 113k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 113k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 227k | for( ; p_block; p_block = p_block->p_next ) | 102 | 113k | p_bytestream->i_total += p_block->i_buffer; | 103 | 113k | } |
mpegaudio.c:block_BytestreamPush Line | Count | Source | 98 | 4.40M | { | 99 | 4.40M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 4.40M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 8.81M | for( ; p_block; p_block = p_block->p_next ) | 102 | 4.40M | p_bytestream->i_total += p_block->i_buffer; | 103 | 4.40M | } |
mpegvideo.c:block_BytestreamPush Line | Count | Source | 98 | 687k | { | 99 | 687k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 687k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 1.37M | for( ; p_block; p_block = p_block->p_next ) | 102 | 687k | p_bytestream->i_total += p_block->i_buffer; | 103 | 687k | } |
vc1.c:block_BytestreamPush Line | Count | Source | 98 | 2.04k | { | 99 | 2.04k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 2.04k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 4.08k | for( ; p_block; p_block = p_block->p_next ) | 102 | 2.04k | p_bytestream->i_total += p_block->i_buffer; | 103 | 2.04k | } |
Unexecuted instantiation: av1.c:block_BytestreamPush mjpeg.c:block_BytestreamPush Line | Count | Source | 98 | 52.6k | { | 99 | 52.6k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 52.6k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 105k | for( ; p_block; p_block = p_block->p_next ) | 102 | 52.6k | p_bytestream->i_total += p_block->i_buffer; | 103 | 52.6k | } |
|
104 | | |
105 | | static inline size_t block_BytestreamRemaining( const block_bytestream_t *p_bytestream ) |
106 | 735M | { |
107 | 735M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? |
108 | 735M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; |
109 | 735M | } a52.c:block_BytestreamRemaining Line | Count | Source | 106 | 75.1M | { | 107 | 75.1M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 75.1M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 75.1M | } |
dts.c:block_BytestreamRemaining Line | Count | Source | 106 | 237M | { | 107 | 237M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 237M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 237M | } |
flac.c:block_BytestreamRemaining Line | Count | Source | 106 | 83.4M | { | 107 | 83.4M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 83.4M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 83.4M | } |
h264.c:block_BytestreamRemaining Line | Count | Source | 106 | 3.96M | { | 107 | 3.96M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 3.96M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 3.96M | } |
hevc.c:block_BytestreamRemaining Line | Count | Source | 106 | 62.2M | { | 107 | 62.2M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 62.2M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 62.2M | } |
mlp.c:block_BytestreamRemaining Line | Count | Source | 106 | 43.3M | { | 107 | 43.3M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 43.3M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 43.3M | } |
mpeg4audio.c:block_BytestreamRemaining Line | Count | Source | 106 | 6.15M | { | 107 | 6.15M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 6.15M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 6.15M | } |
mpeg4video.c:block_BytestreamRemaining Line | Count | Source | 106 | 474k | { | 107 | 474k | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 474k | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 474k | } |
mpegaudio.c:block_BytestreamRemaining Line | Count | Source | 106 | 220M | { | 107 | 220M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 220M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 220M | } |
mpegvideo.c:block_BytestreamRemaining Line | Count | Source | 106 | 2.05M | { | 107 | 2.05M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 2.05M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 2.05M | } |
vc1.c:block_BytestreamRemaining Line | Count | Source | 106 | 114k | { | 107 | 114k | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 114k | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 114k | } |
Unexecuted instantiation: av1.c:block_BytestreamRemaining mjpeg.c:block_BytestreamRemaining Line | Count | Source | 106 | 30.6k | { | 107 | 30.6k | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 30.6k | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 30.6k | } |
|
110 | | |
111 | | VLC_USED |
112 | | static inline block_t *block_BytestreamPop( block_bytestream_t *p_bytestream ) |
113 | 6.21M | { |
114 | 6.21M | block_t *p_block; |
115 | | |
116 | 6.21M | block_BytestreamFlush( p_bytestream ); |
117 | | |
118 | 6.21M | p_block = p_bytestream->p_block; |
119 | 6.21M | if( unlikely( p_block == NULL ) ) |
120 | 12.1k | { |
121 | 12.1k | return NULL; |
122 | 12.1k | } |
123 | 6.20M | else if( !p_block->p_next ) |
124 | 4.80M | { |
125 | 4.80M | p_block->p_buffer += p_bytestream->i_block_offset; |
126 | 4.80M | p_block->i_buffer -= p_bytestream->i_block_offset; |
127 | 4.80M | p_bytestream->i_block_offset = 0; |
128 | 4.80M | p_bytestream->i_total = 0; |
129 | 4.80M | p_bytestream->p_chain = p_bytestream->p_block = NULL; |
130 | 4.80M | p_bytestream->pp_last = &p_bytestream->p_chain; |
131 | 4.80M | return p_block; |
132 | 4.80M | } |
133 | | |
134 | 41.5M | while( p_block->p_next && p_block->p_next->p_next ) |
135 | 40.1M | p_block = p_block->p_next; |
136 | | |
137 | 1.39M | block_t *p_block_old = p_block; |
138 | 1.39M | p_block = p_block->p_next; |
139 | 1.39M | p_block_old->p_next = NULL; |
140 | 1.39M | p_bytestream->pp_last = &p_block_old->p_next; |
141 | 1.39M | if( p_block ) |
142 | 1.39M | p_bytestream->i_total -= p_block->i_buffer; |
143 | | |
144 | 1.39M | return p_block; |
145 | 6.21M | } a52.c:block_BytestreamPop Line | Count | Source | 113 | 1.35M | { | 114 | 1.35M | block_t *p_block; | 115 | | | 116 | 1.35M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 1.35M | p_block = p_bytestream->p_block; | 119 | 1.35M | if( unlikely( p_block == NULL ) ) | 120 | 11.2k | { | 121 | 11.2k | return NULL; | 122 | 11.2k | } | 123 | 1.34M | else if( !p_block->p_next ) | 124 | 432k | { | 125 | 432k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 432k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 432k | p_bytestream->i_block_offset = 0; | 128 | 432k | p_bytestream->i_total = 0; | 129 | 432k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 432k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 432k | return p_block; | 132 | 432k | } | 133 | | | 134 | 35.2M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 34.3M | p_block = p_block->p_next; | 136 | | | 137 | 914k | block_t *p_block_old = p_block; | 138 | 914k | p_block = p_block->p_next; | 139 | 914k | p_block_old->p_next = NULL; | 140 | 914k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 914k | if( p_block ) | 142 | 914k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 914k | return p_block; | 145 | 1.35M | } |
dts.c:block_BytestreamPop Line | Count | Source | 113 | 169k | { | 114 | 169k | block_t *p_block; | 115 | | | 116 | 169k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 169k | p_block = p_bytestream->p_block; | 119 | 169k | if( unlikely( p_block == NULL ) ) | 120 | 254 | { | 121 | 254 | return NULL; | 122 | 254 | } | 123 | 168k | else if( !p_block->p_next ) | 124 | 140k | { | 125 | 140k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 140k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 140k | p_bytestream->i_block_offset = 0; | 128 | 140k | p_bytestream->i_total = 0; | 129 | 140k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 140k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 140k | return p_block; | 132 | 140k | } | 133 | | | 134 | 94.6k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 66.6k | p_block = p_block->p_next; | 136 | | | 137 | 28.0k | block_t *p_block_old = p_block; | 138 | 28.0k | p_block = p_block->p_next; | 139 | 28.0k | p_block_old->p_next = NULL; | 140 | 28.0k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 28.0k | if( p_block ) | 142 | 28.0k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 28.0k | return p_block; | 145 | 169k | } |
flac.c:block_BytestreamPop Line | Count | Source | 113 | 121k | { | 114 | 121k | block_t *p_block; | 115 | | | 116 | 121k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 121k | p_block = p_bytestream->p_block; | 119 | 121k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 121k | else if( !p_block->p_next ) | 124 | 113k | { | 125 | 113k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 113k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 113k | p_bytestream->i_block_offset = 0; | 128 | 113k | p_bytestream->i_total = 0; | 129 | 113k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 113k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 113k | return p_block; | 132 | 113k | } | 133 | | | 134 | 466k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 458k | p_block = p_block->p_next; | 136 | | | 137 | 8.09k | block_t *p_block_old = p_block; | 138 | 8.09k | p_block = p_block->p_next; | 139 | 8.09k | p_block_old->p_next = NULL; | 140 | 8.09k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 8.09k | if( p_block ) | 142 | 8.09k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 8.09k | return p_block; | 145 | 121k | } |
h264.c:block_BytestreamPop Line | Count | Source | 113 | 561k | { | 114 | 561k | block_t *p_block; | 115 | | | 116 | 561k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 561k | p_block = p_bytestream->p_block; | 119 | 561k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 561k | else if( !p_block->p_next ) | 124 | 560k | { | 125 | 560k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 560k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 560k | p_bytestream->i_block_offset = 0; | 128 | 560k | p_bytestream->i_total = 0; | 129 | 560k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 560k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 560k | return p_block; | 132 | 560k | } | 133 | | | 134 | 188 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 10 | p_block = p_block->p_next; | 136 | | | 137 | 178 | block_t *p_block_old = p_block; | 138 | 178 | p_block = p_block->p_next; | 139 | 178 | p_block_old->p_next = NULL; | 140 | 178 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 178 | if( p_block ) | 142 | 178 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 178 | return p_block; | 145 | 561k | } |
hevc.c:block_BytestreamPop Line | Count | Source | 113 | 2.66M | { | 114 | 2.66M | block_t *p_block; | 115 | | | 116 | 2.66M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 2.66M | p_block = p_bytestream->p_block; | 119 | 2.66M | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 2.66M | else if( !p_block->p_next ) | 124 | 2.66M | { | 125 | 2.66M | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 2.66M | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 2.66M | p_bytestream->i_block_offset = 0; | 128 | 2.66M | p_bytestream->i_total = 0; | 129 | 2.66M | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 2.66M | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 2.66M | return p_block; | 132 | 2.66M | } | 133 | | | 134 | 1.38k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 0 | p_block = p_block->p_next; | 136 | | | 137 | 1.38k | block_t *p_block_old = p_block; | 138 | 1.38k | p_block = p_block->p_next; | 139 | 1.38k | p_block_old->p_next = NULL; | 140 | 1.38k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 1.38k | if( p_block ) | 142 | 1.38k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 1.38k | return p_block; | 145 | 2.66M | } |
mlp.c:block_BytestreamPop Line | Count | Source | 113 | 418k | { | 114 | 418k | block_t *p_block; | 115 | | | 116 | 418k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 418k | p_block = p_bytestream->p_block; | 119 | 418k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 418k | else if( !p_block->p_next ) | 124 | 171k | { | 125 | 171k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 171k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 171k | p_bytestream->i_block_offset = 0; | 128 | 171k | p_bytestream->i_total = 0; | 129 | 171k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 171k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 171k | return p_block; | 132 | 171k | } | 133 | | | 134 | 2.85M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 2.60M | p_block = p_block->p_next; | 136 | | | 137 | 246k | block_t *p_block_old = p_block; | 138 | 246k | p_block = p_block->p_next; | 139 | 246k | p_block_old->p_next = NULL; | 140 | 246k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 246k | if( p_block ) | 142 | 246k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 246k | return p_block; | 145 | 418k | } |
mpeg4audio.c:block_BytestreamPop Line | Count | Source | 113 | 19 | { | 114 | 19 | block_t *p_block; | 115 | | | 116 | 19 | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 19 | p_block = p_bytestream->p_block; | 119 | 19 | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 19 | else if( !p_block->p_next ) | 124 | 14 | { | 125 | 14 | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 14 | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 14 | p_bytestream->i_block_offset = 0; | 128 | 14 | p_bytestream->i_total = 0; | 129 | 14 | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 14 | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 14 | return p_block; | 132 | 14 | } | 133 | | | 134 | 14 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 9 | p_block = p_block->p_next; | 136 | | | 137 | 5 | block_t *p_block_old = p_block; | 138 | 5 | p_block = p_block->p_next; | 139 | 5 | p_block_old->p_next = NULL; | 140 | 5 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 5 | if( p_block ) | 142 | 5 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 5 | return p_block; | 145 | 19 | } |
mpeg4video.c:block_BytestreamPop Line | Count | Source | 113 | 4.28k | { | 114 | 4.28k | block_t *p_block; | 115 | | | 116 | 4.28k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 4.28k | p_block = p_bytestream->p_block; | 119 | 4.28k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 4.28k | else if( !p_block->p_next ) | 124 | 4.23k | { | 125 | 4.23k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 4.23k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 4.23k | p_bytestream->i_block_offset = 0; | 128 | 4.23k | p_bytestream->i_total = 0; | 129 | 4.23k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 4.23k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 4.23k | return p_block; | 132 | 4.23k | } | 133 | | | 134 | 88 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 42 | p_block = p_block->p_next; | 136 | | | 137 | 46 | block_t *p_block_old = p_block; | 138 | 46 | p_block = p_block->p_next; | 139 | 46 | p_block_old->p_next = NULL; | 140 | 46 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 46 | if( p_block ) | 142 | 46 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 46 | return p_block; | 145 | 4.28k | } |
mpegaudio.c:block_BytestreamPop Line | Count | Source | 113 | 776k | { | 114 | 776k | block_t *p_block; | 115 | | | 116 | 776k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 776k | p_block = p_bytestream->p_block; | 119 | 776k | if( unlikely( p_block == NULL ) ) | 120 | 636 | { | 121 | 636 | return NULL; | 122 | 636 | } | 123 | 776k | else if( !p_block->p_next ) | 124 | 580k | { | 125 | 580k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 580k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 580k | p_bytestream->i_block_offset = 0; | 128 | 580k | p_bytestream->i_total = 0; | 129 | 580k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 580k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 580k | return p_block; | 132 | 580k | } | 133 | | | 134 | 2.89M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 2.69M | p_block = p_block->p_next; | 136 | | | 137 | 195k | block_t *p_block_old = p_block; | 138 | 195k | p_block = p_block->p_next; | 139 | 195k | p_block_old->p_next = NULL; | 140 | 195k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 195k | if( p_block ) | 142 | 195k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 195k | return p_block; | 145 | 776k | } |
mpegvideo.c:block_BytestreamPop Line | Count | Source | 113 | 137k | { | 114 | 137k | block_t *p_block; | 115 | | | 116 | 137k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 137k | p_block = p_bytestream->p_block; | 119 | 137k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 137k | else if( !p_block->p_next ) | 124 | 136k | { | 125 | 136k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 136k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 136k | p_bytestream->i_block_offset = 0; | 128 | 136k | p_bytestream->i_total = 0; | 129 | 136k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 136k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 136k | return p_block; | 132 | 136k | } | 133 | | | 134 | 1.31k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 611 | p_block = p_block->p_next; | 136 | | | 137 | 699 | block_t *p_block_old = p_block; | 138 | 699 | p_block = p_block->p_next; | 139 | 699 | p_block_old->p_next = NULL; | 140 | 699 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 699 | if( p_block ) | 142 | 699 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 699 | return p_block; | 145 | 137k | } |
vc1.c:block_BytestreamPop Line | Count | Source | 113 | 335 | { | 114 | 335 | block_t *p_block; | 115 | | | 116 | 335 | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 335 | p_block = p_bytestream->p_block; | 119 | 335 | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 335 | else if( !p_block->p_next ) | 124 | 335 | { | 125 | 335 | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 335 | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 335 | p_bytestream->i_block_offset = 0; | 128 | 335 | p_bytestream->i_total = 0; | 129 | 335 | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 335 | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 335 | return p_block; | 132 | 335 | } | 133 | | | 134 | 0 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 0 | p_block = p_block->p_next; | 136 | |
| 137 | 0 | block_t *p_block_old = p_block; | 138 | 0 | p_block = p_block->p_next; | 139 | 0 | p_block_old->p_next = NULL; | 140 | 0 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 0 | if( p_block ) | 142 | 0 | p_bytestream->i_total -= p_block->i_buffer; | 143 | |
| 144 | 0 | return p_block; | 145 | 335 | } |
Unexecuted instantiation: av1.c:block_BytestreamPop mjpeg.c:block_BytestreamPop Line | Count | Source | 113 | 788 | { | 114 | 788 | block_t *p_block; | 115 | | | 116 | 788 | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 788 | p_block = p_bytestream->p_block; | 119 | 788 | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 788 | else if( !p_block->p_next ) | 124 | 788 | { | 125 | 788 | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 788 | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 788 | p_bytestream->i_block_offset = 0; | 128 | 788 | p_bytestream->i_total = 0; | 129 | 788 | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 788 | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 788 | return p_block; | 132 | 788 | } | 133 | | | 134 | 0 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 0 | p_block = p_block->p_next; | 136 | |
| 137 | 0 | block_t *p_block_old = p_block; | 138 | 0 | p_block = p_block->p_next; | 139 | 0 | p_block_old->p_next = NULL; | 140 | 0 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 0 | if( p_block ) | 142 | 0 | p_bytestream->i_total -= p_block->i_buffer; | 143 | |
| 144 | 0 | return p_block; | 145 | 788 | } |
|
146 | | |
147 | | static inline int block_WaitBytes( block_bytestream_t *p_bytestream, |
148 | | size_t i_data ) |
149 | 2.95M | { |
150 | 2.95M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) |
151 | 2.79M | return VLC_SUCCESS; |
152 | 157k | return VLC_EGENERIC; |
153 | 2.95M | } Line | Count | Source | 149 | 1.53M | { | 150 | 1.53M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 1.38M | return VLC_SUCCESS; | 152 | 153k | return VLC_EGENERIC; | 153 | 1.53M | } |
Line | Count | Source | 149 | 177k | { | 150 | 177k | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 174k | return VLC_SUCCESS; | 152 | 3.48k | return VLC_EGENERIC; | 153 | 177k | } |
Unexecuted instantiation: flac.c:block_WaitBytes Unexecuted instantiation: h264.c:block_WaitBytes Unexecuted instantiation: hevc.c:block_WaitBytes Line | Count | Source | 149 | 466k | { | 150 | 466k | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 466k | return VLC_SUCCESS; | 152 | 462 | return VLC_EGENERIC; | 153 | 466k | } |
Unexecuted instantiation: mpeg4audio.c:block_WaitBytes Unexecuted instantiation: mpeg4video.c:block_WaitBytes mpegaudio.c:block_WaitBytes Line | Count | Source | 149 | 770k | { | 150 | 770k | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 770k | return VLC_SUCCESS; | 152 | 0 | return VLC_EGENERIC; | 153 | 770k | } |
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 | 234M | { |
158 | 234M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) |
159 | 2.98M | return VLC_EGENERIC; |
160 | | |
161 | | /* Copy the data */ |
162 | 231M | size_t i_offset = p_bytestream->i_block_offset; |
163 | 231M | size_t i_size = i_data; |
164 | 231M | for( block_t *p_block = p_bytestream->p_block; |
165 | 337M | p_block != NULL; p_block = p_block->p_next ) |
166 | 337M | { |
167 | 337M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
168 | 337M | i_size -= i_copy; |
169 | | |
170 | 337M | if( i_copy ) |
171 | 332M | { |
172 | 332M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
173 | 332M | p_data += i_copy; |
174 | 332M | } |
175 | | |
176 | 337M | i_offset = 0; |
177 | | |
178 | 337M | if( !i_size ) break; |
179 | 337M | } |
180 | | |
181 | 231M | return VLC_SUCCESS; |
182 | 234M | } Line | Count | Source | 157 | 37.2M | { | 158 | 37.2M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 1.78M | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 35.4M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 35.4M | size_t i_size = i_data; | 164 | 35.4M | for( block_t *p_block = p_bytestream->p_block; | 165 | 39.2M | p_block != NULL; p_block = p_block->p_next ) | 166 | 39.2M | { | 167 | 39.2M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 39.2M | i_size -= i_copy; | 169 | | | 170 | 39.2M | if( i_copy ) | 171 | 38.3M | { | 172 | 38.3M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 38.3M | p_data += i_copy; | 174 | 38.3M | } | 175 | | | 176 | 39.2M | i_offset = 0; | 177 | | | 178 | 39.2M | if( !i_size ) break; | 179 | 39.2M | } | 180 | | | 181 | 35.4M | return VLC_SUCCESS; | 182 | 37.2M | } |
Line | Count | Source | 157 | 85.1M | { | 158 | 85.1M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 669k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 84.5M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 84.5M | size_t i_size = i_data; | 164 | 84.5M | for( block_t *p_block = p_bytestream->p_block; | 165 | 98.1M | p_block != NULL; p_block = p_block->p_next ) | 166 | 98.1M | { | 167 | 98.1M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 98.1M | i_size -= i_copy; | 169 | | | 170 | 98.1M | if( i_copy ) | 171 | 96.1M | { | 172 | 96.1M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 96.1M | p_data += i_copy; | 174 | 96.1M | } | 175 | | | 176 | 98.1M | i_offset = 0; | 177 | | | 178 | 98.1M | if( !i_size ) break; | 179 | 98.1M | } | 180 | | | 181 | 84.5M | return VLC_SUCCESS; | 182 | 85.1M | } |
Line | Count | Source | 157 | 2.48M | { | 158 | 2.48M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 9.40k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 2.47M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 2.47M | size_t i_size = i_data; | 164 | 2.47M | for( block_t *p_block = p_bytestream->p_block; | 165 | 2.50M | p_block != NULL; p_block = p_block->p_next ) | 166 | 2.50M | { | 167 | 2.50M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 2.50M | i_size -= i_copy; | 169 | | | 170 | 2.50M | if( i_copy ) | 171 | 2.50M | { | 172 | 2.50M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 2.50M | p_data += i_copy; | 174 | 2.50M | } | 175 | | | 176 | 2.50M | i_offset = 0; | 177 | | | 178 | 2.50M | if( !i_size ) break; | 179 | 2.50M | } | 180 | | | 181 | 2.47M | return VLC_SUCCESS; | 182 | 2.48M | } |
Unexecuted instantiation: h264.c:block_PeekBytes Unexecuted instantiation: hevc.c:block_PeekBytes Line | Count | Source | 157 | 20.9M | { | 158 | 20.9M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 268k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 20.6M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 20.6M | size_t i_size = i_data; | 164 | 20.6M | for( block_t *p_block = p_bytestream->p_block; | 165 | 104M | p_block != NULL; p_block = p_block->p_next ) | 166 | 104M | { | 167 | 104M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 104M | i_size -= i_copy; | 169 | | | 170 | 104M | if( i_copy ) | 171 | 103M | { | 172 | 103M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 103M | p_data += i_copy; | 174 | 103M | } | 175 | | | 176 | 104M | i_offset = 0; | 177 | | | 178 | 104M | if( !i_size ) break; | 179 | 104M | } | 180 | | | 181 | 20.6M | return VLC_SUCCESS; | 182 | 20.9M | } |
mpeg4audio.c:block_PeekBytes Line | Count | Source | 157 | 3.07M | { | 158 | 3.07M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 9.89k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 3.06M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 3.06M | size_t i_size = i_data; | 164 | 3.06M | for( block_t *p_block = p_bytestream->p_block; | 165 | 3.10M | p_block != NULL; p_block = p_block->p_next ) | 166 | 3.10M | { | 167 | 3.10M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 3.10M | i_size -= i_copy; | 169 | | | 170 | 3.10M | if( i_copy ) | 171 | 3.08M | { | 172 | 3.08M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 3.08M | p_data += i_copy; | 174 | 3.08M | } | 175 | | | 176 | 3.10M | i_offset = 0; | 177 | | | 178 | 3.10M | if( !i_size ) break; | 179 | 3.10M | } | 180 | | | 181 | 3.06M | return VLC_SUCCESS; | 182 | 3.07M | } |
Unexecuted instantiation: mpeg4video.c:block_PeekBytes mpegaudio.c:block_PeekBytes Line | Count | Source | 157 | 86.0M | { | 158 | 86.0M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 239k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 85.7M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 85.7M | size_t i_size = i_data; | 164 | 85.7M | for( block_t *p_block = p_bytestream->p_block; | 165 | 90.0M | p_block != NULL; p_block = p_block->p_next ) | 166 | 90.0M | { | 167 | 90.0M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 90.0M | i_size -= i_copy; | 169 | | | 170 | 90.0M | if( i_copy ) | 171 | 88.2M | { | 172 | 88.2M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 88.2M | p_data += i_copy; | 174 | 88.2M | } | 175 | | | 176 | 90.0M | i_offset = 0; | 177 | | | 178 | 90.0M | if( !i_size ) break; | 179 | 90.0M | } | 180 | | | 181 | 85.7M | return VLC_SUCCESS; | 182 | 86.0M | } |
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 | 280M | { |
187 | 280M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) |
188 | 135k | return VLC_EGENERIC; |
189 | | |
190 | | /* Copy the data */ |
191 | 280M | size_t i_offset = p_bytestream->i_block_offset; |
192 | 280M | size_t i_size = i_data; |
193 | 280M | size_t i_copy = 0; |
194 | 280M | block_t *p_block; |
195 | 280M | for( p_block = p_bytestream->p_block; |
196 | 292M | p_block != NULL; p_block = p_block->p_next ) |
197 | 292M | { |
198 | 292M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
199 | 292M | i_size -= i_copy; |
200 | | |
201 | 292M | if( i_copy && p_data != NULL ) |
202 | 77.8M | { |
203 | 77.8M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
204 | 77.8M | p_data += i_copy; |
205 | 77.8M | } |
206 | | |
207 | 292M | if( i_size == 0 ) |
208 | 280M | break; |
209 | | |
210 | 11.9M | p_bytestream->i_base_offset += p_block->i_buffer; |
211 | 11.9M | i_offset = 0; |
212 | 11.9M | } |
213 | | |
214 | 280M | p_bytestream->p_block = p_block; |
215 | 280M | p_bytestream->i_block_offset = i_offset + i_copy; |
216 | | |
217 | 280M | return VLC_SUCCESS; |
218 | 280M | } Line | Count | Source | 186 | 32.3M | { | 187 | 32.3M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 84.7k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 32.3M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 32.3M | size_t i_size = i_data; | 193 | 32.3M | size_t i_copy = 0; | 194 | 32.3M | block_t *p_block; | 195 | 32.3M | for( p_block = p_bytestream->p_block; | 196 | 34.9M | p_block != NULL; p_block = p_block->p_next ) | 197 | 34.9M | { | 198 | 34.9M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 34.9M | i_size -= i_copy; | 200 | | | 201 | 34.9M | if( i_copy && p_data != NULL ) | 202 | 3.11M | { | 203 | 3.11M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 3.11M | p_data += i_copy; | 205 | 3.11M | } | 206 | | | 207 | 34.9M | if( i_size == 0 ) | 208 | 32.3M | break; | 209 | | | 210 | 2.65M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 2.65M | i_offset = 0; | 212 | 2.65M | } | 213 | | | 214 | 32.3M | p_bytestream->p_block = p_block; | 215 | 32.3M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 32.3M | return VLC_SUCCESS; | 218 | 32.3M | } |
Line | Count | Source | 186 | 81.7M | { | 187 | 81.7M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 44.7k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 81.7M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 81.7M | size_t i_size = i_data; | 193 | 81.7M | size_t i_copy = 0; | 194 | 81.7M | block_t *p_block; | 195 | 81.7M | for( p_block = p_bytestream->p_block; | 196 | 84.1M | p_block != NULL; p_block = p_block->p_next ) | 197 | 84.1M | { | 198 | 84.1M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 84.1M | i_size -= i_copy; | 200 | | | 201 | 84.1M | if( i_copy && p_data != NULL ) | 202 | 598k | { | 203 | 598k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 598k | p_data += i_copy; | 205 | 598k | } | 206 | | | 207 | 84.1M | if( i_size == 0 ) | 208 | 81.7M | break; | 209 | | | 210 | 2.38M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 2.38M | i_offset = 0; | 212 | 2.38M | } | 213 | | | 214 | 81.7M | p_bytestream->p_block = p_block; | 215 | 81.7M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 81.7M | return VLC_SUCCESS; | 218 | 81.7M | } |
Line | Count | Source | 186 | 4.96M | { | 187 | 4.96M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 689 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 4.96M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 4.96M | size_t i_size = i_data; | 193 | 4.96M | size_t i_copy = 0; | 194 | 4.96M | block_t *p_block; | 195 | 4.96M | for( p_block = p_bytestream->p_block; | 196 | 5.10M | p_block != NULL; p_block = p_block->p_next ) | 197 | 5.09M | { | 198 | 5.09M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 5.09M | i_size -= i_copy; | 200 | | | 201 | 5.09M | 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 | 5.09M | if( i_size == 0 ) | 208 | 4.96M | break; | 209 | | | 210 | 133k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 133k | i_offset = 0; | 212 | 133k | } | 213 | | | 214 | 4.96M | p_bytestream->p_block = p_block; | 215 | 4.96M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 4.96M | return VLC_SUCCESS; | 218 | 4.96M | } |
Line | Count | Source | 186 | 3.81M | { | 187 | 3.81M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 3.81M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 3.81M | size_t i_size = i_data; | 193 | 3.81M | size_t i_copy = 0; | 194 | 3.81M | block_t *p_block; | 195 | 3.81M | for( p_block = p_bytestream->p_block; | 196 | 4.10M | p_block != NULL; p_block = p_block->p_next ) | 197 | 4.10M | { | 198 | 4.10M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 4.10M | i_size -= i_copy; | 200 | | | 201 | 4.10M | if( i_copy && p_data != NULL ) | 202 | 3.96M | { | 203 | 3.96M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 3.96M | p_data += i_copy; | 205 | 3.96M | } | 206 | | | 207 | 4.10M | if( i_size == 0 ) | 208 | 3.81M | break; | 209 | | | 210 | 290k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 290k | i_offset = 0; | 212 | 290k | } | 213 | | | 214 | 3.81M | p_bytestream->p_block = p_block; | 215 | 3.81M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 3.81M | return VLC_SUCCESS; | 218 | 3.81M | } |
Line | Count | Source | 186 | 62.2M | { | 187 | 62.2M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 62.2M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 62.2M | size_t i_size = i_data; | 193 | 62.2M | size_t i_copy = 0; | 194 | 62.2M | block_t *p_block; | 195 | 62.2M | for( p_block = p_bytestream->p_block; | 196 | 63.7M | p_block != NULL; p_block = p_block->p_next ) | 197 | 63.7M | { | 198 | 63.7M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 63.7M | i_size -= i_copy; | 200 | | | 201 | 63.7M | if( i_copy && p_data != NULL ) | 202 | 63.7M | { | 203 | 63.7M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 63.7M | p_data += i_copy; | 205 | 63.7M | } | 206 | | | 207 | 63.7M | if( i_size == 0 ) | 208 | 62.2M | break; | 209 | | | 210 | 1.54M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 1.54M | i_offset = 0; | 212 | 1.54M | } | 213 | | | 214 | 62.2M | p_bytestream->p_block = p_block; | 215 | 62.2M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 62.2M | return VLC_SUCCESS; | 218 | 62.2M | } |
Line | Count | Source | 186 | 19.7M | { | 187 | 19.7M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 19.7M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 19.7M | size_t i_size = i_data; | 193 | 19.7M | size_t i_copy = 0; | 194 | 19.7M | block_t *p_block; | 195 | 19.7M | for( p_block = p_bytestream->p_block; | 196 | 20.8M | p_block != NULL; p_block = p_block->p_next ) | 197 | 20.8M | { | 198 | 20.8M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 20.8M | i_size -= i_copy; | 200 | | | 201 | 20.8M | if( i_copy && p_data != NULL ) | 202 | 871k | { | 203 | 871k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 871k | p_data += i_copy; | 205 | 871k | } | 206 | | | 207 | 20.8M | if( i_size == 0 ) | 208 | 19.7M | break; | 209 | | | 210 | 1.06M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 1.06M | i_offset = 0; | 212 | 1.06M | } | 213 | | | 214 | 19.7M | p_bytestream->p_block = p_block; | 215 | 19.7M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 19.7M | return VLC_SUCCESS; | 218 | 19.7M | } |
mpeg4audio.c:block_GetBytes Line | Count | Source | 186 | 3.05M | { | 187 | 3.05M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 1.32k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 3.05M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 3.05M | size_t i_size = i_data; | 193 | 3.05M | size_t i_copy = 0; | 194 | 3.05M | block_t *p_block; | 195 | 3.05M | for( p_block = p_bytestream->p_block; | 196 | 3.07M | p_block != NULL; p_block = p_block->p_next ) | 197 | 3.07M | { | 198 | 3.07M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 3.07M | i_size -= i_copy; | 200 | | | 201 | 3.07M | if( i_copy && p_data != NULL ) | 202 | 638 | { | 203 | 638 | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 638 | p_data += i_copy; | 205 | 638 | } | 206 | | | 207 | 3.07M | if( i_size == 0 ) | 208 | 3.05M | break; | 209 | | | 210 | 19.4k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 19.4k | i_offset = 0; | 212 | 19.4k | } | 213 | | | 214 | 3.05M | p_bytestream->p_block = p_block; | 215 | 3.05M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 3.05M | return VLC_SUCCESS; | 218 | 3.05M | } |
mpeg4video.c:block_GetBytes Line | Count | Source | 186 | 449k | { | 187 | 449k | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 449k | size_t i_offset = p_bytestream->i_block_offset; | 192 | 449k | size_t i_size = i_data; | 193 | 449k | size_t i_copy = 0; | 194 | 449k | block_t *p_block; | 195 | 449k | for( p_block = p_bytestream->p_block; | 196 | 520k | p_block != NULL; p_block = p_block->p_next ) | 197 | 520k | { | 198 | 520k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 520k | i_size -= i_copy; | 200 | | | 201 | 520k | if( i_copy && p_data != NULL ) | 202 | 474k | { | 203 | 474k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 474k | p_data += i_copy; | 205 | 474k | } | 206 | | | 207 | 520k | if( i_size == 0 ) | 208 | 449k | break; | 209 | | | 210 | 70.9k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 70.9k | i_offset = 0; | 212 | 70.9k | } | 213 | | | 214 | 449k | p_bytestream->p_block = p_block; | 215 | 449k | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 449k | return VLC_SUCCESS; | 218 | 449k | } |
mpegaudio.c:block_GetBytes Line | Count | Source | 186 | 69.9M | { | 187 | 69.9M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 3.59k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 69.9M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 69.9M | size_t i_size = i_data; | 193 | 69.9M | size_t i_copy = 0; | 194 | 69.9M | block_t *p_block; | 195 | 69.9M | for( p_block = p_bytestream->p_block; | 196 | 73.2M | p_block != NULL; p_block = p_block->p_next ) | 197 | 73.2M | { | 198 | 73.2M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 73.2M | i_size -= i_copy; | 200 | | | 201 | 73.2M | if( i_copy && p_data != NULL ) | 202 | 2.61M | { | 203 | 2.61M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 2.61M | p_data += i_copy; | 205 | 2.61M | } | 206 | | | 207 | 73.2M | if( i_size == 0 ) | 208 | 69.9M | break; | 209 | | | 210 | 3.29M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 3.29M | i_offset = 0; | 212 | 3.29M | } | 213 | | | 214 | 69.9M | p_bytestream->p_block = p_block; | 215 | 69.9M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 69.9M | return VLC_SUCCESS; | 218 | 69.9M | } |
mpegvideo.c:block_GetBytes Line | Count | Source | 186 | 2.02M | { | 187 | 2.02M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 2.02M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 2.02M | size_t i_size = i_data; | 193 | 2.02M | size_t i_copy = 0; | 194 | 2.02M | block_t *p_block; | 195 | 2.02M | for( p_block = p_bytestream->p_block; | 196 | 2.49M | p_block != NULL; p_block = p_block->p_next ) | 197 | 2.49M | { | 198 | 2.49M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 2.49M | i_size -= i_copy; | 200 | | | 201 | 2.49M | if( i_copy && p_data != NULL ) | 202 | 2.38M | { | 203 | 2.38M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 2.38M | p_data += i_copy; | 205 | 2.38M | } | 206 | | | 207 | 2.49M | if( i_size == 0 ) | 208 | 2.02M | break; | 209 | | | 210 | 471k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 471k | i_offset = 0; | 212 | 471k | } | 213 | | | 214 | 2.02M | p_bytestream->p_block = p_block; | 215 | 2.02M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 2.02M | return VLC_SUCCESS; | 218 | 2.02M | } |
Line | Count | Source | 186 | 114k | { | 187 | 114k | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 114k | size_t i_offset = p_bytestream->i_block_offset; | 192 | 114k | size_t i_size = i_data; | 193 | 114k | size_t i_copy = 0; | 194 | 114k | block_t *p_block; | 195 | 114k | for( p_block = p_bytestream->p_block; | 196 | 114k | p_block != NULL; p_block = p_block->p_next ) | 197 | 114k | { | 198 | 114k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 114k | i_size -= i_copy; | 200 | | | 201 | 114k | if( i_copy && p_data != NULL ) | 202 | 114k | { | 203 | 114k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 114k | p_data += i_copy; | 205 | 114k | } | 206 | | | 207 | 114k | if( i_size == 0 ) | 208 | 114k | break; | 209 | | | 210 | 43 | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 43 | i_offset = 0; | 212 | 43 | } | 213 | | | 214 | 114k | p_bytestream->p_block = p_block; | 215 | 114k | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 114k | return VLC_SUCCESS; | 218 | 114k | } |
Unexecuted instantiation: av1.c:block_GetBytes Line | Count | Source | 186 | 30.3k | { | 187 | 30.3k | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 30.3k | size_t i_offset = p_bytestream->i_block_offset; | 192 | 30.3k | size_t i_size = i_data; | 193 | 30.3k | size_t i_copy = 0; | 194 | 30.3k | block_t *p_block; | 195 | 30.3k | for( p_block = p_bytestream->p_block; | 196 | 55.8k | p_block != NULL; p_block = p_block->p_next ) | 197 | 55.8k | { | 198 | 55.8k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 55.8k | i_size -= i_copy; | 200 | | | 201 | 55.8k | if( i_copy && p_data != NULL ) | 202 | 25.5k | { | 203 | 25.5k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 25.5k | p_data += i_copy; | 205 | 25.5k | } | 206 | | | 207 | 55.8k | if( i_size == 0 ) | 208 | 30.3k | break; | 209 | | | 210 | 25.5k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 25.5k | i_offset = 0; | 212 | 25.5k | } | 213 | | | 214 | 30.3k | p_bytestream->p_block = p_block; | 215 | 30.3k | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 30.3k | return VLC_SUCCESS; | 218 | 30.3k | } |
|
219 | | |
220 | | static inline int block_SkipBytes( block_bytestream_t *p_bytestream, |
221 | | size_t i_data ) |
222 | 3.69M | { |
223 | 3.69M | return block_GetBytes( p_bytestream, NULL, i_data ); |
224 | 3.69M | } Line | Count | Source | 222 | 457k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 457k | } |
Line | Count | Source | 222 | 88.5k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 88.5k | } |
Line | Count | Source | 222 | 2.84M | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 2.84M | } |
Line | Count | Source | 222 | 133k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 133k | } |
Line | Count | Source | 222 | 43.1k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 43.1k | } |
Unexecuted instantiation: mlp.c:block_SkipBytes mpeg4audio.c:block_SkipBytes Line | Count | Source | 222 | 1.36k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 1.36k | } |
mpeg4video.c:block_SkipBytes Line | Count | Source | 222 | 38.3k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 38.3k | } |
Unexecuted instantiation: mpegaudio.c:block_SkipBytes mpegvideo.c:block_SkipBytes Line | Count | Source | 222 | 64.6k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 64.6k | } |
Line | Count | Source | 222 | 97 | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 97 | } |
Unexecuted instantiation: av1.c:block_SkipBytes Line | Count | Source | 222 | 25.2k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 25.2k | } |
|
225 | | |
226 | | static inline int block_SkipByte( block_bytestream_t *p_bytestream ) |
227 | 205M | { |
228 | 205M | return block_GetBytes( p_bytestream, NULL, 1 ); |
229 | 205M | } Line | Count | Source | 227 | 30.5M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 30.5M | } |
Line | Count | Source | 227 | 81.5M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 81.5M | } |
Line | Count | Source | 227 | 2.12M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 2.12M | } |
Unexecuted instantiation: h264.c:block_SkipByte Unexecuted instantiation: hevc.c:block_SkipByte Line | Count | Source | 227 | 19.2M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 19.2M | } |
mpeg4audio.c:block_SkipByte Line | Count | Source | 227 | 3.05M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 3.05M | } |
Unexecuted instantiation: mpeg4video.c:block_SkipByte mpegaudio.c:block_SkipByte Line | Count | Source | 227 | 69.2M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 69.2M | } |
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 | 216M | { |
234 | 216M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); |
235 | 216M | if( i_remain < i_data + i_peek_offset ) |
236 | 9.52M | return VLC_EGENERIC; |
237 | | |
238 | | /* Find the right place */ |
239 | 206M | size_t i_offset = p_bytestream->i_block_offset; |
240 | 206M | size_t i_size = i_peek_offset; |
241 | 206M | size_t i_copy = 0; |
242 | 206M | block_t *p_block; |
243 | 206M | for( p_block = p_bytestream->p_block; |
244 | 4.01G | p_block != NULL; p_block = p_block->p_next ) |
245 | 4.01G | { |
246 | 4.01G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
247 | 4.01G | i_size -= i_copy; |
248 | | |
249 | 4.01G | if( !i_size ) break; |
250 | | |
251 | 3.80G | i_offset = 0; |
252 | 3.80G | } |
253 | | |
254 | | /* Copy the data */ |
255 | 206M | i_offset += i_copy; |
256 | 206M | i_size = i_data; |
257 | 234M | for( ; p_block != NULL; p_block = p_block->p_next ) |
258 | 234M | { |
259 | 234M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
260 | 234M | i_size -= i_copy; |
261 | | |
262 | 234M | if( i_copy ) |
263 | 229M | { |
264 | 229M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
265 | 229M | p_data += i_copy; |
266 | 229M | } |
267 | | |
268 | 234M | i_offset = 0; |
269 | | |
270 | 234M | if( !i_size ) break; |
271 | 234M | } |
272 | | |
273 | 206M | return VLC_SUCCESS; |
274 | 216M | } a52.c:block_PeekOffsetBytes Line | Count | Source | 233 | 3.96M | { | 234 | 3.96M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 3.96M | if( i_remain < i_data + i_peek_offset ) | 236 | 2.57M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 1.39M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 1.39M | size_t i_size = i_peek_offset; | 241 | 1.39M | size_t i_copy = 0; | 242 | 1.39M | block_t *p_block; | 243 | 1.39M | for( p_block = p_bytestream->p_block; | 244 | 36.8M | p_block != NULL; p_block = p_block->p_next ) | 245 | 36.8M | { | 246 | 36.8M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 36.8M | i_size -= i_copy; | 248 | | | 249 | 36.8M | if( !i_size ) break; | 250 | | | 251 | 35.4M | i_offset = 0; | 252 | 35.4M | } | 253 | | | 254 | | /* Copy the data */ | 255 | 1.39M | i_offset += i_copy; | 256 | 1.39M | i_size = i_data; | 257 | 2.18M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 2.18M | { | 259 | 2.18M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 2.18M | i_size -= i_copy; | 261 | | | 262 | 2.18M | if( i_copy ) | 263 | 1.98M | { | 264 | 1.98M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 1.98M | p_data += i_copy; | 266 | 1.98M | } | 267 | | | 268 | 2.18M | i_offset = 0; | 269 | | | 270 | 2.18M | if( !i_size ) break; | 271 | 2.18M | } | 272 | | | 273 | 1.39M | return VLC_SUCCESS; | 274 | 3.96M | } |
dts.c:block_PeekOffsetBytes Line | Count | Source | 233 | 70.7M | { | 234 | 70.7M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 70.7M | if( i_remain < i_data + i_peek_offset ) | 236 | 2.25M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 68.5M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 68.5M | size_t i_size = i_peek_offset; | 241 | 68.5M | size_t i_copy = 0; | 242 | 68.5M | block_t *p_block; | 243 | 68.5M | for( p_block = p_bytestream->p_block; | 244 | 876M | p_block != NULL; p_block = p_block->p_next ) | 245 | 876M | { | 246 | 876M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 876M | i_size -= i_copy; | 248 | | | 249 | 876M | if( !i_size ) break; | 250 | | | 251 | 807M | i_offset = 0; | 252 | 807M | } | 253 | | | 254 | | /* Copy the data */ | 255 | 68.5M | i_offset += i_copy; | 256 | 68.5M | i_size = i_data; | 257 | 69.3M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 69.3M | { | 259 | 69.3M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 69.3M | i_size -= i_copy; | 261 | | | 262 | 69.3M | if( i_copy ) | 263 | 69.2M | { | 264 | 69.2M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 69.2M | p_data += i_copy; | 266 | 69.2M | } | 267 | | | 268 | 69.3M | i_offset = 0; | 269 | | | 270 | 69.3M | if( !i_size ) break; | 271 | 69.3M | } | 272 | | | 273 | 68.5M | return VLC_SUCCESS; | 274 | 70.7M | } |
flac.c:block_PeekOffsetBytes Line | Count | Source | 233 | 75.6M | { | 234 | 75.6M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 75.6M | if( i_remain < i_data + i_peek_offset ) | 236 | 17.6k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 75.6M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 75.6M | size_t i_size = i_peek_offset; | 241 | 75.6M | size_t i_copy = 0; | 242 | 75.6M | block_t *p_block; | 243 | 75.6M | for( p_block = p_bytestream->p_block; | 244 | 1.45G | p_block != NULL; p_block = p_block->p_next ) | 245 | 1.45G | { | 246 | 1.45G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 1.45G | i_size -= i_copy; | 248 | | | 249 | 1.45G | if( !i_size ) break; | 250 | | | 251 | 1.37G | i_offset = 0; | 252 | 1.37G | } | 253 | | | 254 | | /* Copy the data */ | 255 | 75.6M | i_offset += i_copy; | 256 | 75.6M | i_size = i_data; | 257 | 76.9M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 76.9M | { | 259 | 76.9M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 76.9M | i_size -= i_copy; | 261 | | | 262 | 76.9M | if( i_copy ) | 263 | 75.8M | { | 264 | 75.8M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 75.8M | p_data += i_copy; | 266 | 75.8M | } | 267 | | | 268 | 76.9M | i_offset = 0; | 269 | | | 270 | 76.9M | if( !i_size ) break; | 271 | 76.9M | } | 272 | | | 273 | 75.6M | return VLC_SUCCESS; | 274 | 75.6M | } |
Unexecuted instantiation: h264.c:block_PeekOffsetBytes Unexecuted instantiation: hevc.c:block_PeekOffsetBytes mlp.c:block_PeekOffsetBytes Line | Count | Source | 233 | 2.15M | { | 234 | 2.15M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 2.15M | if( i_remain < i_data + i_peek_offset ) | 236 | 1.23M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 919k | size_t i_offset = p_bytestream->i_block_offset; | 240 | 919k | size_t i_size = i_peek_offset; | 241 | 919k | size_t i_copy = 0; | 242 | 919k | block_t *p_block; | 243 | 919k | for( p_block = p_bytestream->p_block; | 244 | 3.08M | p_block != NULL; p_block = p_block->p_next ) | 245 | 3.08M | { | 246 | 3.08M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 3.08M | i_size -= i_copy; | 248 | | | 249 | 3.08M | if( !i_size ) break; | 250 | | | 251 | 2.16M | i_offset = 0; | 252 | 2.16M | } | 253 | | | 254 | | /* Copy the data */ | 255 | 919k | i_offset += i_copy; | 256 | 919k | i_size = i_data; | 257 | 2.66M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 2.66M | { | 259 | 2.66M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 2.66M | i_size -= i_copy; | 261 | | | 262 | 2.66M | if( i_copy ) | 263 | 2.46M | { | 264 | 2.46M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 2.46M | p_data += i_copy; | 266 | 2.46M | } | 267 | | | 268 | 2.66M | i_offset = 0; | 269 | | | 270 | 2.66M | if( !i_size ) break; | 271 | 2.66M | } | 272 | | | 273 | 919k | return VLC_SUCCESS; | 274 | 2.15M | } |
mpeg4audio.c:block_PeekOffsetBytes Line | Count | Source | 233 | 21.8k | { | 234 | 21.8k | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 21.8k | if( i_remain < i_data + i_peek_offset ) | 236 | 15.4k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 6.36k | size_t i_offset = p_bytestream->i_block_offset; | 240 | 6.36k | size_t i_size = i_peek_offset; | 241 | 6.36k | size_t i_copy = 0; | 242 | 6.36k | block_t *p_block; | 243 | 6.36k | for( p_block = p_bytestream->p_block; | 244 | 209k | p_block != NULL; p_block = p_block->p_next ) | 245 | 209k | { | 246 | 209k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 209k | i_size -= i_copy; | 248 | | | 249 | 209k | if( !i_size ) break; | 250 | | | 251 | 203k | i_offset = 0; | 252 | 203k | } | 253 | | | 254 | | /* Copy the data */ | 255 | 6.36k | i_offset += i_copy; | 256 | 6.36k | i_size = i_data; | 257 | 6.59k | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 6.59k | { | 259 | 6.59k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 6.59k | i_size -= i_copy; | 261 | | | 262 | 6.59k | if( i_copy ) | 263 | 6.44k | { | 264 | 6.44k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 6.44k | p_data += i_copy; | 266 | 6.44k | } | 267 | | | 268 | 6.59k | i_offset = 0; | 269 | | | 270 | 6.59k | if( !i_size ) break; | 271 | 6.59k | } | 272 | | | 273 | 6.36k | return VLC_SUCCESS; | 274 | 21.8k | } |
Unexecuted instantiation: mpeg4video.c:block_PeekOffsetBytes mpegaudio.c:block_PeekOffsetBytes Line | Count | Source | 233 | 63.6M | { | 234 | 63.6M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 63.6M | if( i_remain < i_data + i_peek_offset ) | 236 | 3.43M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 60.2M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 60.2M | size_t i_size = i_peek_offset; | 241 | 60.2M | size_t i_copy = 0; | 242 | 60.2M | block_t *p_block; | 243 | 60.2M | for( p_block = p_bytestream->p_block; | 244 | 1.64G | p_block != NULL; p_block = p_block->p_next ) | 245 | 1.64G | { | 246 | 1.64G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 1.64G | i_size -= i_copy; | 248 | | | 249 | 1.64G | if( !i_size ) break; | 250 | | | 251 | 1.58G | i_offset = 0; | 252 | 1.58G | } | 253 | | | 254 | | /* Copy the data */ | 255 | 60.2M | i_offset += i_copy; | 256 | 60.2M | i_size = i_data; | 257 | 83.3M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 83.3M | { | 259 | 83.3M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 83.3M | i_size -= i_copy; | 261 | | | 262 | 83.3M | if( i_copy ) | 263 | 80.2M | { | 264 | 80.2M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 80.2M | p_data += i_copy; | 266 | 80.2M | } | 267 | | | 268 | 83.3M | i_offset = 0; | 269 | | | 270 | 83.3M | if( !i_size ) break; | 271 | 83.3M | } | 272 | | | 273 | 60.2M | return VLC_SUCCESS; | 274 | 63.6M | } |
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 | | block_bytestream_t *p_bytestream, size_t *pi_offset, |
281 | | const uint8_t *p_startcode, int i_startcode_length, |
282 | | block_startcode_helper_t p_startcode_helper, |
283 | | block_startcode_matcher_t p_startcode_matcher ) |
284 | 200M | { |
285 | 200M | block_t *p_block, *p_block_backup = 0; |
286 | 200M | ssize_t i_size = 0; |
287 | 200M | size_t i_offset, i_offset_backup = 0; |
288 | 200M | int i_caller_offset_backup = 0, i_match; |
289 | | |
290 | | /* Find the right place */ |
291 | 200M | i_size = *pi_offset + p_bytestream->i_block_offset; |
292 | 200M | for( p_block = p_bytestream->p_block; |
293 | 2.13G | p_block != NULL; p_block = p_block->p_next ) |
294 | 2.13G | { |
295 | 2.13G | i_size -= p_block->i_buffer; |
296 | 2.13G | if( i_size < 0 ) break; |
297 | 2.13G | } |
298 | | |
299 | 200M | if( unlikely( i_size >= 0 ) ) |
300 | 507k | { |
301 | | /* Not enough data, bail out */ |
302 | 507k | return VLC_EGENERIC; |
303 | 507k | } |
304 | | |
305 | | /* Begin the search. |
306 | | * We first look for an occurrence of the 1st startcode byte and |
307 | | * if found, we do a more thorough check. */ |
308 | 199M | i_size += p_block->i_buffer; |
309 | 199M | *pi_offset -= i_size; |
310 | 199M | i_match = 0; |
311 | 206M | for( ; p_block != NULL; p_block = p_block->p_next ) |
312 | 203M | { |
313 | 230M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) |
314 | 223M | { |
315 | | /* Use optimized helper when possible */ |
316 | 223M | if( p_startcode_helper && !i_match && |
317 | 202M | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) |
318 | 198M | { |
319 | 198M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], |
320 | 198M | &p_block->p_buffer[p_block->i_buffer] ); |
321 | 198M | if( p_res ) |
322 | 195M | { |
323 | 195M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); |
324 | 195M | return VLC_SUCCESS; |
325 | 195M | } |
326 | | /* Then parsing boundary with legacy code */ |
327 | 3.14M | i_offset = p_block->i_buffer - (i_startcode_length - 1); |
328 | 3.14M | } |
329 | | |
330 | 223M | bool b_matched = ( p_startcode_matcher ) |
331 | 28.0M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) |
332 | 28.0M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; |
333 | 28.0M | if( b_matched ) |
334 | 4.80M | { |
335 | 4.80M | if( i_match == 0 ) |
336 | 2.78M | { |
337 | 2.78M | p_block_backup = p_block; |
338 | 2.78M | i_offset_backup = i_offset; |
339 | 2.78M | i_caller_offset_backup = *pi_offset; |
340 | 2.78M | } |
341 | | |
342 | 4.80M | if( i_match + 1 == i_startcode_length ) |
343 | 1.02M | { |
344 | | /* We have it */ |
345 | 1.02M | *pi_offset += i_offset - i_match; |
346 | 1.02M | return VLC_SUCCESS; |
347 | 1.02M | } |
348 | | |
349 | 3.77M | i_match++; |
350 | 3.77M | } |
351 | 23.2M | else if ( i_match > 0 ) |
352 | 1.28M | { |
353 | | /* False positive */ |
354 | 1.28M | p_block = p_block_backup; |
355 | 1.28M | i_offset = i_offset_backup; |
356 | 1.28M | *pi_offset = i_caller_offset_backup; |
357 | 1.28M | i_match = 0; |
358 | 1.28M | } |
359 | | |
360 | 28.0M | } |
361 | 6.48M | i_size = 0; |
362 | 6.48M | *pi_offset += i_offset; |
363 | 6.48M | } |
364 | | |
365 | 3.11M | *pi_offset -= i_match; |
366 | 3.11M | return VLC_EGENERIC; |
367 | 199M | } a52.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 990k | { | 285 | 990k | block_t *p_block, *p_block_backup = 0; | 286 | 990k | ssize_t i_size = 0; | 287 | 990k | size_t i_offset, i_offset_backup = 0; | 288 | 990k | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 990k | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 990k | for( p_block = p_bytestream->p_block; | 293 | 1.11M | p_block != NULL; p_block = p_block->p_next ) | 294 | 1.11M | { | 295 | 1.11M | i_size -= p_block->i_buffer; | 296 | 1.11M | if( i_size < 0 ) break; | 297 | 1.11M | } | 298 | | | 299 | 990k | if( unlikely( i_size >= 0 ) ) | 300 | 0 | { | 301 | | /* Not enough data, bail out */ | 302 | 0 | return VLC_EGENERIC; | 303 | 0 | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 990k | i_size += p_block->i_buffer; | 309 | 990k | *pi_offset -= i_size; | 310 | 990k | i_match = 0; | 311 | 2.29M | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 2.29M | { | 313 | 20.6M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 19.3M | { | 315 | | /* Use optimized helper when possible */ | 316 | 19.3M | if( p_startcode_helper && !i_match && | 317 | 0 | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 0 | { | 319 | 0 | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 0 | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 0 | if( p_res ) | 322 | 0 | { | 323 | 0 | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 0 | return VLC_SUCCESS; | 325 | 0 | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 0 | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 0 | } | 329 | | | 330 | 19.3M | bool b_matched = ( p_startcode_matcher ) | 331 | 19.3M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 19.3M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 19.3M | if( b_matched ) | 334 | 2.44M | { | 335 | 2.44M | if( i_match == 0 ) | 336 | 1.46M | { | 337 | 1.46M | p_block_backup = p_block; | 338 | 1.46M | i_offset_backup = i_offset; | 339 | 1.46M | i_caller_offset_backup = *pi_offset; | 340 | 1.46M | } | 341 | | | 342 | 2.44M | if( i_match + 1 == i_startcode_length ) | 343 | 983k | { | 344 | | /* We have it */ | 345 | 983k | *pi_offset += i_offset - i_match; | 346 | 983k | return VLC_SUCCESS; | 347 | 983k | } | 348 | | | 349 | 1.46M | i_match++; | 350 | 1.46M | } | 351 | 16.8M | else if ( i_match > 0 ) | 352 | 476k | { | 353 | | /* False positive */ | 354 | 476k | p_block = p_block_backup; | 355 | 476k | i_offset = i_offset_backup; | 356 | 476k | *pi_offset = i_caller_offset_backup; | 357 | 476k | i_match = 0; | 358 | 476k | } | 359 | | | 360 | 19.3M | } | 361 | 1.30M | i_size = 0; | 362 | 1.30M | *pi_offset += i_offset; | 363 | 1.30M | } | 364 | | | 365 | 6.36k | *pi_offset -= i_match; | 366 | 6.36k | return VLC_EGENERIC; | 367 | 990k | } |
Unexecuted instantiation: dts.c:block_FindStartcodeFromOffset flac.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 59.3M | { | 285 | 59.3M | block_t *p_block, *p_block_backup = 0; | 286 | 59.3M | ssize_t i_size = 0; | 287 | 59.3M | size_t i_offset, i_offset_backup = 0; | 288 | 59.3M | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 59.3M | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 59.3M | for( p_block = p_bytestream->p_block; | 293 | 1.17G | p_block != NULL; p_block = p_block->p_next ) | 294 | 1.17G | { | 295 | 1.17G | i_size -= p_block->i_buffer; | 296 | 1.17G | if( i_size < 0 ) break; | 297 | 1.17G | } | 298 | | | 299 | 59.3M | if( unlikely( i_size >= 0 ) ) | 300 | 10.5k | { | 301 | | /* Not enough data, bail out */ | 302 | 10.5k | return VLC_EGENERIC; | 303 | 10.5k | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 59.3M | i_size += p_block->i_buffer; | 309 | 59.3M | *pi_offset -= i_size; | 310 | 59.3M | i_match = 0; | 311 | 60.3M | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 60.1M | { | 313 | 61.1M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 60.0M | { | 315 | | /* Use optimized helper when possible */ | 316 | 60.0M | if( p_startcode_helper && !i_match && | 317 | 60.0M | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 59.7M | { | 319 | 59.7M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 59.7M | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 59.7M | if( p_res ) | 322 | 59.0M | { | 323 | 59.0M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 59.0M | return VLC_SUCCESS; | 325 | 59.0M | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 706k | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 706k | } | 329 | | | 330 | 60.0M | bool b_matched = ( p_startcode_matcher ) | 331 | 1.03M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 1.03M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 1.03M | if( b_matched ) | 334 | 51.3k | { | 335 | 51.3k | if( i_match == 0 ) | 336 | 45.9k | { | 337 | 45.9k | p_block_backup = p_block; | 338 | 45.9k | i_offset_backup = i_offset; | 339 | 45.9k | i_caller_offset_backup = *pi_offset; | 340 | 45.9k | } | 341 | | | 342 | 51.3k | if( i_match + 1 == i_startcode_length ) | 343 | 5.46k | { | 344 | | /* We have it */ | 345 | 5.46k | *pi_offset += i_offset - i_match; | 346 | 5.46k | return VLC_SUCCESS; | 347 | 5.46k | } | 348 | | | 349 | 45.9k | i_match++; | 350 | 45.9k | } | 351 | 982k | else if ( i_match > 0 ) | 352 | 22.6k | { | 353 | | /* False positive */ | 354 | 22.6k | p_block = p_block_backup; | 355 | 22.6k | i_offset = i_offset_backup; | 356 | 22.6k | *pi_offset = i_caller_offset_backup; | 357 | 22.6k | i_match = 0; | 358 | 22.6k | } | 359 | | | 360 | 1.03M | } | 361 | 1.04M | i_size = 0; | 362 | 1.04M | *pi_offset += i_offset; | 363 | 1.04M | } | 364 | | | 365 | 281k | *pi_offset -= i_match; | 366 | 281k | return VLC_EGENERIC; | 367 | 59.3M | } |
h264.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 8.06M | { | 285 | 8.06M | block_t *p_block, *p_block_backup = 0; | 286 | 8.06M | ssize_t i_size = 0; | 287 | 8.06M | size_t i_offset, i_offset_backup = 0; | 288 | 8.06M | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 8.06M | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 8.06M | for( p_block = p_bytestream->p_block; | 293 | 71.5M | p_block != NULL; p_block = p_block->p_next ) | 294 | 71.2M | { | 295 | 71.2M | i_size -= p_block->i_buffer; | 296 | 71.2M | if( i_size < 0 ) break; | 297 | 71.2M | } | 298 | | | 299 | 8.06M | if( unlikely( i_size >= 0 ) ) | 300 | 302k | { | 301 | | /* Not enough data, bail out */ | 302 | 302k | return VLC_EGENERIC; | 303 | 302k | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 7.75M | i_size += p_block->i_buffer; | 309 | 7.75M | *pi_offset -= i_size; | 310 | 7.75M | i_match = 0; | 311 | 8.37M | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 7.83M | { | 313 | 8.97M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 8.35M | { | 315 | | /* Use optimized helper when possible */ | 316 | 8.35M | if( p_startcode_helper && !i_match && | 317 | 8.23M | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 7.66M | { | 319 | 7.66M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 7.66M | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 7.66M | if( p_res ) | 322 | 7.21M | { | 323 | 7.21M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 7.21M | return VLC_SUCCESS; | 325 | 7.21M | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 455k | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 455k | } | 329 | | | 330 | 8.35M | bool b_matched = ( p_startcode_matcher ) | 331 | 1.14M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 1.14M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 1.14M | if( b_matched ) | 334 | 173k | { | 335 | 173k | if( i_match == 0 ) | 336 | 106k | { | 337 | 106k | p_block_backup = p_block; | 338 | 106k | i_offset_backup = i_offset; | 339 | 106k | i_caller_offset_backup = *pi_offset; | 340 | 106k | } | 341 | | | 342 | 173k | if( i_match + 1 == i_startcode_length ) | 343 | 2.90k | { | 344 | | /* We have it */ | 345 | 2.90k | *pi_offset += i_offset - i_match; | 346 | 2.90k | return VLC_SUCCESS; | 347 | 2.90k | } | 348 | | | 349 | 170k | i_match++; | 350 | 170k | } | 351 | 967k | else if ( i_match > 0 ) | 352 | 50.0k | { | 353 | | /* False positive */ | 354 | 50.0k | p_block = p_block_backup; | 355 | 50.0k | i_offset = i_offset_backup; | 356 | 50.0k | *pi_offset = i_caller_offset_backup; | 357 | 50.0k | i_match = 0; | 358 | 50.0k | } | 359 | | | 360 | 1.14M | } | 361 | 618k | i_size = 0; | 362 | 618k | *pi_offset += i_offset; | 363 | 618k | } | 364 | | | 365 | 542k | *pi_offset -= i_match; | 366 | 542k | return VLC_EGENERIC; | 367 | 7.75M | } |
hevc.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 125M | { | 285 | 125M | block_t *p_block, *p_block_backup = 0; | 286 | 125M | ssize_t i_size = 0; | 287 | 125M | size_t i_offset, i_offset_backup = 0; | 288 | 125M | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 125M | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 125M | for( p_block = p_bytestream->p_block; | 293 | 192M | p_block != NULL; p_block = p_block->p_next ) | 294 | 191M | { | 295 | 191M | i_size -= p_block->i_buffer; | 296 | 191M | if( i_size < 0 ) break; | 297 | 191M | } | 298 | | | 299 | 125M | if( unlikely( i_size >= 0 ) ) | 300 | 43.1k | { | 301 | | /* Not enough data, bail out */ | 302 | 43.1k | return VLC_EGENERIC; | 303 | 43.1k | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 125M | i_size += p_block->i_buffer; | 309 | 125M | *pi_offset -= i_size; | 310 | 125M | i_match = 0; | 311 | 127M | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 126M | { | 313 | 130M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 128M | { | 315 | | /* Use optimized helper when possible */ | 316 | 128M | if( p_startcode_helper && !i_match && | 317 | 127M | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 125M | { | 319 | 125M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 125M | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 125M | if( p_res ) | 322 | 124M | { | 323 | 124M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 124M | return VLC_SUCCESS; | 325 | 124M | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 1.56M | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 1.56M | } | 329 | | | 330 | 128M | bool b_matched = ( p_startcode_matcher ) | 331 | 4.09M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 4.09M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 4.09M | if( b_matched ) | 334 | 931k | { | 335 | 931k | if( i_match == 0 ) | 336 | 492k | { | 337 | 492k | p_block_backup = p_block; | 338 | 492k | i_offset_backup = i_offset; | 339 | 492k | i_caller_offset_backup = *pi_offset; | 340 | 492k | } | 341 | | | 342 | 931k | if( i_match + 1 == i_startcode_length ) | 343 | 6.32k | { | 344 | | /* We have it */ | 345 | 6.32k | *pi_offset += i_offset - i_match; | 346 | 6.32k | return VLC_SUCCESS; | 347 | 6.32k | } | 348 | | | 349 | 924k | i_match++; | 350 | 924k | } | 351 | 3.16M | else if ( i_match > 0 ) | 352 | 322k | { | 353 | | /* False positive */ | 354 | 322k | p_block = p_block_backup; | 355 | 322k | i_offset = i_offset_backup; | 356 | 322k | *pi_offset = i_caller_offset_backup; | 357 | 322k | i_match = 0; | 358 | 322k | } | 359 | | | 360 | 4.09M | } | 361 | 2.04M | i_size = 0; | 362 | 2.04M | *pi_offset += i_offset; | 363 | 2.04M | } | 364 | | | 365 | 1.60M | *pi_offset -= i_match; | 366 | 1.60M | return VLC_EGENERIC; | 367 | 125M | } |
Unexecuted instantiation: mlp.c:block_FindStartcodeFromOffset Unexecuted instantiation: mpeg4audio.c:block_FindStartcodeFromOffset mpeg4video.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 957k | { | 285 | 957k | block_t *p_block, *p_block_backup = 0; | 286 | 957k | ssize_t i_size = 0; | 287 | 957k | size_t i_offset, i_offset_backup = 0; | 288 | 957k | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 957k | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 957k | for( p_block = p_bytestream->p_block; | 293 | 4.21M | p_block != NULL; p_block = p_block->p_next ) | 294 | 4.15M | { | 295 | 4.15M | i_size -= p_block->i_buffer; | 296 | 4.15M | if( i_size < 0 ) break; | 297 | 4.15M | } | 298 | | | 299 | 957k | if( unlikely( i_size >= 0 ) ) | 300 | 52.2k | { | 301 | | /* Not enough data, bail out */ | 302 | 52.2k | return VLC_EGENERIC; | 303 | 52.2k | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 905k | i_size += p_block->i_buffer; | 309 | 905k | *pi_offset -= i_size; | 310 | 905k | i_match = 0; | 311 | 1.10M | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 1.00M | { | 313 | 1.32M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 1.12M | { | 315 | | /* Use optimized helper when possible */ | 316 | 1.12M | if( p_startcode_helper && !i_match && | 317 | 1.02M | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 862k | { | 319 | 862k | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 862k | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 862k | if( p_res ) | 322 | 795k | { | 323 | 795k | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 795k | return VLC_SUCCESS; | 325 | 795k | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 66.8k | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 66.8k | } | 329 | | | 330 | 1.12M | bool b_matched = ( p_startcode_matcher ) | 331 | 328k | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 328k | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 328k | if( b_matched ) | 334 | 136k | { | 335 | 136k | if( i_match == 0 ) | 336 | 77.1k | { | 337 | 77.1k | p_block_backup = p_block; | 338 | 77.1k | i_offset_backup = i_offset; | 339 | 77.1k | i_caller_offset_backup = *pi_offset; | 340 | 77.1k | } | 341 | | | 342 | 136k | if( i_match + 1 == i_startcode_length ) | 343 | 2.20k | { | 344 | | /* We have it */ | 345 | 2.20k | *pi_offset += i_offset - i_match; | 346 | 2.20k | return VLC_SUCCESS; | 347 | 2.20k | } | 348 | | | 349 | 134k | i_match++; | 350 | 134k | } | 351 | 191k | else if ( i_match > 0 ) | 352 | 43.5k | { | 353 | | /* False positive */ | 354 | 43.5k | p_block = p_block_backup; | 355 | 43.5k | i_offset = i_offset_backup; | 356 | 43.5k | *pi_offset = i_caller_offset_backup; | 357 | 43.5k | i_match = 0; | 358 | 43.5k | } | 359 | | | 360 | 328k | } | 361 | 204k | i_size = 0; | 362 | 204k | *pi_offset += i_offset; | 363 | 204k | } | 364 | | | 365 | 107k | *pi_offset -= i_match; | 366 | 107k | return VLC_EGENERIC; | 367 | 905k | } |
Unexecuted instantiation: mpegaudio.c:block_FindStartcodeFromOffset mpegvideo.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 4.50M | { | 285 | 4.50M | block_t *p_block, *p_block_backup = 0; | 286 | 4.50M | ssize_t i_size = 0; | 287 | 4.50M | size_t i_offset, i_offset_backup = 0; | 288 | 4.50M | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 4.50M | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 4.50M | for( p_block = p_bytestream->p_block; | 293 | 608M | p_block != NULL; p_block = p_block->p_next ) | 294 | 608M | { | 295 | 608M | i_size -= p_block->i_buffer; | 296 | 608M | if( i_size < 0 ) break; | 297 | 608M | } | 298 | | | 299 | 4.50M | if( unlikely( i_size >= 0 ) ) | 300 | 93.3k | { | 301 | | /* Not enough data, bail out */ | 302 | 93.3k | return VLC_EGENERIC; | 303 | 93.3k | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 4.40M | i_size += p_block->i_buffer; | 309 | 4.40M | *pi_offset -= i_size; | 310 | 4.40M | i_match = 0; | 311 | 5.60M | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 5.07M | { | 313 | 7.06M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 5.87M | { | 315 | | /* Use optimized helper when possible */ | 316 | 5.87M | if( p_startcode_helper && !i_match && | 317 | 5.05M | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 4.16M | { | 319 | 4.16M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 4.16M | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 4.16M | if( p_res ) | 322 | 3.86M | { | 323 | 3.86M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 3.86M | return VLC_SUCCESS; | 325 | 3.86M | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 299k | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 299k | } | 329 | | | 330 | 5.87M | bool b_matched = ( p_startcode_matcher ) | 331 | 2.00M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 2.00M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 2.00M | if( b_matched ) | 334 | 1.05M | { | 335 | 1.05M | if( i_match == 0 ) | 336 | 596k | { | 337 | 596k | p_block_backup = p_block; | 338 | 596k | i_offset_backup = i_offset; | 339 | 596k | i_caller_offset_backup = *pi_offset; | 340 | 596k | } | 341 | | | 342 | 1.05M | if( i_match + 1 == i_startcode_length ) | 343 | 24.5k | { | 344 | | /* We have it */ | 345 | 24.5k | *pi_offset += i_offset - i_match; | 346 | 24.5k | return VLC_SUCCESS; | 347 | 24.5k | } | 348 | | | 349 | 1.02M | i_match++; | 350 | 1.02M | } | 351 | 956k | else if ( i_match > 0 ) | 352 | 360k | { | 353 | | /* False positive */ | 354 | 360k | p_block = p_block_backup; | 355 | 360k | i_offset = i_offset_backup; | 356 | 360k | *pi_offset = i_caller_offset_backup; | 357 | 360k | i_match = 0; | 358 | 360k | } | 359 | | | 360 | 2.00M | } | 361 | 1.19M | i_size = 0; | 362 | 1.19M | *pi_offset += i_offset; | 363 | 1.19M | } | 364 | | | 365 | 522k | *pi_offset -= i_match; | 366 | 522k | return VLC_EGENERIC; | 367 | 4.40M | } |
vc1.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 230k | { | 285 | 230k | block_t *p_block, *p_block_backup = 0; | 286 | 230k | ssize_t i_size = 0; | 287 | 230k | size_t i_offset, i_offset_backup = 0; | 288 | 230k | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 230k | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 230k | for( p_block = p_bytestream->p_block; | 293 | 235k | p_block != NULL; p_block = p_block->p_next ) | 294 | 234k | { | 295 | 234k | i_size -= p_block->i_buffer; | 296 | 234k | if( i_size < 0 ) break; | 297 | 234k | } | 298 | | | 299 | 230k | if( unlikely( i_size >= 0 ) ) | 300 | 976 | { | 301 | | /* Not enough data, bail out */ | 302 | 976 | return VLC_EGENERIC; | 303 | 976 | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 229k | i_size += p_block->i_buffer; | 309 | 229k | *pi_offset -= i_size; | 310 | 229k | i_match = 0; | 311 | 232k | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 230k | { | 313 | 236k | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 233k | { | 315 | | /* Use optimized helper when possible */ | 316 | 233k | if( p_startcode_helper && !i_match && | 317 | 231k | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 229k | { | 319 | 229k | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 229k | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 229k | if( p_res ) | 322 | 227k | { | 323 | 227k | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 227k | return VLC_SUCCESS; | 325 | 227k | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 1.69k | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 1.69k | } | 329 | | | 330 | 233k | bool b_matched = ( p_startcode_matcher ) | 331 | 6.05k | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 6.05k | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 6.05k | if( b_matched ) | 334 | 3.15k | { | 335 | 3.15k | if( i_match == 0 ) | 336 | 1.90k | { | 337 | 1.90k | p_block_backup = p_block; | 338 | 1.90k | i_offset_backup = i_offset; | 339 | 1.90k | i_caller_offset_backup = *pi_offset; | 340 | 1.90k | } | 341 | | | 342 | 3.15k | if( i_match + 1 == i_startcode_length ) | 343 | 0 | { | 344 | | /* We have it */ | 345 | 0 | *pi_offset += i_offset - i_match; | 346 | 0 | return VLC_SUCCESS; | 347 | 0 | } | 348 | | | 349 | 3.15k | i_match++; | 350 | 3.15k | } | 351 | 2.89k | else if ( i_match > 0 ) | 352 | 752 | { | 353 | | /* False positive */ | 354 | 752 | p_block = p_block_backup; | 355 | 752 | i_offset = i_offset_backup; | 356 | 752 | *pi_offset = i_caller_offset_backup; | 357 | 752 | i_match = 0; | 358 | 752 | } | 359 | | | 360 | 6.05k | } | 361 | 3.25k | i_size = 0; | 362 | 3.25k | *pi_offset += i_offset; | 363 | 3.25k | } | 364 | | | 365 | 1.99k | *pi_offset -= i_match; | 366 | 1.99k | return VLC_EGENERIC; | 367 | 229k | } |
Unexecuted instantiation: av1.c:block_FindStartcodeFromOffset mjpeg.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 62.3k | { | 285 | 62.3k | block_t *p_block, *p_block_backup = 0; | 286 | 62.3k | ssize_t i_size = 0; | 287 | 62.3k | size_t i_offset, i_offset_backup = 0; | 288 | 62.3k | int i_caller_offset_backup = 0, i_match; | 289 | | | 290 | | /* Find the right place */ | 291 | 62.3k | i_size = *pi_offset + p_bytestream->i_block_offset; | 292 | 62.3k | for( p_block = p_bytestream->p_block; | 293 | 78.8M | p_block != NULL; p_block = p_block->p_next ) | 294 | 78.8M | { | 295 | 78.8M | i_size -= p_block->i_buffer; | 296 | 78.8M | if( i_size < 0 ) break; | 297 | 78.8M | } | 298 | | | 299 | 62.3k | if( unlikely( i_size >= 0 ) ) | 300 | 4.74k | { | 301 | | /* Not enough data, bail out */ | 302 | 4.74k | return VLC_EGENERIC; | 303 | 4.74k | } | 304 | | | 305 | | /* Begin the search. | 306 | | * We first look for an occurrence of the 1st startcode byte and | 307 | | * if found, we do a more thorough check. */ | 308 | 57.6k | i_size += p_block->i_buffer; | 309 | 57.6k | *pi_offset -= i_size; | 310 | 57.6k | i_match = 0; | 311 | 122k | for( ; p_block != NULL; p_block = p_block->p_next ) | 312 | 74.9k | { | 313 | 222k | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 314 | 157k | { | 315 | | /* Use optimized helper when possible */ | 316 | 157k | if( p_startcode_helper && !i_match && | 317 | 152k | (p_block->i_buffer - i_offset) > ((size_t)i_startcode_length - 1) ) | 318 | 56.2k | { | 319 | 56.2k | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 320 | 56.2k | &p_block->p_buffer[p_block->i_buffer] ); | 321 | 56.2k | if( p_res ) | 322 | 9.82k | { | 323 | 9.82k | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 324 | 9.82k | return VLC_SUCCESS; | 325 | 9.82k | } | 326 | | /* Then parsing boundary with legacy code */ | 327 | 46.4k | i_offset = p_block->i_buffer - (i_startcode_length - 1); | 328 | 46.4k | } | 329 | | | 330 | 157k | bool b_matched = ( p_startcode_matcher ) | 331 | 148k | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 332 | 148k | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 333 | 148k | if( b_matched ) | 334 | 8.80k | { | 335 | 8.80k | if( i_match == 0 ) | 336 | 8.45k | { | 337 | 8.45k | p_block_backup = p_block; | 338 | 8.45k | i_offset_backup = i_offset; | 339 | 8.45k | i_caller_offset_backup = *pi_offset; | 340 | 8.45k | } | 341 | | | 342 | 8.80k | if( i_match + 1 == i_startcode_length ) | 343 | 6 | { | 344 | | /* We have it */ | 345 | 6 | *pi_offset += i_offset - i_match; | 346 | 6 | return VLC_SUCCESS; | 347 | 6 | } | 348 | | | 349 | 8.79k | i_match++; | 350 | 8.79k | } | 351 | 139k | else if ( i_match > 0 ) | 352 | 5.40k | { | 353 | | /* False positive */ | 354 | 5.40k | p_block = p_block_backup; | 355 | 5.40k | i_offset = i_offset_backup; | 356 | 5.40k | *pi_offset = i_caller_offset_backup; | 357 | 5.40k | i_match = 0; | 358 | 5.40k | } | 359 | | | 360 | 148k | } | 361 | 65.0k | i_size = 0; | 362 | 65.0k | *pi_offset += i_offset; | 363 | 65.0k | } | 364 | | | 365 | 47.7k | *pi_offset -= i_match; | 366 | 47.7k | return VLC_EGENERIC; | 367 | 57.6k | } |
|
368 | | |
369 | | #endif /* VLC_BLOCK_HELPER_H */ |