summaryrefslogtreecommitdiff
path: root/src/input/input_cdda.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/input_cdda.c')
-rw-r--r--src/input/input_cdda.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/input/input_cdda.c b/src/input/input_cdda.c
index c0a0fabed..46f6eb737 100644
--- a/src/input/input_cdda.c
+++ b/src/input/input_cdda.c
@@ -60,6 +60,7 @@
/* libavutil from FFmpeg */
#include <base64.h>
+#include <sha1.h>
#define LOG_MODULE "input_cdda"
#define LOG_VERBOSE
@@ -67,7 +68,6 @@
#define LOG
*/
-#include "sha1.h"
#include "xine_internal.h"
#include "xineutils.h"
#include "input_plugin.h"
@@ -1932,8 +1932,8 @@ static unsigned long _cdda_calc_cddb_id(cdda_input_plugin_t *this) {
*/
static void _cdda_cdindex(cdda_input_plugin_t *this, cdrom_toc *toc) {
char temp[10];
- SHA_INFO sha;
- unsigned char digest[33];
+ struct AVSHA1 *sha_ctx = malloc(av_sha1_size);
+ unsigned char digest[20];
/* We're going to encode 20 bytes in base64, which will become
* 6 * 32 / 8 = 24 bytes.
* libavutil's base64 encoding functions, though, wants the size to
@@ -1941,29 +1941,29 @@ static void _cdda_cdindex(cdda_input_plugin_t *this, cdrom_toc *toc) {
*/
char base64[39];
int i;
- unsigned long size;
- sha_init(&sha);
+ av_sha1_init(sha_ctx);
sprintf(temp, "%02X", toc->first_track);
- sha_update(&sha, (unsigned char*) temp, strlen(temp));
+ av_sha1_update(sha_ctx, (unsigned char*) temp, strlen(temp));
sprintf(temp, "%02X", toc->last_track - toc->ignore_last_track);
- sha_update(&sha, (unsigned char*) temp, strlen(temp));
+ av_sha1_update(sha_ctx, (unsigned char*) temp, strlen(temp));
sprintf (temp, "%08X", toc->leadout_track.first_frame);// + 150);
- sha_update(&sha, (unsigned char*) temp, strlen(temp));
+ av_sha1_update(sha_ctx, (unsigned char*) temp, strlen(temp));
for (i = toc->first_track; i <= toc->last_track - toc->ignore_last_track; i++) {
sprintf(temp, "%08X", toc->toc_entries[i - 1].first_frame);
- sha_update(&sha, (unsigned char*) temp, strlen(temp));
+ av_sha1_update(sha_ctx, (unsigned char*) temp, strlen(temp));
}
for (i = toc->last_track - toc->ignore_last_track + 1; i < 100; i++) {
- sha_update(&sha, (unsigned char*) temp, strlen(temp));
+ av_sha1_update(sha_ctx, (unsigned char*) temp, strlen(temp));
}
- sha_final(digest, &sha);
+ av_sha1_final(sha_ctx, digest);
+ free(sha_ctx);
av_base64_encode(base64, 39, digest, 20);