summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-04-25 11:28:49 +0200
committerwm4 <wm4@nowhere>2016-04-25 11:28:49 +0200
commit021cb2c3870b9d0b2f2e03416702fc561f160c2b (patch)
tree659ac3ff21f104e722539651b6900717e570f5a3
parente232f1a731a9089a13d88def6c1f2c1a069a6353 (diff)
downloadmpv-021cb2c3870b9d0b2f2e03416702fc561f160c2b.tar.bz2
mpv-021cb2c3870b9d0b2f2e03416702fc561f160c2b.tar.xz
mp_image: allow passing NULL to mp_image_new_custom_ref()
A minor simplification. Most callers don't need this, and there's no good reason why the caller should provide an "initializer" like this. (This function calls mp_image_new_dummy_ref(), which has no reason for an initializer either.)
-rw-r--r--video/d3d11va.c4
-rw-r--r--video/dxva2.c4
-rw-r--r--video/mp_image.c2
-rw-r--r--video/out/vo_rpi.c3
-rw-r--r--video/vdpau.c3
5 files changed, 7 insertions, 9 deletions
diff --git a/video/d3d11va.c b/video/d3d11va.c
index a9be571e9c..e27d7952cd 100644
--- a/video/d3d11va.c
+++ b/video/d3d11va.c
@@ -69,8 +69,8 @@ struct mp_image *d3d11va_new_ref(ID3D11VideoDecoderOutputView *view,
ID3D11VideoDecoderOutputView_GetResource(
surface->surface, (ID3D11Resource **)&surface->texture);
- struct mp_image *mpi = mp_image_new_custom_ref(
- &(struct mp_image){0}, surface, d3d11va_release_img);
+ struct mp_image *mpi =
+ mp_image_new_custom_ref(NULL, surface, d3d11va_release_img);
if (!mpi)
abort();
diff --git a/video/dxva2.c b/video/dxva2.c
index d6635ce0c6..cad3c54f72 100644
--- a/video/dxva2.c
+++ b/video/dxva2.c
@@ -72,8 +72,8 @@ struct mp_image *dxva2_new_ref(IDirectXVideoDecoder *decoder,
surface->decoder = decoder;
IDirectXVideoDecoder_AddRef(surface->decoder);
- struct mp_image *mpi = mp_image_new_custom_ref(&(struct mp_image){0},
- surface, dxva2_release_img);
+ struct mp_image *mpi =
+ mp_image_new_custom_ref(NULL, surface, dxva2_release_img);
if (!mpi)
abort();
diff --git a/video/mp_image.c b/video/mp_image.c
index 0ca59c62c9..5adce213e5 100644
--- a/video/mp_image.c
+++ b/video/mp_image.c
@@ -230,7 +230,7 @@ struct mp_image *mp_image_new_dummy_ref(struct mp_image *img)
{
struct mp_image *new = talloc_ptrtype(NULL, new);
talloc_set_destructor(new, mp_image_destructor);
- *new = *img;
+ *new = img ? *img : (struct mp_image){0};
for (int p = 0; p < MP_MAX_PLANES; p++)
new->bufs[p] = NULL;
new->hwctx = NULL;
diff --git a/video/out/vo_rpi.c b/video/out/vo_rpi.c
index 9d782fc9c5..7ba3e8ba68 100644
--- a/video/out/vo_rpi.c
+++ b/video/out/vo_rpi.c
@@ -435,8 +435,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame)
}
mmal_buffer_header_reset(buffer);
- struct mp_image *new_ref = mp_image_new_custom_ref(&(struct mp_image){0},
- buffer,
+ struct mp_image *new_ref = mp_image_new_custom_ref(NULL, buffer,
free_mmal_buffer);
if (!new_ref) {
mmal_buffer_header_release(buffer);
diff --git a/video/vdpau.c b/video/vdpau.c
index 9dfbc2bc6e..6398fa6e58 100644
--- a/video/vdpau.c
+++ b/video/vdpau.c
@@ -268,8 +268,7 @@ static struct mp_image *create_ref(struct mp_vdpau_ctx *ctx, int index)
struct surface_ref *ref = talloc_ptrtype(NULL, ref);
*ref = (struct surface_ref){ctx, index};
struct mp_image *res =
- mp_image_new_custom_ref(&(struct mp_image){0}, ref,
- release_decoder_surface);
+ mp_image_new_custom_ref(NULL, ref, release_decoder_surface);
if (res) {
mp_image_setfmt(res, e->rgb ? IMGFMT_VDPAU_OUTPUT : IMGFMT_VDPAU);
mp_image_set_size(res, e->w, e->h);