summaryrefslogtreecommitdiffstats
path: root/media/base/media_posix.cc
diff options
context:
space:
mode:
authorajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-01 23:16:19 +0000
committerajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-01 23:16:19 +0000
commitc06c86a302db8c82698b8a3cc0f92ff5b22a412b (patch)
tree0fff52f3eac0ed3d76026ba58b41bc287e0afbb3 /media/base/media_posix.cc
parent5a947d5adcf66fef98c357f2b63eccd84762b83b (diff)
downloadchromium_src-c06c86a302db8c82698b8a3cc0f92ff5b22a412b.zip
chromium_src-c06c86a302db8c82698b8a3cc0f92ff5b22a412b.tar.gz
chromium_src-c06c86a302db8c82698b8a3cc0f92ff5b22a412b.tar.bz2
Enable video in posix builds and remove unneeded ifdefs to guard windows.
The code still crashes when trying to play a video, but this will allow debugging. Review URL: http://codereview.chromium.org/100195 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15117 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/media_posix.cc')
-rw-r--r--media/base/media_posix.cc46
1 files changed, 38 insertions, 8 deletions
diff --git a/media/base/media_posix.cc b/media/base/media_posix.cc
index edbced0..1b3f323 100644
--- a/media/base/media_posix.cc
+++ b/media/base/media_posix.cc
@@ -22,11 +22,6 @@
// be promising, but I don't quite understand it yet.
extern "C" {
-int (*av_get_bits_per_sample_format_ptr)(enum SampleFormat sample_fmt);
-int av_get_bits_per_sample_format(enum SampleFormat sample_fmt) {
- return av_get_bits_per_sample_format(sample_fmt);
-}
-
void (*avcodec_init_ptr)(void) = NULL;
void avcodec_init(void) {
avcodec_init_ptr();
@@ -75,6 +70,11 @@ int avcodec_decode_video(AVCodecContext* avctx, AVFrame* picture,
}
+int (*av_get_bits_per_sample_format_ptr)(enum SampleFormat sample_fmt);
+int av_get_bits_per_sample_format(enum SampleFormat sample_fmt) {
+ return av_get_bits_per_sample_format_ptr(sample_fmt);
+}
+
void (*av_register_all_ptr)(void);
void av_register_all(void) {
av_register_all_ptr();
@@ -99,12 +99,29 @@ int av_read_frame(AVFormatContext* s, AVPacket* pkt) {
return av_read_frame_ptr(s, pkt);
}
+int (*av_seek_frame_ptr)(AVFormatContext* s, int stream_index,
+ int64_t timestamp, int flags) = NULL;
+int av_seek_frame(AVFormatContext* s, int stream_index,
+ int64_t timestamp, int flags) {
+ return av_seek_frame_ptr(s, stream_index, timestamp, flags);
+}
+
+int (*av_register_protocol_ptr)(URLProtocol* protocol) = NULL;
+int av_register_protocol(URLProtocol* protocol) {
+ return av_register_protocol_ptr(protocol);
+}
+
void* (*av_malloc_ptr)(unsigned int size) = NULL;
void* av_malloc(unsigned int size) {
return av_malloc_ptr(size);
}
+void (*av_free_ptr)(void* ptr) = NULL;
+void av_free(void* ptr) {
+ return av_free_ptr(ptr);
+}
+
} // extern "C"
@@ -169,9 +186,6 @@ bool InitializeMediaLibrary(const FilePath& module_dir) {
// TODO(ajwong): Extract this to somewhere saner, and hopefully
// autogenerate the bindings from the .def files. Having all this
// code here is incredibly ugly.
- av_get_bits_per_sample_format_ptr =
- reinterpret_cast<int (*)(enum SampleFormat)>(
- dlsym(libs[FILE_LIBAVCODEC], "av_get_bits_per_sample_format"));
avcodec_init_ptr =
reinterpret_cast<void(*)(void)>(
dlsym(libs[FILE_LIBAVCODEC], "avcodec_init"));
@@ -196,6 +210,9 @@ bool InitializeMediaLibrary(const FilePath& module_dir) {
const uint8_t*, int)>(
dlsym(libs[FILE_LIBAVCODEC], "avcodec_decode_video"));
+ av_get_bits_per_sample_format_ptr =
+ reinterpret_cast<int (*)(enum SampleFormat)>(
+ dlsym(libs[FILE_LIBAVCODEC], "av_get_bits_per_sample_format"));
av_register_all_ptr =
reinterpret_cast<void(*)(void)>(
dlsym(libs[FILE_LIBAVFORMAT], "av_register_all"));
@@ -210,10 +227,19 @@ bool InitializeMediaLibrary(const FilePath& module_dir) {
av_read_frame_ptr =
reinterpret_cast<int (*)(AVFormatContext*, AVPacket*)>(
dlsym(libs[FILE_LIBAVFORMAT], "av_read_frame"));
+ av_seek_frame_ptr =
+ reinterpret_cast<int (*)(AVFormatContext*, int, int64_t, int)>(
+ dlsym(libs[FILE_LIBAVFORMAT], "av_seek_frame"));
+ av_register_protocol_ptr =
+ reinterpret_cast<int (*)(URLProtocol*)>(
+ dlsym(libs[FILE_LIBAVFORMAT], "av_register_protocol"));
av_malloc_ptr =
reinterpret_cast<void* (*)(unsigned int)>(
dlsym(libs[FILE_LIBAVUTIL], "av_malloc"));
+ av_free_ptr =
+ reinterpret_cast<void (*)(void*)>(
+ dlsym(libs[FILE_LIBAVUTIL], "av_free"));
// Check that all the symbols were loaded correctly before returning true.
if (avcodec_init_ptr &&
@@ -224,11 +250,15 @@ bool InitializeMediaLibrary(const FilePath& module_dir) {
avcodec_decode_audio2_ptr &&
avcodec_decode_video_ptr &&
+ av_get_bits_per_sample_format_ptr &&
av_register_all_ptr &&
av_open_input_file_ptr &&
av_find_stream_info_ptr &&
av_read_frame_ptr &&
+ av_seek_frame_ptr &&
+ av_register_protocol_ptr &&
+ av_free_ptr &&
av_malloc_ptr) {
return true;
}