Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
adfa53d6
Commit
adfa53d6
authored
Feb 23, 2013
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavc: remove disabled FF_API_VDA_ASYNC cruft
parent
bdd1567c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
182 deletions
+0
-182
vda.h
libavcodec/vda.h
+0
-75
vda_h264.c
libavcodec/vda_h264.c
+0
-104
version.h
libavcodec/version.h
+0
-3
No files found.
libavcodec/vda.h
View file @
adfa53d6
...
...
@@ -31,10 +31,6 @@
#include "libavcodec/version.h"
#if FF_API_VDA_ASYNC
#include <pthread.h>
#endif
#include <stdint.h>
// emmintrin.h is unable to compile with -std=c99 -Werror=missing-prototypes
...
...
@@ -52,39 +48,6 @@
* @{
*/
#if FF_API_VDA_ASYNC
/**
* This structure is used to store decoded frame information and data.
*
* @deprecated Use synchronous decoding mode.
*/
typedef
struct
vda_frame
{
/**
* The PTS of the frame.
*
* - encoding: unused
* - decoding: Set/Unset by libavcodec.
*/
int64_t
pts
;
/**
* The CoreVideo buffer that contains the decoded data.
*
* - encoding: unused
* - decoding: Set/Unset by libavcodec.
*/
CVPixelBufferRef
cv_buffer
;
/**
* A pointer to the next frame.
*
* - encoding: unused
* - decoding: Set/Unset by libavcodec.
*/
struct
vda_frame
*
next_frame
;
}
vda_frame
;
#endif
/**
* This structure is used to provide the necessary configurations and data
* to the VDA Libav HWAccel implementation.
...
...
@@ -116,28 +79,6 @@ struct vda_context {
*/
int
use_sync_decoding
;
#if FF_API_VDA_ASYNC
/**
* VDA frames queue ordered by presentation timestamp.
*
* @deprecated Use synchronous decoding mode.
*
* - encoding: unused
* - decoding: Set/Unset by libavcodec.
*/
vda_frame
*
queue
;
/**
* Mutex for locking queue operations.
*
* @deprecated Use synchronous decoding mode.
*
* - encoding: unused
* - decoding: Set/Unset by libavcodec.
*/
pthread_mutex_t
queue_mutex
;
#endif
/**
* The frame width.
*
...
...
@@ -194,22 +135,6 @@ int ff_vda_create_decoder(struct vda_context *vda_ctx,
/** Destroy the video decoder. */
int
ff_vda_destroy_decoder
(
struct
vda_context
*
vda_ctx
);
#if FF_API_VDA_ASYNC
/**
* Return the top frame of the queue.
*
* @deprecated Use synchronous decoding mode.
*/
vda_frame
*
ff_vda_queue_pop
(
struct
vda_context
*
vda_ctx
);
/**
* Release the given frame.
*
* @deprecated Use synchronous decoding mode.
*/
void
ff_vda_release_vda_frame
(
vda_frame
*
frame
);
#endif
/**
* @}
*/
...
...
libavcodec/vda_h264.c
View file @
adfa53d6
...
...
@@ -28,101 +28,6 @@
#include "h264.h"
#include "vda.h"
#if FF_API_VDA_ASYNC
#include <CoreFoundation/CFDictionary.h>
/* helper to create a dictionary according to the given pts */
static
CFDictionaryRef
vda_dictionary_with_pts
(
int64_t
i_pts
)
{
CFStringRef
key
=
CFSTR
(
"FF_VDA_DECODER_PTS_KEY"
);
CFNumberRef
value
=
CFNumberCreate
(
kCFAllocatorDefault
,
kCFNumberSInt64Type
,
&
i_pts
);
CFDictionaryRef
user_info
=
CFDictionaryCreate
(
kCFAllocatorDefault
,
(
const
void
**
)
&
key
,
(
const
void
**
)
&
value
,
1
,
&
kCFTypeDictionaryKeyCallBacks
,
&
kCFTypeDictionaryValueCallBacks
);
CFRelease
(
value
);
return
user_info
;
}
/* helper to retrieve the pts from the given dictionary */
static
int64_t
vda_pts_from_dictionary
(
CFDictionaryRef
user_info
)
{
CFNumberRef
pts
;
int64_t
outValue
=
0
;
if
(
!
user_info
)
return
0
;
pts
=
CFDictionaryGetValue
(
user_info
,
CFSTR
(
"FF_VDA_DECODER_PTS_KEY"
));
if
(
pts
)
CFNumberGetValue
(
pts
,
kCFNumberSInt64Type
,
&
outValue
);
return
outValue
;
}
/* Remove and release all frames from the queue. */
static
void
vda_clear_queue
(
struct
vda_context
*
vda_ctx
)
{
vda_frame
*
top_frame
;
pthread_mutex_lock
(
&
vda_ctx
->
queue_mutex
);
while
(
vda_ctx
->
queue
)
{
top_frame
=
vda_ctx
->
queue
;
vda_ctx
->
queue
=
top_frame
->
next_frame
;
ff_vda_release_vda_frame
(
top_frame
);
}
pthread_mutex_unlock
(
&
vda_ctx
->
queue_mutex
);
}
static
int
vda_decoder_decode
(
struct
vda_context
*
vda_ctx
,
uint8_t
*
bitstream
,
int
bitstream_size
,
int64_t
frame_pts
)
{
OSStatus
status
=
kVDADecoderNoErr
;
CFDictionaryRef
user_info
;
CFDataRef
coded_frame
;
coded_frame
=
CFDataCreate
(
kCFAllocatorDefault
,
bitstream
,
bitstream_size
);
user_info
=
vda_dictionary_with_pts
(
frame_pts
);
status
=
VDADecoderDecode
(
vda_ctx
->
decoder
,
0
,
coded_frame
,
user_info
);
CFRelease
(
user_info
);
CFRelease
(
coded_frame
);
return
status
;
}
vda_frame
*
ff_vda_queue_pop
(
struct
vda_context
*
vda_ctx
)
{
vda_frame
*
top_frame
;
if
(
!
vda_ctx
->
queue
)
return
NULL
;
pthread_mutex_lock
(
&
vda_ctx
->
queue_mutex
);
top_frame
=
vda_ctx
->
queue
;
vda_ctx
->
queue
=
top_frame
->
next_frame
;
pthread_mutex_unlock
(
&
vda_ctx
->
queue_mutex
);
return
top_frame
;
}
void
ff_vda_release_vda_frame
(
vda_frame
*
frame
)
{
if
(
frame
)
{
CVPixelBufferRelease
(
frame
->
cv_buffer
);
av_freep
(
&
frame
);
}
}
#endif
/* Decoder callback that adds the VDA frame to the queue in display order. */
static
void
vda_decoder_callback
(
void
*
vda_hw_ctx
,
CFDictionaryRef
user_info
,
...
...
@@ -276,10 +181,6 @@ int ff_vda_create_decoder(struct vda_context *vda_ctx,
CFMutableDictionaryRef
io_surface_properties
;
CFNumberRef
cv_pix_fmt
;
#if FF_API_VDA_ASYNC
pthread_mutex_init
(
&
vda_ctx
->
queue_mutex
,
NULL
);
#endif
/* Each VCL NAL in the bistream sent to the decoder
* is preceded by a 4 bytes length header.
* Change the avcC atom header if needed, to signal headers of 4 bytes. */
...
...
@@ -357,11 +258,6 @@ int ff_vda_destroy_decoder(struct vda_context *vda_ctx)
if
(
vda_ctx
->
decoder
)
status
=
VDADecoderDestroy
(
vda_ctx
->
decoder
);
#if FF_API_VDA_ASYNC
vda_clear_queue
(
vda_ctx
);
pthread_mutex_destroy
(
&
vda_ctx
->
queue_mutex
);
#endif
av_freep
(
&
vda_ctx
->
priv_bitstream
);
return
status
;
...
...
libavcodec/version.h
View file @
adfa53d6
...
...
@@ -49,9 +49,6 @@
#ifndef FF_API_REQUEST_CHANNELS
#define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 56)
#endif
#ifndef FF_API_VDA_ASYNC
#define FF_API_VDA_ASYNC (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_AVCODEC_RESAMPLE
#define FF_API_AVCODEC_RESAMPLE (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment