OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/base/media.h" | 5 #include "media/base/media.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include <dlfcn.h> | 9 #include <dlfcn.h> |
10 | 10 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 void* (*av_malloc_ptr)(unsigned int size) = NULL; | 115 void* (*av_malloc_ptr)(unsigned int size) = NULL; |
116 void* av_malloc(unsigned int size) { | 116 void* av_malloc(unsigned int size) { |
117 return av_malloc_ptr(size); | 117 return av_malloc_ptr(size); |
118 } | 118 } |
119 | 119 |
120 void (*av_free_ptr)(void* ptr) = NULL; | 120 void (*av_free_ptr)(void* ptr) = NULL; |
121 void av_free(void* ptr) { | 121 void av_free(void* ptr) { |
122 return av_free_ptr(ptr); | 122 return av_free_ptr(ptr); |
123 } | 123 } |
124 | 124 |
| 125 int64_t (*av_rescale_q_ptr)(int64_t a, AVRational bq, AVRational cq) = NULL; |
| 126 int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) { |
| 127 return av_rescale_q_ptr(a, bq, cq); |
| 128 } |
| 129 |
125 } // extern "C" | 130 } // extern "C" |
126 | 131 |
127 | 132 |
128 namespace media { | 133 namespace media { |
129 | 134 |
130 namespace { | 135 namespace { |
131 | 136 |
132 enum FFmpegDSOKeys { | 137 enum FFmpegDSOKeys { |
133 FILE_LIBAVCODEC, // full path to libavcodec media decoding library. | 138 FILE_LIBAVCODEC, // full path to libavcodec media decoding library. |
134 FILE_LIBAVFORMAT, // full path to libavformat media parsing library. | 139 FILE_LIBAVFORMAT, // full path to libavformat media parsing library. |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 av_register_protocol_ptr = | 238 av_register_protocol_ptr = |
234 reinterpret_cast<int (*)(URLProtocol*)>( | 239 reinterpret_cast<int (*)(URLProtocol*)>( |
235 dlsym(libs[FILE_LIBAVFORMAT], "av_register_protocol")); | 240 dlsym(libs[FILE_LIBAVFORMAT], "av_register_protocol")); |
236 | 241 |
237 av_malloc_ptr = | 242 av_malloc_ptr = |
238 reinterpret_cast<void* (*)(unsigned int)>( | 243 reinterpret_cast<void* (*)(unsigned int)>( |
239 dlsym(libs[FILE_LIBAVUTIL], "av_malloc")); | 244 dlsym(libs[FILE_LIBAVUTIL], "av_malloc")); |
240 av_free_ptr = | 245 av_free_ptr = |
241 reinterpret_cast<void (*)(void*)>( | 246 reinterpret_cast<void (*)(void*)>( |
242 dlsym(libs[FILE_LIBAVUTIL], "av_free")); | 247 dlsym(libs[FILE_LIBAVUTIL], "av_free")); |
| 248 av_rescale_q_ptr = |
| 249 reinterpret_cast<int64_t (*)(int64_t, AVRational, AVRational)>( |
| 250 dlsym(libs[FILE_LIBAVUTIL], "av_rescale_q")); |
243 | 251 |
244 // Check that all the symbols were loaded correctly before returning true. | 252 // Check that all the symbols were loaded correctly before returning true. |
245 if (av_get_bits_per_sample_format_ptr && | 253 if (av_get_bits_per_sample_format_ptr && |
246 avcodec_init_ptr && | 254 avcodec_init_ptr && |
247 avcodec_find_decoder_ptr && | 255 avcodec_find_decoder_ptr && |
248 avcodec_thread_init_ptr && | 256 avcodec_thread_init_ptr && |
249 avcodec_open_ptr && | 257 avcodec_open_ptr && |
250 avcodec_alloc_frame_ptr && | 258 avcodec_alloc_frame_ptr && |
251 avcodec_decode_audio2_ptr && | 259 avcodec_decode_audio2_ptr && |
252 avcodec_decode_video_ptr && | 260 avcodec_decode_video_ptr && |
253 | 261 |
254 av_register_all_ptr && | 262 av_register_all_ptr && |
255 av_open_input_file_ptr && | 263 av_open_input_file_ptr && |
256 av_find_stream_info_ptr && | 264 av_find_stream_info_ptr && |
257 av_read_frame_ptr && | 265 av_read_frame_ptr && |
258 av_seek_frame_ptr && | 266 av_seek_frame_ptr && |
259 av_register_protocol_ptr && | 267 av_register_protocol_ptr && |
260 | 268 |
261 av_malloc_ptr && | 269 av_malloc_ptr && |
262 av_free_ptr) { | 270 av_free_ptr && |
| 271 av_rescale_q_ptr) { |
263 return true; | 272 return true; |
264 } | 273 } |
265 | 274 |
266 return false; | 275 return false; |
267 } | 276 } |
268 | 277 |
269 } // namespace media | 278 } // namespace media |
OLD | NEW |