/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 | 714k | { |
43 | 714k | p_bytestream->p_chain = p_bytestream->p_block = NULL; |
44 | 714k | p_bytestream->pp_last = &p_bytestream->p_chain; |
45 | 714k | p_bytestream->i_block_offset = 0; |
46 | 714k | p_bytestream->i_base_offset = 0; |
47 | 714k | p_bytestream->i_total = 0; |
48 | 714k | } a52.c:block_BytestreamInit Line | Count | Source | 42 | 18.2k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 18.2k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 18.2k | p_bytestream->i_block_offset = 0; | 46 | 18.2k | p_bytestream->i_base_offset = 0; | 47 | 18.2k | p_bytestream->i_total = 0; | 48 | 18.2k | } |
dts.c:block_BytestreamInit Line | Count | Source | 42 | 5.27k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 5.27k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 5.27k | p_bytestream->i_block_offset = 0; | 46 | 5.27k | p_bytestream->i_base_offset = 0; | 47 | 5.27k | p_bytestream->i_total = 0; | 48 | 5.27k | } |
flac.c:block_BytestreamInit Line | Count | Source | 42 | 18.6k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 18.6k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 18.6k | p_bytestream->i_block_offset = 0; | 46 | 18.6k | p_bytestream->i_base_offset = 0; | 47 | 18.6k | p_bytestream->i_total = 0; | 48 | 18.6k | } |
h264.c:block_BytestreamInit Line | Count | Source | 42 | 310k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 310k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 310k | p_bytestream->i_block_offset = 0; | 46 | 310k | p_bytestream->i_base_offset = 0; | 47 | 310k | p_bytestream->i_total = 0; | 48 | 310k | } |
hevc.c:block_BytestreamInit Line | Count | Source | 42 | 22.7k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 22.7k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 22.7k | p_bytestream->i_block_offset = 0; | 46 | 22.7k | p_bytestream->i_base_offset = 0; | 47 | 22.7k | p_bytestream->i_total = 0; | 48 | 22.7k | } |
mlp.c:block_BytestreamInit Line | Count | Source | 42 | 5.27k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 5.27k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 5.27k | p_bytestream->i_block_offset = 0; | 46 | 5.27k | p_bytestream->i_base_offset = 0; | 47 | 5.27k | p_bytestream->i_total = 0; | 48 | 5.27k | } |
mpeg4audio.c:block_BytestreamInit Line | Count | Source | 42 | 96.9k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 96.9k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 96.9k | p_bytestream->i_block_offset = 0; | 46 | 96.9k | p_bytestream->i_base_offset = 0; | 47 | 96.9k | p_bytestream->i_total = 0; | 48 | 96.9k | } |
mpeg4video.c:block_BytestreamInit Line | Count | Source | 42 | 41.0k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 41.0k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 41.0k | p_bytestream->i_block_offset = 0; | 46 | 41.0k | p_bytestream->i_base_offset = 0; | 47 | 41.0k | p_bytestream->i_total = 0; | 48 | 41.0k | } |
mpegaudio.c:block_BytestreamInit Line | Count | Source | 42 | 95.0k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 95.0k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 95.0k | p_bytestream->i_block_offset = 0; | 46 | 95.0k | p_bytestream->i_base_offset = 0; | 47 | 95.0k | p_bytestream->i_total = 0; | 48 | 95.0k | } |
mpegvideo.c:block_BytestreamInit Line | Count | Source | 42 | 99.8k | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 99.8k | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 99.8k | p_bytestream->i_block_offset = 0; | 46 | 99.8k | p_bytestream->i_base_offset = 0; | 47 | 99.8k | p_bytestream->i_total = 0; | 48 | 99.8k | } |
vc1.c:block_BytestreamInit Line | Count | Source | 42 | 528 | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 528 | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 528 | p_bytestream->i_block_offset = 0; | 46 | 528 | p_bytestream->i_base_offset = 0; | 47 | 528 | p_bytestream->i_total = 0; | 48 | 528 | } |
Unexecuted instantiation: av1.c:block_BytestreamInit mjpeg.c:block_BytestreamInit Line | Count | Source | 42 | 11 | { | 43 | | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 44 | 11 | p_bytestream->pp_last = &p_bytestream->p_chain; | 45 | 11 | p_bytestream->i_block_offset = 0; | 46 | 11 | p_bytestream->i_base_offset = 0; | 47 | 11 | p_bytestream->i_total = 0; | 48 | 11 | } |
|
49 | | |
50 | | static inline void block_BytestreamRelease( block_bytestream_t *p_bytestream ) |
51 | 714k | { |
52 | 714k | block_ChainRelease( p_bytestream->p_chain ); |
53 | 714k | } a52.c:block_BytestreamRelease Line | Count | Source | 51 | 18.2k | { | 52 | 18.2k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 18.2k | } |
dts.c:block_BytestreamRelease Line | Count | Source | 51 | 5.27k | { | 52 | 5.27k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 5.27k | } |
flac.c:block_BytestreamRelease Line | Count | Source | 51 | 18.6k | { | 52 | 18.6k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 18.6k | } |
h264.c:block_BytestreamRelease Line | Count | Source | 51 | 310k | { | 52 | 310k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 310k | } |
hevc.c:block_BytestreamRelease Line | Count | Source | 51 | 22.7k | { | 52 | 22.7k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 22.7k | } |
mlp.c:block_BytestreamRelease Line | Count | Source | 51 | 5.27k | { | 52 | 5.27k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 5.27k | } |
mpeg4audio.c:block_BytestreamRelease Line | Count | Source | 51 | 96.9k | { | 52 | 96.9k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 96.9k | } |
mpeg4video.c:block_BytestreamRelease Line | Count | Source | 51 | 41.0k | { | 52 | 41.0k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 41.0k | } |
mpegaudio.c:block_BytestreamRelease Line | Count | Source | 51 | 95.0k | { | 52 | 95.0k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 95.0k | } |
mpegvideo.c:block_BytestreamRelease Line | Count | Source | 51 | 99.8k | { | 52 | 99.8k | block_ChainRelease( p_bytestream->p_chain ); | 53 | 99.8k | } |
vc1.c:block_BytestreamRelease Line | Count | Source | 51 | 528 | { | 52 | 528 | block_ChainRelease( p_bytestream->p_chain ); | 53 | 528 | } |
Unexecuted instantiation: av1.c:block_BytestreamRelease mjpeg.c:block_BytestreamRelease Line | Count | Source | 51 | 11 | { | 52 | 11 | block_ChainRelease( p_bytestream->p_chain ); | 53 | 11 | } |
|
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 | 381k | { |
60 | 381k | block_BytestreamRelease( p_bytestream ); |
61 | 381k | block_BytestreamInit( p_bytestream ); |
62 | 381k | } a52.c:block_BytestreamEmpty Line | Count | Source | 59 | 9.49k | { | 60 | 9.49k | block_BytestreamRelease( p_bytestream ); | 61 | 9.49k | block_BytestreamInit( p_bytestream ); | 62 | 9.49k | } |
dts.c:block_BytestreamEmpty Line | Count | Source | 59 | 1.66k | { | 60 | 1.66k | block_BytestreamRelease( p_bytestream ); | 61 | 1.66k | block_BytestreamInit( p_bytestream ); | 62 | 1.66k | } |
flac.c:block_BytestreamEmpty Line | Count | Source | 59 | 17.5k | { | 60 | 17.5k | block_BytestreamRelease( p_bytestream ); | 61 | 17.5k | block_BytestreamInit( p_bytestream ); | 62 | 17.5k | } |
h264.c:block_BytestreamEmpty Line | Count | Source | 59 | 232k | { | 60 | 232k | block_BytestreamRelease( p_bytestream ); | 61 | 232k | block_BytestreamInit( p_bytestream ); | 62 | 232k | } |
hevc.c:block_BytestreamEmpty Line | Count | Source | 59 | 5.03k | { | 60 | 5.03k | block_BytestreamRelease( p_bytestream ); | 61 | 5.03k | block_BytestreamInit( p_bytestream ); | 62 | 5.03k | } |
mlp.c:block_BytestreamEmpty Line | Count | Source | 59 | 4.16k | { | 60 | 4.16k | block_BytestreamRelease( p_bytestream ); | 61 | 4.16k | block_BytestreamInit( p_bytestream ); | 62 | 4.16k | } |
mpeg4audio.c:block_BytestreamEmpty Line | Count | Source | 59 | 8.02k | { | 60 | 8.02k | block_BytestreamRelease( p_bytestream ); | 61 | 8.02k | block_BytestreamInit( p_bytestream ); | 62 | 8.02k | } |
mpeg4video.c:block_BytestreamEmpty Line | Count | Source | 59 | 33.8k | { | 60 | 33.8k | block_BytestreamRelease( p_bytestream ); | 61 | 33.8k | block_BytestreamInit( p_bytestream ); | 62 | 33.8k | } |
mpegaudio.c:block_BytestreamEmpty Line | Count | Source | 59 | 21.0k | { | 60 | 21.0k | block_BytestreamRelease( p_bytestream ); | 61 | 21.0k | block_BytestreamInit( p_bytestream ); | 62 | 21.0k | } |
mpegvideo.c:block_BytestreamEmpty Line | Count | Source | 59 | 48.3k | { | 60 | 48.3k | block_BytestreamRelease( p_bytestream ); | 61 | 48.3k | block_BytestreamInit( p_bytestream ); | 62 | 48.3k | } |
vc1.c:block_BytestreamEmpty Line | Count | Source | 59 | 416 | { | 60 | 416 | block_BytestreamRelease( p_bytestream ); | 61 | 416 | block_BytestreamInit( p_bytestream ); | 62 | 416 | } |
Unexecuted instantiation: av1.c:block_BytestreamEmpty Unexecuted instantiation: mjpeg.c:block_BytestreamEmpty |
63 | | |
64 | | /** |
65 | | * It flushes all already read data from a block_bytestream_t. |
66 | | */ |
67 | | static inline void block_BytestreamFlush( block_bytestream_t *p_bytestream ) |
68 | 29.8M | { |
69 | 29.8M | block_t *block = p_bytestream->p_chain; |
70 | | |
71 | 41.8M | while( block != p_bytestream->p_block ) |
72 | 12.0M | { |
73 | 12.0M | block_t *p_next = block->p_next; |
74 | | |
75 | 12.0M | p_bytestream->i_total -= block->i_buffer; |
76 | 12.0M | p_bytestream->i_base_offset -= block->i_buffer; |
77 | 12.0M | block_Release( block ); |
78 | 12.0M | block = p_next; |
79 | 12.0M | } |
80 | | |
81 | 36.2M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) |
82 | 6.38M | { |
83 | 6.38M | block_t *p_next = block->p_next; |
84 | | |
85 | 6.38M | p_bytestream->i_total -= block->i_buffer; |
86 | 6.38M | block_Release( block ); |
87 | 6.38M | block = p_next; |
88 | 6.38M | p_bytestream->i_block_offset = 0; |
89 | 6.38M | } |
90 | | |
91 | 29.8M | p_bytestream->p_chain = p_bytestream->p_block = block; |
92 | 29.8M | if( p_bytestream->p_chain == NULL ) |
93 | 160k | p_bytestream->pp_last = &p_bytestream->p_chain; |
94 | 29.8M | } a52.c:block_BytestreamFlush Line | Count | Source | 68 | 4.90M | { | 69 | 4.90M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 6.60M | while( block != p_bytestream->p_block ) | 72 | 1.69M | { | 73 | 1.69M | block_t *p_next = block->p_next; | 74 | | | 75 | 1.69M | p_bytestream->i_total -= block->i_buffer; | 76 | 1.69M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.69M | block_Release( block ); | 78 | 1.69M | block = p_next; | 79 | 1.69M | } | 80 | | | 81 | 6.79M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 1.89M | { | 83 | 1.89M | block_t *p_next = block->p_next; | 84 | | | 85 | 1.89M | p_bytestream->i_total -= block->i_buffer; | 86 | 1.89M | block_Release( block ); | 87 | 1.89M | block = p_next; | 88 | 1.89M | p_bytestream->i_block_offset = 0; | 89 | 1.89M | } | 90 | | | 91 | 4.90M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 4.90M | if( p_bytestream->p_chain == NULL ) | 93 | 41.8k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 4.90M | } |
dts.c:block_BytestreamFlush Line | Count | Source | 68 | 1.37M | { | 69 | 1.37M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 3.65M | while( block != p_bytestream->p_block ) | 72 | 2.27M | { | 73 | 2.27M | block_t *p_next = block->p_next; | 74 | | | 75 | 2.27M | p_bytestream->i_total -= block->i_buffer; | 76 | 2.27M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 2.27M | block_Release( block ); | 78 | 2.27M | block = p_next; | 79 | 2.27M | } | 80 | | | 81 | 1.69M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 315k | { | 83 | 315k | block_t *p_next = block->p_next; | 84 | | | 85 | 315k | p_bytestream->i_total -= block->i_buffer; | 86 | 315k | block_Release( block ); | 87 | 315k | block = p_next; | 88 | 315k | p_bytestream->i_block_offset = 0; | 89 | 315k | } | 90 | | | 91 | 1.37M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 1.37M | if( p_bytestream->p_chain == NULL ) | 93 | 3.31k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 1.37M | } |
flac.c:block_BytestreamFlush Line | Count | Source | 68 | 1.65M | { | 69 | 1.65M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 1.71M | while( block != p_bytestream->p_block ) | 72 | 63.1k | { | 73 | 63.1k | block_t *p_next = block->p_next; | 74 | | | 75 | 63.1k | p_bytestream->i_total -= block->i_buffer; | 76 | 63.1k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 63.1k | block_Release( block ); | 78 | 63.1k | block = p_next; | 79 | 63.1k | } | 80 | | | 81 | 1.72M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 74.3k | { | 83 | 74.3k | block_t *p_next = block->p_next; | 84 | | | 85 | 74.3k | p_bytestream->i_total -= block->i_buffer; | 86 | 74.3k | block_Release( block ); | 87 | 74.3k | block = p_next; | 88 | 74.3k | p_bytestream->i_block_offset = 0; | 89 | 74.3k | } | 90 | | | 91 | 1.65M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 1.65M | if( p_bytestream->p_chain == NULL ) | 93 | 24.7k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 1.65M | } |
h264.c:block_BytestreamFlush Line | Count | Source | 68 | 3.01M | { | 69 | 3.01M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 3.23M | while( block != p_bytestream->p_block ) | 72 | 221k | { | 73 | 221k | block_t *p_next = block->p_next; | 74 | | | 75 | 221k | p_bytestream->i_total -= block->i_buffer; | 76 | 221k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 221k | block_Release( block ); | 78 | 221k | block = p_next; | 79 | 221k | } | 80 | | | 81 | 3.04M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 28.7k | { | 83 | 28.7k | block_t *p_next = block->p_next; | 84 | | | 85 | 28.7k | p_bytestream->i_total -= block->i_buffer; | 86 | 28.7k | block_Release( block ); | 87 | 28.7k | block = p_next; | 88 | 28.7k | p_bytestream->i_block_offset = 0; | 89 | 28.7k | } | 90 | | | 91 | 3.01M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 3.01M | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 3.01M | } |
hevc.c:block_BytestreamFlush Line | Count | Source | 68 | 6.78M | { | 69 | 6.78M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 8.17M | while( block != p_bytestream->p_block ) | 72 | 1.38M | { | 73 | 1.38M | block_t *p_next = block->p_next; | 74 | | | 75 | 1.38M | p_bytestream->i_total -= block->i_buffer; | 76 | 1.38M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 1.38M | block_Release( block ); | 78 | 1.38M | block = p_next; | 79 | 1.38M | } | 80 | | | 81 | 6.78M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 2.42k | { | 83 | 2.42k | block_t *p_next = block->p_next; | 84 | | | 85 | 2.42k | p_bytestream->i_total -= block->i_buffer; | 86 | 2.42k | block_Release( block ); | 87 | 2.42k | block = p_next; | 88 | 2.42k | p_bytestream->i_block_offset = 0; | 89 | 2.42k | } | 90 | | | 91 | 6.78M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 6.78M | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 6.78M | } |
mlp.c:block_BytestreamFlush Line | Count | Source | 68 | 405k | { | 69 | 405k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 440k | while( block != p_bytestream->p_block ) | 72 | 35.1k | { | 73 | 35.1k | block_t *p_next = block->p_next; | 74 | | | 75 | 35.1k | p_bytestream->i_total -= block->i_buffer; | 76 | 35.1k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 35.1k | block_Release( block ); | 78 | 35.1k | block = p_next; | 79 | 35.1k | } | 80 | | | 81 | 587k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 182k | { | 83 | 182k | block_t *p_next = block->p_next; | 84 | | | 85 | 182k | p_bytestream->i_total -= block->i_buffer; | 86 | 182k | block_Release( block ); | 87 | 182k | block = p_next; | 88 | 182k | p_bytestream->i_block_offset = 0; | 89 | 182k | } | 90 | | | 91 | 405k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 405k | if( p_bytestream->p_chain == NULL ) | 93 | 540 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 405k | } |
mpeg4audio.c:block_BytestreamFlush Line | Count | Source | 68 | 34.8k | { | 69 | 34.8k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 76.0k | while( block != p_bytestream->p_block ) | 72 | 41.2k | { | 73 | 41.2k | block_t *p_next = block->p_next; | 74 | | | 75 | 41.2k | p_bytestream->i_total -= block->i_buffer; | 76 | 41.2k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 41.2k | block_Release( block ); | 78 | 41.2k | block = p_next; | 79 | 41.2k | } | 80 | | | 81 | 36.6k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 1.82k | { | 83 | 1.82k | block_t *p_next = block->p_next; | 84 | | | 85 | 1.82k | p_bytestream->i_total -= block->i_buffer; | 86 | 1.82k | block_Release( block ); | 87 | 1.82k | block = p_next; | 88 | 1.82k | p_bytestream->i_block_offset = 0; | 89 | 1.82k | } | 90 | | | 91 | 34.8k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 34.8k | if( p_bytestream->p_chain == NULL ) | 93 | 11.8k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 34.8k | } |
mpeg4video.c:block_BytestreamFlush Line | Count | Source | 68 | 455k | { | 69 | 455k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 494k | while( block != p_bytestream->p_block ) | 72 | 39.0k | { | 73 | 39.0k | block_t *p_next = block->p_next; | 74 | | | 75 | 39.0k | p_bytestream->i_total -= block->i_buffer; | 76 | 39.0k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 39.0k | block_Release( block ); | 78 | 39.0k | block = p_next; | 79 | 39.0k | } | 80 | | | 81 | 456k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 1.07k | { | 83 | 1.07k | block_t *p_next = block->p_next; | 84 | | | 85 | 1.07k | p_bytestream->i_total -= block->i_buffer; | 86 | 1.07k | block_Release( block ); | 87 | 1.07k | block = p_next; | 88 | 1.07k | p_bytestream->i_block_offset = 0; | 89 | 1.07k | } | 90 | | | 91 | 455k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 455k | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 455k | } |
mpegaudio.c:block_BytestreamFlush Line | Count | Source | 68 | 9.96M | { | 69 | 9.96M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 15.9M | while( block != p_bytestream->p_block ) | 72 | 6.03M | { | 73 | 6.03M | block_t *p_next = block->p_next; | 74 | | | 75 | 6.03M | p_bytestream->i_total -= block->i_buffer; | 76 | 6.03M | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 6.03M | block_Release( block ); | 78 | 6.03M | block = p_next; | 79 | 6.03M | } | 80 | | | 81 | 13.8M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 3.86M | { | 83 | 3.86M | block_t *p_next = block->p_next; | 84 | | | 85 | 3.86M | p_bytestream->i_total -= block->i_buffer; | 86 | 3.86M | block_Release( block ); | 87 | 3.86M | block = p_next; | 88 | 3.86M | p_bytestream->i_block_offset = 0; | 89 | 3.86M | } | 90 | | | 91 | 9.96M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 9.96M | if( p_bytestream->p_chain == NULL ) | 93 | 78.5k | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 9.96M | } |
mpegvideo.c:block_BytestreamFlush Line | Count | Source | 68 | 1.07M | { | 69 | 1.07M | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 1.29M | while( block != p_bytestream->p_block ) | 72 | 212k | { | 73 | 212k | block_t *p_next = block->p_next; | 74 | | | 75 | 212k | p_bytestream->i_total -= block->i_buffer; | 76 | 212k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 212k | block_Release( block ); | 78 | 212k | block = p_next; | 79 | 212k | } | 80 | | | 81 | 1.08M | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 5.92k | { | 83 | 5.92k | block_t *p_next = block->p_next; | 84 | | | 85 | 5.92k | p_bytestream->i_total -= block->i_buffer; | 86 | 5.92k | block_Release( block ); | 87 | 5.92k | block = p_next; | 88 | 5.92k | p_bytestream->i_block_offset = 0; | 89 | 5.92k | } | 90 | | | 91 | 1.07M | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 1.07M | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 1.07M | } |
vc1.c:block_BytestreamFlush Line | Count | Source | 68 | 180k | { | 69 | 180k | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 183k | while( block != p_bytestream->p_block ) | 72 | 2.41k | { | 73 | 2.41k | block_t *p_next = block->p_next; | 74 | | | 75 | 2.41k | p_bytestream->i_total -= block->i_buffer; | 76 | 2.41k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 2.41k | block_Release( block ); | 78 | 2.41k | block = p_next; | 79 | 2.41k | } | 80 | | | 81 | 199k | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 18.8k | { | 83 | 18.8k | block_t *p_next = block->p_next; | 84 | | | 85 | 18.8k | p_bytestream->i_total -= block->i_buffer; | 86 | 18.8k | block_Release( block ); | 87 | 18.8k | block = p_next; | 88 | 18.8k | p_bytestream->i_block_offset = 0; | 89 | 18.8k | } | 90 | | | 91 | 180k | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 180k | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 180k | } |
Unexecuted instantiation: av1.c:block_BytestreamFlush mjpeg.c:block_BytestreamFlush Line | Count | Source | 68 | 377 | { | 69 | 377 | block_t *block = p_bytestream->p_chain; | 70 | | | 71 | 10.5k | while( block != p_bytestream->p_block ) | 72 | 10.1k | { | 73 | 10.1k | block_t *p_next = block->p_next; | 74 | | | 75 | 10.1k | p_bytestream->i_total -= block->i_buffer; | 76 | 10.1k | p_bytestream->i_base_offset -= block->i_buffer; | 77 | 10.1k | block_Release( block ); | 78 | 10.1k | block = p_next; | 79 | 10.1k | } | 80 | | | 81 | 377 | while( block != NULL && block->i_buffer == p_bytestream->i_block_offset ) | 82 | 0 | { | 83 | 0 | block_t *p_next = block->p_next; | 84 | |
| 85 | 0 | p_bytestream->i_total -= block->i_buffer; | 86 | 0 | block_Release( block ); | 87 | 0 | block = p_next; | 88 | 0 | p_bytestream->i_block_offset = 0; | 89 | 0 | } | 90 | | | 91 | 377 | p_bytestream->p_chain = p_bytestream->p_block = block; | 92 | 377 | if( p_bytestream->p_chain == NULL ) | 93 | 0 | p_bytestream->pp_last = &p_bytestream->p_chain; | 94 | 377 | } |
|
95 | | |
96 | | static inline void block_BytestreamPush( block_bytestream_t *p_bytestream, |
97 | | block_t *p_block ) |
98 | 36.6M | { |
99 | 36.6M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); |
100 | 36.6M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; |
101 | 73.3M | for( ; p_block; p_block = p_block->p_next ) |
102 | 36.6M | p_bytestream->i_total += p_block->i_buffer; |
103 | 36.6M | } a52.c:block_BytestreamPush Line | Count | Source | 98 | 7.57M | { | 99 | 7.57M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 7.57M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 15.1M | for( ; p_block; p_block = p_block->p_next ) | 102 | 7.57M | p_bytestream->i_total += p_block->i_buffer; | 103 | 7.57M | } |
dts.c:block_BytestreamPush Line | Count | Source | 98 | 3.27M | { | 99 | 3.27M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 3.27M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 6.54M | for( ; p_block; p_block = p_block->p_next ) | 102 | 3.27M | p_bytestream->i_total += p_block->i_buffer; | 103 | 3.27M | } |
flac.c:block_BytestreamPush Line | Count | Source | 98 | 270k | { | 99 | 270k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 270k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 541k | for( ; p_block; p_block = p_block->p_next ) | 102 | 270k | p_bytestream->i_total += p_block->i_buffer; | 103 | 270k | } |
h264.c:block_BytestreamPush Line | Count | Source | 98 | 865k | { | 99 | 865k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 865k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 1.73M | for( ; p_block; p_block = p_block->p_next ) | 102 | 865k | p_bytestream->i_total += p_block->i_buffer; | 103 | 865k | } |
hevc.c:block_BytestreamPush Line | Count | Source | 98 | 4.08M | { | 99 | 4.08M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 4.08M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 8.16M | for( ; p_block; p_block = p_block->p_next ) | 102 | 4.08M | p_bytestream->i_total += p_block->i_buffer; | 103 | 4.08M | } |
mlp.c:block_BytestreamPush Line | Count | Source | 98 | 618k | { | 99 | 618k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 618k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 1.23M | for( ; p_block; p_block = p_block->p_next ) | 102 | 618k | p_bytestream->i_total += p_block->i_buffer; | 103 | 618k | } |
mpeg4audio.c:block_BytestreamPush Line | Count | Source | 98 | 83.5k | { | 99 | 83.5k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 83.5k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 167k | for( ; p_block; p_block = p_block->p_next ) | 102 | 83.5k | p_bytestream->i_total += p_block->i_buffer; | 103 | 83.5k | } |
mpeg4video.c:block_BytestreamPush Line | Count | Source | 98 | 93.4k | { | 99 | 93.4k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 93.4k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 186k | for( ; p_block; p_block = p_block->p_next ) | 102 | 93.4k | p_bytestream->i_total += p_block->i_buffer; | 103 | 93.4k | } |
mpegaudio.c:block_BytestreamPush Line | Count | Source | 98 | 19.2M | { | 99 | 19.2M | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 19.2M | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 38.4M | for( ; p_block; p_block = p_block->p_next ) | 102 | 19.2M | p_bytestream->i_total += p_block->i_buffer; | 103 | 19.2M | } |
mpegvideo.c:block_BytestreamPush Line | Count | Source | 98 | 526k | { | 99 | 526k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 526k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 1.05M | for( ; p_block; p_block = p_block->p_next ) | 102 | 526k | p_bytestream->i_total += p_block->i_buffer; | 103 | 526k | } |
vc1.c:block_BytestreamPush Line | Count | Source | 98 | 38.3k | { | 99 | 38.3k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 38.3k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 76.6k | for( ; p_block; p_block = p_block->p_next ) | 102 | 38.3k | p_bytestream->i_total += p_block->i_buffer; | 103 | 38.3k | } |
Unexecuted instantiation: av1.c:block_BytestreamPush mjpeg.c:block_BytestreamPush Line | Count | Source | 98 | 11.0k | { | 99 | 11.0k | block_ChainLastAppend( &p_bytestream->pp_last, p_block ); | 100 | 11.0k | if( !p_bytestream->p_block ) p_bytestream->p_block = p_block; | 101 | 22.0k | for( ; p_block; p_block = p_block->p_next ) | 102 | 11.0k | p_bytestream->i_total += p_block->i_buffer; | 103 | 11.0k | } |
|
104 | | |
105 | | static inline size_t block_BytestreamRemaining( const block_bytestream_t *p_bytestream ) |
106 | 1.69G | { |
107 | 1.69G | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? |
108 | 1.69G | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; |
109 | 1.69G | } a52.c:block_BytestreamRemaining Line | Count | Source | 106 | 157M | { | 107 | 157M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 157M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 157M | } |
dts.c:block_BytestreamRemaining Line | Count | Source | 106 | 194M | { | 107 | 194M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 194M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 194M | } |
flac.c:block_BytestreamRemaining Line | Count | Source | 106 | 39.1M | { | 107 | 39.1M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 39.1M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 39.1M | } |
h264.c:block_BytestreamRemaining Line | Count | Source | 106 | 2.84M | { | 107 | 2.84M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 2.83M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 2.84M | } |
hevc.c:block_BytestreamRemaining Line | Count | Source | 106 | 4.15M | { | 107 | 4.15M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 4.15M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 4.15M | } |
mlp.c:block_BytestreamRemaining Line | Count | Source | 106 | 44.6M | { | 107 | 44.6M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 44.6M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 44.6M | } |
mpeg4audio.c:block_BytestreamRemaining Line | Count | Source | 106 | 29.2M | { | 107 | 29.2M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 29.2M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 29.2M | } |
mpeg4video.c:block_BytestreamRemaining Line | Count | Source | 106 | 477k | { | 107 | 477k | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 477k | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 477k | } |
mpegaudio.c:block_BytestreamRemaining Line | Count | Source | 106 | 1.21G | { | 107 | 1.21G | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 1.21G | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 1.21G | } |
mpegvideo.c:block_BytestreamRemaining Line | Count | Source | 106 | 1.04M | { | 107 | 1.04M | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 1.04M | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 1.04M | } |
vc1.c:block_BytestreamRemaining Line | Count | Source | 106 | 165k | { | 107 | 165k | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 165k | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 165k | } |
Unexecuted instantiation: av1.c:block_BytestreamRemaining mjpeg.c:block_BytestreamRemaining Line | Count | Source | 106 | 227 | { | 107 | 227 | return ( p_bytestream->i_total > p_bytestream->i_base_offset + p_bytestream->i_block_offset ) ? | 108 | 227 | p_bytestream->i_total - p_bytestream->i_base_offset - p_bytestream->i_block_offset : 0; | 109 | 227 | } |
|
110 | | |
111 | | VLC_USED |
112 | | static inline block_t *block_BytestreamPop( block_bytestream_t *p_bytestream ) |
113 | 17.0M | { |
114 | 17.0M | block_t *p_block; |
115 | | |
116 | 17.0M | block_BytestreamFlush( p_bytestream ); |
117 | | |
118 | 17.0M | p_block = p_bytestream->p_block; |
119 | 17.0M | if( unlikely( p_block == NULL ) ) |
120 | 22.3k | { |
121 | 22.3k | return NULL; |
122 | 22.3k | } |
123 | 17.0M | else if( !p_block->p_next ) |
124 | 10.3M | { |
125 | 10.3M | p_block->p_buffer += p_bytestream->i_block_offset; |
126 | 10.3M | p_block->i_buffer -= p_bytestream->i_block_offset; |
127 | 10.3M | p_bytestream->i_block_offset = 0; |
128 | 10.3M | p_bytestream->i_total = 0; |
129 | 10.3M | p_bytestream->p_chain = p_bytestream->p_block = NULL; |
130 | 10.3M | p_bytestream->pp_last = &p_bytestream->p_chain; |
131 | 10.3M | return p_block; |
132 | 10.3M | } |
133 | | |
134 | 138M | while( p_block->p_next && p_block->p_next->p_next ) |
135 | 131M | p_block = p_block->p_next; |
136 | | |
137 | 6.67M | block_t *p_block_old = p_block; |
138 | 6.67M | p_block = p_block->p_next; |
139 | 6.67M | p_block_old->p_next = NULL; |
140 | 6.67M | p_bytestream->pp_last = &p_block_old->p_next; |
141 | 6.67M | if( p_block ) |
142 | 6.67M | p_bytestream->i_total -= p_block->i_buffer; |
143 | | |
144 | 6.67M | return p_block; |
145 | 17.0M | } a52.c:block_BytestreamPop Line | Count | Source | 113 | 3.91M | { | 114 | 3.91M | block_t *p_block; | 115 | | | 116 | 3.91M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 3.91M | p_block = p_bytestream->p_block; | 119 | 3.91M | if( unlikely( p_block == NULL ) ) | 120 | 16.3k | { | 121 | 16.3k | return NULL; | 122 | 16.3k | } | 123 | 3.89M | else if( !p_block->p_next ) | 124 | 1.51M | { | 125 | 1.51M | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 1.51M | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 1.51M | p_bytestream->i_block_offset = 0; | 128 | 1.51M | p_bytestream->i_total = 0; | 129 | 1.51M | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 1.51M | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 1.51M | return p_block; | 132 | 1.51M | } | 133 | | | 134 | 62.4M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 60.0M | p_block = p_block->p_next; | 136 | | | 137 | 2.37M | block_t *p_block_old = p_block; | 138 | 2.37M | p_block = p_block->p_next; | 139 | 2.37M | p_block_old->p_next = NULL; | 140 | 2.37M | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 2.37M | if( p_block ) | 142 | 2.37M | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 2.37M | return p_block; | 145 | 3.91M | } |
dts.c:block_BytestreamPop Line | Count | Source | 113 | 332k | { | 114 | 332k | block_t *p_block; | 115 | | | 116 | 332k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 332k | p_block = p_bytestream->p_block; | 119 | 332k | if( unlikely( p_block == NULL ) ) | 120 | 941 | { | 121 | 941 | return NULL; | 122 | 941 | } | 123 | 331k | else if( !p_block->p_next ) | 124 | 298k | { | 125 | 298k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 298k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 298k | p_bytestream->i_block_offset = 0; | 128 | 298k | p_bytestream->i_total = 0; | 129 | 298k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 298k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 298k | return p_block; | 132 | 298k | } | 133 | | | 134 | 190k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 157k | p_block = p_block->p_next; | 136 | | | 137 | 33.1k | block_t *p_block_old = p_block; | 138 | 33.1k | p_block = p_block->p_next; | 139 | 33.1k | p_block_old->p_next = NULL; | 140 | 33.1k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 33.1k | if( p_block ) | 142 | 33.1k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 33.1k | return p_block; | 145 | 332k | } |
flac.c:block_BytestreamPop Line | Count | Source | 113 | 100k | { | 114 | 100k | block_t *p_block; | 115 | | | 116 | 100k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 100k | p_block = p_bytestream->p_block; | 119 | 100k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 100k | else if( !p_block->p_next ) | 124 | 84.6k | { | 125 | 84.6k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 84.6k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 84.6k | p_bytestream->i_block_offset = 0; | 128 | 84.6k | p_bytestream->i_total = 0; | 129 | 84.6k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 84.6k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 84.6k | return p_block; | 132 | 84.6k | } | 133 | | | 134 | 435k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 419k | p_block = p_block->p_next; | 136 | | | 137 | 15.6k | block_t *p_block_old = p_block; | 138 | 15.6k | p_block = p_block->p_next; | 139 | 15.6k | p_block_old->p_next = NULL; | 140 | 15.6k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 15.6k | if( p_block ) | 142 | 15.6k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 15.6k | return p_block; | 145 | 100k | } |
h264.c:block_BytestreamPop Line | Count | Source | 113 | 346k | { | 114 | 346k | block_t *p_block; | 115 | | | 116 | 346k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 346k | p_block = p_bytestream->p_block; | 119 | 346k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 346k | else if( !p_block->p_next ) | 124 | 328k | { | 125 | 328k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 328k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 328k | p_bytestream->i_block_offset = 0; | 128 | 328k | p_bytestream->i_total = 0; | 129 | 328k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 328k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 328k | return p_block; | 132 | 328k | } | 133 | | | 134 | 162k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 145k | p_block = p_block->p_next; | 136 | | | 137 | 17.8k | block_t *p_block_old = p_block; | 138 | 17.8k | p_block = p_block->p_next; | 139 | 17.8k | p_block_old->p_next = NULL; | 140 | 17.8k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 17.8k | if( p_block ) | 142 | 17.8k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 17.8k | return p_block; | 145 | 346k | } |
hevc.c:block_BytestreamPop Line | Count | Source | 113 | 2.65M | { | 114 | 2.65M | block_t *p_block; | 115 | | | 116 | 2.65M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 2.65M | p_block = p_bytestream->p_block; | 119 | 2.65M | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 2.65M | else if( !p_block->p_next ) | 124 | 2.63M | { | 125 | 2.63M | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 2.63M | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 2.63M | p_bytestream->i_block_offset = 0; | 128 | 2.63M | p_bytestream->i_total = 0; | 129 | 2.63M | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 2.63M | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 2.63M | return p_block; | 132 | 2.63M | } | 133 | | | 134 | 225k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 205k | p_block = p_block->p_next; | 136 | | | 137 | 19.5k | block_t *p_block_old = p_block; | 138 | 19.5k | p_block = p_block->p_next; | 139 | 19.5k | p_block_old->p_next = NULL; | 140 | 19.5k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 19.5k | if( p_block ) | 142 | 19.5k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 19.5k | return p_block; | 145 | 2.65M | } |
mlp.c:block_BytestreamPop Line | Count | Source | 113 | 384k | { | 114 | 384k | block_t *p_block; | 115 | | | 116 | 384k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 384k | p_block = p_bytestream->p_block; | 119 | 384k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 384k | else if( !p_block->p_next ) | 124 | 158k | { | 125 | 158k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 158k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 158k | p_bytestream->i_block_offset = 0; | 128 | 158k | p_bytestream->i_total = 0; | 129 | 158k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 158k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 158k | return p_block; | 132 | 158k | } | 133 | | | 134 | 1.46M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 1.24M | p_block = p_block->p_next; | 136 | | | 137 | 225k | block_t *p_block_old = p_block; | 138 | 225k | p_block = p_block->p_next; | 139 | 225k | p_block_old->p_next = NULL; | 140 | 225k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 225k | if( p_block ) | 142 | 225k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 225k | return p_block; | 145 | 384k | } |
mpeg4audio.c:block_BytestreamPop Line | Count | Source | 113 | 2.40k | { | 114 | 2.40k | block_t *p_block; | 115 | | | 116 | 2.40k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 2.40k | p_block = p_bytestream->p_block; | 119 | 2.40k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 2.40k | else if( !p_block->p_next ) | 124 | 2.01k | { | 125 | 2.01k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 2.01k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 2.01k | p_bytestream->i_block_offset = 0; | 128 | 2.01k | p_bytestream->i_total = 0; | 129 | 2.01k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 2.01k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 2.01k | return p_block; | 132 | 2.01k | } | 133 | | | 134 | 2.10k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 1.71k | p_block = p_block->p_next; | 136 | | | 137 | 388 | block_t *p_block_old = p_block; | 138 | 388 | p_block = p_block->p_next; | 139 | 388 | p_block_old->p_next = NULL; | 140 | 388 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 388 | if( p_block ) | 142 | 388 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 388 | return p_block; | 145 | 2.40k | } |
mpeg4video.c:block_BytestreamPop Line | Count | Source | 113 | 9.74k | { | 114 | 9.74k | block_t *p_block; | 115 | | | 116 | 9.74k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 9.74k | p_block = p_bytestream->p_block; | 119 | 9.74k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 9.74k | else if( !p_block->p_next ) | 124 | 9.10k | { | 125 | 9.10k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 9.10k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 9.10k | p_bytestream->i_block_offset = 0; | 128 | 9.10k | p_bytestream->i_total = 0; | 129 | 9.10k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 9.10k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 9.10k | return p_block; | 132 | 9.10k | } | 133 | | | 134 | 672 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 31 | p_block = p_block->p_next; | 136 | | | 137 | 641 | block_t *p_block_old = p_block; | 138 | 641 | p_block = p_block->p_next; | 139 | 641 | p_block_old->p_next = NULL; | 140 | 641 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 641 | if( p_block ) | 142 | 641 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 641 | return p_block; | 145 | 9.74k | } |
mpegaudio.c:block_BytestreamPop Line | Count | Source | 113 | 9.23M | { | 114 | 9.23M | block_t *p_block; | 115 | | | 116 | 9.23M | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 9.23M | p_block = p_bytestream->p_block; | 119 | 9.23M | if( unlikely( p_block == NULL ) ) | 120 | 5.01k | { | 121 | 5.01k | return NULL; | 122 | 5.01k | } | 123 | 9.22M | else if( !p_block->p_next ) | 124 | 5.24M | { | 125 | 5.24M | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 5.24M | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 5.24M | p_bytestream->i_block_offset = 0; | 128 | 5.24M | p_bytestream->i_total = 0; | 129 | 5.24M | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 5.24M | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 5.24M | return p_block; | 132 | 5.24M | } | 133 | | | 134 | 73.6M | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 69.6M | p_block = p_block->p_next; | 136 | | | 137 | 3.97M | block_t *p_block_old = p_block; | 138 | 3.97M | p_block = p_block->p_next; | 139 | 3.97M | p_block_old->p_next = NULL; | 140 | 3.97M | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 3.97M | if( p_block ) | 142 | 3.97M | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 3.97M | return p_block; | 145 | 9.23M | } |
mpegvideo.c:block_BytestreamPop Line | Count | Source | 113 | 80.9k | { | 114 | 80.9k | block_t *p_block; | 115 | | | 116 | 80.9k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 80.9k | p_block = p_bytestream->p_block; | 119 | 80.9k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 80.9k | else if( !p_block->p_next ) | 124 | 73.8k | { | 125 | 73.8k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 73.8k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 73.8k | p_bytestream->i_block_offset = 0; | 128 | 73.8k | p_bytestream->i_total = 0; | 129 | 73.8k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 73.8k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 73.8k | return p_block; | 132 | 73.8k | } | 133 | | | 134 | 26.8k | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 19.6k | p_block = p_block->p_next; | 136 | | | 137 | 7.12k | block_t *p_block_old = p_block; | 138 | 7.12k | p_block = p_block->p_next; | 139 | 7.12k | p_block_old->p_next = NULL; | 140 | 7.12k | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 7.12k | if( p_block ) | 142 | 7.12k | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 7.12k | return p_block; | 145 | 80.9k | } |
vc1.c:block_BytestreamPop Line | Count | Source | 113 | 15.5k | { | 114 | 15.5k | block_t *p_block; | 115 | | | 116 | 15.5k | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 15.5k | p_block = p_bytestream->p_block; | 119 | 15.5k | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 15.5k | else if( !p_block->p_next ) | 124 | 15.0k | { | 125 | 15.0k | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 15.0k | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 15.0k | p_bytestream->i_block_offset = 0; | 128 | 15.0k | p_bytestream->i_total = 0; | 129 | 15.0k | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 15.0k | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 15.0k | return p_block; | 132 | 15.0k | } | 133 | | | 134 | 568 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 33 | p_block = p_block->p_next; | 136 | | | 137 | 535 | block_t *p_block_old = p_block; | 138 | 535 | p_block = p_block->p_next; | 139 | 535 | p_block_old->p_next = NULL; | 140 | 535 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 535 | if( p_block ) | 142 | 535 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 535 | return p_block; | 145 | 15.5k | } |
Unexecuted instantiation: av1.c:block_BytestreamPop mjpeg.c:block_BytestreamPop Line | Count | Source | 113 | 159 | { | 114 | 159 | block_t *p_block; | 115 | | | 116 | 159 | block_BytestreamFlush( p_bytestream ); | 117 | | | 118 | 159 | p_block = p_bytestream->p_block; | 119 | 159 | if( unlikely( p_block == NULL ) ) | 120 | 0 | { | 121 | 0 | return NULL; | 122 | 0 | } | 123 | 159 | else if( !p_block->p_next ) | 124 | 149 | { | 125 | 149 | p_block->p_buffer += p_bytestream->i_block_offset; | 126 | 149 | p_block->i_buffer -= p_bytestream->i_block_offset; | 127 | 149 | p_bytestream->i_block_offset = 0; | 128 | 149 | p_bytestream->i_total = 0; | 129 | 149 | p_bytestream->p_chain = p_bytestream->p_block = NULL; | 130 | 149 | p_bytestream->pp_last = &p_bytestream->p_chain; | 131 | 149 | return p_block; | 132 | 149 | } | 133 | | | 134 | 10 | while( p_block->p_next && p_block->p_next->p_next ) | 135 | 0 | p_block = p_block->p_next; | 136 | | | 137 | 10 | block_t *p_block_old = p_block; | 138 | 10 | p_block = p_block->p_next; | 139 | 10 | p_block_old->p_next = NULL; | 140 | 10 | p_bytestream->pp_last = &p_block_old->p_next; | 141 | 10 | if( p_block ) | 142 | 10 | p_bytestream->i_total -= p_block->i_buffer; | 143 | | | 144 | 10 | return p_block; | 145 | 159 | } |
|
146 | | |
147 | | static inline int block_WaitBytes( block_bytestream_t *p_bytestream, |
148 | | size_t i_data ) |
149 | 13.9M | { |
150 | 13.9M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) |
151 | 13.8M | return VLC_SUCCESS; |
152 | 38.5k | return VLC_EGENERIC; |
153 | 13.9M | } Line | Count | Source | 149 | 4.00M | { | 150 | 4.00M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 3.97M | return VLC_SUCCESS; | 152 | 31.3k | return VLC_EGENERIC; | 153 | 4.00M | } |
Line | Count | Source | 149 | 343k | { | 150 | 343k | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 337k | return VLC_SUCCESS; | 152 | 5.77k | return VLC_EGENERIC; | 153 | 343k | } |
Unexecuted instantiation: flac.c:block_WaitBytes Unexecuted instantiation: h264.c:block_WaitBytes Unexecuted instantiation: hevc.c:block_WaitBytes Line | Count | Source | 149 | 390k | { | 150 | 390k | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 389k | return VLC_SUCCESS; | 152 | 1.40k | return VLC_EGENERIC; | 153 | 390k | } |
Unexecuted instantiation: mpeg4audio.c:block_WaitBytes Unexecuted instantiation: mpeg4video.c:block_WaitBytes mpegaudio.c:block_WaitBytes Line | Count | Source | 149 | 9.19M | { | 150 | 9.19M | if( block_BytestreamRemaining( p_bytestream ) >= i_data ) | 151 | 9.19M | return VLC_SUCCESS; | 152 | 0 | return VLC_EGENERIC; | 153 | 9.19M | } |
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 | 419M | { |
158 | 419M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) |
159 | 2.90M | return VLC_EGENERIC; |
160 | | |
161 | | /* Copy the data */ |
162 | 416M | size_t i_offset = p_bytestream->i_block_offset; |
163 | 416M | size_t i_size = i_data; |
164 | 416M | for( block_t *p_block = p_bytestream->p_block; |
165 | 443M | p_block != NULL; p_block = p_block->p_next ) |
166 | 443M | { |
167 | 443M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
168 | 443M | i_size -= i_copy; |
169 | | |
170 | 443M | if( i_copy ) |
171 | 438M | { |
172 | 438M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
173 | 438M | p_data += i_copy; |
174 | 438M | } |
175 | | |
176 | 443M | i_offset = 0; |
177 | | |
178 | 443M | if( !i_size ) break; |
179 | 443M | } |
180 | | |
181 | 416M | return VLC_SUCCESS; |
182 | 419M | } Line | Count | Source | 157 | 76.9M | { | 158 | 76.9M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 1.01M | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 75.8M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 75.8M | size_t i_size = i_data; | 164 | 75.8M | for( block_t *p_block = p_bytestream->p_block; | 165 | 78.4M | p_block != NULL; p_block = p_block->p_next ) | 166 | 78.4M | { | 167 | 78.4M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 78.4M | i_size -= i_copy; | 169 | | | 170 | 78.4M | if( i_copy ) | 171 | 77.2M | { | 172 | 77.2M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 77.2M | p_data += i_copy; | 174 | 77.2M | } | 175 | | | 176 | 78.4M | i_offset = 0; | 177 | | | 178 | 78.4M | if( !i_size ) break; | 179 | 78.4M | } | 180 | | | 181 | 75.8M | return VLC_SUCCESS; | 182 | 76.9M | } |
Line | Count | Source | 157 | 77.7M | { | 158 | 77.7M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 1.07M | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 76.7M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 76.7M | size_t i_size = i_data; | 164 | 76.7M | for( block_t *p_block = p_bytestream->p_block; | 165 | 92.0M | p_block != NULL; p_block = p_block->p_next ) | 166 | 92.0M | { | 167 | 92.0M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 92.0M | i_size -= i_copy; | 169 | | | 170 | 92.0M | if( i_copy ) | 171 | 89.4M | { | 172 | 89.4M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 89.4M | p_data += i_copy; | 174 | 89.4M | } | 175 | | | 176 | 92.0M | i_offset = 0; | 177 | | | 178 | 92.0M | if( !i_size ) break; | 179 | 92.0M | } | 180 | | | 181 | 76.7M | return VLC_SUCCESS; | 182 | 77.7M | } |
Line | Count | Source | 157 | 1.31M | { | 158 | 1.31M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 9.52k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 1.30M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 1.30M | size_t i_size = i_data; | 164 | 1.30M | for( block_t *p_block = p_bytestream->p_block; | 165 | 1.32M | p_block != NULL; p_block = p_block->p_next ) | 166 | 1.32M | { | 167 | 1.32M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 1.32M | i_size -= i_copy; | 169 | | | 170 | 1.32M | if( i_copy ) | 171 | 1.32M | { | 172 | 1.32M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 1.32M | p_data += i_copy; | 174 | 1.32M | } | 175 | | | 176 | 1.32M | i_offset = 0; | 177 | | | 178 | 1.32M | if( !i_size ) break; | 179 | 1.32M | } | 180 | | | 181 | 1.30M | return VLC_SUCCESS; | 182 | 1.31M | } |
Unexecuted instantiation: h264.c:block_PeekBytes Unexecuted instantiation: hevc.c:block_PeekBytes Line | Count | Source | 157 | 22.0M | { | 158 | 22.0M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 21.4k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 21.9M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 21.9M | size_t i_size = i_data; | 164 | 21.9M | for( block_t *p_block = p_bytestream->p_block; | 165 | 26.6M | p_block != NULL; p_block = p_block->p_next ) | 166 | 26.6M | { | 167 | 26.6M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 26.6M | i_size -= i_copy; | 169 | | | 170 | 26.6M | if( i_copy ) | 171 | 26.4M | { | 172 | 26.4M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 26.4M | p_data += i_copy; | 174 | 26.4M | } | 175 | | | 176 | 26.6M | i_offset = 0; | 177 | | | 178 | 26.6M | if( !i_size ) break; | 179 | 26.6M | } | 180 | | | 181 | 21.9M | return VLC_SUCCESS; | 182 | 22.0M | } |
mpeg4audio.c:block_PeekBytes Line | Count | Source | 157 | 14.6M | { | 158 | 14.6M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 34.7k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 14.5M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 14.5M | size_t i_size = i_data; | 164 | 14.5M | for( block_t *p_block = p_bytestream->p_block; | 165 | 14.6M | p_block != NULL; p_block = p_block->p_next ) | 166 | 14.6M | { | 167 | 14.6M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 14.6M | i_size -= i_copy; | 169 | | | 170 | 14.6M | if( i_copy ) | 171 | 14.6M | { | 172 | 14.6M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 14.6M | p_data += i_copy; | 174 | 14.6M | } | 175 | | | 176 | 14.6M | i_offset = 0; | 177 | | | 178 | 14.6M | if( !i_size ) break; | 179 | 14.6M | } | 180 | | | 181 | 14.5M | return VLC_SUCCESS; | 182 | 14.6M | } |
Unexecuted instantiation: mpeg4video.c:block_PeekBytes mpegaudio.c:block_PeekBytes Line | Count | Source | 157 | 226M | { | 158 | 226M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 159 | 754k | return VLC_EGENERIC; | 160 | | | 161 | | /* Copy the data */ | 162 | 225M | size_t i_offset = p_bytestream->i_block_offset; | 163 | 225M | size_t i_size = i_data; | 164 | 225M | for( block_t *p_block = p_bytestream->p_block; | 165 | 230M | p_block != NULL; p_block = p_block->p_next ) | 166 | 230M | { | 167 | 230M | size_t i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 168 | 230M | i_size -= i_copy; | 169 | | | 170 | 230M | if( i_copy ) | 171 | 228M | { | 172 | 228M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 173 | 228M | p_data += i_copy; | 174 | 228M | } | 175 | | | 176 | 230M | i_offset = 0; | 177 | | | 178 | 230M | if( !i_size ) break; | 179 | 230M | } | 180 | | | 181 | 225M | return VLC_SUCCESS; | 182 | 226M | } |
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 | 371M | { |
187 | 371M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) |
188 | 138k | return VLC_EGENERIC; |
189 | | |
190 | | /* Copy the data */ |
191 | 371M | size_t i_offset = p_bytestream->i_block_offset; |
192 | 371M | size_t i_size = i_data; |
193 | 371M | size_t i_copy = 0; |
194 | 371M | block_t *p_block; |
195 | 371M | for( p_block = p_bytestream->p_block; |
196 | 384M | p_block != NULL; p_block = p_block->p_next ) |
197 | 384M | { |
198 | 384M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
199 | 384M | i_size -= i_copy; |
200 | | |
201 | 384M | if( i_copy && p_data != NULL ) |
202 | 29.4M | { |
203 | 29.4M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
204 | 29.4M | p_data += i_copy; |
205 | 29.4M | } |
206 | | |
207 | 384M | if( i_size == 0 ) |
208 | 371M | break; |
209 | | |
210 | 12.6M | p_bytestream->i_base_offset += p_block->i_buffer; |
211 | 12.6M | i_offset = 0; |
212 | 12.6M | } |
213 | | |
214 | 371M | p_bytestream->p_block = p_block; |
215 | 371M | p_bytestream->i_block_offset = i_offset + i_copy; |
216 | | |
217 | 371M | return VLC_SUCCESS; |
218 | 371M | } Line | Count | Source | 186 | 70.3M | { | 187 | 70.3M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 102k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 70.2M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 70.2M | size_t i_size = i_data; | 193 | 70.2M | size_t i_copy = 0; | 194 | 70.2M | block_t *p_block; | 195 | 70.2M | for( p_block = p_bytestream->p_block; | 196 | 71.9M | p_block != NULL; p_block = p_block->p_next ) | 197 | 71.9M | { | 198 | 71.9M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 71.9M | i_size -= i_copy; | 200 | | | 201 | 71.9M | if( i_copy && p_data != NULL ) | 202 | 4.59M | { | 203 | 4.59M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 4.59M | p_data += i_copy; | 205 | 4.59M | } | 206 | | | 207 | 71.9M | if( i_size == 0 ) | 208 | 70.2M | break; | 209 | | | 210 | 1.72M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 1.72M | i_offset = 0; | 212 | 1.72M | } | 213 | | | 214 | 70.2M | p_bytestream->p_block = p_block; | 215 | 70.2M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 70.2M | return VLC_SUCCESS; | 218 | 70.3M | } |
Line | Count | Source | 186 | 74.2M | { | 187 | 74.2M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 19.2k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 74.2M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 74.2M | size_t i_size = i_data; | 193 | 74.2M | size_t i_copy = 0; | 194 | 74.2M | block_t *p_block; | 195 | 74.2M | for( p_block = p_bytestream->p_block; | 196 | 76.8M | p_block != NULL; p_block = p_block->p_next ) | 197 | 76.8M | { | 198 | 76.8M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 76.8M | i_size -= i_copy; | 200 | | | 201 | 76.8M | if( i_copy && p_data != NULL ) | 202 | 462k | { | 203 | 462k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 462k | p_data += i_copy; | 205 | 462k | } | 206 | | | 207 | 76.8M | if( i_size == 0 ) | 208 | 74.2M | break; | 209 | | | 210 | 2.56M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 2.56M | i_offset = 0; | 212 | 2.56M | } | 213 | | | 214 | 74.2M | p_bytestream->p_block = p_block; | 215 | 74.2M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 74.2M | return VLC_SUCCESS; | 218 | 74.2M | } |
Line | Count | Source | 186 | 2.63M | { | 187 | 2.63M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 247 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 2.63M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 2.63M | size_t i_size = i_data; | 193 | 2.63M | size_t i_copy = 0; | 194 | 2.63M | block_t *p_block; | 195 | 2.63M | for( p_block = p_bytestream->p_block; | 196 | 2.69M | p_block != NULL; p_block = p_block->p_next ) | 197 | 2.69M | { | 198 | 2.69M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 2.69M | i_size -= i_copy; | 200 | | | 201 | 2.69M | 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 | 2.69M | if( i_size == 0 ) | 208 | 2.62M | break; | 209 | | | 210 | 63.1k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 63.1k | i_offset = 0; | 212 | 63.1k | } | 213 | | | 214 | 2.63M | p_bytestream->p_block = p_block; | 215 | 2.63M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 2.63M | return VLC_SUCCESS; | 218 | 2.63M | } |
Line | Count | Source | 186 | 2.67M | { | 187 | 2.67M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 2.67M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 2.67M | size_t i_size = i_data; | 193 | 2.67M | size_t i_copy = 0; | 194 | 2.67M | block_t *p_block; | 195 | 2.67M | for( p_block = p_bytestream->p_block; | 196 | 2.92M | p_block != NULL; p_block = p_block->p_next ) | 197 | 2.92M | { | 198 | 2.92M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 2.92M | i_size -= i_copy; | 200 | | | 201 | 2.92M | if( i_copy && p_data != NULL ) | 202 | 2.80M | { | 203 | 2.80M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 2.80M | p_data += i_copy; | 205 | 2.80M | } | 206 | | | 207 | 2.92M | if( i_size == 0 ) | 208 | 2.67M | break; | 209 | | | 210 | 250k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 250k | i_offset = 0; | 212 | 250k | } | 213 | | | 214 | 2.67M | p_bytestream->p_block = p_block; | 215 | 2.67M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 2.67M | return VLC_SUCCESS; | 218 | 2.67M | } |
Line | Count | Source | 186 | 4.13M | { | 187 | 4.13M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 4.13M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 4.13M | size_t i_size = i_data; | 193 | 4.13M | size_t i_copy = 0; | 194 | 4.13M | block_t *p_block; | 195 | 4.13M | for( p_block = p_bytestream->p_block; | 196 | 5.54M | p_block != NULL; p_block = p_block->p_next ) | 197 | 5.54M | { | 198 | 5.54M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 5.54M | i_size -= i_copy; | 200 | | | 201 | 5.54M | if( i_copy && p_data != NULL ) | 202 | 5.51M | { | 203 | 5.51M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 5.51M | p_data += i_copy; | 205 | 5.51M | } | 206 | | | 207 | 5.54M | if( i_size == 0 ) | 208 | 4.13M | break; | 209 | | | 210 | 1.40M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 1.40M | i_offset = 0; | 212 | 1.40M | } | 213 | | | 214 | 4.13M | p_bytestream->p_block = p_block; | 215 | 4.13M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 4.13M | return VLC_SUCCESS; | 218 | 4.13M | } |
Line | Count | Source | 186 | 21.2M | { | 187 | 21.2M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 21.2M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 21.2M | size_t i_size = i_data; | 193 | 21.2M | size_t i_copy = 0; | 194 | 21.2M | block_t *p_block; | 195 | 21.2M | for( p_block = p_bytestream->p_block; | 196 | 21.2M | p_block != NULL; p_block = p_block->p_next ) | 197 | 21.2M | { | 198 | 21.2M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 21.2M | i_size -= i_copy; | 200 | | | 201 | 21.2M | if( i_copy && p_data != NULL ) | 202 | 401k | { | 203 | 401k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 401k | p_data += i_copy; | 205 | 401k | } | 206 | | | 207 | 21.2M | if( i_size == 0 ) | 208 | 21.2M | break; | 209 | | | 210 | 38.4k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 38.4k | i_offset = 0; | 212 | 38.4k | } | 213 | | | 214 | 21.2M | p_bytestream->p_block = p_block; | 215 | 21.2M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 21.2M | return VLC_SUCCESS; | 218 | 21.2M | } |
mpeg4audio.c:block_GetBytes Line | Count | Source | 186 | 14.5M | { | 187 | 14.5M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 14.5M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 14.5M | size_t i_size = i_data; | 193 | 14.5M | size_t i_copy = 0; | 194 | 14.5M | block_t *p_block; | 195 | 14.5M | for( p_block = p_bytestream->p_block; | 196 | 14.6M | p_block != NULL; p_block = p_block->p_next ) | 197 | 14.6M | { | 198 | 14.6M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 14.6M | i_size -= i_copy; | 200 | | | 201 | 14.6M | if( i_copy && p_data != NULL ) | 202 | 22.2k | { | 203 | 22.2k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 22.2k | p_data += i_copy; | 205 | 22.2k | } | 206 | | | 207 | 14.6M | if( i_size == 0 ) | 208 | 14.5M | break; | 209 | | | 210 | 64.2k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 64.2k | i_offset = 0; | 212 | 64.2k | } | 213 | | | 214 | 14.5M | p_bytestream->p_block = p_block; | 215 | 14.5M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 14.5M | return VLC_SUCCESS; | 218 | 14.5M | } |
mpeg4video.c:block_GetBytes Line | Count | Source | 186 | 446k | { | 187 | 446k | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 446k | size_t i_offset = p_bytestream->i_block_offset; | 192 | 446k | size_t i_size = i_data; | 193 | 446k | size_t i_copy = 0; | 194 | 446k | block_t *p_block; | 195 | 446k | for( p_block = p_bytestream->p_block; | 196 | 489k | p_block != NULL; p_block = p_block->p_next ) | 197 | 489k | { | 198 | 489k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 489k | i_size -= i_copy; | 200 | | | 201 | 489k | if( i_copy && p_data != NULL ) | 202 | 452k | { | 203 | 452k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 452k | p_data += i_copy; | 205 | 452k | } | 206 | | | 207 | 489k | if( i_size == 0 ) | 208 | 446k | break; | 209 | | | 210 | 43.2k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 43.2k | i_offset = 0; | 212 | 43.2k | } | 213 | | | 214 | 446k | p_bytestream->p_block = p_block; | 215 | 446k | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 446k | return VLC_SUCCESS; | 218 | 446k | } |
mpegaudio.c:block_GetBytes Line | Count | Source | 186 | 180M | { | 187 | 180M | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 16.5k | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 180M | size_t i_offset = p_bytestream->i_block_offset; | 192 | 180M | size_t i_size = i_data; | 193 | 180M | size_t i_copy = 0; | 194 | 180M | block_t *p_block; | 195 | 180M | for( p_block = p_bytestream->p_block; | 196 | 186M | p_block != NULL; p_block = p_block->p_next ) | 197 | 186M | { | 198 | 186M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 186M | i_size -= i_copy; | 200 | | | 201 | 186M | if( i_copy && p_data != NULL ) | 202 | 13.7M | { | 203 | 13.7M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 13.7M | p_data += i_copy; | 205 | 13.7M | } | 206 | | | 207 | 186M | if( i_size == 0 ) | 208 | 180M | break; | 209 | | | 210 | 6.09M | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 6.09M | i_offset = 0; | 212 | 6.09M | } | 213 | | | 214 | 180M | p_bytestream->p_block = p_block; | 215 | 180M | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 180M | return VLC_SUCCESS; | 218 | 180M | } |
mpegvideo.c:block_GetBytes Line | Count | Source | 186 | 998k | { | 187 | 998k | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 998k | size_t i_offset = p_bytestream->i_block_offset; | 192 | 998k | size_t i_size = i_data; | 193 | 998k | size_t i_copy = 0; | 194 | 998k | block_t *p_block; | 195 | 998k | for( p_block = p_bytestream->p_block; | 196 | 1.34M | p_block != NULL; p_block = p_block->p_next ) | 197 | 1.34M | { | 198 | 1.34M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 1.34M | i_size -= i_copy; | 200 | | | 201 | 1.34M | if( i_copy && p_data != NULL ) | 202 | 1.27M | { | 203 | 1.27M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 1.27M | p_data += i_copy; | 205 | 1.27M | } | 206 | | | 207 | 1.34M | if( i_size == 0 ) | 208 | 998k | break; | 209 | | | 210 | 349k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 349k | i_offset = 0; | 212 | 349k | } | 213 | | | 214 | 998k | p_bytestream->p_block = p_block; | 215 | 998k | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 998k | return VLC_SUCCESS; | 218 | 998k | } |
Line | Count | Source | 186 | 165k | { | 187 | 165k | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 165k | size_t i_offset = p_bytestream->i_block_offset; | 192 | 165k | size_t i_size = i_data; | 193 | 165k | size_t i_copy = 0; | 194 | 165k | block_t *p_block; | 195 | 165k | for( p_block = p_bytestream->p_block; | 196 | 167k | p_block != NULL; p_block = p_block->p_next ) | 197 | 167k | { | 198 | 167k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 167k | i_size -= i_copy; | 200 | | | 201 | 167k | if( i_copy && p_data != NULL ) | 202 | 165k | { | 203 | 165k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 165k | p_data += i_copy; | 205 | 165k | } | 206 | | | 207 | 167k | if( i_size == 0 ) | 208 | 165k | break; | 209 | | | 210 | 2.86k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 2.86k | i_offset = 0; | 212 | 2.86k | } | 213 | | | 214 | 165k | p_bytestream->p_block = p_block; | 215 | 165k | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 165k | return VLC_SUCCESS; | 218 | 165k | } |
Unexecuted instantiation: av1.c:block_GetBytes Line | Count | Source | 186 | 218 | { | 187 | 218 | if( block_BytestreamRemaining( p_bytestream ) < i_data ) | 188 | 0 | return VLC_EGENERIC; | 189 | | | 190 | | /* Copy the data */ | 191 | 218 | size_t i_offset = p_bytestream->i_block_offset; | 192 | 218 | size_t i_size = i_data; | 193 | 218 | size_t i_copy = 0; | 194 | 218 | block_t *p_block; | 195 | 218 | for( p_block = p_bytestream->p_block; | 196 | 10.9k | p_block != NULL; p_block = p_block->p_next ) | 197 | 10.9k | { | 198 | 10.9k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 199 | 10.9k | i_size -= i_copy; | 200 | | | 201 | 10.9k | if( i_copy && p_data != NULL ) | 202 | 2.32k | { | 203 | 2.32k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 204 | 2.32k | p_data += i_copy; | 205 | 2.32k | } | 206 | | | 207 | 10.9k | if( i_size == 0 ) | 208 | 218 | break; | 209 | | | 210 | 10.7k | p_bytestream->i_base_offset += p_block->i_buffer; | 211 | 10.7k | i_offset = 0; | 212 | 10.7k | } | 213 | | | 214 | 218 | p_bytestream->p_block = p_block; | 215 | 218 | p_bytestream->i_block_offset = i_offset + i_copy; | 216 | | | 217 | 218 | return VLC_SUCCESS; | 218 | 218 | } |
|
219 | | |
220 | | static inline int block_SkipBytes( block_bytestream_t *p_bytestream, |
221 | | size_t i_data ) |
222 | 2.31M | { |
223 | 2.31M | return block_GetBytes( p_bytestream, NULL, i_data ); |
224 | 2.31M | } Line | Count | Source | 222 | 362k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 362k | } |
Line | Count | Source | 222 | 176k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 176k | } |
Line | Count | Source | 222 | 1.55M | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 1.55M | } |
Line | Count | Source | 222 | 110k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 110k | } |
Line | Count | Source | 222 | 20.0k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 20.0k | } |
Unexecuted instantiation: mlp.c:block_SkipBytes mpeg4audio.c:block_SkipBytes Line | Count | Source | 222 | 6.50k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 6.50k | } |
mpeg4video.c:block_SkipBytes Line | Count | Source | 222 | 33.6k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 33.6k | } |
Unexecuted instantiation: mpegaudio.c:block_SkipBytes mpegvideo.c:block_SkipBytes Line | Count | Source | 222 | 51.7k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 51.7k | } |
Line | Count | Source | 222 | 1.53k | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 1.53k | } |
Unexecuted instantiation: av1.c:block_SkipBytes Line | Count | Source | 222 | 51 | { | 223 | | return block_GetBytes( p_bytestream, NULL, i_data ); | 224 | 51 | } |
|
225 | | |
226 | | static inline int block_SkipByte( block_bytestream_t *p_bytestream ) |
227 | 347M | { |
228 | 347M | return block_GetBytes( p_bytestream, NULL, 1 ); |
229 | 347M | } Line | Count | Source | 227 | 65.9M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 65.9M | } |
Line | Count | Source | 227 | 73.7M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 73.7M | } |
Line | Count | Source | 227 | 1.07M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 1.07M | } |
Unexecuted instantiation: h264.c:block_SkipByte Unexecuted instantiation: hevc.c:block_SkipByte Line | Count | Source | 227 | 20.8M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 20.8M | } |
mpeg4audio.c:block_SkipByte Line | Count | Source | 227 | 14.5M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 14.5M | } |
Unexecuted instantiation: mpeg4video.c:block_SkipByte mpegaudio.c:block_SkipByte Line | Count | Source | 227 | 171M | { | 228 | | return block_GetBytes( p_bytestream, NULL, 1 ); | 229 | 171M | } |
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 | 886M | { |
234 | 886M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); |
235 | 886M | if( i_remain < i_data + i_peek_offset ) |
236 | 14.0M | return VLC_EGENERIC; |
237 | | |
238 | | /* Find the right place */ |
239 | 872M | size_t i_offset = p_bytestream->i_block_offset; |
240 | 872M | size_t i_size = i_peek_offset; |
241 | 872M | size_t i_copy = 0; |
242 | 872M | block_t *p_block; |
243 | 872M | for( p_block = p_bytestream->p_block; |
244 | 7.98G | p_block != NULL; p_block = p_block->p_next ) |
245 | 7.98G | { |
246 | 7.98G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
247 | 7.98G | i_size -= i_copy; |
248 | | |
249 | 7.98G | if( !i_size ) break; |
250 | | |
251 | 7.11G | i_offset = 0; |
252 | 7.11G | } |
253 | | |
254 | | /* Copy the data */ |
255 | 872M | i_offset += i_copy; |
256 | 872M | i_size = i_data; |
257 | 931M | for( ; p_block != NULL; p_block = p_block->p_next ) |
258 | 931M | { |
259 | 931M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); |
260 | 931M | i_size -= i_copy; |
261 | | |
262 | 931M | if( i_copy ) |
263 | 921M | { |
264 | 921M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); |
265 | 921M | p_data += i_copy; |
266 | 921M | } |
267 | | |
268 | 931M | i_offset = 0; |
269 | | |
270 | 931M | if( !i_size ) break; |
271 | 931M | } |
272 | | |
273 | 872M | return VLC_SUCCESS; |
274 | 886M | } a52.c:block_PeekOffsetBytes Line | Count | Source | 233 | 6.47M | { | 234 | 6.47M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 6.47M | if( i_remain < i_data + i_peek_offset ) | 236 | 2.49M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 3.97M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 3.97M | size_t i_size = i_peek_offset; | 241 | 3.97M | size_t i_copy = 0; | 242 | 3.97M | block_t *p_block; | 243 | 3.97M | for( p_block = p_bytestream->p_block; | 244 | 65.0M | p_block != NULL; p_block = p_block->p_next ) | 245 | 65.0M | { | 246 | 65.0M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 65.0M | i_size -= i_copy; | 248 | | | 249 | 65.0M | if( !i_size ) break; | 250 | | | 251 | 61.0M | i_offset = 0; | 252 | 61.0M | } | 253 | | | 254 | | /* Copy the data */ | 255 | 3.97M | i_offset += i_copy; | 256 | 3.97M | i_size = i_data; | 257 | 5.37M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 5.37M | { | 259 | 5.37M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 5.37M | i_size -= i_copy; | 261 | | | 262 | 5.37M | if( i_copy ) | 263 | 5.08M | { | 264 | 5.08M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 5.08M | p_data += i_copy; | 266 | 5.08M | } | 267 | | | 268 | 5.37M | i_offset = 0; | 269 | | | 270 | 5.37M | if( !i_size ) break; | 271 | 5.37M | } | 272 | | | 273 | 3.97M | return VLC_SUCCESS; | 274 | 6.47M | } |
dts.c:block_PeekOffsetBytes Line | Count | Source | 233 | 42.0M | { | 234 | 42.0M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 42.0M | if( i_remain < i_data + i_peek_offset ) | 236 | 1.85M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 40.1M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 40.1M | size_t i_size = i_peek_offset; | 241 | 40.1M | size_t i_copy = 0; | 242 | 40.1M | block_t *p_block; | 243 | 40.1M | for( p_block = p_bytestream->p_block; | 244 | 476M | p_block != NULL; p_block = p_block->p_next ) | 245 | 476M | { | 246 | 476M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 476M | i_size -= i_copy; | 248 | | | 249 | 476M | if( !i_size ) break; | 250 | | | 251 | 436M | i_offset = 0; | 252 | 436M | } | 253 | | | 254 | | /* Copy the data */ | 255 | 40.1M | i_offset += i_copy; | 256 | 40.1M | i_size = i_data; | 257 | 40.6M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 40.6M | { | 259 | 40.6M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 40.6M | i_size -= i_copy; | 261 | | | 262 | 40.6M | if( i_copy ) | 263 | 40.4M | { | 264 | 40.4M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 40.4M | p_data += i_copy; | 266 | 40.4M | } | 267 | | | 268 | 40.6M | i_offset = 0; | 269 | | | 270 | 40.6M | if( !i_size ) break; | 271 | 40.6M | } | 272 | | | 273 | 40.1M | return VLC_SUCCESS; | 274 | 42.0M | } |
flac.c:block_PeekOffsetBytes Line | Count | Source | 233 | 34.9M | { | 234 | 34.9M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 34.9M | if( i_remain < i_data + i_peek_offset ) | 236 | 13.5k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 34.9M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 34.9M | size_t i_size = i_peek_offset; | 241 | 34.9M | size_t i_copy = 0; | 242 | 34.9M | block_t *p_block; | 243 | 34.9M | for( p_block = p_bytestream->p_block; | 244 | 1.12G | p_block != NULL; p_block = p_block->p_next ) | 245 | 1.12G | { | 246 | 1.12G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 1.12G | i_size -= i_copy; | 248 | | | 249 | 1.12G | if( !i_size ) break; | 250 | | | 251 | 1.08G | i_offset = 0; | 252 | 1.08G | } | 253 | | | 254 | | /* Copy the data */ | 255 | 34.9M | i_offset += i_copy; | 256 | 34.9M | i_size = i_data; | 257 | 36.5M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 36.5M | { | 259 | 36.5M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 36.5M | i_size -= i_copy; | 261 | | | 262 | 36.5M | if( i_copy ) | 263 | 35.1M | { | 264 | 35.1M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 35.1M | p_data += i_copy; | 266 | 35.1M | } | 267 | | | 268 | 36.5M | i_offset = 0; | 269 | | | 270 | 36.5M | if( !i_size ) break; | 271 | 36.5M | } | 272 | | | 273 | 34.9M | return VLC_SUCCESS; | 274 | 34.9M | } |
Unexecuted instantiation: h264.c:block_PeekOffsetBytes Unexecuted instantiation: hevc.c:block_PeekOffsetBytes mlp.c:block_PeekOffsetBytes Line | Count | Source | 233 | 969k | { | 234 | 969k | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 969k | if( i_remain < i_data + i_peek_offset ) | 236 | 219k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 749k | size_t i_offset = p_bytestream->i_block_offset; | 240 | 749k | size_t i_size = i_peek_offset; | 241 | 749k | size_t i_copy = 0; | 242 | 749k | block_t *p_block; | 243 | 749k | for( p_block = p_bytestream->p_block; | 244 | 948k | p_block != NULL; p_block = p_block->p_next ) | 245 | 948k | { | 246 | 948k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 948k | i_size -= i_copy; | 248 | | | 249 | 948k | if( !i_size ) break; | 250 | | | 251 | 199k | i_offset = 0; | 252 | 199k | } | 253 | | | 254 | | /* Copy the data */ | 255 | 749k | i_offset += i_copy; | 256 | 749k | i_size = i_data; | 257 | 1.99M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 1.99M | { | 259 | 1.99M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 1.99M | i_size -= i_copy; | 261 | | | 262 | 1.99M | if( i_copy ) | 263 | 1.80M | { | 264 | 1.80M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 1.80M | p_data += i_copy; | 266 | 1.80M | } | 267 | | | 268 | 1.99M | i_offset = 0; | 269 | | | 270 | 1.99M | if( !i_size ) break; | 271 | 1.99M | } | 272 | | | 273 | 749k | return VLC_SUCCESS; | 274 | 969k | } |
mpeg4audio.c:block_PeekOffsetBytes Line | Count | Source | 233 | 105k | { | 234 | 105k | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 105k | if( i_remain < i_data + i_peek_offset ) | 236 | 61.2k | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 43.7k | size_t i_offset = p_bytestream->i_block_offset; | 240 | 43.7k | size_t i_size = i_peek_offset; | 241 | 43.7k | size_t i_copy = 0; | 242 | 43.7k | block_t *p_block; | 243 | 43.7k | for( p_block = p_bytestream->p_block; | 244 | 717k | p_block != NULL; p_block = p_block->p_next ) | 245 | 717k | { | 246 | 717k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 717k | i_size -= i_copy; | 248 | | | 249 | 717k | if( !i_size ) break; | 250 | | | 251 | 673k | i_offset = 0; | 252 | 673k | } | 253 | | | 254 | | /* Copy the data */ | 255 | 43.7k | i_offset += i_copy; | 256 | 43.7k | i_size = i_data; | 257 | 45.5k | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 45.5k | { | 259 | 45.5k | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 45.5k | i_size -= i_copy; | 261 | | | 262 | 45.5k | if( i_copy ) | 263 | 44.9k | { | 264 | 44.9k | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 44.9k | p_data += i_copy; | 266 | 44.9k | } | 267 | | | 268 | 45.5k | i_offset = 0; | 269 | | | 270 | 45.5k | if( !i_size ) break; | 271 | 45.5k | } | 272 | | | 273 | 43.7k | return VLC_SUCCESS; | 274 | 105k | } |
Unexecuted instantiation: mpeg4video.c:block_PeekOffsetBytes mpegaudio.c:block_PeekOffsetBytes Line | Count | Source | 233 | 801M | { | 234 | 801M | const size_t i_remain = block_BytestreamRemaining( p_bytestream ); | 235 | 801M | if( i_remain < i_data + i_peek_offset ) | 236 | 9.43M | return VLC_EGENERIC; | 237 | | | 238 | | /* Find the right place */ | 239 | 792M | size_t i_offset = p_bytestream->i_block_offset; | 240 | 792M | size_t i_size = i_peek_offset; | 241 | 792M | size_t i_copy = 0; | 242 | 792M | block_t *p_block; | 243 | 792M | for( p_block = p_bytestream->p_block; | 244 | 6.31G | p_block != NULL; p_block = p_block->p_next ) | 245 | 6.31G | { | 246 | 6.31G | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 247 | 6.31G | i_size -= i_copy; | 248 | | | 249 | 6.31G | if( !i_size ) break; | 250 | | | 251 | 5.52G | i_offset = 0; | 252 | 5.52G | } | 253 | | | 254 | | /* Copy the data */ | 255 | 792M | i_offset += i_copy; | 256 | 792M | i_size = i_data; | 257 | 847M | for( ; p_block != NULL; p_block = p_block->p_next ) | 258 | 847M | { | 259 | 847M | i_copy = __MIN( i_size, p_block->i_buffer - i_offset ); | 260 | 847M | i_size -= i_copy; | 261 | | | 262 | 847M | if( i_copy ) | 263 | 838M | { | 264 | 838M | memcpy( p_data, p_block->p_buffer + i_offset, i_copy ); | 265 | 838M | p_data += i_copy; | 266 | 838M | } | 267 | | | 268 | 847M | i_offset = 0; | 269 | | | 270 | 847M | if( !i_size ) break; | 271 | 847M | } | 272 | | | 273 | 792M | return VLC_SUCCESS; | 274 | 801M | } |
Unexecuted instantiation: mpegvideo.c:block_PeekOffsetBytes Unexecuted instantiation: vc1.c:block_PeekOffsetBytes Unexecuted instantiation: av1.c:block_PeekOffsetBytes Unexecuted instantiation: mjpeg.c:block_PeekOffsetBytes |
275 | | |
276 | | typedef const uint8_t * (*block_startcode_helper_t)( const uint8_t *, const uint8_t * ); |
277 | | typedef bool (*block_startcode_matcher_t)( uint8_t, size_t, const uint8_t * ); |
278 | | |
279 | | static inline int block_FindStartcodeFromOffset( |
280 | | const block_bytestream_t *p_bytestream, size_t *pi_offset, |
281 | | const uint8_t *p_startcode, size_t i_startcode_length, |
282 | | block_startcode_helper_t p_startcode_helper, |
283 | | block_startcode_matcher_t p_startcode_matcher ) |
284 | 49.2M | { |
285 | 49.2M | block_t *p_block, *p_block_backup = NULL; |
286 | 49.2M | ssize_t i_size; |
287 | 49.2M | size_t i_offset, i_offset_backup = 0; |
288 | 49.2M | size_t i_caller_offset_backup = 0; |
289 | 49.2M | size_t i_match; |
290 | | |
291 | | /* Find the right place */ |
292 | 49.2M | i_size = *pi_offset + p_bytestream->i_block_offset; |
293 | 49.2M | for( p_block = p_bytestream->p_block; |
294 | 707M | p_block != NULL; p_block = p_block->p_next ) |
295 | 707M | { |
296 | 707M | i_size -= p_block->i_buffer; |
297 | 707M | if( i_size < 0 ) break; |
298 | 707M | } |
299 | | |
300 | 49.2M | if( unlikely( i_size >= 0 ) ) |
301 | 301k | { |
302 | | /* Not enough data, bail out */ |
303 | 301k | return VLC_EGENERIC; |
304 | 301k | } |
305 | | |
306 | | /* Begin the search. |
307 | | * We first look for an occurrence of the 1st startcode byte and |
308 | | * if found, we do a more thorough check. */ |
309 | 48.9M | i_size += p_block->i_buffer; |
310 | 48.9M | *pi_offset -= i_size; |
311 | 48.9M | i_match = 0; |
312 | 884M | for( ; p_block != NULL; p_block = p_block->p_next ) |
313 | 881M | { |
314 | 2.40G | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) |
315 | 1.56G | { |
316 | | /* Use optimized helper when possible */ |
317 | 1.56G | if( p_startcode_helper && !i_match && |
318 | 929M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) |
319 | 256M | { |
320 | 256M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], |
321 | 256M | &p_block->p_buffer[p_block->i_buffer] ); |
322 | 256M | if( p_res ) |
323 | 42.6M | { |
324 | 42.6M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); |
325 | 42.6M | return VLC_SUCCESS; |
326 | 42.6M | } |
327 | | /* Then parsing boundary with legacy code */ |
328 | 214M | i_offset = p_block->i_buffer + 1 - i_startcode_length; |
329 | 214M | } |
330 | | |
331 | 1.56G | bool b_matched = ( p_startcode_matcher ) |
332 | 1.52G | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) |
333 | 1.52G | : p_block->p_buffer[i_offset] == p_startcode[i_match]; |
334 | 1.52G | if( b_matched ) |
335 | 602M | { |
336 | 602M | if( i_match == 0 ) |
337 | 374M | { |
338 | 374M | p_block_backup = p_block; |
339 | 374M | i_offset_backup = i_offset; |
340 | 374M | i_caller_offset_backup = *pi_offset; |
341 | 374M | } |
342 | | |
343 | 602M | if( i_match + 1 == i_startcode_length ) |
344 | 3.29M | { |
345 | | /* We have it */ |
346 | 3.29M | *pi_offset += i_offset - i_match; |
347 | 3.29M | return VLC_SUCCESS; |
348 | 3.29M | } |
349 | | |
350 | 599M | i_match++; |
351 | 599M | } |
352 | 919M | else if ( i_match != 0 ) |
353 | 371M | { |
354 | | /* False positive */ |
355 | 371M | p_block = p_block_backup; |
356 | 371M | i_offset = i_offset_backup; |
357 | 371M | *pi_offset = i_caller_offset_backup; |
358 | 371M | i_match = 0; |
359 | 371M | } |
360 | | |
361 | 1.52G | } |
362 | 835M | i_size = 0; |
363 | 835M | *pi_offset += i_offset; |
364 | 835M | } |
365 | | |
366 | 2.95M | *pi_offset -= i_match; |
367 | 2.95M | return VLC_EGENERIC; |
368 | 48.9M | } a52.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 3.28M | { | 285 | 3.28M | block_t *p_block, *p_block_backup = NULL; | 286 | 3.28M | ssize_t i_size; | 287 | 3.28M | size_t i_offset, i_offset_backup = 0; | 288 | 3.28M | size_t i_caller_offset_backup = 0; | 289 | 3.28M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 3.28M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 3.28M | for( p_block = p_bytestream->p_block; | 294 | 3.32M | p_block != NULL; p_block = p_block->p_next ) | 295 | 3.32M | { | 296 | 3.32M | i_size -= p_block->i_buffer; | 297 | 3.32M | if( i_size < 0 ) break; | 298 | 3.32M | } | 299 | | | 300 | 3.28M | if( unlikely( i_size >= 0 ) ) | 301 | 0 | { | 302 | | /* Not enough data, bail out */ | 303 | 0 | return VLC_EGENERIC; | 304 | 0 | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 3.28M | i_size += p_block->i_buffer; | 310 | 3.28M | *pi_offset -= i_size; | 311 | 3.28M | i_match = 0; | 312 | 4.92M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 4.91M | { | 314 | 42.3M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 40.6M | { | 316 | | /* Use optimized helper when possible */ | 317 | 40.6M | if( p_startcode_helper && !i_match && | 318 | 0 | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 0 | { | 320 | 0 | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 0 | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 0 | if( p_res ) | 323 | 0 | { | 324 | 0 | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 0 | return VLC_SUCCESS; | 326 | 0 | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 0 | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 0 | } | 330 | | | 331 | 40.6M | bool b_matched = ( p_startcode_matcher ) | 332 | 40.6M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 40.6M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 40.6M | if( b_matched ) | 335 | 7.30M | { | 336 | 7.30M | if( i_match == 0 ) | 337 | 4.02M | { | 338 | 4.02M | p_block_backup = p_block; | 339 | 4.02M | i_offset_backup = i_offset; | 340 | 4.02M | i_caller_offset_backup = *pi_offset; | 341 | 4.02M | } | 342 | | | 343 | 7.30M | if( i_match + 1 == i_startcode_length ) | 344 | 3.27M | { | 345 | | /* We have it */ | 346 | 3.27M | *pi_offset += i_offset - i_match; | 347 | 3.27M | return VLC_SUCCESS; | 348 | 3.27M | } | 349 | | | 350 | 4.02M | i_match++; | 351 | 4.02M | } | 352 | 33.3M | else if ( i_match != 0 ) | 353 | 751k | { | 354 | | /* False positive */ | 355 | 751k | p_block = p_block_backup; | 356 | 751k | i_offset = i_offset_backup; | 357 | 751k | *pi_offset = i_caller_offset_backup; | 358 | 751k | i_match = 0; | 359 | 751k | } | 360 | | | 361 | 40.6M | } | 362 | 1.64M | i_size = 0; | 363 | 1.64M | *pi_offset += i_offset; | 364 | 1.64M | } | 365 | | | 366 | 5.33k | *pi_offset -= i_match; | 367 | 5.33k | return VLC_EGENERIC; | 368 | 3.28M | } |
Unexecuted instantiation: dts.c:block_FindStartcodeFromOffset flac.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 26.6M | { | 285 | 26.6M | block_t *p_block, *p_block_backup = NULL; | 286 | 26.6M | ssize_t i_size; | 287 | 26.6M | size_t i_offset, i_offset_backup = 0; | 288 | 26.6M | size_t i_caller_offset_backup = 0; | 289 | 26.6M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 26.6M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 26.6M | for( p_block = p_bytestream->p_block; | 294 | 684M | p_block != NULL; p_block = p_block->p_next ) | 295 | 684M | { | 296 | 684M | i_size -= p_block->i_buffer; | 297 | 684M | if( i_size < 0 ) break; | 298 | 684M | } | 299 | | | 300 | 26.6M | if( unlikely( i_size >= 0 ) ) | 301 | 5.21k | { | 302 | | /* Not enough data, bail out */ | 303 | 5.21k | return VLC_EGENERIC; | 304 | 5.21k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 26.6M | i_size += p_block->i_buffer; | 310 | 26.6M | *pi_offset -= i_size; | 311 | 26.6M | i_match = 0; | 312 | 27.6M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 27.5M | { | 314 | 28.5M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 27.5M | { | 316 | | /* Use optimized helper when possible */ | 317 | 27.5M | if( p_startcode_helper && !i_match && | 318 | 27.5M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 27.3M | { | 320 | 27.3M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 27.3M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 27.3M | if( p_res ) | 323 | 26.5M | { | 324 | 26.5M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 26.5M | return VLC_SUCCESS; | 326 | 26.5M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 830k | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 830k | } | 330 | | | 331 | 27.5M | bool b_matched = ( p_startcode_matcher ) | 332 | 1.00M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 1.00M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 1.00M | if( b_matched ) | 335 | 22.5k | { | 336 | 22.5k | if( i_match == 0 ) | 337 | 20.4k | { | 338 | 20.4k | p_block_backup = p_block; | 339 | 20.4k | i_offset_backup = i_offset; | 340 | 20.4k | i_caller_offset_backup = *pi_offset; | 341 | 20.4k | } | 342 | | | 343 | 22.5k | if( i_match + 1 == i_startcode_length ) | 344 | 2.10k | { | 345 | | /* We have it */ | 346 | 2.10k | *pi_offset += i_offset - i_match; | 347 | 2.10k | return VLC_SUCCESS; | 348 | 2.10k | } | 349 | | | 350 | 20.4k | i_match++; | 351 | 20.4k | } | 352 | 978k | else if ( i_match != 0 ) | 353 | 9.74k | { | 354 | | /* False positive */ | 355 | 9.74k | p_block = p_block_backup; | 356 | 9.74k | i_offset = i_offset_backup; | 357 | 9.74k | *pi_offset = i_caller_offset_backup; | 358 | 9.74k | i_match = 0; | 359 | 9.74k | } | 360 | | | 361 | 1.00M | } | 362 | 1.00M | i_size = 0; | 363 | 1.00M | *pi_offset += i_offset; | 364 | 1.00M | } | 365 | | | 366 | 143k | *pi_offset -= i_match; | 367 | 143k | return VLC_EGENERIC; | 368 | 26.6M | } |
h264.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 5.88M | { | 285 | 5.88M | block_t *p_block, *p_block_backup = NULL; | 286 | 5.88M | ssize_t i_size; | 287 | 5.88M | size_t i_offset, i_offset_backup = 0; | 288 | 5.88M | size_t i_caller_offset_backup = 0; | 289 | 5.88M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 5.88M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 5.88M | for( p_block = p_bytestream->p_block; | 294 | 6.15M | p_block != NULL; p_block = p_block->p_next ) | 295 | 5.97M | { | 296 | 5.97M | i_size -= p_block->i_buffer; | 297 | 5.97M | if( i_size < 0 ) break; | 298 | 5.97M | } | 299 | | | 300 | 5.88M | if( unlikely( i_size >= 0 ) ) | 301 | 182k | { | 302 | | /* Not enough data, bail out */ | 303 | 182k | return VLC_EGENERIC; | 304 | 182k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 5.69M | i_size += p_block->i_buffer; | 310 | 5.69M | *pi_offset -= i_size; | 311 | 5.69M | i_match = 0; | 312 | 13.0M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 12.3M | { | 314 | 26.9M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 19.5M | { | 316 | | /* Use optimized helper when possible */ | 317 | 19.5M | if( p_startcode_helper && !i_match && | 318 | 15.3M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 10.1M | { | 320 | 10.1M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 10.1M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 10.1M | if( p_res ) | 323 | 4.96M | { | 324 | 4.96M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 4.96M | return VLC_SUCCESS; | 326 | 4.96M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 5.15M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 5.15M | } | 330 | | | 331 | 19.5M | bool b_matched = ( p_startcode_matcher ) | 332 | 14.6M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 14.6M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 14.6M | if( b_matched ) | 335 | 4.29M | { | 336 | 4.29M | if( i_match == 0 ) | 337 | 2.44M | { | 338 | 2.44M | p_block_backup = p_block; | 339 | 2.44M | i_offset_backup = i_offset; | 340 | 2.44M | i_caller_offset_backup = *pi_offset; | 341 | 2.44M | } | 342 | | | 343 | 4.29M | if( i_match + 1 == i_startcode_length ) | 344 | 1.75k | { | 345 | | /* We have it */ | 346 | 1.75k | *pi_offset += i_offset - i_match; | 347 | 1.75k | return VLC_SUCCESS; | 348 | 1.75k | } | 349 | | | 350 | 4.29M | i_match++; | 351 | 4.29M | } | 352 | 10.3M | else if ( i_match != 0 ) | 353 | 2.39M | { | 354 | | /* False positive */ | 355 | 2.39M | p_block = p_block_backup; | 356 | 2.39M | i_offset = i_offset_backup; | 357 | 2.39M | *pi_offset = i_caller_offset_backup; | 358 | 2.39M | i_match = 0; | 359 | 2.39M | } | 360 | | | 361 | 14.6M | } | 362 | 7.39M | i_size = 0; | 363 | 7.39M | *pi_offset += i_offset; | 364 | 7.39M | } | 365 | | | 366 | 732k | *pi_offset -= i_match; | 367 | 732k | return VLC_EGENERIC; | 368 | 5.69M | } |
hevc.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 9.68M | { | 285 | 9.68M | block_t *p_block, *p_block_backup = NULL; | 286 | 9.68M | ssize_t i_size; | 287 | 9.68M | size_t i_offset, i_offset_backup = 0; | 288 | 9.68M | size_t i_caller_offset_backup = 0; | 289 | 9.68M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 9.68M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 9.68M | for( p_block = p_bytestream->p_block; | 294 | 9.72M | p_block != NULL; p_block = p_block->p_next ) | 295 | 9.69M | { | 296 | 9.69M | i_size -= p_block->i_buffer; | 297 | 9.69M | if( i_size < 0 ) break; | 298 | 9.69M | } | 299 | | | 300 | 9.68M | if( unlikely( i_size >= 0 ) ) | 301 | 25.3k | { | 302 | | /* Not enough data, bail out */ | 303 | 25.3k | return VLC_EGENERIC; | 304 | 25.3k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 9.66M | i_size += p_block->i_buffer; | 310 | 9.66M | *pi_offset -= i_size; | 311 | 9.66M | i_match = 0; | 312 | 20.0M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 18.6M | { | 314 | 39.1M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 28.7M | { | 316 | | /* Use optimized helper when possible */ | 317 | 28.7M | if( p_startcode_helper && !i_match && | 318 | 23.5M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 15.8M | { | 320 | 15.8M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 15.8M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 15.8M | if( p_res ) | 323 | 8.21M | { | 324 | 8.21M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 8.21M | return VLC_SUCCESS; | 326 | 8.21M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 7.63M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 7.63M | } | 330 | | | 331 | 28.7M | bool b_matched = ( p_startcode_matcher ) | 332 | 20.5M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 20.5M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 20.5M | if( b_matched ) | 335 | 5.26M | { | 336 | 5.26M | if( i_match == 0 ) | 337 | 2.85M | { | 338 | 2.85M | p_block_backup = p_block; | 339 | 2.85M | i_offset_backup = i_offset; | 340 | 2.85M | i_caller_offset_backup = *pi_offset; | 341 | 2.85M | } | 342 | | | 343 | 5.26M | if( i_match + 1 == i_startcode_length ) | 344 | 3.73k | { | 345 | | /* We have it */ | 346 | 3.73k | *pi_offset += i_offset - i_match; | 347 | 3.73k | return VLC_SUCCESS; | 348 | 3.73k | } | 349 | | | 350 | 5.26M | i_match++; | 351 | 5.26M | } | 352 | 15.2M | else if ( i_match != 0 ) | 353 | 2.81M | { | 354 | | /* False positive */ | 355 | 2.81M | p_block = p_block_backup; | 356 | 2.81M | i_offset = i_offset_backup; | 357 | 2.81M | *pi_offset = i_caller_offset_backup; | 358 | 2.81M | i_match = 0; | 359 | 2.81M | } | 360 | | | 361 | 20.5M | } | 362 | 10.3M | i_size = 0; | 363 | 10.3M | *pi_offset += i_offset; | 364 | 10.3M | } | 365 | | | 366 | 1.43M | *pi_offset -= i_match; | 367 | 1.43M | return VLC_EGENERIC; | 368 | 9.66M | } |
Unexecuted instantiation: mlp.c:block_FindStartcodeFromOffset Unexecuted instantiation: mpeg4audio.c:block_FindStartcodeFromOffset mpeg4video.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 947k | { | 285 | 947k | block_t *p_block, *p_block_backup = NULL; | 286 | 947k | ssize_t i_size; | 287 | 947k | size_t i_offset, i_offset_backup = 0; | 288 | 947k | size_t i_caller_offset_backup = 0; | 289 | 947k | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 947k | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 947k | for( p_block = p_bytestream->p_block; | 294 | 1.03M | p_block != NULL; p_block = p_block->p_next ) | 295 | 1.00M | { | 296 | 1.00M | i_size -= p_block->i_buffer; | 297 | 1.00M | if( i_size < 0 ) break; | 298 | 1.00M | } | 299 | | | 300 | 947k | if( unlikely( i_size >= 0 ) ) | 301 | 33.2k | { | 302 | | /* Not enough data, bail out */ | 303 | 33.2k | return VLC_EGENERIC; | 304 | 33.2k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 913k | i_size += p_block->i_buffer; | 310 | 913k | *pi_offset -= i_size; | 311 | 913k | i_match = 0; | 312 | 2.72M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 2.61M | { | 314 | 6.03M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 4.22M | { | 316 | | /* Use optimized helper when possible */ | 317 | 4.22M | if( p_startcode_helper && !i_match && | 318 | 3.47M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 1.12M | { | 320 | 1.12M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 1.12M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 1.12M | if( p_res ) | 323 | 798k | { | 324 | 798k | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 798k | return VLC_SUCCESS; | 326 | 798k | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 329k | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 329k | } | 330 | | | 331 | 4.22M | bool b_matched = ( p_startcode_matcher ) | 332 | 3.42M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 3.42M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 3.42M | if( b_matched ) | 335 | 777k | { | 336 | 777k | if( i_match == 0 ) | 337 | 508k | { | 338 | 508k | p_block_backup = p_block; | 339 | 508k | i_offset_backup = i_offset; | 340 | 508k | i_caller_offset_backup = *pi_offset; | 341 | 508k | } | 342 | | | 343 | 777k | if( i_match + 1 == i_startcode_length ) | 344 | 1.24k | { | 345 | | /* We have it */ | 346 | 1.24k | *pi_offset += i_offset - i_match; | 347 | 1.24k | return VLC_SUCCESS; | 348 | 1.24k | } | 349 | | | 350 | 776k | i_match++; | 351 | 776k | } | 352 | 2.64M | else if ( i_match != 0 ) | 353 | 483k | { | 354 | | /* False positive */ | 355 | 483k | p_block = p_block_backup; | 356 | 483k | i_offset = i_offset_backup; | 357 | 483k | *pi_offset = i_caller_offset_backup; | 358 | 483k | i_match = 0; | 359 | 483k | } | 360 | | | 361 | 3.42M | } | 362 | 1.81M | i_size = 0; | 363 | 1.81M | *pi_offset += i_offset; | 364 | 1.81M | } | 365 | | | 366 | 114k | *pi_offset -= i_match; | 367 | 114k | return VLC_EGENERIC; | 368 | 913k | } |
Unexecuted instantiation: mpegaudio.c:block_FindStartcodeFromOffset mpegvideo.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 2.40M | { | 285 | 2.40M | block_t *p_block, *p_block_backup = NULL; | 286 | 2.40M | ssize_t i_size; | 287 | 2.40M | size_t i_offset, i_offset_backup = 0; | 288 | 2.40M | size_t i_caller_offset_backup = 0; | 289 | 2.40M | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 2.40M | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 2.40M | for( p_block = p_bytestream->p_block; | 294 | 2.68M | p_block != NULL; p_block = p_block->p_next ) | 295 | 2.63M | { | 296 | 2.63M | i_size -= p_block->i_buffer; | 297 | 2.63M | if( i_size < 0 ) break; | 298 | 2.63M | } | 299 | | | 300 | 2.40M | if( unlikely( i_size >= 0 ) ) | 301 | 53.9k | { | 302 | | /* Not enough data, bail out */ | 303 | 53.9k | return VLC_EGENERIC; | 304 | 53.9k | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 2.35M | i_size += p_block->i_buffer; | 310 | 2.35M | *pi_offset -= i_size; | 311 | 2.35M | i_match = 0; | 312 | 791M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 790M | { | 314 | 2.15G | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 1.36G | { | 316 | | /* Use optimized helper when possible */ | 317 | 1.36G | if( p_startcode_helper && !i_match && | 318 | 785M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 177M | { | 320 | 177M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 177M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 177M | if( p_res ) | 323 | 1.85M | { | 324 | 1.85M | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 1.85M | return VLC_SUCCESS; | 326 | 1.85M | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 175M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 175M | } | 330 | | | 331 | 1.36G | bool b_matched = ( p_startcode_matcher ) | 332 | 1.36G | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 1.36G | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 1.36G | if( b_matched ) | 335 | 583M | { | 336 | 583M | if( i_match == 0 ) | 337 | 363M | { | 338 | 363M | p_block_backup = p_block; | 339 | 363M | i_offset_backup = i_offset; | 340 | 363M | i_caller_offset_backup = *pi_offset; | 341 | 363M | } | 342 | | | 343 | 583M | if( i_match + 1 == i_startcode_length ) | 344 | 10.0k | { | 345 | | /* We have it */ | 346 | 10.0k | *pi_offset += i_offset - i_match; | 347 | 10.0k | return VLC_SUCCESS; | 348 | 10.0k | } | 349 | | | 350 | 583M | i_match++; | 351 | 583M | } | 352 | 783M | else if ( i_match != 0 ) | 353 | 363M | { | 354 | | /* False positive */ | 355 | 363M | p_block = p_block_backup; | 356 | 363M | i_offset = i_offset_backup; | 357 | 363M | *pi_offset = i_caller_offset_backup; | 358 | 363M | i_match = 0; | 359 | 363M | } | 360 | | | 361 | 1.36G | } | 362 | 788M | i_size = 0; | 363 | 788M | *pi_offset += i_offset; | 364 | 788M | } | 365 | | | 366 | 484k | *pi_offset -= i_match; | 367 | 484k | return VLC_EGENERIC; | 368 | 2.35M | } |
vc1.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 351k | { | 285 | 351k | block_t *p_block, *p_block_backup = NULL; | 286 | 351k | ssize_t i_size; | 287 | 351k | size_t i_offset, i_offset_backup = 0; | 288 | 351k | size_t i_caller_offset_backup = 0; | 289 | 351k | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 351k | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 351k | for( p_block = p_bytestream->p_block; | 294 | 376k | p_block != NULL; p_block = p_block->p_next ) | 295 | 375k | { | 296 | 375k | i_size -= p_block->i_buffer; | 297 | 375k | if( i_size < 0 ) break; | 298 | 375k | } | 299 | | | 300 | 351k | if( unlikely( i_size >= 0 ) ) | 301 | 673 | { | 302 | | /* Not enough data, bail out */ | 303 | 673 | return VLC_EGENERIC; | 304 | 673 | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 350k | i_size += p_block->i_buffer; | 310 | 350k | *pi_offset -= i_size; | 311 | 350k | i_match = 0; | 312 | 469k | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 448k | { | 314 | 680k | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 561k | { | 316 | | /* Use optimized helper when possible */ | 317 | 561k | if( p_startcode_helper && !i_match && | 318 | 512k | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 423k | { | 320 | 423k | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 423k | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 423k | if( p_res ) | 323 | 329k | { | 324 | 329k | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 329k | return VLC_SUCCESS; | 326 | 329k | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 93.9k | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 93.9k | } | 330 | | | 331 | 561k | bool b_matched = ( p_startcode_matcher ) | 332 | 232k | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 232k | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 232k | if( b_matched ) | 335 | 58.9k | { | 336 | 58.9k | if( i_match == 0 ) | 337 | 35.0k | { | 338 | 35.0k | p_block_backup = p_block; | 339 | 35.0k | i_offset_backup = i_offset; | 340 | 35.0k | i_caller_offset_backup = *pi_offset; | 341 | 35.0k | } | 342 | | | 343 | 58.9k | if( i_match + 1 == i_startcode_length ) | 344 | 31 | { | 345 | | /* We have it */ | 346 | 31 | *pi_offset += i_offset - i_match; | 347 | 31 | return VLC_SUCCESS; | 348 | 31 | } | 349 | | | 350 | 58.9k | i_match++; | 351 | 58.9k | } | 352 | 173k | else if ( i_match != 0 ) | 353 | 25.0k | { | 354 | | /* False positive */ | 355 | 25.0k | p_block = p_block_backup; | 356 | 25.0k | i_offset = i_offset_backup; | 357 | 25.0k | *pi_offset = i_caller_offset_backup; | 358 | 25.0k | i_match = 0; | 359 | 25.0k | } | 360 | | | 361 | 232k | } | 362 | 119k | i_size = 0; | 363 | 119k | *pi_offset += i_offset; | 364 | 119k | } | 365 | | | 366 | 21.6k | *pi_offset -= i_match; | 367 | 21.6k | return VLC_EGENERIC; | 368 | 350k | } |
Unexecuted instantiation: av1.c:block_FindStartcodeFromOffset mjpeg.c:block_FindStartcodeFromOffset Line | Count | Source | 284 | 11.2k | { | 285 | 11.2k | block_t *p_block, *p_block_backup = NULL; | 286 | 11.2k | ssize_t i_size; | 287 | 11.2k | size_t i_offset, i_offset_backup = 0; | 288 | 11.2k | size_t i_caller_offset_backup = 0; | 289 | 11.2k | size_t i_match; | 290 | | | 291 | | /* Find the right place */ | 292 | 11.2k | i_size = *pi_offset + p_bytestream->i_block_offset; | 293 | 11.2k | for( p_block = p_bytestream->p_block; | 294 | 11.2k | p_block != NULL; p_block = p_block->p_next ) | 295 | 11.2k | { | 296 | 11.2k | i_size -= p_block->i_buffer; | 297 | 11.2k | if( i_size < 0 ) break; | 298 | 11.2k | } | 299 | | | 300 | 11.2k | if( unlikely( i_size >= 0 ) ) | 301 | 8 | { | 302 | | /* Not enough data, bail out */ | 303 | 8 | return VLC_EGENERIC; | 304 | 8 | } | 305 | | | 306 | | /* Begin the search. | 307 | | * We first look for an occurrence of the 1st startcode byte and | 308 | | * if found, we do a more thorough check. */ | 309 | 11.2k | i_size += p_block->i_buffer; | 310 | 11.2k | *pi_offset -= i_size; | 311 | 11.2k | i_match = 0; | 312 | 24.7M | for( ; p_block != NULL; p_block = p_block->p_next ) | 313 | 24.7M | { | 314 | 98.7M | for( i_offset = i_size; i_offset < p_block->i_buffer; i_offset++ ) | 315 | 74.0M | { | 316 | | /* Use optimized helper when possible */ | 317 | 74.0M | if( p_startcode_helper && !i_match && | 318 | 73.1M | (p_block->i_buffer - i_offset + 1) > i_startcode_length ) | 319 | 24.3M | { | 320 | 24.3M | const uint8_t *p_res = p_startcode_helper( &p_block->p_buffer[i_offset], | 321 | 24.3M | &p_block->p_buffer[p_block->i_buffer] ); | 322 | 24.3M | if( p_res ) | 323 | 411 | { | 324 | 411 | *pi_offset += i_offset + (p_res - &p_block->p_buffer[i_offset]); | 325 | 411 | return VLC_SUCCESS; | 326 | 411 | } | 327 | | /* Then parsing boundary with legacy code */ | 328 | 24.3M | i_offset = p_block->i_buffer + 1 - i_startcode_length; | 329 | 24.3M | } | 330 | | | 331 | 74.0M | bool b_matched = ( p_startcode_matcher ) | 332 | 74.0M | ? p_startcode_matcher( p_block->p_buffer[i_offset], i_match, p_startcode ) | 333 | 74.0M | : p_block->p_buffer[i_offset] == p_startcode[i_match]; | 334 | 74.0M | if( b_matched ) | 335 | 888k | { | 336 | 888k | if( i_match == 0 ) | 337 | 886k | { | 338 | 886k | p_block_backup = p_block; | 339 | 886k | i_offset_backup = i_offset; | 340 | 886k | i_caller_offset_backup = *pi_offset; | 341 | 886k | } | 342 | | | 343 | 888k | if( i_match + 1 == i_startcode_length ) | 344 | 0 | { | 345 | | /* We have it */ | 346 | 0 | *pi_offset += i_offset - i_match; | 347 | 0 | return VLC_SUCCESS; | 348 | 0 | } | 349 | | | 350 | 888k | i_match++; | 351 | 888k | } | 352 | 73.1M | else if ( i_match != 0 ) | 353 | 886k | { | 354 | | /* False positive */ | 355 | 886k | p_block = p_block_backup; | 356 | 886k | i_offset = i_offset_backup; | 357 | 886k | *pi_offset = i_caller_offset_backup; | 358 | 886k | i_match = 0; | 359 | 886k | } | 360 | | | 361 | 74.0M | } | 362 | 24.7M | i_size = 0; | 363 | 24.7M | *pi_offset += i_offset; | 364 | 24.7M | } | 365 | | | 366 | 10.8k | *pi_offset -= i_match; | 367 | 10.8k | return VLC_EGENERIC; | 368 | 11.2k | } |
|
369 | | |
370 | | #endif /* VLC_BLOCK_HELPER_H */ |